From 0a8b1c2797addda9c0cf96beec944b9d305bec11 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 27 Jan 2020 21:46:37 +0100 Subject: [PATCH 1/9] Bump version 197 --- hassio/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/const.py b/hassio/const.py index 5e999adbe..61c119624 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -2,7 +2,7 @@ from pathlib import Path from ipaddress import ip_network -HASSIO_VERSION = "196" +HASSIO_VERSION = "197" URL_HASSIO_ADDONS = "https://github.com/home-assistant/hassio-addons" From f253c797afd143128c91b212172b7150be95c6b7 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 28 Jan 2020 17:58:29 +0100 Subject: [PATCH 2/9] Add stage flag (#1460) * Add stage flag * Add filter * Remove filter * Fix lint --- API.md | 2 ++ hassio/addons/model.py | 9 ++++++++- hassio/addons/validate.py | 3 +++ hassio/api/addons.py | 3 +++ hassio/api/supervisor.py | 5 +++-- hassio/bootstrap.py | 4 ++-- hassio/const.py | 24 +++++++++++++++++++----- hassio/coresys.py | 4 ++-- hassio/updater.py | 5 +++-- hassio/validate.py | 9 ++++----- 10 files changed, 49 insertions(+), 19 deletions(-) diff --git a/API.md b/API.md index 37a006cbe..5e24bb36c 100644 --- a/API.md +++ b/API.md @@ -457,6 +457,7 @@ Get all available addons. "slug": "xy", "description": "description", "advanced": "bool", + "stage": "stable|experimental|deprecated", "repository": "core|local|REP_ID", "version": "LAST_VERSION", "installed": "none|INSTALL_VERSION", @@ -496,6 +497,7 @@ Get all available addons. "detached": "bool", "available": "bool", "advanced": "bool", + "stage": "stable|experimental|deprecated", "arch": ["armhf", "aarch64", "i386", "amd64"], "machine": "[raspberrypi2, tinker]", "homeassistant": "null|min Home Assistant version", diff --git a/hassio/addons/model.py b/hassio/addons/model.py index c3d8ef135..1d933936c 100644 --- a/hassio/addons/model.py +++ b/hassio/addons/model.py @@ -49,6 +49,7 @@ from ..const import ( ATTR_SERVICES, ATTR_SLUG, ATTR_SNAPSHOT_EXCLUDE, + ATTR_STAGE, ATTR_STARTUP, ATTR_STDIN, ATTR_TIMEOUT, @@ -60,9 +61,10 @@ from ..const import ( SECURITY_DEFAULT, SECURITY_DISABLE, SECURITY_PROFILE, + AddonStages, ) from ..coresys import CoreSysAttributes -from .validate import RE_SERVICE, RE_VOLUME, validate_options, schema_ui_options +from .validate import RE_SERVICE, RE_VOLUME, schema_ui_options, validate_options Data = Dict[str, Any] @@ -195,6 +197,11 @@ class AddonModel(CoreSysAttributes): """Return advanced mode of add-on.""" return self.data[ATTR_ADVANCED] + @property + def stage(self) -> AddonStages: + """Return stage mode of add-on.""" + return self.data[ATTR_STAGE] + @property def services_role(self) -> Dict[str, str]: """Return dict of services with rights.""" diff --git a/hassio/addons/validate.py b/hassio/addons/validate.py index 77b7880ba..dd2f524db 100644 --- a/hassio/addons/validate.py +++ b/hassio/addons/validate.py @@ -65,6 +65,7 @@ from ..const import ( ATTR_SLUG, ATTR_SNAPSHOT_EXCLUDE, ATTR_SQUASH, + ATTR_STAGE, ATTR_STARTUP, ATTR_STATE, ATTR_STDIN, @@ -87,6 +88,7 @@ from ..const import ( STARTUP_SERVICES, STATE_STARTED, STATE_STOPPED, + AddonStages, ) from ..coresys import CoreSys from ..discovery.validate import valid_discovery_service @@ -188,6 +190,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema( vol.Required(ATTR_STARTUP): vol.All(_simple_startup, vol.In(STARTUP_ALL)), vol.Required(ATTR_BOOT): vol.In([BOOT_AUTO, BOOT_MANUAL]), vol.Optional(ATTR_ADVANCED, default=False): vol.Boolean(), + vol.Optional(ATTR_STAGE, default=AddonStages.STABLE): vol.Coerce(AddonStages), vol.Optional(ATTR_PORTS): DOCKER_PORTS, vol.Optional(ATTR_PORTS_DESCRIPTION): DOCKER_PORTS_DESCRIPTION, vol.Optional(ATTR_WEBUI): vol.Match( diff --git a/hassio/api/addons.py b/hassio/api/addons.py index a65bda6ad..63eb4226e 100644 --- a/hassio/api/addons.py +++ b/hassio/api/addons.py @@ -76,6 +76,7 @@ from ..const import ( ATTR_SERVICES, ATTR_SLUG, ATTR_SOURCE, + ATTR_STAGE, ATTR_STATE, ATTR_STDIN, ATTR_UDEV, @@ -149,6 +150,7 @@ class APIAddons(CoreSysAttributes): ATTR_SLUG: addon.slug, ATTR_DESCRIPTON: addon.description, ATTR_ADVANCED: addon.advanced, + ATTR_STAGE: addon.stage, ATTR_VERSION: addon.latest_version, ATTR_INSTALLED: addon.version if addon.is_installed else None, ATTR_AVAILABLE: addon.available, @@ -193,6 +195,7 @@ class APIAddons(CoreSysAttributes): ATTR_DESCRIPTON: addon.description, ATTR_LONG_DESCRIPTION: addon.long_description, ATTR_ADVANCED: addon.advanced, + ATTR_STAGE: addon.stage, ATTR_AUTO_UPDATE: None, ATTR_REPOSITORY: addon.repository, ATTR_VERSION: None, diff --git a/hassio/api/supervisor.py b/hassio/api/supervisor.py index b30bf0af8..b77aebc24 100644 --- a/hassio/api/supervisor.py +++ b/hassio/api/supervisor.py @@ -37,11 +37,12 @@ from ..const import ( ATTR_WAIT_BOOT, CONTENT_TYPE_BINARY, HASSIO_VERSION, + UpdateChannels, ) from ..coresys import CoreSysAttributes from ..exceptions import APIError from ..utils.validate import validate_timezone -from ..validate import channels, log_level, repositories, wait_boot +from ..validate import log_level, repositories, wait_boot from .utils import api_process, api_process_raw, api_validate _LOGGER: logging.Logger = logging.getLogger(__name__) @@ -49,7 +50,7 @@ _LOGGER: logging.Logger = logging.getLogger(__name__) # pylint: disable=no-value-for-parameter SCHEMA_OPTIONS = vol.Schema( { - vol.Optional(ATTR_CHANNEL): channels, + vol.Optional(ATTR_CHANNEL): vol.Coerce(UpdateChannels), vol.Optional(ATTR_ADDONS_REPOSITORIES): repositories, vol.Optional(ATTR_TIMEZONE): validate_timezone, vol.Optional(ATTR_WAIT_BOOT): wait_boot, diff --git a/hassio/bootstrap.py b/hassio/bootstrap.py index 35b35eee4..ca9e930ca 100644 --- a/hassio/bootstrap.py +++ b/hassio/bootstrap.py @@ -11,7 +11,7 @@ from .addons import AddonManager from .api import RestAPI from .arch import CpuArch from .auth import Auth -from .const import CHANNEL_DEV, SOCKET_DOCKER +from .const import SOCKET_DOCKER, UpdateChannels from .core import HassIO from .coresys import CoreSys from .dbus import DBusManager @@ -142,7 +142,7 @@ def initialize_system_data(coresys: CoreSys): # Check if ENV is in development mode if bool(os.environ.get("SUPERVISOR_DEV", 0)): _LOGGER.warning("SUPERVISOR_DEV is set") - coresys.updater.channel = CHANNEL_DEV + coresys.updater.channel = UpdateChannels.DEV coresys.config.logging = "debug" coresys.config.debug = True diff --git a/hassio/const.py b/hassio/const.py index 61c119624..4cb406065 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -1,6 +1,7 @@ """Constants file for Hass.io.""" -from pathlib import Path +from enum import Enum from ipaddress import ip_network +from pathlib import Path HASSIO_VERSION = "197" @@ -224,6 +225,7 @@ ATTR_VALUE = "value" ATTR_SNAPSHOT_EXCLUDE = "snapshot_exclude" ATTR_DOCUMENTATION = "documentation" ATTR_ADVANCED = "advanced" +ATTR_STAGE = "stage" PROVIDE_SERVICE = "provide" NEED_SERVICE = "need" @@ -264,10 +266,6 @@ ARCH_I386 = "i386" ARCH_ALL = [ARCH_ARMHF, ARCH_ARMV7, ARCH_AARCH64, ARCH_AMD64, ARCH_I386] -CHANNEL_STABLE = "stable" -CHANNEL_BETA = "beta" -CHANNEL_DEV = "dev" - REPOSITORY_CORE = "core" REPOSITORY_LOCAL = "local" @@ -325,3 +323,19 @@ ROLE_ALL = [ROLE_DEFAULT, ROLE_HOMEASSISTANT, ROLE_BACKUP, ROLE_MANAGER, ROLE_AD CHAN_ID = "chan_id" CHAN_TYPE = "chan_type" + + +class AddonStages(str, Enum): + """Stage types of add-on.""" + + STABLE = "stable" + EXPERIMENTAL = "experimental" + DEPRECATED = "deprecated" + + +class UpdateChannels(str, Enum): + """Core supported update channels.""" + + STABLE = "stable" + BETA = "beta" + DEV = "dev" diff --git a/hassio/coresys.py b/hassio/coresys.py index 70d47f707..0e63d44b7 100644 --- a/hassio/coresys.py +++ b/hassio/coresys.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Optional import aiohttp from .config import CoreConfig -from .const import CHANNEL_DEV +from .const import UpdateChannels from .docker import DockerAPI from .misc.hardware import Hardware from .misc.scheduler import Scheduler @@ -85,7 +85,7 @@ class CoreSys: @property def dev(self) -> bool: """Return True if we run dev mode.""" - return self._updater.channel == CHANNEL_DEV + return self._updater.channel == UpdateChannels.DEV @property def timezone(self) -> str: diff --git a/hassio/updater.py b/hassio/updater.py index 7e9fedd19..354d1c8c7 100644 --- a/hassio/updater.py +++ b/hassio/updater.py @@ -17,6 +17,7 @@ from .const import ( ATTR_HOMEASSISTANT, FILE_HASSIO_UPDATER, URL_HASSIO_VERSION, + UpdateChannels, ) from .coresys import CoreSysAttributes from .exceptions import HassioUpdaterError @@ -71,12 +72,12 @@ class Updater(JsonConfig, CoreSysAttributes): return self._data.get(ATTR_DNS) @property - def channel(self) -> str: + def channel(self) -> UpdateChannels: """Return upstream channel of Hass.io instance.""" return self._data[ATTR_CHANNEL] @channel.setter - def channel(self, value: str): + def channel(self, value: UpdateChannels): """Set upstream mode.""" self._data[ATTR_CHANNEL] = value diff --git a/hassio/validate.py b/hassio/validate.py index a3bbd3e31..785b6fff9 100644 --- a/hassio/validate.py +++ b/hassio/validate.py @@ -32,9 +32,7 @@ from .const import ( ATTR_VERSION, ATTR_WAIT_BOOT, ATTR_WATCHDOG, - CHANNEL_BETA, - CHANNEL_DEV, - CHANNEL_STABLE, + UpdateChannels, ) from .utils.validate import validate_timezone @@ -47,7 +45,6 @@ network_port = vol.All(vol.Coerce(int), vol.Range(min=1, max=65535)) wait_boot = vol.All(vol.Coerce(int), vol.Range(min=1, max=60)) docker_image = vol.Match(r"^[\w{}]+/[\-\w{}]+$") alsa_device = vol.Maybe(vol.Match(r"\d+,\d+")) -channels = vol.In([CHANNEL_STABLE, CHANNEL_BETA, CHANNEL_DEV]) uuid_match = vol.Match(r"^[0-9a-f]{32}$") sha256 = vol.Match(r"^[0-9a-f]{64}$") token = vol.Match(r"^[0-9a-f]{32,256}$") @@ -122,7 +119,9 @@ SCHEMA_HASS_CONFIG = vol.Schema( SCHEMA_UPDATER_CONFIG = vol.Schema( { - vol.Optional(ATTR_CHANNEL, default=CHANNEL_STABLE): channels, + vol.Optional(ATTR_CHANNEL, default=UpdateChannels.STABLE): vol.Coerce( + UpdateChannels + ), vol.Optional(ATTR_HOMEASSISTANT): vol.Coerce(str), vol.Optional(ATTR_HASSIO): vol.Coerce(str), vol.Optional(ATTR_HASSOS): vol.Coerce(str), From 0b44df366c38a3bdd8faf1a3f5f514731d1ffefa Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 29 Jan 2020 08:45:30 +0100 Subject: [PATCH 3/9] Change loglevel INFO to use black textcolor (#1459) --- hassio/bootstrap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/bootstrap.py b/hassio/bootstrap.py index ca9e930ca..c4c35c513 100644 --- a/hassio/bootstrap.py +++ b/hassio/bootstrap.py @@ -177,7 +177,7 @@ def initialize_logging(): reset=True, log_colors={ "DEBUG": "cyan", - "INFO": "green", + "INFO": "black", "WARNING": "yellow", "ERROR": "red", "CRITICAL": "red", From bae7bb8ce46496d4e073186fe1ae636b6560884a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2020 12:17:33 +0100 Subject: [PATCH 4/9] Bump pyudev from 0.21.0 to 0.22.0 (#1461) Bumps [pyudev](https://github.com/pyudev/pyudev) from 0.21.0 to 0.22.0. - [Release notes](https://github.com/pyudev/pyudev/releases) - [Changelog](https://github.com/pyudev/pyudev/blob/develop-0.22/CHANGES.rst) - [Commits](https://github.com/pyudev/pyudev/compare/v0.21.0...v0.22) Signed-off-by: dependabot-preview[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7a11b5fe7..75084b6b1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ docker==4.1.0 gitpython==3.0.5 packaging==20.1 pytz==2019.3 -pyudev==0.21.0 +pyudev==0.22.0 ruamel.yaml==0.15.100 uvloop==0.14.0 voluptuous==0.11.7 From 319b2b5d4cb098574139aff4ed244f351961d498 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2020 17:03:31 +0100 Subject: [PATCH 5/9] Bump pytest from 5.3.4 to 5.3.5 (#1463) Bumps [pytest](https://github.com/pytest-dev/pytest) from 5.3.4 to 5.3.5. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/master/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/5.3.4...5.3.5) Signed-off-by: dependabot-preview[bot] --- requirements_tests.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements_tests.txt b/requirements_tests.txt index efe5ecfb2..6057c1721 100644 --- a/requirements_tests.txt +++ b/requirements_tests.txt @@ -1,6 +1,6 @@ flake8==3.7.9 pylint==2.4.4 -pytest==5.3.4 +pytest==5.3.5 pytest-timeout==1.3.4 pytest-aiohttp==0.3.0 black==19.10b0 From 63e08b15bcfa3f76e896eaf94e4d6087756ffabd Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 3 Feb 2020 17:07:01 +0100 Subject: [PATCH 6/9] Revert "Change loglevel INFO to use black textcolor (#1459)" (#1467) This reverts commit 0b44df366c38a3bdd8faf1a3f5f514731d1ffefa. --- hassio/bootstrap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/bootstrap.py b/hassio/bootstrap.py index c4c35c513..ca9e930ca 100644 --- a/hassio/bootstrap.py +++ b/hassio/bootstrap.py @@ -177,7 +177,7 @@ def initialize_logging(): reset=True, log_colors={ "DEBUG": "cyan", - "INFO": "black", + "INFO": "green", "WARNING": "yellow", "ERROR": "red", "CRITICAL": "red", From 8984b9aef63c45c2588aa92a8bf2fda3a1e9c646 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 4 Feb 2020 16:53:38 +0100 Subject: [PATCH 7/9] Update frontend (#1469) --- .../panel/201359fd5a526afe13ef.worker.js.map | 2 +- .../api/panel/chunk.00de7352e51443687ebb.js | 3 + ... => chunk.00de7352e51443687ebb.js.LICENSE} | 0 .../panel/chunk.00de7352e51443687ebb.js.gz | Bin 0 -> 6460 bytes .../panel/chunk.00de7352e51443687ebb.js.map | 1 + ...2f5b6.js => chunk.0b82745c7bdffe5c1404.js} | 4 +- .../panel/chunk.0b82745c7bdffe5c1404.js.gz | Bin 0 -> 3925 bytes ....map => chunk.0b82745c7bdffe5c1404.js.map} | 2 +- .../api/panel/chunk.0c4f6887f9b7e7b11ef5.js | 3 + ... => chunk.0c4f6887f9b7e7b11ef5.js.LICENSE} | 0 .../panel/chunk.0c4f6887f9b7e7b11ef5.js.gz | Bin 0 -> 7239 bytes ....map => chunk.0c4f6887f9b7e7b11ef5.js.map} | 2 +- .../api/panel/chunk.12902324b918e12549ba.js | 3 - .../panel/chunk.12902324b918e12549ba.js.gz | Bin 63491 -> 0 bytes .../panel/chunk.12902324b918e12549ba.js.map | 1 - .../api/panel/chunk.170381dce1aef5f33cec.js | 3 + .../chunk.170381dce1aef5f33cec.js.LICENSE | 10 ++ .../panel/chunk.170381dce1aef5f33cec.js.gz | Bin 0 -> 6565 bytes .../panel/chunk.170381dce1aef5f33cec.js.map | 1 + .../api/panel/chunk.2412396b4c6d55f3dec7.js | 2 + .../panel/chunk.2412396b4c6d55f3dec7.js.gz | Bin 0 -> 18361 bytes .../panel/chunk.2412396b4c6d55f3dec7.js.map | 1 + .../api/panel/chunk.50202a3f8d4670c9454d.js | 3 - .../panel/chunk.50202a3f8d4670c9454d.js.gz | Bin 33550 -> 0 bytes .../panel/chunk.50202a3f8d4670c9454d.js.map | 1 - .../api/panel/chunk.84aaaba4c4734f1c2e21.js | 3 - .../panel/chunk.84aaaba4c4734f1c2e21.js.gz | Bin 22965 -> 0 bytes .../panel/chunk.84aaaba4c4734f1c2e21.js.map | 1 - .../api/panel/chunk.8527374a266cecf93aa9.js | 2 + .../panel/chunk.8527374a266cecf93aa9.js.gz | Bin 0 -> 57372 bytes .../panel/chunk.8527374a266cecf93aa9.js.map | 1 + .../api/panel/chunk.87b1d37fc9b8a6f7e2a6.js | 3 + .../chunk.87b1d37fc9b8a6f7e2a6.js.LICENSE | 16 ++++ .../panel/chunk.87b1d37fc9b8a6f7e2a6.js.gz | Bin 0 -> 3595 bytes .../panel/chunk.87b1d37fc9b8a6f7e2a6.js.map | 1 + .../api/panel/chunk.884d6e32c83f99e41040.js | 2 - .../panel/chunk.884d6e32c83f99e41040.js.gz | Bin 483935 -> 0 bytes .../api/panel/chunk.900c5d3fab8b6ebdcbc6.js | 2 - .../panel/chunk.900c5d3fab8b6ebdcbc6.js.gz | Bin 3659 -> 0 bytes .../api/panel/chunk.92a11ac1b80e0d7839d2.js | 2 + .../panel/chunk.92a11ac1b80e0d7839d2.js.gz | Bin 0 -> 283 bytes .../panel/chunk.92a11ac1b80e0d7839d2.js.map | 1 + .../api/panel/chunk.990ee58006b248f55d23.js | 2 + .../panel/chunk.990ee58006b248f55d23.js.gz | Bin 0 -> 3663 bytes ....map => chunk.990ee58006b248f55d23.js.map} | 2 +- .../api/panel/chunk.9cea224f33b375867edd.js | 3 - .../panel/chunk.9cea224f33b375867edd.js.gz | Bin 6455 -> 0 bytes .../panel/chunk.9cea224f33b375867edd.js.map | 1 - .../panel/chunk.a1b6b616fc89c412f5b6.js.gz | Bin 3928 -> 0 bytes .../api/panel/chunk.a4f9950b101883805252.js | 2 - .../panel/chunk.a4f9950b101883805252.js.gz | Bin 29656 -> 0 bytes .../panel/chunk.a4f9950b101883805252.js.map | 1 - .../api/panel/chunk.a9c5cc5386711b03c031.js | 2 + .../panel/chunk.a9c5cc5386711b03c031.js.gz | Bin 0 -> 31206 bytes .../panel/chunk.a9c5cc5386711b03c031.js.map | 1 + .../api/panel/chunk.b21a4609308c9b8ef180.js | 2 - .../panel/chunk.b21a4609308c9b8ef180.js.gz | Bin 15905 -> 0 bytes .../panel/chunk.b21a4609308c9b8ef180.js.map | 1 - .../api/panel/chunk.b2dce600432c76a53d8c.js | 2 + .../panel/chunk.b2dce600432c76a53d8c.js.gz | Bin 0 -> 526 bytes .../panel/chunk.b2dce600432c76a53d8c.js.map | 1 + .../api/panel/chunk.b60200a57d6f63941b30.js | 2 + .../panel/chunk.b60200a57d6f63941b30.js.gz | Bin 0 -> 483936 bytes ....map => chunk.b60200a57d6f63941b30.js.map} | 2 +- .../api/panel/chunk.c0a46a38d689ab648885.js | 3 - .../panel/chunk.c0a46a38d689ab648885.js.gz | Bin 7239 -> 0 bytes .../api/panel/chunk.d4931d72592ad48ba2be.js | 3 + ... => chunk.d4931d72592ad48ba2be.js.LICENSE} | 88 +++++++++--------- .../panel/chunk.d4931d72592ad48ba2be.js.gz | Bin 0 -> 63681 bytes .../panel/chunk.d4931d72592ad48ba2be.js.map | 1 + .../api/panel/chunk.e46c606dd9100816af4e.js | 3 + ... => chunk.e46c606dd9100816af4e.js.LICENSE} | 0 .../panel/chunk.e46c606dd9100816af4e.js.gz | Bin 0 -> 33536 bytes .../panel/chunk.e46c606dd9100816af4e.js.map | 1 + .../api/panel/chunk.f49e500cf58ea310d452.js | 3 + ... => chunk.f49e500cf58ea310d452.js.LICENSE} | 24 ++--- .../panel/chunk.f49e500cf58ea310d452.js.gz | Bin 0 -> 65634 bytes .../panel/chunk.f49e500cf58ea310d452.js.map | 1 + hassio/api/panel/entrypoint.js | 2 +- hassio/api/panel/entrypoint.js.gz | Bin 1431 -> 1535 bytes hassio/api/panel/entrypoint.js.map | 2 +- hassio/api/panel/manifest.json | 62 +++++++----- home-assistant-polymer | 2 +- 83 files changed, 170 insertions(+), 125 deletions(-) create mode 100644 hassio/api/panel/chunk.00de7352e51443687ebb.js rename hassio/api/panel/{chunk.9cea224f33b375867edd.js.LICENSE => chunk.00de7352e51443687ebb.js.LICENSE} (100%) create mode 100644 hassio/api/panel/chunk.00de7352e51443687ebb.js.gz create mode 100644 hassio/api/panel/chunk.00de7352e51443687ebb.js.map rename hassio/api/panel/{chunk.a1b6b616fc89c412f5b6.js => chunk.0b82745c7bdffe5c1404.js} (98%) create mode 100644 hassio/api/panel/chunk.0b82745c7bdffe5c1404.js.gz rename hassio/api/panel/{chunk.a1b6b616fc89c412f5b6.js.map => chunk.0b82745c7bdffe5c1404.js.map} (99%) create mode 100644 hassio/api/panel/chunk.0c4f6887f9b7e7b11ef5.js rename hassio/api/panel/{chunk.c0a46a38d689ab648885.js.LICENSE => chunk.0c4f6887f9b7e7b11ef5.js.LICENSE} (100%) create mode 100644 hassio/api/panel/chunk.0c4f6887f9b7e7b11ef5.js.gz rename hassio/api/panel/{chunk.c0a46a38d689ab648885.js.map => chunk.0c4f6887f9b7e7b11ef5.js.map} (99%) delete mode 100644 hassio/api/panel/chunk.12902324b918e12549ba.js delete mode 100644 hassio/api/panel/chunk.12902324b918e12549ba.js.gz delete mode 100644 hassio/api/panel/chunk.12902324b918e12549ba.js.map create mode 100644 hassio/api/panel/chunk.170381dce1aef5f33cec.js create mode 100644 hassio/api/panel/chunk.170381dce1aef5f33cec.js.LICENSE create mode 100644 hassio/api/panel/chunk.170381dce1aef5f33cec.js.gz create mode 100644 hassio/api/panel/chunk.170381dce1aef5f33cec.js.map create mode 100644 hassio/api/panel/chunk.2412396b4c6d55f3dec7.js create mode 100644 hassio/api/panel/chunk.2412396b4c6d55f3dec7.js.gz create mode 100644 hassio/api/panel/chunk.2412396b4c6d55f3dec7.js.map delete mode 100644 hassio/api/panel/chunk.50202a3f8d4670c9454d.js delete mode 100644 hassio/api/panel/chunk.50202a3f8d4670c9454d.js.gz delete mode 100644 hassio/api/panel/chunk.50202a3f8d4670c9454d.js.map delete mode 100644 hassio/api/panel/chunk.84aaaba4c4734f1c2e21.js delete mode 100644 hassio/api/panel/chunk.84aaaba4c4734f1c2e21.js.gz delete mode 100644 hassio/api/panel/chunk.84aaaba4c4734f1c2e21.js.map create mode 100644 hassio/api/panel/chunk.8527374a266cecf93aa9.js create mode 100644 hassio/api/panel/chunk.8527374a266cecf93aa9.js.gz create mode 100644 hassio/api/panel/chunk.8527374a266cecf93aa9.js.map create mode 100644 hassio/api/panel/chunk.87b1d37fc9b8a6f7e2a6.js create mode 100644 hassio/api/panel/chunk.87b1d37fc9b8a6f7e2a6.js.LICENSE create mode 100644 hassio/api/panel/chunk.87b1d37fc9b8a6f7e2a6.js.gz create mode 100644 hassio/api/panel/chunk.87b1d37fc9b8a6f7e2a6.js.map delete mode 100644 hassio/api/panel/chunk.884d6e32c83f99e41040.js delete mode 100644 hassio/api/panel/chunk.884d6e32c83f99e41040.js.gz delete mode 100644 hassio/api/panel/chunk.900c5d3fab8b6ebdcbc6.js delete mode 100644 hassio/api/panel/chunk.900c5d3fab8b6ebdcbc6.js.gz create mode 100644 hassio/api/panel/chunk.92a11ac1b80e0d7839d2.js create mode 100644 hassio/api/panel/chunk.92a11ac1b80e0d7839d2.js.gz create mode 100644 hassio/api/panel/chunk.92a11ac1b80e0d7839d2.js.map create mode 100644 hassio/api/panel/chunk.990ee58006b248f55d23.js create mode 100644 hassio/api/panel/chunk.990ee58006b248f55d23.js.gz rename hassio/api/panel/{chunk.900c5d3fab8b6ebdcbc6.js.map => chunk.990ee58006b248f55d23.js.map} (97%) delete mode 100644 hassio/api/panel/chunk.9cea224f33b375867edd.js delete mode 100644 hassio/api/panel/chunk.9cea224f33b375867edd.js.gz delete mode 100644 hassio/api/panel/chunk.9cea224f33b375867edd.js.map delete mode 100644 hassio/api/panel/chunk.a1b6b616fc89c412f5b6.js.gz delete mode 100644 hassio/api/panel/chunk.a4f9950b101883805252.js delete mode 100644 hassio/api/panel/chunk.a4f9950b101883805252.js.gz delete mode 100644 hassio/api/panel/chunk.a4f9950b101883805252.js.map create mode 100644 hassio/api/panel/chunk.a9c5cc5386711b03c031.js create mode 100644 hassio/api/panel/chunk.a9c5cc5386711b03c031.js.gz create mode 100644 hassio/api/panel/chunk.a9c5cc5386711b03c031.js.map delete mode 100644 hassio/api/panel/chunk.b21a4609308c9b8ef180.js delete mode 100644 hassio/api/panel/chunk.b21a4609308c9b8ef180.js.gz delete mode 100644 hassio/api/panel/chunk.b21a4609308c9b8ef180.js.map create mode 100644 hassio/api/panel/chunk.b2dce600432c76a53d8c.js create mode 100644 hassio/api/panel/chunk.b2dce600432c76a53d8c.js.gz create mode 100644 hassio/api/panel/chunk.b2dce600432c76a53d8c.js.map create mode 100644 hassio/api/panel/chunk.b60200a57d6f63941b30.js create mode 100644 hassio/api/panel/chunk.b60200a57d6f63941b30.js.gz rename hassio/api/panel/{chunk.884d6e32c83f99e41040.js.map => chunk.b60200a57d6f63941b30.js.map} (99%) delete mode 100644 hassio/api/panel/chunk.c0a46a38d689ab648885.js delete mode 100644 hassio/api/panel/chunk.c0a46a38d689ab648885.js.gz create mode 100644 hassio/api/panel/chunk.d4931d72592ad48ba2be.js rename hassio/api/panel/{chunk.12902324b918e12549ba.js.LICENSE => chunk.d4931d72592ad48ba2be.js.LICENSE} (100%) create mode 100644 hassio/api/panel/chunk.d4931d72592ad48ba2be.js.gz create mode 100644 hassio/api/panel/chunk.d4931d72592ad48ba2be.js.map create mode 100644 hassio/api/panel/chunk.e46c606dd9100816af4e.js rename hassio/api/panel/{chunk.50202a3f8d4670c9454d.js.LICENSE => chunk.e46c606dd9100816af4e.js.LICENSE} (100%) create mode 100644 hassio/api/panel/chunk.e46c606dd9100816af4e.js.gz create mode 100644 hassio/api/panel/chunk.e46c606dd9100816af4e.js.map create mode 100644 hassio/api/panel/chunk.f49e500cf58ea310d452.js rename hassio/api/panel/{chunk.84aaaba4c4734f1c2e21.js.LICENSE => chunk.f49e500cf58ea310d452.js.LICENSE} (63%) create mode 100644 hassio/api/panel/chunk.f49e500cf58ea310d452.js.gz create mode 100644 hassio/api/panel/chunk.f49e500cf58ea310d452.js.map diff --git a/hassio/api/panel/201359fd5a526afe13ef.worker.js.map b/hassio/api/panel/201359fd5a526afe13ef.worker.js.map index eab9393f0..31bd6ffa0 100644 --- a/hassio/api/panel/201359fd5a526afe13ef.worker.js.map +++ b/hassio/api/panel/201359fd5a526afe13ef.worker.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/cssfilter/lib/index.js","webpack:///./node_modules/xss/lib/util.js","webpack:///./node_modules/xss/lib/index.js","webpack:///./node_modules/xss/lib/default.js","webpack:///./node_modules/cssfilter/lib/default.js","webpack:///./node_modules/cssfilter/lib/util.js","webpack:///./node_modules/xss/lib/parser.js","webpack:///./node_modules/marked/lib/marked.js","webpack:///./src/resources/markdown_worker.ts","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/cssfilter/lib/css.js","webpack:///./node_modules/cssfilter/lib/parser.js","webpack:///./node_modules/xss/lib/xss.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","DEFAULT","require","FilterCSS","html","options","process","window","filterCSS","indexOf","arr","item","j","Array","length","forEach","fn","scope","trim","str","String","replace","spaceIndex","match","exec","index","parser","FilterXSS","filterXSS","self","DedicatedWorkerGlobalScope","getDefaultCSSWhiteList","getDefaultWhiteList","_","a","abbr","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","caption","center","cite","code","col","colgroup","dd","del","details","div","dl","dt","em","font","footer","h1","h2","h3","h4","h5","h6","header","hr","img","ins","li","mark","nav","ol","pre","section","small","span","sub","sup","strong","table","tbody","td","tfoot","th","thead","tr","tt","u","ul","video","defaultCSSFilter","escapeHtml","REGEXP_LT","REGEXP_GT","REGEXP_QUOTE","REGEXP_QUOTE_2","REGEXP_ATTR_VALUE_1","REGEXP_ATTR_VALUE_COLON","REGEXP_ATTR_VALUE_NEWLINE","REGEXP_DEFAULT_ON_TAG_ATTR_4","REGEXP_DEFAULT_ON_TAG_ATTR_7","REGEXP_DEFAULT_ON_TAG_ATTR_8","escapeQuote","unescapeQuote","escapeHtmlEntities","fromCharCode","parseInt","substr","escapeDangerHtml5Entities","clearNonPrintableCharacter","str2","len","charCodeAt","charAt","friendlyAttrValue","escapeAttrValue","STRIP_COMMENT_TAG_REGEXP","whiteList","onTag","tag","onIgnoreTag","onTagAttr","onIgnoreTagAttr","safeAttrValue","cssFilter","lastIndex","test","onIgnoreTagStripAll","StripTagBody","tags","next","isRemoveAllTag","isArray","removeList","posStart","isRemoveTag","isClosing","ret","end","position","push","remove","rethtml","lastPos","pos","slice","stripCommentTag","stripBlankChar","chars","split","filter","char","join","REGEXP_URL_JAVASCRIPT","onAttr","onIgnoreAttr","trimRight","getTagName","tagName","toLowerCase","REGEXP_ILLEGAL_ATTR_NAME","findNextEqual","findBeforeEqual","stripQuoteWrap","text","isQuoteWrapString","parseTag","tagStart","quoteStart","currentPos","currentTagName","currentHtml","parseAttr","retAttrs","tmpName","addAttr","root","block","newline","fences","noop","heading","nptable","list","def","lheading","paragraph","Lexer","this","tokens","links","marked","defaults","rules","normal","pedantic","gfm","tables","_label","_title","edit","getRegex","bullet","source","_tag","_comment","merge","lex","src","token","top","loose","cap","bull","listStart","listItems","space","isordered","istask","ischecked","substring","type","rtrim","lang","depth","splitCells","align","cells","ordered","start","RegExp","smartLists","undefined","task","checked","sanitize","sanitizer","href","title","Error","inline","escape","autolink","url","link","reflink","nolink","InlineLexer","renderer","Renderer","breaks","TextRenderer","Parser","slugger","Slugger","seen","encode","escapeTest","escapeReplace","ch","replacements","escapeTestNoEncode","escapeReplaceNoEncode","unescape","regex","opt","val","cleanUrl","base","prot","decodeURIComponent","e","originIndependentUrl","baseUrls","resolveUrl","encodeURI","_punctuation","_escapes","_scheme","_email","_attribute","_href","_extended_email","_backpedal","output","prevCapZero","out","inLink","inRawBlock","lastParenIndex","findClosingBracket","linkLen","outputLink","escapes","codespan","mangle","smartypants","image","Math","random","toString","infostring","escaped","highlight","langPrefix","quote","level","raw","headerIds","headerPrefix","slug","xhtml","body","listitem","checkbox","tablerow","content","tablecell","flags","baseUrl","parse","inlineText","reverse","tok","pop","peek","parseText","row","cell","errMsg","silent","console","log","originalSlug","&","<",">","\"","'","obj","target","arguments","tableRow","count","offset","curr","splice","invert","suffLen","currChar","callback","pending","done","err","message","setOptions","getDefaults","lexer","inlineLexer","_typeof","define","__WEBPACK_AMD_DEFINE_RESULT__","__webpack_exports__","renderMarkdown","whiteListNormal","whiteListSvg","marked__WEBPACK_IMPORTED_MODULE_0__","marked__WEBPACK_IMPORTED_MODULE_0___default","xss__WEBPACK_IMPORTED_MODULE_1__","xss__WEBPACK_IMPORTED_MODULE_1___default","markedOptions","hassOptions","assign","ha-icon","allowSvg","svg","path","addEventListener","f","ref","data","method","id","params","Promise","resolve","then","apply","reject","result","postMessage","catch","error","stack","g","Function","parseStyle","isNull","shallowCopyObject","css","sourcePosition","check","isWhite","opts","cssLength","isParenthesisOpen","retCSS","addNewAttr","stripIgnoreTag","allowCommentTag","stripIgnoreTagBody","retHtml","info","attrs","closing","getAttrs","whiteAttrList","attrsHtml","isWhiteAttr"],"mappings":"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","file":"201359fd5a526afe13ef.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/api/hassio/app/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n","module.exports = {\n indexOf: function(arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function(arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function(str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function(str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n }\n};\n","/**\n * xss\n *\n * @author Zongmin Lei\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope;\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n","/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\"],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\", \"height\", \"width\"]\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape doube quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function() {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function(tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function(html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function(pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n }\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n return html.replace(STRIP_COMMENT_TAG_REGEXP, \"\");\n}\nvar STRIP_COMMENT_TAG_REGEXP = //g;\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function(char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n","/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. ''\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if ((c === '\"' || c === \"'\") && html.charAt(currentPos - 1) === \"=\") {\n quoteStart = c;\n continue;\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"user strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n;(function(root) {\n'use strict';\n\n/**\n * Block-Level Grammar\n */\n\nvar block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: noop,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\n nptable: noop,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' // (3)\n + '|\\\\n*' // (4)\n + '|\\\\n*' // (5)\n + '|)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n table: noop,\n lheading: /^([^\\n]+)\\n *(=|-){2,} *(?:\\n+|$)/,\n paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading| {0,3}>|<\\/?(?:tag)(?: +|\\n|\\/?>)|<(?:script|pre|style|!--))[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = //;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block.paragraph)\n .replace('hr', block.hr)\n .replace('heading', block.heading)\n .replace('lheading', block.lheading)\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n fences: /^ {0,3}(`{3,}|~{3,})([^`\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n paragraph: /^/,\n heading: /^ *(#{1,6}) +([^\\n]+?) *#* *(?:\\n+|$)/\n});\n\nblock.gfm.paragraph = edit(block.paragraph)\n .replace('(?!', '(?!'\n + block.gfm.fences.source.replace('\\\\1', '\\\\2') + '|'\n + block.list.source.replace('\\\\1', '\\\\3') + '|')\n .getRegex();\n\n/**\n * GFM + Tables Block Grammar\n */\n\nblock.tables = merge({}, block.gfm, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/\n});\n\n/**\n * Block Lexer\n */\n\nfunction Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || marked.defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n if (this.options.tables) {\n this.rules = block.tables;\n } else {\n this.rules = block.gfm;\n }\n }\n}\n\n/**\n * Expose Block Rules\n */\n\nLexer.rules = block;\n\n/**\n * Static Lex Method\n */\n\nLexer.lex = function(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n};\n\n/**\n * Preprocessing\n */\n\nLexer.prototype.lex = function(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ')\n .replace(/\\u00a0/g, ' ')\n .replace(/\\u2424/g, '\\n');\n\n return this.token(src, true);\n};\n\n/**\n * Lexing\n */\n\nLexer.prototype.token = function(src, top) {\n src = src.replace(/^ +$/gm, '');\n var next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n continue;\n }\n\n // fences (gfm)\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2] === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n};\n\n/**\n * Inline-Level Grammar\n */\n\nvar inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noop,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(href(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*\"<\\[])\\*(?!\\*)|^_([^\\s][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s\"<\\[][\\s\\S]*?[^\\s*])\\*(?!\\*)|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noop,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]?|`[^`]*`|`(?!`)|[^\\[\\]\\\\`])*?/;\ninline._href = /\\s*(<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*)/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n var lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n var linkLen = cap[0].length - (cap[2].length - lastParenIndex) - (cap[3] || '').length;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n};\n\nInlineLexer.escapes = function(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n};\n\n/**\n * Compile Link\n */\n\nInlineLexer.prototype.outputLink = function(cap, link) {\n var href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n};\n\n/**\n * Smartypants Transformations\n */\n\nInlineLexer.prototype.smartypants = function(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n};\n\n/**\n * Mangle Links\n */\n\nInlineLexer.prototype.mangle = function(text) {\n if (!this.options.mangle) return text;\n var out = '',\n l = text.length,\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n};\n\n/**\n * Renderer\n */\n\nfunction Renderer(options) {\n this.options = options || marked.defaults;\n}\n\nRenderer.prototype.code = function(code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n var out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n if (!lang) {\n return '
'\n      + (escaped ? code : escape(code, true))\n      + '
';\n }\n\n return '
'\n    + (escaped ? code : escape(code, true))\n    + '
\\n';\n};\n\nRenderer.prototype.blockquote = function(quote) {\n return '
\\n' + quote + '
\\n';\n};\n\nRenderer.prototype.html = function(html) {\n return html;\n};\n\nRenderer.prototype.heading = function(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n};\n\nRenderer.prototype.hr = function() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n};\n\nRenderer.prototype.list = function(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n};\n\nRenderer.prototype.listitem = function(text) {\n return '
  • ' + text + '
  • \\n';\n};\n\nRenderer.prototype.checkbox = function(checked) {\n return ' ';\n};\n\nRenderer.prototype.paragraph = function(text) {\n return '

    ' + text + '

    \\n';\n};\n\nRenderer.prototype.table = function(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n};\n\nRenderer.prototype.tablerow = function(content) {\n return '\\n' + content + '\\n';\n};\n\nRenderer.prototype.tablecell = function(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n};\n\n// span level renderer\nRenderer.prototype.strong = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.em = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.codespan = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.br = function() {\n return this.options.xhtml ? '
    ' : '
    ';\n};\n\nRenderer.prototype.del = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.link = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n var out = '
    ';\n return out;\n};\n\nRenderer.prototype.image = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n var out = '\"'' : '>';\n return out;\n};\n\nRenderer.prototype.text = function(text) {\n return text;\n};\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\nfunction TextRenderer() {}\n\n// no need for block level renderers\n\nTextRenderer.prototype.strong =\nTextRenderer.prototype.em =\nTextRenderer.prototype.codespan =\nTextRenderer.prototype.del =\nTextRenderer.prototype.text = function (text) {\n return text;\n};\n\nTextRenderer.prototype.link =\nTextRenderer.prototype.image = function(href, title, text) {\n return '' + text;\n};\n\nTextRenderer.prototype.br = function() {\n return '';\n};\n\n/**\n * Parsing & Compiling\n */\n\nfunction Parser(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || marked.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n}\n\n/**\n * Static Parse Method\n */\n\nParser.parse = function(src, options) {\n var parser = new Parser(options);\n return parser.parse(src);\n};\n\n/**\n * Parse Loop\n */\n\nParser.prototype.parse = function(src) {\n this.inline = new InlineLexer(src.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n src.links,\n merge({}, this.options, {renderer: new TextRenderer()})\n );\n this.tokens = src.reverse();\n\n var out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n};\n\n/**\n * Next Token\n */\n\nParser.prototype.next = function() {\n return this.token = this.tokens.pop();\n};\n\n/**\n * Preview Next Token\n */\n\nParser.prototype.peek = function() {\n return this.tokens[this.tokens.length - 1] || 0;\n};\n\n/**\n * Parse Text Tokens\n */\n\nParser.prototype.parseText = function() {\n var body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n};\n\n/**\n * Parse Current Token\n */\n\nParser.prototype.tok = function() {\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n var header = '',\n body = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n var ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n var loose = this.token.loose;\n var checked = this.token.checked;\n var task = this.token.task;\n\n if (this.token.task) {\n body += this.renderer.checkbox(checked);\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n var errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n};\n\n/**\n * Slugger generates header id\n */\n\nfunction Slugger () {\n this.seen = {};\n}\n\n/**\n * Convert string to unique id\n */\n\nSlugger.prototype.slug = function (value) {\n var slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n var originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n};\n\n/**\n * Helpers\n */\n\nfunction escape(html, encode) {\n if (encode) {\n if (escape.escapeTest.test(html)) {\n return html.replace(escape.escapeReplace, function (ch) { return escape.replacements[ch]; });\n }\n } else {\n if (escape.escapeTestNoEncode.test(html)) {\n return html.replace(escape.escapeReplaceNoEncode, function (ch) { return escape.replacements[ch]; });\n }\n }\n\n return html;\n}\n\nescape.escapeTest = /[&<>\"']/;\nescape.escapeReplace = /[&<>\"']/g;\nescape.replacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\nescape.escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nescape.escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig, function(_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n return {\n replace: function(name, val) {\n val = val.source || val;\n val = val.replace(/(^|[^\\[])\\^/g, '$1');\n regex = regex.replace(name, val);\n return this;\n },\n getRegex: function() {\n return new RegExp(regex, opt);\n }\n };\n}\n\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n try {\n var prot = decodeURIComponent(unescape(href))\n .replace(/[^\\w:]/g, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (/^[^:]+:\\/*[^/]*$/.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n\n if (href.slice(0, 2) === '//') {\n return base.replace(/:[\\s\\S]*/, ':') + href;\n } else if (href.charAt(0) === '/') {\n return base.replace(/(:\\/*[^/]*)[\\s\\S]*/, '$1') + href;\n } else {\n return base + href;\n }\n}\nvar baseUrls = {};\nvar originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\nfunction noop() {}\nnoop.exec = noop;\n\nfunction merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/),\n i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n if (str.length === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n var suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < str.length) {\n var currChar = str.charAt(str.length - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, str.length - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n var level = 0;\n for (var i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\n/**\n * Marked\n */\n\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n\n var highlight = opt.highlight,\n tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n var done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n var out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n if (opt) opt = merge({}, marked.defaults, opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n return marked;\n};\n\nmarked.getDefaults = function () {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: new Renderer(),\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tables: true,\n xhtml: false\n };\n};\n\nmarked.defaults = marked.getDefaults();\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = marked;\n} else if (typeof define === 'function' && define.amd) {\n define(function() { return marked; });\n} else {\n root.marked = marked;\n}\n})(this || (typeof window !== 'undefined' ? window : global));\n","import marked from \"marked\"; // @ts-ignore\n\nimport filterXSS from \"xss\";\nvar whiteListNormal;\nvar whiteListSvg;\nexport var renderMarkdown = function renderMarkdown(content, markedOptions) {\n var hassOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!whiteListNormal) {\n whiteListNormal = Object.assign({}, filterXSS.whiteList, {\n \"ha-icon\": [\"icon\"]\n });\n }\n\n var whiteList;\n\n if (hassOptions.allowSvg) {\n if (!whiteListSvg) {\n whiteListSvg = Object.assign({}, whiteListNormal, {\n svg: [\"xmlns\", \"height\", \"width\"],\n path: [\"transform\", \"stroke\", \"d\"]\n });\n }\n\n whiteList = whiteListSvg;\n } else {\n whiteList = whiteListNormal;\n }\n\n return filterXSS(marked(content, markedOptions), {\n whiteList: whiteList\n });\n};\naddEventListener('message', function (e) {var ref = e.data;var type = ref.type;var method = ref.method;var id = ref.id;var params = ref.params;var f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () { return f.apply(__webpack_exports__, params); });} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n","/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\"\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList, onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function(html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function(sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag)\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function(name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/cssfilter/lib/index.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/xss/lib/util.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/xss/lib/index.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/xss/lib/default.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/cssfilter/lib/default.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/cssfilter/lib/util.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/xss/lib/parser.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/marked/lib/marked.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/src/resources/markdown_worker.ts","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/webpack/buildin/global.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/cssfilter/lib/css.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/cssfilter/lib/parser.js","webpack:////Users/bram/Documents/projects/home-assistant/supervisor/home-assistant-polymer/node_modules/xss/lib/xss.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","DEFAULT","require","FilterCSS","html","options","process","window","filterCSS","indexOf","arr","item","j","Array","length","forEach","fn","scope","trim","str","String","replace","spaceIndex","match","exec","index","parser","FilterXSS","filterXSS","self","DedicatedWorkerGlobalScope","getDefaultCSSWhiteList","getDefaultWhiteList","_","a","abbr","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","caption","center","cite","code","col","colgroup","dd","del","details","div","dl","dt","em","font","footer","h1","h2","h3","h4","h5","h6","header","hr","img","ins","li","mark","nav","ol","pre","section","small","span","sub","sup","strong","table","tbody","td","tfoot","th","thead","tr","tt","u","ul","video","defaultCSSFilter","escapeHtml","REGEXP_LT","REGEXP_GT","REGEXP_QUOTE","REGEXP_QUOTE_2","REGEXP_ATTR_VALUE_1","REGEXP_ATTR_VALUE_COLON","REGEXP_ATTR_VALUE_NEWLINE","REGEXP_DEFAULT_ON_TAG_ATTR_4","REGEXP_DEFAULT_ON_TAG_ATTR_7","REGEXP_DEFAULT_ON_TAG_ATTR_8","escapeQuote","unescapeQuote","escapeHtmlEntities","fromCharCode","parseInt","substr","escapeDangerHtml5Entities","clearNonPrintableCharacter","str2","len","charCodeAt","charAt","friendlyAttrValue","escapeAttrValue","STRIP_COMMENT_TAG_REGEXP","whiteList","onTag","tag","onIgnoreTag","onTagAttr","onIgnoreTagAttr","safeAttrValue","cssFilter","lastIndex","test","onIgnoreTagStripAll","StripTagBody","tags","next","isRemoveAllTag","isArray","removeList","posStart","isRemoveTag","isClosing","ret","end","position","push","remove","rethtml","lastPos","pos","slice","stripCommentTag","stripBlankChar","chars","split","filter","char","join","REGEXP_URL_JAVASCRIPT","onAttr","onIgnoreAttr","trimRight","getTagName","tagName","toLowerCase","REGEXP_ILLEGAL_ATTR_NAME","findNextEqual","findBeforeEqual","stripQuoteWrap","text","isQuoteWrapString","parseTag","tagStart","quoteStart","currentPos","currentTagName","currentHtml","parseAttr","retAttrs","tmpName","addAttr","root","block","newline","fences","noop","heading","nptable","list","def","lheading","paragraph","Lexer","this","tokens","links","marked","defaults","rules","normal","pedantic","gfm","tables","_label","_title","edit","getRegex","bullet","source","_tag","_comment","merge","lex","src","token","top","loose","cap","bull","listStart","listItems","space","isordered","istask","ischecked","substring","type","rtrim","lang","depth","splitCells","align","cells","ordered","start","RegExp","smartLists","undefined","task","checked","sanitize","sanitizer","href","title","Error","inline","escape","autolink","url","link","reflink","nolink","InlineLexer","renderer","Renderer","breaks","TextRenderer","Parser","slugger","Slugger","seen","encode","escapeTest","escapeReplace","ch","replacements","escapeTestNoEncode","escapeReplaceNoEncode","unescape","regex","opt","val","cleanUrl","base","prot","decodeURIComponent","e","originIndependentUrl","baseUrls","resolveUrl","encodeURI","_punctuation","_escapes","_scheme","_email","_attribute","_href","_extended_email","_backpedal","output","prevCapZero","out","inLink","inRawBlock","lastParenIndex","findClosingBracket","linkLen","outputLink","escapes","codespan","mangle","smartypants","image","Math","random","toString","infostring","escaped","highlight","langPrefix","quote","level","raw","headerIds","headerPrefix","slug","xhtml","body","listitem","checkbox","tablerow","content","tablecell","flags","baseUrl","parse","inlineText","reverse","tok","pop","peek","parseText","row","cell","errMsg","silent","console","log","originalSlug","&","<",">","\"","'","obj","target","arguments","tableRow","count","offset","curr","splice","invert","suffLen","currChar","callback","pending","done","err","message","setOptions","getDefaults","lexer","inlineLexer","_typeof","define","__WEBPACK_AMD_DEFINE_RESULT__","__webpack_exports__","renderMarkdown","whiteListNormal","whiteListSvg","marked__WEBPACK_IMPORTED_MODULE_0__","marked__WEBPACK_IMPORTED_MODULE_0___default","xss__WEBPACK_IMPORTED_MODULE_1__","xss__WEBPACK_IMPORTED_MODULE_1___default","markedOptions","hassOptions","assign","ha-icon","allowSvg","svg","path","addEventListener","f","ref","data","method","id","params","Promise","resolve","then","apply","reject","result","postMessage","catch","error","stack","g","Function","parseStyle","isNull","shallowCopyObject","css","sourcePosition","check","isWhite","opts","cssLength","isParenthesisOpen","retCSS","addNewAttr","stripIgnoreTag","allowCommentTag","stripIgnoreTagBody","retHtml","info","attrs","closing","getAttrs","whiteAttrList","attrsHtml","isWhiteAttr"],"mappings":"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","file":"201359fd5a526afe13ef.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/api/hassio/app/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n","module.exports = {\n indexOf: function(arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function(arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function(str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function(str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n }\n};\n","/**\n * xss\n *\n * @author Zongmin Lei\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope;\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n","/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\"],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\", \"height\", \"width\"]\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape doube quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function() {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function(tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function(html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function(pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n }\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n return html.replace(STRIP_COMMENT_TAG_REGEXP, \"\");\n}\nvar STRIP_COMMENT_TAG_REGEXP = //g;\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function(char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n","/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. '
    '\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if ((c === '\"' || c === \"'\") && html.charAt(currentPos - 1) === \"=\") {\n quoteStart = c;\n continue;\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"user strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n;(function(root) {\n'use strict';\n\n/**\n * Block-Level Grammar\n */\n\nvar block = {\n newline: /^\\n+/,\n code: /^( {4}[^\\n]+\\n*)+/,\n fences: noop,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\n nptable: noop,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' // (3)\n + '|\\\\n*' // (4)\n + '|\\\\n*' // (5)\n + '|)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n table: noop,\n lheading: /^([^\\n]+)\\n *(=|-){2,} *(?:\\n+|$)/,\n paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading| {0,3}>|<\\/?(?:tag)(?: +|\\n|\\/?>)|<(?:script|pre|style|!--))[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}\\.)/;\nblock.item = /^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/;\nblock.item = edit(block.item, 'gm')\n .replace(/bull/g, block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = //;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block.paragraph)\n .replace('hr', block.hr)\n .replace('heading', block.heading)\n .replace('lheading', block.lheading)\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n fences: /^ {0,3}(`{3,}|~{3,})([^`\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n paragraph: /^/,\n heading: /^ *(#{1,6}) +([^\\n]+?) *#* *(?:\\n+|$)/\n});\n\nblock.gfm.paragraph = edit(block.paragraph)\n .replace('(?!', '(?!'\n + block.gfm.fences.source.replace('\\\\1', '\\\\2') + '|'\n + block.list.source.replace('\\\\1', '\\\\3') + '|')\n .getRegex();\n\n/**\n * GFM + Tables Block Grammar\n */\n\nblock.tables = merge({}, block.gfm, {\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/\n});\n\n/**\n * Pedantic grammar\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/\n});\n\n/**\n * Block Lexer\n */\n\nfunction Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || marked.defaults;\n this.rules = block.normal;\n\n if (this.options.pedantic) {\n this.rules = block.pedantic;\n } else if (this.options.gfm) {\n if (this.options.tables) {\n this.rules = block.tables;\n } else {\n this.rules = block.gfm;\n }\n }\n}\n\n/**\n * Expose Block Rules\n */\n\nLexer.rules = block;\n\n/**\n * Static Lex Method\n */\n\nLexer.lex = function(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n};\n\n/**\n * Preprocessing\n */\n\nLexer.prototype.lex = function(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ')\n .replace(/\\u00a0/g, ' ')\n .replace(/\\u2424/g, '\\n');\n\n return this.token(src, true);\n};\n\n/**\n * Lexing\n */\n\nLexer.prototype.token = function(src, top) {\n src = src.replace(/^ +$/gm, '');\n var next,\n loose,\n cap,\n bull,\n b,\n item,\n listStart,\n listItems,\n t,\n space,\n i,\n tag,\n l,\n isordered,\n istask,\n ischecked;\n\n while (src) {\n // newline\n if (cap = this.rules.newline.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[0].length > 1) {\n this.tokens.push({\n type: 'space'\n });\n }\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n cap = cap[0].replace(/^ {4}/gm, '');\n this.tokens.push({\n type: 'code',\n text: !this.options.pedantic\n ? rtrim(cap, '\\n')\n : cap\n });\n continue;\n }\n\n // fences (gfm)\n if (cap = this.rules.fences.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'code',\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: cap[3] || ''\n });\n continue;\n }\n\n // heading\n if (cap = this.rules.heading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[1].length,\n text: cap[2]\n });\n continue;\n }\n\n // table no leading pipe (gfm)\n if (cap = this.rules.nptable.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(item.cells[i], item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // hr\n if (cap = this.rules.hr.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'hr'\n });\n continue;\n }\n\n // blockquote\n if (cap = this.rules.blockquote.exec(src)) {\n src = src.substring(cap[0].length);\n\n this.tokens.push({\n type: 'blockquote_start'\n });\n\n cap = cap[0].replace(/^ *> ?/gm, '');\n\n // Pass `top` to keep the current\n // \"toplevel\" state. This is exactly\n // how markdown.pl works.\n this.token(cap, top);\n\n this.tokens.push({\n type: 'blockquote_end'\n });\n\n continue;\n }\n\n // list\n if (cap = this.rules.list.exec(src)) {\n src = src.substring(cap[0].length);\n bull = cap[2];\n isordered = bull.length > 1;\n\n listStart = {\n type: 'list_start',\n ordered: isordered,\n start: isordered ? +bull : '',\n loose: false\n };\n\n this.tokens.push(listStart);\n\n // Get each top-level item.\n cap = cap[0].match(this.rules.item);\n\n listItems = [];\n next = false;\n l = cap.length;\n i = 0;\n\n for (; i < l; i++) {\n item = cap[i];\n\n // Remove the list item's bullet\n // so it is seen as the next token.\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+\\.) */, '');\n\n // Outdent whatever the\n // list item contains. Hacky.\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic\n ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')\n : item.replace(/^ {1,4}/gm, '');\n }\n\n // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n if (i !== l - 1) {\n b = block.bullet.exec(cap[i + 1])[0];\n if (bull.length > 1 ? b.length === 1\n : (b.length > 1 || (this.options.smartLists && b !== bull))) {\n src = cap.slice(i + 1).join('\\n') + src;\n i = l - 1;\n }\n }\n\n // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n loose = next || /\\n\\n(?!\\s*$)/.test(item);\n if (i !== l - 1) {\n next = item.charAt(item.length - 1) === '\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n listStart.loose = true;\n }\n\n // Check for task list items\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n\n t = {\n type: 'list_item_start',\n task: istask,\n checked: ischecked,\n loose: loose\n };\n\n listItems.push(t);\n this.tokens.push(t);\n\n // Recurse.\n this.token(item, false);\n\n this.tokens.push({\n type: 'list_item_end'\n });\n }\n\n if (listStart.loose) {\n l = listItems.length;\n i = 0;\n for (; i < l; i++) {\n listItems[i].loose = true;\n }\n }\n\n this.tokens.push({\n type: 'list_end'\n });\n\n continue;\n }\n\n // html\n if (cap = this.rules.html.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: this.options.sanitize\n ? 'paragraph'\n : 'html',\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n });\n continue;\n }\n\n // def\n if (top && (cap = this.rules.def.exec(src))) {\n src = src.substring(cap[0].length);\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n if (!this.tokens.links[tag]) {\n this.tokens.links[tag] = {\n href: cap[2],\n title: cap[3]\n };\n }\n continue;\n }\n\n // table (gfm)\n if (cap = this.rules.table.exec(src)) {\n item = {\n type: 'table',\n header: splitCells(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n src = src.substring(cap[0].length);\n\n for (i = 0; i < item.align.length; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n for (i = 0; i < item.cells.length; i++) {\n item.cells[i] = splitCells(\n item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''),\n item.header.length);\n }\n\n this.tokens.push(item);\n\n continue;\n }\n }\n\n // lheading\n if (cap = this.rules.lheading.exec(src)) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'heading',\n depth: cap[2] === '=' ? 1 : 2,\n text: cap[1]\n });\n continue;\n }\n\n // top-level paragraph\n if (top && (cap = this.rules.paragraph.exec(src))) {\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'paragraph',\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1]\n });\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n // Top-level should never reach here.\n src = src.substring(cap[0].length);\n this.tokens.push({\n type: 'text',\n text: cap[0]\n });\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return this.tokens;\n};\n\n/**\n * Inline-Level Grammar\n */\n\nvar inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noop,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(href(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\n em: /^_([^\\s_])_(?!_)|^\\*([^\\s*\"<\\[])\\*(?!\\*)|^_([^\\s][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s\"<\\[][\\s\\S]*?[^\\s*])\\*(?!\\*)|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/,\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noop,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\?@\\\\[^_{|}~';\ninline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', block._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]?|`[^`]*`|`(?!`)|[^\\[\\]\\\\`])*?/;\ninline._href = /\\s*(<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*)/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n em: /^_(?=\\S)([\\s\\S]*?\\S)_(?!_)|^\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)/,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^~+(?=\\S)([\\s\\S]*?\\S)~+/,\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\/i.test(cap[0])) {\n this.inLink = false;\n }\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = true;\n } else if (this.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.inRawBlock = false;\n }\n\n src = src.substring(cap[0].length);\n out += this.options.sanitize\n ? this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0])\n : cap[0];\n continue;\n }\n\n // link\n if (cap = this.rules.link.exec(src)) {\n var lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n var linkLen = cap[0].length - (cap[2].length - lastParenIndex) - (cap[3] || '').length;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n src = src.substring(cap[0].length);\n this.inLink = true;\n href = cap[2];\n if (this.options.pedantic) {\n link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n } else {\n title = '';\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\n out += this.outputLink(cap, {\n href: InlineLexer.escapes(href),\n title: InlineLexer.escapes(title)\n });\n this.inLink = false;\n continue;\n }\n\n // reflink, nolink\n if ((cap = this.rules.reflink.exec(src))\n || (cap = this.rules.nolink.exec(src))) {\n src = src.substring(cap[0].length);\n link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = this.links[link.toLowerCase()];\n if (!link || !link.href) {\n out += cap[0].charAt(0);\n src = cap[0].substring(1) + src;\n continue;\n }\n this.inLink = true;\n out += this.outputLink(cap, link);\n this.inLink = false;\n continue;\n }\n\n // strong\n if (cap = this.rules.strong.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // em\n if (cap = this.rules.em.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));\n continue;\n }\n\n // code\n if (cap = this.rules.code.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.codespan(escape(cap[2].trim(), true));\n continue;\n }\n\n // br\n if (cap = this.rules.br.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.br();\n continue;\n }\n\n // del (gfm)\n if (cap = this.rules.del.exec(src)) {\n src = src.substring(cap[0].length);\n out += this.renderer.del(this.output(cap[1]));\n continue;\n }\n\n // autolink\n if (cap = this.rules.autolink.exec(src)) {\n src = src.substring(cap[0].length);\n if (cap[2] === '@') {\n text = escape(this.mangle(cap[1]));\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // url (gfm)\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n src = src.substring(cap[0].length);\n out += this.renderer.link(href, null, text);\n continue;\n }\n\n // text\n if (cap = this.rules.text.exec(src)) {\n src = src.substring(cap[0].length);\n if (this.inRawBlock) {\n out += this.renderer.text(cap[0]);\n } else {\n out += this.renderer.text(escape(this.smartypants(cap[0])));\n }\n continue;\n }\n\n if (src) {\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\n }\n }\n\n return out;\n};\n\nInlineLexer.escapes = function(text) {\n return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;\n};\n\n/**\n * Compile Link\n */\n\nInlineLexer.prototype.outputLink = function(cap, link) {\n var href = link.href,\n title = link.title ? escape(link.title) : null;\n\n return cap[0].charAt(0) !== '!'\n ? this.renderer.link(href, title, this.output(cap[1]))\n : this.renderer.image(href, title, escape(cap[1]));\n};\n\n/**\n * Smartypants Transformations\n */\n\nInlineLexer.prototype.smartypants = function(text) {\n if (!this.options.smartypants) return text;\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n};\n\n/**\n * Mangle Links\n */\n\nInlineLexer.prototype.mangle = function(text) {\n if (!this.options.mangle) return text;\n var out = '',\n l = text.length,\n i = 0,\n ch;\n\n for (; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n};\n\n/**\n * Renderer\n */\n\nfunction Renderer(options) {\n this.options = options || marked.defaults;\n}\n\nRenderer.prototype.code = function(code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n var out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n if (!lang) {\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    ';\n }\n\n return '
    '\n    + (escaped ? code : escape(code, true))\n    + '
    \\n';\n};\n\nRenderer.prototype.blockquote = function(quote) {\n return '
    \\n' + quote + '
    \\n';\n};\n\nRenderer.prototype.html = function(html) {\n return html;\n};\n\nRenderer.prototype.heading = function(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n};\n\nRenderer.prototype.hr = function() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n};\n\nRenderer.prototype.list = function(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n};\n\nRenderer.prototype.listitem = function(text) {\n return '
  • ' + text + '
  • \\n';\n};\n\nRenderer.prototype.checkbox = function(checked) {\n return ' ';\n};\n\nRenderer.prototype.paragraph = function(text) {\n return '

    ' + text + '

    \\n';\n};\n\nRenderer.prototype.table = function(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n};\n\nRenderer.prototype.tablerow = function(content) {\n return '\\n' + content + '\\n';\n};\n\nRenderer.prototype.tablecell = function(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n};\n\n// span level renderer\nRenderer.prototype.strong = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.em = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.codespan = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.br = function() {\n return this.options.xhtml ? '
    ' : '
    ';\n};\n\nRenderer.prototype.del = function(text) {\n return '' + text + '';\n};\n\nRenderer.prototype.link = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n var out = '
    ';\n return out;\n};\n\nRenderer.prototype.image = function(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n var out = '\"'' : '>';\n return out;\n};\n\nRenderer.prototype.text = function(text) {\n return text;\n};\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\nfunction TextRenderer() {}\n\n// no need for block level renderers\n\nTextRenderer.prototype.strong =\nTextRenderer.prototype.em =\nTextRenderer.prototype.codespan =\nTextRenderer.prototype.del =\nTextRenderer.prototype.text = function (text) {\n return text;\n};\n\nTextRenderer.prototype.link =\nTextRenderer.prototype.image = function(href, title, text) {\n return '' + text;\n};\n\nTextRenderer.prototype.br = function() {\n return '';\n};\n\n/**\n * Parsing & Compiling\n */\n\nfunction Parser(options) {\n this.tokens = [];\n this.token = null;\n this.options = options || marked.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.slugger = new Slugger();\n}\n\n/**\n * Static Parse Method\n */\n\nParser.parse = function(src, options) {\n var parser = new Parser(options);\n return parser.parse(src);\n};\n\n/**\n * Parse Loop\n */\n\nParser.prototype.parse = function(src) {\n this.inline = new InlineLexer(src.links, this.options);\n // use an InlineLexer with a TextRenderer to extract pure text\n this.inlineText = new InlineLexer(\n src.links,\n merge({}, this.options, {renderer: new TextRenderer()})\n );\n this.tokens = src.reverse();\n\n var out = '';\n while (this.next()) {\n out += this.tok();\n }\n\n return out;\n};\n\n/**\n * Next Token\n */\n\nParser.prototype.next = function() {\n return this.token = this.tokens.pop();\n};\n\n/**\n * Preview Next Token\n */\n\nParser.prototype.peek = function() {\n return this.tokens[this.tokens.length - 1] || 0;\n};\n\n/**\n * Parse Text Tokens\n */\n\nParser.prototype.parseText = function() {\n var body = this.token.text;\n\n while (this.peek().type === 'text') {\n body += '\\n' + this.next().text;\n }\n\n return this.inline.output(body);\n};\n\n/**\n * Parse Current Token\n */\n\nParser.prototype.tok = function() {\n switch (this.token.type) {\n case 'space': {\n return '';\n }\n case 'hr': {\n return this.renderer.hr();\n }\n case 'heading': {\n return this.renderer.heading(\n this.inline.output(this.token.text),\n this.token.depth,\n unescape(this.inlineText.output(this.token.text)),\n this.slugger);\n }\n case 'code': {\n return this.renderer.code(this.token.text,\n this.token.lang,\n this.token.escaped);\n }\n case 'table': {\n var header = '',\n body = '',\n i,\n row,\n cell,\n j;\n\n // header\n cell = '';\n for (i = 0; i < this.token.header.length; i++) {\n cell += this.renderer.tablecell(\n this.inline.output(this.token.header[i]),\n { header: true, align: this.token.align[i] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n for (i = 0; i < this.token.cells.length; i++) {\n row = this.token.cells[i];\n\n cell = '';\n for (j = 0; j < row.length; j++) {\n cell += this.renderer.tablecell(\n this.inline.output(row[j]),\n { header: false, align: this.token.align[j] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n return this.renderer.table(header, body);\n }\n case 'blockquote_start': {\n body = '';\n\n while (this.next().type !== 'blockquote_end') {\n body += this.tok();\n }\n\n return this.renderer.blockquote(body);\n }\n case 'list_start': {\n body = '';\n var ordered = this.token.ordered,\n start = this.token.start;\n\n while (this.next().type !== 'list_end') {\n body += this.tok();\n }\n\n return this.renderer.list(body, ordered, start);\n }\n case 'list_item_start': {\n body = '';\n var loose = this.token.loose;\n var checked = this.token.checked;\n var task = this.token.task;\n\n if (this.token.task) {\n body += this.renderer.checkbox(checked);\n }\n\n while (this.next().type !== 'list_item_end') {\n body += !loose && this.token.type === 'text'\n ? this.parseText()\n : this.tok();\n }\n return this.renderer.listitem(body, task, checked);\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n return this.renderer.html(this.token.text);\n }\n case 'paragraph': {\n return this.renderer.paragraph(this.inline.output(this.token.text));\n }\n case 'text': {\n return this.renderer.paragraph(this.parseText());\n }\n default: {\n var errMsg = 'Token with \"' + this.token.type + '\" type was not found.';\n if (this.options.silent) {\n console.log(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n }\n};\n\n/**\n * Slugger generates header id\n */\n\nfunction Slugger () {\n this.seen = {};\n}\n\n/**\n * Convert string to unique id\n */\n\nSlugger.prototype.slug = function (value) {\n var slug = value\n .toLowerCase()\n .trim()\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n\n if (this.seen.hasOwnProperty(slug)) {\n var originalSlug = slug;\n do {\n this.seen[originalSlug]++;\n slug = originalSlug + '-' + this.seen[originalSlug];\n } while (this.seen.hasOwnProperty(slug));\n }\n this.seen[slug] = 0;\n\n return slug;\n};\n\n/**\n * Helpers\n */\n\nfunction escape(html, encode) {\n if (encode) {\n if (escape.escapeTest.test(html)) {\n return html.replace(escape.escapeReplace, function (ch) { return escape.replacements[ch]; });\n }\n } else {\n if (escape.escapeTestNoEncode.test(html)) {\n return html.replace(escape.escapeReplaceNoEncode, function (ch) { return escape.replacements[ch]; });\n }\n }\n\n return html;\n}\n\nescape.escapeTest = /[&<>\"']/;\nescape.escapeReplace = /[&<>\"']/g;\nescape.replacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\nescape.escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nescape.escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig, function(_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n return {\n replace: function(name, val) {\n val = val.source || val;\n val = val.replace(/(^|[^\\[])\\^/g, '$1');\n regex = regex.replace(name, val);\n return this;\n },\n getRegex: function() {\n return new RegExp(regex, opt);\n }\n };\n}\n\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n try {\n var prot = decodeURIComponent(unescape(href))\n .replace(/[^\\w:]/g, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (/^[^:]+:\\/*[^/]*$/.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n\n if (href.slice(0, 2) === '//') {\n return base.replace(/:[\\s\\S]*/, ':') + href;\n } else if (href.charAt(0) === '/') {\n return base.replace(/(:\\/*[^/]*)[\\s\\S]*/, '$1') + href;\n } else {\n return base + href;\n }\n}\nvar baseUrls = {};\nvar originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\nfunction noop() {}\nnoop.exec = noop;\n\nfunction merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/),\n i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n if (str.length === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n var suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < str.length) {\n var currChar = str.charAt(str.length - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, str.length - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n var level = 0;\n for (var i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\n/**\n * Marked\n */\n\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (callback || typeof opt === 'function') {\n if (!callback) {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n\n var highlight = opt.highlight,\n tokens,\n pending,\n i = 0;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n pending = tokens.length;\n\n var done = function(err) {\n if (err) {\n opt.highlight = highlight;\n return callback(err);\n }\n\n var out;\n\n try {\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!pending) return done();\n\n for (; i < tokens.length; i++) {\n (function(token) {\n if (token.type !== 'code') {\n return --pending || done();\n }\n return highlight(token.text, token.lang, function(err, code) {\n if (err) return done(err);\n if (code == null || code === token.text) {\n return --pending || done();\n }\n token.text = code;\n token.escaped = true;\n --pending || done();\n });\n })(tokens[i]);\n }\n\n return;\n }\n try {\n if (opt) opt = merge({}, marked.defaults, opt);\n return Parser.parse(Lexer.lex(src, opt), opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if ((opt || marked.defaults).silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n return marked;\n};\n\nmarked.getDefaults = function () {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: new Renderer(),\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tables: true,\n xhtml: false\n };\n};\n\nmarked.defaults = marked.getDefaults();\n\n/**\n * Expose\n */\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\n\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\n\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\n\nmarked.InlineLexer = InlineLexer;\nmarked.inlineLexer = InlineLexer.output;\n\nmarked.Slugger = Slugger;\n\nmarked.parse = marked;\n\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = marked;\n} else if (typeof define === 'function' && define.amd) {\n define(function() { return marked; });\n} else {\n root.marked = marked;\n}\n})(this || (typeof window !== 'undefined' ? window : global));\n","import marked from \"marked\"; // @ts-ignore\n\nimport filterXSS from \"xss\";\nvar whiteListNormal;\nvar whiteListSvg;\nexport var renderMarkdown = function renderMarkdown(content, markedOptions) {\n var hassOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!whiteListNormal) {\n whiteListNormal = Object.assign({}, filterXSS.whiteList, {\n \"ha-icon\": [\"icon\"]\n });\n }\n\n var whiteList;\n\n if (hassOptions.allowSvg) {\n if (!whiteListSvg) {\n whiteListSvg = Object.assign({}, whiteListNormal, {\n svg: [\"xmlns\", \"height\", \"width\"],\n path: [\"transform\", \"stroke\", \"d\"]\n });\n }\n\n whiteList = whiteListSvg;\n } else {\n whiteList = whiteListNormal;\n }\n\n return filterXSS(marked(content, markedOptions), {\n whiteList: whiteList\n });\n};\naddEventListener('message', function (e) {var ref = e.data;var type = ref.type;var method = ref.method;var id = ref.id;var params = ref.params;var f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () { return f.apply(__webpack_exports__, params); });} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n","/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\"\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList, onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function(html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function(sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag)\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function(name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.00de7352e51443687ebb.js b/hassio/api/panel/chunk.00de7352e51443687ebb.js new file mode 100644 index 000000000..8c96ec828 --- /dev/null +++ b/hassio/api/panel/chunk.00de7352e51443687ebb.js @@ -0,0 +1,3 @@ +/*! For license information please see chunk.00de7352e51443687ebb.js.LICENSE */ +(self.webpackJsonp=self.webpackJsonp||[]).push([[4],{167:function(e,t,r){"use strict";r.r(t);r(48),r(53),r(24);var n=r(5),i=r(15),o=r(10);r(55),r(87);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(){var e=c(['\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n }\n ha-paper-dialog::before {\n content: "";\n position: fixed;\n z-index: -1;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: inherit;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n }\n ']);return s=function(){return e},e}function l(){var e=c(['\n \n \n \n
    ',"
    \n
    \n \n \n \n
    \n "]);return l=function(){return e},e}function c(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){var t,r=v(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function h(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function m(e){return e.decorators&&e.decorators.length}function y(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function b(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function v(e){var t=function(e,t){if("object"!==a(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===a(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!m(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,i[o])(s)||s);e=l.element,this.addElementPlacement(e,t),l.finisher&&n.push(l.finisher);var c=l.extras;if(c){for(var p=0;p=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n\n :host {\n display: block;\n @apply --layout-relative;\n }\n\n :host(.is-scrolled:not(:first-child))::before {\n content: \'\';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: var(--divider-color);\n }\n\n :host(.can-scroll:not(.scrolled-to-bottom):not(:last-child))::after {\n content: \'\';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: var(--divider-color);\n }\n\n .scrollable {\n padding: 0 24px;\n\n @apply --layout-scroll;\n @apply --paper-dialog-scrollable;\n }\n\n .fit {\n @apply --layout-fit;\n }\n \n\n
    \n \n
    \n']);return a=function(){return e},e}Object(i.a)({_template:Object(o.a)(a()),is:"paper-dialog-scrollable",properties:{dialogElement:{type:Object}},get scrollTarget(){return this.$.scrollable},ready:function(){this._ensureTarget(),this.classList.add("no-padding")},attached:function(){this._ensureTarget(),requestAnimationFrame(this.updateScrollState.bind(this))},updateScrollState:function(){this.toggleClass("is-scrolled",this.scrollTarget.scrollTop>0),this.toggleClass("can-scroll",this.scrollTarget.offsetHeight=this.scrollTarget.scrollHeight)},_ensureTarget:function(){this.dialogElement=this.dialogElement||this.parentElement,this.dialogElement&&this.dialogElement.behaviors&&this.dialogElement.behaviors.indexOf(n.b)>=0?(this.dialogElement.sizingTarget=this.scrollTarget,this.scrollTarget.classList.remove("fit")):this.dialogElement&&this.scrollTarget.classList.add("fit")}})},55:function(e,t,r){"use strict";r(4),r(12),r(13),r(30),r(35);var n=document.createElement("template");n.setAttribute("style","display: none;"),n.innerHTML='\n \n',document.head.appendChild(n.content);var i=r(72),o=r(31),a=r(7),s=r(6);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n \n']);return l=function(){return e},e}Object(a.a)({_template:Object(s.a)(l()),is:"paper-dialog",behaviors:[o.a,i.a],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_renderOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderClosed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimationFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderClosed()}});var c=r(59),p=r(8),d=r(67),u={getTabbableNodes:function(e){var t=[];return this._collectTabbableNodes(e,t)?d.a._sortByTabIndex(t):t},_collectTabbableNodes:function(e,t){if(e.nodeType!==Node.ELEMENT_NODE||!d.a._isVisible(e))return!1;var r,n=e,i=d.a._normalizedTabIndex(n),o=i>0;i>=0&&t.push(n),r="content"===n.localName||"slot"===n.localName?Object(p.a)(n).getDistributedNodes():Object(p.a)(n.shadowRoot||n.root||n).children;for(var a=0;a=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,i[o])(s)||s);e=l.element,this.addElementPlacement(e,t),l.finisher&&n.push(l.finisher);var c=l.extras;if(c){for(var p=0;p=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;aRta7t 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\n \n \n
    ${this.title}
    \n
    \n \n \n \n \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyleDialog,\n hassioStyle,\n css`\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n }\n ha-paper-dialog::before {\n content: \"\";\n position: fixed;\n z-index: -1;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: inherit;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"dialog-hassio-markdown\": HassioMarkdownDialog;\n }\n}\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {IronOverlayBehavior} from '@polymer/iron-overlay-behavior/iron-overlay-behavior.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\n\n/**\n Use `Polymer.PaperDialogBehavior` and `paper-dialog-shared-styles.html` to\n implement a Material Design dialog.\n\n For example, if `` implements this behavior:\n\n \n

    Header

    \n
    Dialog body
    \n
    \n Cancel\n Accept\n
    \n
    \n\n `paper-dialog-shared-styles.html` provide styles for a header, content area,\n and an action area for buttons. Use the `

    ` tag for the header and the\n `buttons` class for the action area. You can use the `paper-dialog-scrollable`\n element (in its own repository) if you need a scrolling content area.\n\n Use the `dialog-dismiss` and `dialog-confirm` attributes on interactive\n controls to close the dialog. If the user dismisses the dialog with\n `dialog-confirm`, the `closingReason` will update to include `confirmed:\n true`.\n\n ### Accessibility\n\n This element has `role=\"dialog\"` by default. Depending on the context, it may\n be more appropriate to override this attribute with `role=\"alertdialog\"`.\n\n If `modal` is set, the element will prevent the focus from exiting the\n element. It will also ensure that focus remains in the dialog.\n\n @hero hero.svg\n @demo demo/index.html\n @polymerBehavior PaperDialogBehavior\n */\nexport const PaperDialogBehaviorImpl = {\n\n hostAttributes: {'role': 'dialog', 'tabindex': '-1'},\n\n properties: {\n\n /**\n * If `modal` is true, this implies `no-cancel-on-outside-click`,\n * `no-cancel-on-esc-key` and `with-backdrop`.\n */\n modal: {type: Boolean, value: false},\n\n __readied: {type: Boolean, value: false}\n\n },\n\n observers: ['_modalChanged(modal, __readied)'],\n\n listeners: {'tap': '_onDialogClick'},\n\n /**\n * @return {void}\n */\n ready: function() {\n // Only now these properties can be read.\n this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;\n this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;\n this.__prevWithBackdrop = this.withBackdrop;\n this.__readied = true;\n },\n\n _modalChanged: function(modal, readied) {\n // modal implies noCancelOnOutsideClick, noCancelOnEscKey and withBackdrop.\n // We need to wait for the element to be ready before we can read the\n // properties values.\n if (!readied) {\n return;\n }\n\n if (modal) {\n this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;\n this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;\n this.__prevWithBackdrop = this.withBackdrop;\n this.noCancelOnOutsideClick = true;\n this.noCancelOnEscKey = true;\n this.withBackdrop = true;\n } else {\n // If the value was changed to false, let it false.\n this.noCancelOnOutsideClick =\n this.noCancelOnOutsideClick && this.__prevNoCancelOnOutsideClick;\n this.noCancelOnEscKey =\n this.noCancelOnEscKey && this.__prevNoCancelOnEscKey;\n this.withBackdrop = this.withBackdrop && this.__prevWithBackdrop;\n }\n },\n\n _updateClosingReasonConfirmed: function(confirmed) {\n this.closingReason = this.closingReason || {};\n this.closingReason.confirmed = confirmed;\n },\n\n /**\n * Will dismiss the dialog if user clicked on an element with dialog-dismiss\n * or dialog-confirm attribute.\n */\n _onDialogClick: function(event) {\n // Search for the element with dialog-confirm or dialog-dismiss,\n // from the root target until this (excluded).\n var path = dom(event).path;\n for (var i = 0, l = path.indexOf(this); i < l; i++) {\n var target = path[i];\n if (target.hasAttribute &&\n (target.hasAttribute('dialog-dismiss') ||\n target.hasAttribute('dialog-confirm'))) {\n this._updateClosingReasonConfirmed(\n target.hasAttribute('dialog-confirm'));\n this.close();\n event.stopPropagation();\n break;\n }\n }\n }\n\n};\n\n/** @polymerBehavior */\nexport const PaperDialogBehavior =\n [IronOverlayBehavior, PaperDialogBehaviorImpl];\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\n\nimport {PaperDialogBehaviorImpl} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Dialogs](https://www.google.com/design/spec/components/dialogs.html)\n\n`paper-dialog-scrollable` implements a scrolling area used in a Material Design\ndialog. It shows a divider at the top and/or bottom indicating more content,\ndepending on scroll position. Use this together with elements implementing\n`Polymer.PaperDialogBehavior`.\n\n \n

    Header

    \n \n Lorem ipsum...\n \n
    \n OK\n
    \n
    \n\nIt shows a top divider after scrolling if it is not the first child in its\nparent container, indicating there is more content above. It shows a bottom\ndivider if it is scrollable and it is not the last child in its parent\ncontainer, indicating there is more content below. The bottom divider is hidden\nif it is scrolled to the bottom.\n\nIf `paper-dialog-scrollable` is not a direct child of the element implementing\n`Polymer.PaperDialogBehavior`, remember to set the `dialogElement`:\n\n \n

    Header

    \n
    \n

    Sub-header

    \n \n Lorem ipsum...\n \n
    \n
    \n OK\n
    \n
    \n\n \n\n### Styling\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-dialog-scrollable` | Mixin for the scrollable content | {}\n\n@group Paper Elements\n@element paper-dialog-scrollable\n@demo demo/index.html\n@hero hero.svg\n*/\nPolymer({\n _template: html`\n \n\n
    \n \n
    \n`,\n\n is: 'paper-dialog-scrollable',\n\n properties: {\n\n /**\n * The dialog element that implements `Polymer.PaperDialogBehavior`\n * containing this element.\n * @type {?Node}\n */\n dialogElement: {type: Object}\n\n },\n\n /**\n * Returns the scrolling element.\n */\n get scrollTarget() {\n return this.$.scrollable;\n },\n\n ready: function() {\n this._ensureTarget();\n this.classList.add('no-padding');\n },\n\n attached: function() {\n this._ensureTarget();\n requestAnimationFrame(this.updateScrollState.bind(this));\n },\n\n updateScrollState: function() {\n this.toggleClass('is-scrolled', this.scrollTarget.scrollTop > 0);\n this.toggleClass(\n 'can-scroll',\n this.scrollTarget.offsetHeight < this.scrollTarget.scrollHeight);\n this.toggleClass(\n 'scrolled-to-bottom',\n this.scrollTarget.scrollTop + this.scrollTarget.offsetHeight >=\n this.scrollTarget.scrollHeight);\n },\n\n _ensureTarget: function() {\n // Read parentElement instead of parentNode in order to skip shadowRoots.\n this.dialogElement = this.dialogElement || this.parentElement;\n // Check if dialog implements paper-dialog-behavior. If not, fit\n // scrollTarget to host.\n if (this.dialogElement && this.dialogElement.behaviors &&\n this.dialogElement.behaviors.indexOf(PaperDialogBehaviorImpl) >= 0) {\n this.dialogElement.sizingTarget = this.scrollTarget;\n this.scrollTarget.classList.remove('fit');\n } else if (this.dialogElement) {\n this.scrollTarget.classList.add('fit');\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\n### Styling\n\nThe following custom properties and mixins are available for styling.\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-dialog-background-color` | Dialog background color | `--primary-background-color`\n`--paper-dialog-color` | Dialog foreground color | `--primary-text-color`\n`--paper-dialog` | Mixin applied to the dialog | `{}`\n`--paper-dialog-title` | Mixin applied to the title (`

    `) element | `{}`\n`--paper-dialog-button-color` | Button area foreground color | `--default-primary-color`\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport '@polymer/paper-styles/typography.js';\nimport '@polymer/paper-styles/shadow.js';\nconst $_documentContainer = document.createElement('template');\n$_documentContainer.setAttribute('style', 'display: none;');\n\n$_documentContainer.innerHTML = `\n \n`;\n\ndocument.head.appendChild($_documentContainer.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/paper-dialog-behavior/paper-dialog-shared-styles.js';\n\nimport {NeonAnimationRunnerBehavior} from '@polymer/neon-animation/neon-animation-runner-behavior.js';\nimport {PaperDialogBehavior} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Dialogs](https://www.google.com/design/spec/components/dialogs.html)\n\n`` is a dialog with Material Design styling and optional\nanimations when it is opened or closed. It provides styles for a header, content\narea, and an action area for buttons. You can use the\n`` element (in its own repository) if you need a\nscrolling content area. To autofocus a specific child element after opening the\ndialog, give it the `autofocus` attribute. See `Polymer.PaperDialogBehavior` and\n`Polymer.IronOverlayBehavior` for specifics.\n\nFor example, the following code implements a dialog with a header, scrolling\ncontent area and buttons. Focus will be given to the `dialog-confirm` button\nwhen the dialog is opened.\n\n \n

    Header

    \n \n Lorem ipsum...\n \n
    \n Cancel\n Accept\n
    \n
    \n\n### Styling\n\nSee the docs for `Polymer.PaperDialogBehavior` for the custom properties\navailable for styling this element.\n\n### Animations\n\nSet the `entry-animation` and/or `exit-animation` attributes to add an animation\nwhen the dialog is opened or closed. See the documentation in\n[PolymerElements/neon-animation](https://github.com/PolymerElements/neon-animation)\nfor more info.\n\nFor example:\n\n \n\n \n

    Header

    \n
    Dialog body
    \n
    \n\n### Accessibility\n\nSee the docs for `Polymer.PaperDialogBehavior` for accessibility features\nimplemented by this element.\n\n@group Paper Elements\n@element paper-dialog\n@hero hero.svg\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n \n`,\n\n is: 'paper-dialog',\n behaviors: [PaperDialogBehavior, NeonAnimationRunnerBehavior],\n listeners: {'neon-animation-finish': '_onNeonAnimationFinish'},\n\n _renderOpened: function() {\n this.cancelAnimation();\n this.playAnimation('entry');\n },\n\n _renderClosed: function() {\n this.cancelAnimation();\n this.playAnimation('exit');\n },\n\n _onNeonAnimationFinish: function() {\n if (this.opened) {\n this._finishRenderOpened();\n } else {\n this._finishRenderClosed();\n }\n }\n});\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\n Fixes issue with not using shadow dom properly in iron-overlay-behavior/icon-focusables-helper.js\n*/\nimport { dom } from \"@polymer/polymer/lib/legacy/polymer.dom.js\";\n\nimport { IronFocusablesHelper } from \"@polymer/iron-overlay-behavior/iron-focusables-helper.js\";\n\nexport const HaIronFocusablesHelper = {\n /**\n * Returns a sorted array of tabbable nodes, including the root node.\n * It searches the tabbable nodes in the light and shadow dom of the chidren,\n * sorting the result by tabindex.\n * @param {!Node} node\n * @return {!Array}\n */\n getTabbableNodes: function(node) {\n var result = [];\n // If there is at least one element with tabindex > 0, we need to sort\n // the final array by tabindex.\n var needsSortByTabIndex = this._collectTabbableNodes(node, result);\n if (needsSortByTabIndex) {\n return IronFocusablesHelper._sortByTabIndex(result);\n }\n return result;\n },\n\n /**\n * Searches for nodes that are tabbable and adds them to the `result` array.\n * Returns if the `result` array needs to be sorted by tabindex.\n * @param {!Node} node The starting point for the search; added to `result`\n * if tabbable.\n * @param {!Array} result\n * @return {boolean}\n * @private\n */\n _collectTabbableNodes: function(node, result) {\n // If not an element or not visible, no need to explore children.\n if (\n node.nodeType !== Node.ELEMENT_NODE ||\n !IronFocusablesHelper._isVisible(node)\n ) {\n return false;\n }\n var element = /** @type {!HTMLElement} */ (node);\n var tabIndex = IronFocusablesHelper._normalizedTabIndex(element);\n var needsSort = tabIndex > 0;\n if (tabIndex >= 0) {\n result.push(element);\n }\n\n // In ShadowDOM v1, tab order is affected by the order of distrubution.\n // E.g. getTabbableNodes(#root) in ShadowDOM v1 should return [#A, #B];\n // in ShadowDOM v0 tab order is not affected by the distrubution order,\n // in fact getTabbableNodes(#root) returns [#B, #A].\n //
    \n // \n // \n // \n // \n // \n // \n //
    \n // TODO(valdrin) support ShadowDOM v1 when upgrading to Polymer v2.0.\n var children;\n if (element.localName === \"content\" || element.localName === \"slot\") {\n children = dom(element).getDistributedNodes();\n } else {\n // /////////////////////////\n // Use shadow root if possible, will check for distributed nodes.\n // THIS IS THE CHANGED LINE\n children = dom(element.shadowRoot || element.root || element).children;\n // /////////////////////////\n }\n for (var i = 0; i < children.length; i++) {\n // Ensure method is always invoked to collect tabbable children.\n needsSort = this._collectTabbableNodes(children[i], result) || needsSort;\n }\n return needsSort;\n },\n};\n","import \"@polymer/paper-dialog/paper-dialog\";\nimport { mixinBehaviors } from \"@polymer/polymer/lib/legacy/class\";\nimport { HaIronFocusablesHelper } from \"./ha-iron-focusables-helper.js\";\n// tslint:disable-next-line\nimport { PaperDialogElement } from \"@polymer/paper-dialog/paper-dialog\";\n\nconst paperDialogClass = customElements.get(\"paper-dialog\");\n\n// behavior that will override existing iron-overlay-behavior and call the fixed implementation\nconst haTabFixBehaviorImpl = {\n get _focusableNodes() {\n return HaIronFocusablesHelper.getTabbableNodes(this);\n },\n};\n\n// paper-dialog that uses the haTabFixBehaviorImpl behvaior\n// export class HaPaperDialog extends paperDialogClass {}\n// @ts-ignore\nexport class HaPaperDialog\n extends mixinBehaviors([haTabFixBehaviorImpl], paperDialogClass)\n implements PaperDialogElement {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-paper-dialog\": HaPaperDialog;\n }\n}\ncustomElements.define(\"ha-paper-dialog\", HaPaperDialog);\n","import { UpdatingElement, property, customElement } from \"lit-element\";\n// eslint-disable-next-line import/no-webpack-loader-syntax\n// @ts-ignore\n// tslint:disable-next-line: no-implicit-dependencies\nimport markdownWorker from \"workerize-loader!../resources/markdown_worker\";\nimport { fireEvent } from \"../common/dom/fire_event\";\n\nlet worker: any | undefined;\n\n@customElement(\"ha-markdown\")\nclass HaMarkdown extends UpdatingElement {\n @property() public content = \"\";\n @property({ type: Boolean }) public allowSvg = false;\n\n protected update(changedProps) {\n super.update(changedProps);\n\n if (!worker) {\n worker = markdownWorker();\n }\n\n this._render();\n }\n\n private async _render() {\n this.innerHTML = await worker.renderMarkdown(\n this.content,\n {\n breaks: true,\n gfm: true,\n tables: true,\n },\n {\n allowSvg: this.allowSvg,\n }\n );\n\n this._resize();\n\n const walker = document.createTreeWalker(\n this,\n 1 /* SHOW_ELEMENT */,\n null,\n false\n );\n\n while (walker.nextNode()) {\n const node = walker.currentNode;\n\n // Open external links in a new window\n if (\n node instanceof HTMLAnchorElement &&\n node.host !== document.location.host\n ) {\n node.target = \"_blank\";\n\n // protect referrer on external links and deny window.opener access for security reasons\n // (see https://mathiasbynens.github.io/rel-noopener/)\n node.rel = \"noreferrer noopener\";\n\n // Fire a resize event when images loaded to notify content resized\n } else if (node) {\n node.addEventListener(\"load\", this._resize);\n }\n }\n }\n\n private _resize = () => fireEvent(this, \"iron-resize\");\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-markdown\": HaMarkdown;\n }\n}\n","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"renderMarkdown\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(__webpack_public_path__ + \"201359fd5a526afe13ef.worker.js\", { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.a1b6b616fc89c412f5b6.js b/hassio/api/panel/chunk.0b82745c7bdffe5c1404.js similarity index 98% rename from hassio/api/panel/chunk.a1b6b616fc89c412f5b6.js rename to hassio/api/panel/chunk.0b82745c7bdffe5c1404.js index 16507fddc..ad0c447b3 100644 --- a/hassio/api/panel/chunk.a1b6b616fc89c412f5b6.js +++ b/hassio/api/panel/chunk.0b82745c7bdffe5c1404.js @@ -1,2 +1,2 @@ -(self.webpackJsonp=self.webpackJsonp||[]).push([[5],{2:function(t,e,L){"use strict";L.r(e);L(57);function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function H(t,e){for(var L=0;L8I4xGVkZ{{(*PiA|c;=$yq>_o_co9DWk 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 this.fire(\"iron-iconset-added\", this, { node: window }));\n }\n\n /**\n *\n * When name is changed, register iconset metadata\n *\n */\n _nameChanged() {\n this._meta.value = null;\n this._meta.key = this.name;\n this._meta.value = this;\n if (this.ownerDocument && this.ownerDocument.readyState === \"loading\") {\n // Document still loading. It could be that not all icons in the iconset are parsed yet.\n this.ownerDocument.addEventListener(\"DOMContentLoaded\", () => {\n this._fireIronIconsetAdded();\n });\n } else {\n this._fireIronIconsetAdded();\n }\n }\n}\n\ncustomElements.define(\"ha-iconset-svg\", HaIconset);\n","export default \"\";","import \"../../../src/components/ha-iconset-svg\";\nimport iconSetContent from \"../../hassio-icons.html\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\ndocumentContainer.innerHTML = iconSetContent;\ndocument.head.appendChild(documentContainer.content);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/components/ha-iconset-svg.js","webpack:///./hassio/hassio-icons.html","webpack:///./hassio/src/resources/hassio-icons.js"],"names":["IronIconsetClass","customElements","get","HaIconset","_this","this","async","fire","node","window","_this2","_meta","value","key","name","ownerDocument","readyState","addEventListener","_fireIronIconsetAdded","define","documentContainer","document","createElement","setAttribute","innerHTML","head","appendChild","content"],"mappings":"w4BAEA,IAAMA,EAAmBC,eAAeC,IAAI,oBAEtCC,gaAAkBH,yDAIE,IAAAI,EAAAC,KACtBA,KAAKC,MAAM,kBAAMF,EAAKG,KAAK,qBAAsBH,EAAM,CAAEI,KAAMC,kDAQlD,IAAAC,EAAAL,KACbA,KAAKM,MAAMC,MAAQ,KACnBP,KAAKM,MAAME,IAAMR,KAAKS,KACtBT,KAAKM,MAAMC,MAAQP,KACfA,KAAKU,eAAmD,YAAlCV,KAAKU,cAAcC,WAE3CX,KAAKU,cAAcE,iBAAiB,mBAAoB,WACtDP,EAAKQ,0BAGPb,KAAKa,6DAKXjB,eAAekB,OAAO,iBAAkBhB,GChCzB,ICGTiB,EAAoBC,SAASC,cAAc,YACjDF,EAAkBG,aAAa,QAAS,kBACxCH,EAAkBI,UDLH,oxPCMfH,SAASI,KAAKC,YAAYN,EAAkBO","file":"chunk.0b82745c7bdffe5c1404.js","sourcesContent":["import \"@polymer/iron-iconset-svg/iron-iconset-svg\";\n\nconst IronIconsetClass = customElements.get(\"iron-iconset-svg\");\n\nclass HaIconset extends IronIconsetClass {\n /**\n * Fire 'iron-iconset-added' event at next microtask.\n */\n _fireIronIconsetAdded() {\n this.async(() => this.fire(\"iron-iconset-added\", this, { node: window }));\n }\n\n /**\n *\n * When name is changed, register iconset metadata\n *\n */\n _nameChanged() {\n this._meta.value = null;\n this._meta.key = this.name;\n this._meta.value = this;\n if (this.ownerDocument && this.ownerDocument.readyState === \"loading\") {\n // Document still loading. It could be that not all icons in the iconset are parsed yet.\n this.ownerDocument.addEventListener(\"DOMContentLoaded\", () => {\n this._fireIronIconsetAdded();\n });\n } else {\n this._fireIronIconsetAdded();\n }\n }\n}\n\ncustomElements.define(\"ha-iconset-svg\", HaIconset);\n","export default \"\";","import \"../../../src/components/ha-iconset-svg\";\nimport iconSetContent from \"../../hassio-icons.html\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\ndocumentContainer.innerHTML = iconSetContent;\ndocument.head.appendChild(documentContainer.content);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.0c4f6887f9b7e7b11ef5.js b/hassio/api/panel/chunk.0c4f6887f9b7e7b11ef5.js new file mode 100644 index 000000000..c12b26968 --- /dev/null +++ b/hassio/api/panel/chunk.0c4f6887f9b7e7b11ef5.js @@ -0,0 +1,3 @@ +/*! For license information please see chunk.0c4f6887f9b7e7b11ef5.js.LICENSE */ +(self.webpackJsonp=self.webpackJsonp||[]).push([[5],{178:function(e,t,n){"use strict";n.r(t);n(18),n(48),n(22),n(53),n(24),n(40);var o=n(5),r=n(115),i=("".concat(location.protocol,"//").concat(location.host),n(10));n(55);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(){var e=y(["\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n ha-paper-dialog-scrollable {\n margin: 0;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n height: 100%;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n }\n .details {\n color: var(--secondary-text-color);\n }\n .warning,\n .error {\n color: var(--google-red-500);\n }\n .buttons {\n display: flex;\n flex-direction: column;\n }\n .buttons li {\n list-style-type: none;\n }\n .buttons .icon {\n margin-right: 16px;\n }\n .no-margin-top {\n margin-top: 0;\n }\n "]);return a=function(){return e},e}function l(){var e=y(["\n
  • \n \n Wipe & restore\n \n
  • \n ']);return l=function(){return e},e}function c(){var e=y(['\n

    Error: ',"

    \n "]);return c=function(){return e},e}function d(){var e=y(['\n \n ',"\n \n "]);return p=function(){return e},e}function u(){var e=y(['\n
    Add-on:
    \n \n ',"\n \n "]);return u=function(){return e},e}function h(){var e=y(["\n \n ',"\n \n "]);return h=function(){return e},e}function f(){var e=y(['\n
    Folders:
    \n \n ',"\n \n "]);return f=function(){return e},e}function m(){var e=y(['\n \n \n \n
    ','
    \n
    \n
    \n ',"\n (",")
    \n ","\n
    \n
    Home Assistant:
    \n \n Home Assistant ',"\n \n ","\n ","\n ","\n ",'\n\n
    Actions:
    \n
      \n
    • \n \n \n Download Snapshot\n \n
    • \n
    • \n \n \n Restore Selected\n \n
    • \n ',"\n
    • \n \n Delete Snapshot\n \n
    • \n
    \n \n ']);return m=function(){return e},e}function g(){var e=y([""]);return g=function(){return e},e}function y(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t,n=C(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var o={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(o.decorators=e.decorators),"field"===e.kind&&(o.initializer=e.value),o}function w(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function O(e){return e.decorators&&e.decorators.length}function E(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function C(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==s(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===s(t)?t:String(t)}!function(e,t,n,o){var r=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(n){t.forEach(function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach(function(o){t.forEach(function(t){var r=t.placement;if(t.kind===o&&("static"===r||"prototype"===r)){var i="static"===r?e:n;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var o=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===o?void 0:o.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],o=[],r={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,r)},this),e.forEach(function(e){if(!O(e))return n.push(e);var t=this.decorateElement(e,r);n.push(t.element),n.push.apply(n,t.extras),o.push.apply(o,t.finishers)},this),!t)return{elements:n,finishers:o};var i=this.decorateConstructor(n,t);return o.push.apply(o,i.finishers),i.finishers=o,i},addElementPlacement:function(e,t,n){var o=t[e.placement];if(!n&&-1!==o.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");o.push(e.key)},decorateElement:function(e,t){for(var n=[],o=[],r=e.decorators,i=r.length-1;i>=0;i--){var s=t[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,r[i])(a)||a);e=l.element,this.addElementPlacement(e,t),l.finisher&&o.push(l.finisher);var c=l.extras;if(c){for(var d=0;d=0;o--){var r=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[o])(r)||r);if(void 0!==i.finisher&&n.push(i.finisher),void 0!==i.elements){e=i.elements;for(var s=0;st.name?1:-1}),this._addons=(n=this.snapshot.addons,n.map(function(e){return{slug:e.slug,name:e.name,version:e.version,checked:!0}})).sort(function(e,t){return e.name>t.name?1:-1}),this._dialogParams=e,t.prev=6,this._dialog.open(),t.next=14;break;case 10:return t.prev=10,t.t0=t.catch(6),t.next=14,regeneratorRuntime.awrap(this.showDialog(e));case 14:case"end":return t.stop()}var n,o,i},null,this,[[6,10]])}},{kind:"method",key:"render",value:function(){var e=this;return this.snapshot?Object(o.e)(m(),this._dialogClosed,this._computeName,"full"===this.snapshot.type?"Full snapshot":"Partial snapshot",this._computeSize,this._formatDatetime(this.snapshot.date),this._restoreHass,function(t){return e._restoreHass=t.target.checked},this.snapshot.homeassistant,this._folders.length?Object(o.e)(f(),this._folders.map(function(t){return Object(o.e)(h(),t.checked,function(n){return e._updateFolders(t,n.target.checked)},t.name)})):"",this._addons.length?Object(o.e)(u(),this._addons.map(function(t){return Object(o.e)(p(),t.checked,function(n){return e._updateAddons(t,n.target.checked)},t.name)})):"",this.snapshot.protected?Object(o.e)(d(),this._passwordInput,this._snapshotPassword):"",this._error?Object(o.e)(c(),this._error):"",this._downloadClicked,this._partialRestoreClicked,"full"===this.snapshot.type?Object(o.e)(l(),this._fullRestoreClicked):"",this._deleteClicked):Object(o.e)(g())}},{kind:"get",static:!0,key:"styles",value:function(){return[i.b,Object(o.c)(a())]}},{kind:"method",key:"_updateFolders",value:function(e,t){this._folders=this._folders.map(function(n){return n.slug===e.slug&&(n.checked=t),n})}},{kind:"method",key:"_updateAddons",value:function(e,t){this._addons=this._addons.map(function(n){return n.slug===e.slug&&(n.checked=t),n})}},{kind:"method",key:"_passwordInput",value:function(e){this._snapshotPassword=e.detail.value}},{kind:"method",key:"_partialRestoreClicked",value:function(){var e=this;if(confirm("Are you sure you want to restore this snapshot?")){var t=this._addons.filter(function(e){return e.checked}).map(function(e){return e.slug}),n=this._folders.filter(function(e){return e.checked}).map(function(e){return e.slug}),o={homeassistant:this._restoreHass,addons:t,folders:n};this.snapshot.protected&&(o.password=this._snapshotPassword),this.hass.callApi("POST","hassio/snapshots/".concat(this.snapshot.slug,"/restore/partial"),o).then(function(){alert("Snapshot restored!"),e._dialog.close()},function(t){e._error=t.body.message})}}},{kind:"method",key:"_fullRestoreClicked",value:function(){var e=this;if(confirm("Are you sure you want to restore this snapshot?")){var t=this.snapshot.protected?{password:this._snapshotPassword}:void 0;this.hass.callApi("POST","hassio/snapshots/".concat(this.snapshot.slug,"/restore/full"),t).then(function(){alert("Snapshot restored!"),e._dialog.close()},function(t){e._error=t.body.message})}}},{kind:"method",key:"_deleteClicked",value:function(){var e=this;confirm("Are you sure you want to delete this snapshot?")&&this.hass.callApi("POST","hassio/snapshots/".concat(this.snapshot.slug,"/remove")).then(function(){e._dialog.close(),e._dialogParams.onDelete()},function(t){e._error=t.body.message})}},{kind:"method",key:"_downloadClicked",value:function(){var e,t,n;return regeneratorRuntime.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.prev=0,o.next=3,regeneratorRuntime.awrap((r=this.hass,i="/api/hassio/snapshots/".concat(this.snapshot.slug,"/download"),r.callWS({type:"auth/sign_path",path:i})));case 3:e=o.sent,o.next=10;break;case 6:return o.prev=6,o.t0=o.catch(0),alert("Error: ".concat(o.t0.message)),o.abrupt("return");case 10:t=this._computeName.replace(/[^a-z0-9]+/gi,"_"),(n=document.createElement("a")).href=e.path,n.download="Hass_io_".concat(t,".tar"),this._dialog.appendChild(n),n.click(),this._dialog.removeChild(n);case 17:case"end":return o.stop()}var r,i},null,this,[[0,6]])}},{kind:"get",key:"_computeName",value:function(){return this.snapshot?this.snapshot.name||this.snapshot.slug:"Unnamed snapshot"}},{kind:"get",key:"_computeSize",value:function(){return Math.ceil(10*this.snapshot.size)/10+" MB"}},{kind:"method",key:"_formatDatetime",value:function(e){return new Date(e).toLocaleDateString(navigator.language,{weekday:"long",year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}},{kind:"method",key:"_dialogClosed",value:function(){this._dialogParams=void 0,this.snapshot=void 0,this._snapshotPassword="",this._folders=[],this._addons=[]}}]}},o.a)},31:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return s});n(4);var o=n(70),r=n(8),i={hostAttributes:{role:"dialog",tabindex:"-1"},properties:{modal:{type:Boolean,value:!1},__readied:{type:Boolean,value:!1}},observers:["_modalChanged(modal, __readied)"],listeners:{tap:"_onDialogClick"},ready:function(){this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.__readied=!0},_modalChanged:function(e,t){t&&(e?(this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.noCancelOnOutsideClick=!0,this.noCancelOnEscKey=!0,this.withBackdrop=!0):(this.noCancelOnOutsideClick=this.noCancelOnOutsideClick&&this.__prevNoCancelOnOutsideClick,this.noCancelOnEscKey=this.noCancelOnEscKey&&this.__prevNoCancelOnEscKey,this.withBackdrop=this.withBackdrop&&this.__prevWithBackdrop))},_updateClosingReasonConfirmed:function(e){this.closingReason=this.closingReason||{},this.closingReason.confirmed=e},_onDialogClick:function(e){for(var t=Object(r.a)(e).path,n=0,o=t.indexOf(this);n\n\n :host {\n display: block;\n @apply --layout-relative;\n }\n\n :host(.is-scrolled:not(:first-child))::before {\n content: \'\';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: var(--divider-color);\n }\n\n :host(.can-scroll:not(.scrolled-to-bottom):not(:last-child))::after {\n content: \'\';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: var(--divider-color);\n }\n\n .scrollable {\n padding: 0 24px;\n\n @apply --layout-scroll;\n @apply --paper-dialog-scrollable;\n }\n\n .fit {\n @apply --layout-fit;\n }\n \n\n
    \n \n
    \n']);return s=function(){return e},e}Object(r.a)({_template:Object(i.a)(s()),is:"paper-dialog-scrollable",properties:{dialogElement:{type:Object}},get scrollTarget(){return this.$.scrollable},ready:function(){this._ensureTarget(),this.classList.add("no-padding")},attached:function(){this._ensureTarget(),requestAnimationFrame(this.updateScrollState.bind(this))},updateScrollState:function(){this.toggleClass("is-scrolled",this.scrollTarget.scrollTop>0),this.toggleClass("can-scroll",this.scrollTarget.offsetHeight=this.scrollTarget.scrollHeight)},_ensureTarget:function(){this.dialogElement=this.dialogElement||this.parentElement,this.dialogElement&&this.dialogElement.behaviors&&this.dialogElement.behaviors.indexOf(o.b)>=0?(this.dialogElement.sizingTarget=this.scrollTarget,this.scrollTarget.classList.remove("fit")):this.dialogElement&&this.scrollTarget.classList.add("fit")}})},55:function(e,t,n){"use strict";n(4),n(12),n(13),n(30),n(35);var o=document.createElement("template");o.setAttribute("style","display: none;"),o.innerHTML='\n \n',document.head.appendChild(o.content);var r=n(72),i=n(31),s=n(7),a=n(6);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n \n']);return l=function(){return e},e}Object(s.a)({_template:Object(a.a)(l()),is:"paper-dialog",behaviors:[i.a,r.a],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_renderOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderClosed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimationFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderClosed()}});var c=n(59),d=n(8),p=n(67),u={getTabbableNodes:function(e){var t=[];return this._collectTabbableNodes(e,t)?p.a._sortByTabIndex(t):t},_collectTabbableNodes:function(e,t){if(e.nodeType!==Node.ELEMENT_NODE||!p.a._isVisible(e))return!1;var n,o=e,r=p.a._normalizedTabIndex(o),i=r>0;r>=0&&t.push(o),n="content"===o.localName||"slot"===o.localName?Object(d.a)(o).getDistributedNodes():Object(d.a)(o.shadowRoot||o.root||o).children;for(var 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 => hass.callWS({ type: \"auth/sign_path\", path });\n\nexport const fetchAuthProviders = () =>\n fetch(\"/auth/providers\", {\n credentials: \"same-origin\",\n });\n","import \"@material/mwc-button\";\nimport \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-dialog-scrollable/paper-dialog-scrollable\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@polymer/paper-input/paper-input\";\nimport { PaperDialogElement } from \"@polymer/paper-dialog\";\nimport { PaperCheckboxElement } from \"@polymer/paper-checkbox/paper-checkbox\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n query,\n} from \"lit-element\";\n\nimport {\n fetchHassioSnapshotInfo,\n HassioSnapshotDetail,\n} from \"../../../../src/data/hassio/snapshot\";\nimport { getSignedPath } from \"../../../../src/data/auth\";\nimport { HassioSnapshotDialogParams } from \"./show-dialog-hassio-snapshot\";\nimport { haStyleDialog } from \"../../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../../src/types\";\nimport { PolymerChangedEvent } from \"../../../../src/polymer-types\";\n\nimport \"../../../../src/components/dialog/ha-paper-dialog\";\n\nconst _computeFolders = (folders) => {\n const list: Array<{ slug: string; name: string; checked: boolean }> = [];\n if (folders.includes(\"homeassistant\")) {\n list.push({\n slug: \"homeassistant\",\n name: \"Home Assistant configuration\",\n checked: true,\n });\n }\n if (folders.includes(\"ssl\")) {\n list.push({ slug: \"ssl\", name: \"SSL\", checked: true });\n }\n if (folders.includes(\"share\")) {\n list.push({ slug: \"share\", name: \"Share\", checked: true });\n }\n if (folders.includes(\"addons/local\")) {\n list.push({ slug: \"addons/local\", name: \"Local add-ons\", checked: true });\n }\n return list;\n};\n\nconst _computeAddons = (addons) => {\n return addons.map((addon) => ({\n slug: addon.slug,\n name: addon.name,\n version: addon.version,\n checked: true,\n }));\n};\n\ninterface AddonItem {\n slug: string;\n name: string;\n version: string;\n checked: boolean | null | undefined;\n}\n\ninterface FolderItem {\n slug: string;\n name: string;\n checked: boolean | null | undefined;\n}\n\n@customElement(\"dialog-hassio-snapshot\")\nclass HassioSnapshotDialog extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() private _error?: string;\n @property() private snapshot?: HassioSnapshotDetail;\n @property() private _folders!: FolderItem[];\n @property() private _addons!: AddonItem[];\n @property() private _dialogParams?: HassioSnapshotDialogParams;\n @property() private _snapshotPassword!: string;\n @property() private _restoreHass: boolean | null | undefined = true;\n @query(\"#dialog\") private _dialog!: PaperDialogElement;\n\n public async showDialog(params: HassioSnapshotDialogParams) {\n this.snapshot = await fetchHassioSnapshotInfo(this.hass, params.slug);\n this._folders = _computeFolders(\n this.snapshot.folders\n ).sort((a: FolderItem, b: FolderItem) => (a.name > b.name ? 1 : -1));\n this._addons = _computeAddons(\n this.snapshot.addons\n ).sort((a: AddonItem, b: AddonItem) => (a.name > b.name ? 1 : -1));\n\n this._dialogParams = params;\n\n try {\n this._dialog.open();\n } catch {\n await this.showDialog(params);\n }\n }\n\n protected render(): TemplateResult {\n if (!this.snapshot) {\n return html``;\n }\n return html`\n \n \n \n
    ${this._computeName}
    \n
    \n
    \n ${this.snapshot.type === \"full\"\n ? \"Full snapshot\"\n : \"Partial snapshot\"}\n (${this._computeSize})
    \n ${this._formatDatetime(this.snapshot.date)}\n
    \n
    Home Assistant:
    \n \n (this._restoreHass = (ev.target as PaperCheckboxElement).checked)}\"\n >\n Home Assistant ${this.snapshot.homeassistant}\n \n ${this._folders.length\n ? html`\n
    Folders:
    \n \n ${this._folders.map((item) => {\n return html`\n \n this._updateFolders(\n item,\n (ev.target as PaperCheckboxElement).checked\n )}\"\n >\n ${item.name}\n \n `;\n })}\n \n `\n : \"\"}\n ${this._addons.length\n ? html`\n
    Add-on:
    \n \n ${this._addons.map((item) => {\n return html`\n \n this._updateAddons(\n item,\n (ev.target as PaperCheckboxElement).checked\n )}\"\n >\n ${item.name}\n \n `;\n })}\n \n `\n : \"\"}\n ${this.snapshot.protected\n ? html`\n \n `\n : \"\"}\n ${this._error\n ? html`\n

    Error: ${this._error}

    \n `\n : \"\"}\n\n
    Actions:
    \n
      \n
    • \n \n \n Download Snapshot\n \n
    • \n
    • \n \n \n Restore Selected\n \n
    • \n ${this.snapshot.type === \"full\"\n ? html`\n
    • \n \n \n Wipe & restore\n \n
    • \n `\n : \"\"}\n
    • \n \n \n Delete Snapshot\n \n
    • \n
    \n \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyleDialog,\n css`\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n ha-paper-dialog-scrollable {\n margin: 0;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n height: 100%;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n }\n .details {\n color: var(--secondary-text-color);\n }\n .warning,\n .error {\n color: var(--google-red-500);\n }\n .buttons {\n display: flex;\n flex-direction: column;\n }\n .buttons li {\n list-style-type: none;\n }\n .buttons .icon {\n margin-right: 16px;\n }\n .no-margin-top {\n margin-top: 0;\n }\n `,\n ];\n }\n\n private _updateFolders(item: FolderItem, value: boolean | null | undefined) {\n this._folders = this._folders.map((folder) => {\n if (folder.slug === item.slug) {\n folder.checked = value;\n }\n return folder;\n });\n }\n\n private _updateAddons(item: AddonItem, value: boolean | null | undefined) {\n this._addons = this._addons.map((addon) => {\n if (addon.slug === item.slug) {\n addon.checked = value;\n }\n return addon;\n });\n }\n\n private _passwordInput(ev: PolymerChangedEvent) {\n this._snapshotPassword = ev.detail.value;\n }\n\n private _partialRestoreClicked() {\n if (!confirm(\"Are you sure you want to restore this snapshot?\")) {\n return;\n }\n\n const addons = this._addons\n .filter((addon) => addon.checked)\n .map((addon) => addon.slug);\n\n const folders = this._folders\n .filter((folder) => folder.checked)\n .map((folder) => folder.slug);\n\n const data: {\n homeassistant: boolean | null | undefined;\n addons: any;\n folders: any;\n password?: string;\n } = {\n homeassistant: this._restoreHass,\n addons,\n folders,\n };\n\n if (this.snapshot!.protected) {\n data.password = this._snapshotPassword;\n }\n\n this.hass\n .callApi(\n \"POST\",\n\n `hassio/snapshots/${this.snapshot!.slug}/restore/partial`,\n data\n )\n .then(\n () => {\n alert(\"Snapshot restored!\");\n this._dialog.close();\n },\n (error) => {\n this._error = error.body.message;\n }\n );\n }\n\n private _fullRestoreClicked() {\n if (!confirm(\"Are you sure you want to restore this snapshot?\")) {\n return;\n }\n\n const data = this.snapshot!.protected\n ? { password: this._snapshotPassword }\n : undefined;\n\n this.hass\n .callApi(\n \"POST\",\n `hassio/snapshots/${this.snapshot!.slug}/restore/full`,\n data\n )\n .then(\n () => {\n alert(\"Snapshot restored!\");\n this._dialog.close();\n },\n (error) => {\n this._error = error.body.message;\n }\n );\n }\n\n private _deleteClicked() {\n if (!confirm(\"Are you sure you want to delete this snapshot?\")) {\n return;\n }\n\n this.hass\n\n .callApi(\"POST\", `hassio/snapshots/${this.snapshot!.slug}/remove`)\n .then(\n () => {\n this._dialog.close();\n this._dialogParams!.onDelete();\n },\n (error) => {\n this._error = error.body.message;\n }\n );\n }\n\n private async _downloadClicked() {\n let signedPath: { path: string };\n try {\n signedPath = await getSignedPath(\n this.hass,\n `/api/hassio/snapshots/${this.snapshot!.slug}/download`\n );\n } catch (err) {\n alert(`Error: ${err.message}`);\n return;\n }\n\n const name = this._computeName.replace(/[^a-z0-9]+/gi, \"_\");\n const a = document.createElement(\"a\");\n a.href = signedPath.path;\n a.download = `Hass_io_${name}.tar`;\n this._dialog.appendChild(a);\n a.click();\n this._dialog.removeChild(a);\n }\n\n private get _computeName() {\n return this.snapshot\n ? this.snapshot.name || this.snapshot.slug\n : \"Unnamed snapshot\";\n }\n\n private get _computeSize() {\n return Math.ceil(this.snapshot!.size * 10) / 10 + \" MB\";\n }\n\n private _formatDatetime(datetime) {\n return new Date(datetime).toLocaleDateString(navigator.language, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n }\n\n private _dialogClosed() {\n this._dialogParams = undefined;\n this.snapshot = undefined;\n this._snapshotPassword = \"\";\n this._folders = [];\n this._addons = [];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"dialog-hassio-snapshot\": HassioSnapshotDialog;\n }\n}\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {IronOverlayBehavior} from '@polymer/iron-overlay-behavior/iron-overlay-behavior.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\n\n/**\n Use `Polymer.PaperDialogBehavior` and `paper-dialog-shared-styles.html` to\n implement a Material Design dialog.\n\n For example, if `` implements this behavior:\n\n \n

    Header

    \n
    Dialog body
    \n
    \n Cancel\n Accept\n
    \n
    \n\n `paper-dialog-shared-styles.html` provide styles for a header, content area,\n and an action area for buttons. Use the `

    ` tag for the header and the\n `buttons` class for the action area. You can use the `paper-dialog-scrollable`\n element (in its own repository) if you need a scrolling content area.\n\n Use the `dialog-dismiss` and `dialog-confirm` attributes on interactive\n controls to close the dialog. If the user dismisses the dialog with\n `dialog-confirm`, the `closingReason` will update to include `confirmed:\n true`.\n\n ### Accessibility\n\n This element has `role=\"dialog\"` by default. Depending on the context, it may\n be more appropriate to override this attribute with `role=\"alertdialog\"`.\n\n If `modal` is set, the element will prevent the focus from exiting the\n element. It will also ensure that focus remains in the dialog.\n\n @hero hero.svg\n @demo demo/index.html\n @polymerBehavior PaperDialogBehavior\n */\nexport const PaperDialogBehaviorImpl = {\n\n hostAttributes: {'role': 'dialog', 'tabindex': '-1'},\n\n properties: {\n\n /**\n * If `modal` is true, this implies `no-cancel-on-outside-click`,\n * `no-cancel-on-esc-key` and `with-backdrop`.\n */\n modal: {type: Boolean, value: false},\n\n __readied: {type: Boolean, value: false}\n\n },\n\n observers: ['_modalChanged(modal, __readied)'],\n\n listeners: {'tap': '_onDialogClick'},\n\n /**\n * @return {void}\n */\n ready: function() {\n // Only now these properties can be read.\n this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;\n this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;\n this.__prevWithBackdrop = this.withBackdrop;\n this.__readied = true;\n },\n\n _modalChanged: function(modal, readied) {\n // modal implies noCancelOnOutsideClick, noCancelOnEscKey and withBackdrop.\n // We need to wait for the element to be ready before we can read the\n // properties values.\n if (!readied) {\n return;\n }\n\n if (modal) {\n this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;\n this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;\n this.__prevWithBackdrop = this.withBackdrop;\n this.noCancelOnOutsideClick = true;\n this.noCancelOnEscKey = true;\n this.withBackdrop = true;\n } else {\n // If the value was changed to false, let it false.\n this.noCancelOnOutsideClick =\n this.noCancelOnOutsideClick && this.__prevNoCancelOnOutsideClick;\n this.noCancelOnEscKey =\n this.noCancelOnEscKey && this.__prevNoCancelOnEscKey;\n this.withBackdrop = this.withBackdrop && this.__prevWithBackdrop;\n }\n },\n\n _updateClosingReasonConfirmed: function(confirmed) {\n this.closingReason = this.closingReason || {};\n this.closingReason.confirmed = confirmed;\n },\n\n /**\n * Will dismiss the dialog if user clicked on an element with dialog-dismiss\n * or dialog-confirm attribute.\n */\n _onDialogClick: function(event) {\n // Search for the element with dialog-confirm or dialog-dismiss,\n // from the root target until this (excluded).\n var path = dom(event).path;\n for (var i = 0, l = path.indexOf(this); i < l; i++) {\n var target = path[i];\n if (target.hasAttribute &&\n (target.hasAttribute('dialog-dismiss') ||\n target.hasAttribute('dialog-confirm'))) {\n this._updateClosingReasonConfirmed(\n target.hasAttribute('dialog-confirm'));\n this.close();\n event.stopPropagation();\n break;\n }\n }\n }\n\n};\n\n/** @polymerBehavior */\nexport const PaperDialogBehavior =\n [IronOverlayBehavior, PaperDialogBehaviorImpl];\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\n\nimport {PaperDialogBehaviorImpl} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Dialogs](https://www.google.com/design/spec/components/dialogs.html)\n\n`paper-dialog-scrollable` implements a scrolling area used in a Material Design\ndialog. It shows a divider at the top and/or bottom indicating more content,\ndepending on scroll position. Use this together with elements implementing\n`Polymer.PaperDialogBehavior`.\n\n \n

    Header

    \n \n Lorem ipsum...\n \n
    \n OK\n
    \n
    \n\nIt shows a top divider after scrolling if it is not the first child in its\nparent container, indicating there is more content above. It shows a bottom\ndivider if it is scrollable and it is not the last child in its parent\ncontainer, indicating there is more content below. The bottom divider is hidden\nif it is scrolled to the bottom.\n\nIf `paper-dialog-scrollable` is not a direct child of the element implementing\n`Polymer.PaperDialogBehavior`, remember to set the `dialogElement`:\n\n \n

    Header

    \n
    \n

    Sub-header

    \n \n Lorem ipsum...\n \n
    \n
    \n OK\n
    \n
    \n\n \n\n### Styling\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-dialog-scrollable` | Mixin for the scrollable content | {}\n\n@group Paper Elements\n@element paper-dialog-scrollable\n@demo demo/index.html\n@hero hero.svg\n*/\nPolymer({\n _template: html`\n \n\n
    \n \n
    \n`,\n\n is: 'paper-dialog-scrollable',\n\n properties: {\n\n /**\n * The dialog element that implements `Polymer.PaperDialogBehavior`\n * containing this element.\n * @type {?Node}\n */\n dialogElement: {type: Object}\n\n },\n\n /**\n * Returns the scrolling element.\n */\n get scrollTarget() {\n return this.$.scrollable;\n },\n\n ready: function() {\n this._ensureTarget();\n this.classList.add('no-padding');\n },\n\n attached: function() {\n this._ensureTarget();\n requestAnimationFrame(this.updateScrollState.bind(this));\n },\n\n updateScrollState: function() {\n this.toggleClass('is-scrolled', this.scrollTarget.scrollTop > 0);\n this.toggleClass(\n 'can-scroll',\n this.scrollTarget.offsetHeight < this.scrollTarget.scrollHeight);\n this.toggleClass(\n 'scrolled-to-bottom',\n this.scrollTarget.scrollTop + this.scrollTarget.offsetHeight >=\n this.scrollTarget.scrollHeight);\n },\n\n _ensureTarget: function() {\n // Read parentElement instead of parentNode in order to skip shadowRoots.\n this.dialogElement = this.dialogElement || this.parentElement;\n // Check if dialog implements paper-dialog-behavior. If not, fit\n // scrollTarget to host.\n if (this.dialogElement && this.dialogElement.behaviors &&\n this.dialogElement.behaviors.indexOf(PaperDialogBehaviorImpl) >= 0) {\n this.dialogElement.sizingTarget = this.scrollTarget;\n this.scrollTarget.classList.remove('fit');\n } else if (this.dialogElement) {\n this.scrollTarget.classList.add('fit');\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\n### Styling\n\nThe following custom properties and mixins are available for styling.\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-dialog-background-color` | Dialog background color | `--primary-background-color`\n`--paper-dialog-color` | Dialog foreground color | `--primary-text-color`\n`--paper-dialog` | Mixin applied to the dialog | `{}`\n`--paper-dialog-title` | Mixin applied to the title (`

    `) element | `{}`\n`--paper-dialog-button-color` | Button area foreground color | `--default-primary-color`\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport '@polymer/paper-styles/typography.js';\nimport '@polymer/paper-styles/shadow.js';\nconst $_documentContainer = document.createElement('template');\n$_documentContainer.setAttribute('style', 'display: none;');\n\n$_documentContainer.innerHTML = `\n \n`;\n\ndocument.head.appendChild($_documentContainer.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/paper-dialog-behavior/paper-dialog-shared-styles.js';\n\nimport {NeonAnimationRunnerBehavior} from '@polymer/neon-animation/neon-animation-runner-behavior.js';\nimport {PaperDialogBehavior} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Dialogs](https://www.google.com/design/spec/components/dialogs.html)\n\n`` is a dialog with Material Design styling and optional\nanimations when it is opened or closed. It provides styles for a header, content\narea, and an action area for buttons. You can use the\n`` element (in its own repository) if you need a\nscrolling content area. To autofocus a specific child element after opening the\ndialog, give it the `autofocus` attribute. See `Polymer.PaperDialogBehavior` and\n`Polymer.IronOverlayBehavior` for specifics.\n\nFor example, the following code implements a dialog with a header, scrolling\ncontent area and buttons. Focus will be given to the `dialog-confirm` button\nwhen the dialog is opened.\n\n \n

    Header

    \n \n Lorem ipsum...\n \n
    \n Cancel\n Accept\n
    \n
    \n\n### Styling\n\nSee the docs for `Polymer.PaperDialogBehavior` for the custom properties\navailable for styling this element.\n\n### Animations\n\nSet the `entry-animation` and/or `exit-animation` attributes to add an animation\nwhen the dialog is opened or closed. See the documentation in\n[PolymerElements/neon-animation](https://github.com/PolymerElements/neon-animation)\nfor more info.\n\nFor example:\n\n \n\n \n

    Header

    \n
    Dialog body
    \n
    \n\n### Accessibility\n\nSee the docs for `Polymer.PaperDialogBehavior` for accessibility features\nimplemented by this element.\n\n@group Paper Elements\n@element paper-dialog\n@hero hero.svg\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n \n`,\n\n is: 'paper-dialog',\n behaviors: [PaperDialogBehavior, NeonAnimationRunnerBehavior],\n listeners: {'neon-animation-finish': '_onNeonAnimationFinish'},\n\n _renderOpened: function() {\n this.cancelAnimation();\n this.playAnimation('entry');\n },\n\n _renderClosed: function() {\n this.cancelAnimation();\n this.playAnimation('exit');\n },\n\n _onNeonAnimationFinish: function() {\n if (this.opened) {\n this._finishRenderOpened();\n } else {\n this._finishRenderClosed();\n }\n }\n});\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\n Fixes issue with not using shadow dom properly in iron-overlay-behavior/icon-focusables-helper.js\n*/\nimport { dom } from \"@polymer/polymer/lib/legacy/polymer.dom.js\";\n\nimport { IronFocusablesHelper } from \"@polymer/iron-overlay-behavior/iron-focusables-helper.js\";\n\nexport const HaIronFocusablesHelper = {\n /**\n * Returns a sorted array of tabbable nodes, including the root node.\n * It searches the tabbable nodes in the light and shadow dom of the chidren,\n * sorting the result by tabindex.\n * @param {!Node} node\n * @return {!Array}\n */\n getTabbableNodes: function(node) {\n var result = [];\n // If there is at least one element with tabindex > 0, we need to sort\n // the final array by tabindex.\n var needsSortByTabIndex = this._collectTabbableNodes(node, result);\n if (needsSortByTabIndex) {\n return IronFocusablesHelper._sortByTabIndex(result);\n }\n return result;\n },\n\n /**\n * Searches for nodes that are tabbable and adds them to the `result` array.\n * Returns if the `result` array needs to be sorted by tabindex.\n * @param {!Node} node The starting point for the search; added to `result`\n * if tabbable.\n * @param {!Array} result\n * @return {boolean}\n * @private\n */\n _collectTabbableNodes: function(node, result) {\n // If not an element or not visible, no need to explore children.\n if (\n node.nodeType !== Node.ELEMENT_NODE ||\n !IronFocusablesHelper._isVisible(node)\n ) {\n return false;\n }\n var element = /** @type {!HTMLElement} */ (node);\n var tabIndex = IronFocusablesHelper._normalizedTabIndex(element);\n var needsSort = tabIndex > 0;\n if (tabIndex >= 0) {\n result.push(element);\n }\n\n // In ShadowDOM v1, tab order is affected by the order of distrubution.\n // E.g. getTabbableNodes(#root) in ShadowDOM v1 should return [#A, #B];\n // in ShadowDOM v0 tab order is not affected by the distrubution order,\n // in fact getTabbableNodes(#root) returns [#B, #A].\n //
    \n // \n // \n // \n // \n // \n // \n //
    \n // TODO(valdrin) support ShadowDOM v1 when upgrading to Polymer v2.0.\n var children;\n if (element.localName === \"content\" || element.localName === \"slot\") {\n children = dom(element).getDistributedNodes();\n } else {\n // /////////////////////////\n // Use shadow root if possible, will check for distributed nodes.\n // THIS IS THE CHANGED LINE\n children = dom(element.shadowRoot || element.root || element).children;\n // /////////////////////////\n }\n for (var i = 0; i < children.length; i++) {\n // Ensure method is always invoked to collect tabbable children.\n needsSort = this._collectTabbableNodes(children[i], result) || needsSort;\n }\n return needsSort;\n },\n};\n","import \"@polymer/paper-dialog/paper-dialog\";\nimport { mixinBehaviors } from \"@polymer/polymer/lib/legacy/class\";\nimport { HaIronFocusablesHelper } from \"./ha-iron-focusables-helper.js\";\n// tslint:disable-next-line\nimport { PaperDialogElement } from \"@polymer/paper-dialog/paper-dialog\";\n\nconst paperDialogClass = customElements.get(\"paper-dialog\");\n\n// behavior that will override existing iron-overlay-behavior and call the fixed implementation\nconst haTabFixBehaviorImpl = {\n get _focusableNodes() {\n return HaIronFocusablesHelper.getTabbableNodes(this);\n },\n};\n\n// paper-dialog that uses the haTabFixBehaviorImpl behvaior\n// export class HaPaperDialog extends paperDialogClass {}\n// @ts-ignore\nexport class HaPaperDialog\n extends mixinBehaviors([haTabFixBehaviorImpl], paperDialogClass)\n implements PaperDialogElement {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-paper-dialog\": HaPaperDialog;\n }\n}\ncustomElements.define(\"ha-paper-dialog\", HaPaperDialog);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/data/auth.ts","webpack:///./hassio/src/dialogs/snapshot/dialog-hassio-snapshot.ts","webpack:///./node_modules/@polymer/paper-dialog-behavior/paper-dialog-behavior.js","webpack:///./node_modules/@polymer/paper-dialog-scrollable/paper-dialog-scrollable.js","webpack:///./node_modules/@polymer/paper-dialog-behavior/paper-dialog-shared-styles.js","webpack:///./node_modules/@polymer/paper-dialog/paper-dialog.js","webpack:///./src/components/dialog/ha-iron-focusables-helper.js","webpack:///./src/components/dialog/ha-paper-dialog.ts"],"names":["concat","location","protocol","host","customElement","property","query","params","regeneratorRuntime","async","_context","prev","next","awrap","fetchHassioSnapshotInfo","this","hass","slug","snapshot","sent","_folders","folders","list","includes","push","name","checked","sort","a","b","_addons","addons","map","addon","version","_dialogParams","_dialog","open","t0","showDialog","stop","_this2","html","_templateObject2","_dialogClosed","_computeName","type","_computeSize","_formatDatetime","date","_restoreHass","ev","target","homeassistant","length","_templateObject3","item","_templateObject4","_updateFolders","_templateObject5","_templateObject6","_updateAddons","_templateObject7","_passwordInput","_snapshotPassword","_error","_templateObject8","_downloadClicked","_partialRestoreClicked","_templateObject9","_fullRestoreClicked","_deleteClicked","_templateObject","haStyleDialog","css","_templateObject10","value","folder","detail","_this3","confirm","filter","data","password","callApi","then","alert","close","error","body","message","_this4","undefined","_this5","onDelete","signedPath","_context2","path","callWS","abrupt","replace","document","createElement","href","download","appendChild","click","removeChild","Math","ceil","size","datetime","Date","toLocaleDateString","navigator","language","weekday","year","month","day","hour","minute","LitElement","__webpack_require__","d","__webpack_exports__","PaperDialogBehaviorImpl","PaperDialogBehavior","_polymer_iron_overlay_behavior_iron_overlay_behavior_js__WEBPACK_IMPORTED_MODULE_1__","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_2__","hostAttributes","role","tabindex","properties","modal","Boolean","__readied","observers","listeners","tap","ready","__prevNoCancelOnOutsideClick","noCancelOnOutsideClick","__prevNoCancelOnEscKey","noCancelOnEscKey","__prevWithBackdrop","withBackdrop","_modalChanged","readied","_updateClosingReasonConfirmed","confirmed","closingReason","_onDialogClick","event","dom","i","l","indexOf","hasAttribute","stopPropagation","IronOverlayBehavior","Polymer","_template","is","dialogElement","Object","scrollTarget","$","scrollable","_ensureTarget","classList","add","attached","requestAnimationFrame","updateScrollState","bind","toggleClass","scrollTop","offsetHeight","scrollHeight","parentElement","behaviors","sizingTarget","remove","$_documentContainer","setAttribute","innerHTML","head","content","NeonAnimationRunnerBehavior","neon-animation-finish","_renderOpened","cancelAnimation","playAnimation","_renderClosed","_onNeonAnimationFinish","opened","_finishRenderOpened","_finishRenderClosed","HaIronFocusablesHelper","getTabbableNodes","node","result","_collectTabbableNodes","IronFocusablesHelper","_sortByTabIndex","nodeType","Node","ELEMENT_NODE","_isVisible","children","element","tabIndex","_normalizedTabIndex","needsSort","localName","getDistributedNodes","shadowRoot","root","paperDialogClass","customElements","get","haTabFixBehaviorImpl","_focusableNodes","HaPaperDialog","_mixinBehaviors","_classCallCheck","_possibleConstructorReturn","_getPrototypeOf","apply","arguments","_inherits","mixinBehaviors","define"],"mappings":"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","file":"chunk.0c4f6887f9b7e7b11ef5.js","sourcesContent":["import { HomeAssistant } from \"../types\";\n\nexport interface AuthProvider {\n name: string;\n id: string;\n type: string;\n}\n\nexport interface Credential {\n type: string;\n}\n\nexport interface SignedPath {\n path: string;\n}\n\nexport const hassUrl = `${location.protocol}//${location.host}`;\n\nexport const getSignedPath = (\n hass: HomeAssistant,\n path: string\n): Promise => hass.callWS({ type: \"auth/sign_path\", path });\n\nexport const fetchAuthProviders = () =>\n fetch(\"/auth/providers\", {\n credentials: \"same-origin\",\n });\n","import \"@material/mwc-button\";\nimport \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-dialog-scrollable/paper-dialog-scrollable\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@polymer/paper-input/paper-input\";\nimport { PaperDialogElement } from \"@polymer/paper-dialog\";\nimport { PaperCheckboxElement } from \"@polymer/paper-checkbox/paper-checkbox\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n query,\n} from \"lit-element\";\n\nimport {\n fetchHassioSnapshotInfo,\n HassioSnapshotDetail,\n} from \"../../../../src/data/hassio/snapshot\";\nimport { getSignedPath } from \"../../../../src/data/auth\";\nimport { HassioSnapshotDialogParams } from \"./show-dialog-hassio-snapshot\";\nimport { haStyleDialog } from \"../../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../../src/types\";\nimport { PolymerChangedEvent } from \"../../../../src/polymer-types\";\n\nimport \"../../../../src/components/dialog/ha-paper-dialog\";\n\nconst _computeFolders = (folders) => {\n const list: Array<{ slug: string; name: string; checked: boolean }> = [];\n if (folders.includes(\"homeassistant\")) {\n list.push({\n slug: \"homeassistant\",\n name: \"Home Assistant configuration\",\n checked: true,\n });\n }\n if (folders.includes(\"ssl\")) {\n list.push({ slug: \"ssl\", name: \"SSL\", checked: true });\n }\n if (folders.includes(\"share\")) {\n list.push({ slug: \"share\", name: \"Share\", checked: true });\n }\n if (folders.includes(\"addons/local\")) {\n list.push({ slug: \"addons/local\", name: \"Local add-ons\", checked: true });\n }\n return list;\n};\n\nconst _computeAddons = (addons) => {\n return addons.map((addon) => ({\n slug: addon.slug,\n name: addon.name,\n version: addon.version,\n checked: true,\n }));\n};\n\ninterface AddonItem {\n slug: string;\n name: string;\n version: string;\n checked: boolean | null | undefined;\n}\n\ninterface FolderItem {\n slug: string;\n name: string;\n checked: boolean | null | undefined;\n}\n\n@customElement(\"dialog-hassio-snapshot\")\nclass HassioSnapshotDialog extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() private _error?: string;\n @property() private snapshot?: HassioSnapshotDetail;\n @property() private _folders!: FolderItem[];\n @property() private _addons!: AddonItem[];\n @property() private _dialogParams?: HassioSnapshotDialogParams;\n @property() private _snapshotPassword!: string;\n @property() private _restoreHass: boolean | null | undefined = true;\n @query(\"#dialog\") private _dialog!: PaperDialogElement;\n\n public async showDialog(params: HassioSnapshotDialogParams) {\n this.snapshot = await fetchHassioSnapshotInfo(this.hass, params.slug);\n this._folders = _computeFolders(\n this.snapshot.folders\n ).sort((a: FolderItem, b: FolderItem) => (a.name > b.name ? 1 : -1));\n this._addons = _computeAddons(\n this.snapshot.addons\n ).sort((a: AddonItem, b: AddonItem) => (a.name > b.name ? 1 : -1));\n\n this._dialogParams = params;\n\n try {\n this._dialog.open();\n } catch {\n await this.showDialog(params);\n }\n }\n\n protected render(): TemplateResult {\n if (!this.snapshot) {\n return html``;\n }\n return html`\n \n \n \n
    ${this._computeName}
    \n
    \n
    \n ${this.snapshot.type === \"full\"\n ? \"Full snapshot\"\n : \"Partial snapshot\"}\n (${this._computeSize})
    \n ${this._formatDatetime(this.snapshot.date)}\n
    \n
    Home Assistant:
    \n \n (this._restoreHass = (ev.target as PaperCheckboxElement).checked)}\"\n >\n Home Assistant ${this.snapshot.homeassistant}\n \n ${this._folders.length\n ? html`\n
    Folders:
    \n \n ${this._folders.map((item) => {\n return html`\n \n this._updateFolders(\n item,\n (ev.target as PaperCheckboxElement).checked\n )}\"\n >\n ${item.name}\n \n `;\n })}\n \n `\n : \"\"}\n ${this._addons.length\n ? html`\n
    Add-on:
    \n \n ${this._addons.map((item) => {\n return html`\n \n this._updateAddons(\n item,\n (ev.target as PaperCheckboxElement).checked\n )}\"\n >\n ${item.name}\n \n `;\n })}\n \n `\n : \"\"}\n ${this.snapshot.protected\n ? html`\n \n `\n : \"\"}\n ${this._error\n ? html`\n

    Error: ${this._error}

    \n `\n : \"\"}\n\n
    Actions:
    \n
      \n
    • \n \n \n Download Snapshot\n \n
    • \n
    • \n \n \n Restore Selected\n \n
    • \n ${this.snapshot.type === \"full\"\n ? html`\n
    • \n \n \n Wipe & restore\n \n
    • \n `\n : \"\"}\n
    • \n \n \n Delete Snapshot\n \n
    • \n
    \n \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyleDialog,\n css`\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n ha-paper-dialog-scrollable {\n margin: 0;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n height: 100%;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n }\n .details {\n color: var(--secondary-text-color);\n }\n .warning,\n .error {\n color: var(--google-red-500);\n }\n .buttons {\n display: flex;\n flex-direction: column;\n }\n .buttons li {\n list-style-type: none;\n }\n .buttons .icon {\n margin-right: 16px;\n }\n .no-margin-top {\n margin-top: 0;\n }\n `,\n ];\n }\n\n private _updateFolders(item: FolderItem, value: boolean | null | undefined) {\n this._folders = this._folders.map((folder) => {\n if (folder.slug === item.slug) {\n folder.checked = value;\n }\n return folder;\n });\n }\n\n private _updateAddons(item: AddonItem, value: boolean | null | undefined) {\n this._addons = this._addons.map((addon) => {\n if (addon.slug === item.slug) {\n addon.checked = value;\n }\n return addon;\n });\n }\n\n private _passwordInput(ev: PolymerChangedEvent) {\n this._snapshotPassword = ev.detail.value;\n }\n\n private _partialRestoreClicked() {\n if (!confirm(\"Are you sure you want to restore this snapshot?\")) {\n return;\n }\n\n const addons = this._addons\n .filter((addon) => addon.checked)\n .map((addon) => addon.slug);\n\n const folders = this._folders\n .filter((folder) => folder.checked)\n .map((folder) => folder.slug);\n\n const data: {\n homeassistant: boolean | null | undefined;\n addons: any;\n folders: any;\n password?: string;\n } = {\n homeassistant: this._restoreHass,\n addons,\n folders,\n };\n\n if (this.snapshot!.protected) {\n data.password = this._snapshotPassword;\n }\n\n this.hass\n .callApi(\n \"POST\",\n\n `hassio/snapshots/${this.snapshot!.slug}/restore/partial`,\n data\n )\n .then(\n () => {\n alert(\"Snapshot restored!\");\n this._dialog.close();\n },\n (error) => {\n this._error = error.body.message;\n }\n );\n }\n\n private _fullRestoreClicked() {\n if (!confirm(\"Are you sure you want to restore this snapshot?\")) {\n return;\n }\n\n const data = this.snapshot!.protected\n ? { password: this._snapshotPassword }\n : undefined;\n\n this.hass\n .callApi(\n \"POST\",\n `hassio/snapshots/${this.snapshot!.slug}/restore/full`,\n data\n )\n .then(\n () => {\n alert(\"Snapshot restored!\");\n this._dialog.close();\n },\n (error) => {\n this._error = error.body.message;\n }\n );\n }\n\n private _deleteClicked() {\n if (!confirm(\"Are you sure you want to delete this snapshot?\")) {\n return;\n }\n\n this.hass\n\n .callApi(\"POST\", `hassio/snapshots/${this.snapshot!.slug}/remove`)\n .then(\n () => {\n this._dialog.close();\n this._dialogParams!.onDelete();\n },\n (error) => {\n this._error = error.body.message;\n }\n );\n }\n\n private async _downloadClicked() {\n let signedPath: { path: string };\n try {\n signedPath = await getSignedPath(\n this.hass,\n `/api/hassio/snapshots/${this.snapshot!.slug}/download`\n );\n } catch (err) {\n alert(`Error: ${err.message}`);\n return;\n }\n\n const name = this._computeName.replace(/[^a-z0-9]+/gi, \"_\");\n const a = document.createElement(\"a\");\n a.href = signedPath.path;\n a.download = `Hass_io_${name}.tar`;\n this._dialog.appendChild(a);\n a.click();\n this._dialog.removeChild(a);\n }\n\n private get _computeName() {\n return this.snapshot\n ? this.snapshot.name || this.snapshot.slug\n : \"Unnamed snapshot\";\n }\n\n private get _computeSize() {\n return Math.ceil(this.snapshot!.size * 10) / 10 + \" MB\";\n }\n\n private _formatDatetime(datetime) {\n return new Date(datetime).toLocaleDateString(navigator.language, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n }\n\n private _dialogClosed() {\n this._dialogParams = undefined;\n this.snapshot = undefined;\n this._snapshotPassword = \"\";\n this._folders = [];\n this._addons = [];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"dialog-hassio-snapshot\": HassioSnapshotDialog;\n }\n}\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {IronOverlayBehavior} from '@polymer/iron-overlay-behavior/iron-overlay-behavior.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\n\n/**\n Use `Polymer.PaperDialogBehavior` and `paper-dialog-shared-styles.html` to\n implement a Material Design dialog.\n\n For example, if `` implements this behavior:\n\n \n

    Header

    \n
    Dialog body
    \n
    \n Cancel\n Accept\n
    \n
    \n\n `paper-dialog-shared-styles.html` provide styles for a header, content area,\n and an action area for buttons. Use the `

    ` tag for the header and the\n `buttons` class for the action area. You can use the `paper-dialog-scrollable`\n element (in its own repository) if you need a scrolling content area.\n\n Use the `dialog-dismiss` and `dialog-confirm` attributes on interactive\n controls to close the dialog. If the user dismisses the dialog with\n `dialog-confirm`, the `closingReason` will update to include `confirmed:\n true`.\n\n ### Accessibility\n\n This element has `role=\"dialog\"` by default. Depending on the context, it may\n be more appropriate to override this attribute with `role=\"alertdialog\"`.\n\n If `modal` is set, the element will prevent the focus from exiting the\n element. It will also ensure that focus remains in the dialog.\n\n @hero hero.svg\n @demo demo/index.html\n @polymerBehavior PaperDialogBehavior\n */\nexport const PaperDialogBehaviorImpl = {\n\n hostAttributes: {'role': 'dialog', 'tabindex': '-1'},\n\n properties: {\n\n /**\n * If `modal` is true, this implies `no-cancel-on-outside-click`,\n * `no-cancel-on-esc-key` and `with-backdrop`.\n */\n modal: {type: Boolean, value: false},\n\n __readied: {type: Boolean, value: false}\n\n },\n\n observers: ['_modalChanged(modal, __readied)'],\n\n listeners: {'tap': '_onDialogClick'},\n\n /**\n * @return {void}\n */\n ready: function() {\n // Only now these properties can be read.\n this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;\n this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;\n this.__prevWithBackdrop = this.withBackdrop;\n this.__readied = true;\n },\n\n _modalChanged: function(modal, readied) {\n // modal implies noCancelOnOutsideClick, noCancelOnEscKey and withBackdrop.\n // We need to wait for the element to be ready before we can read the\n // properties values.\n if (!readied) {\n return;\n }\n\n if (modal) {\n this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;\n this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;\n this.__prevWithBackdrop = this.withBackdrop;\n this.noCancelOnOutsideClick = true;\n this.noCancelOnEscKey = true;\n this.withBackdrop = true;\n } else {\n // If the value was changed to false, let it false.\n this.noCancelOnOutsideClick =\n this.noCancelOnOutsideClick && this.__prevNoCancelOnOutsideClick;\n this.noCancelOnEscKey =\n this.noCancelOnEscKey && this.__prevNoCancelOnEscKey;\n this.withBackdrop = this.withBackdrop && this.__prevWithBackdrop;\n }\n },\n\n _updateClosingReasonConfirmed: function(confirmed) {\n this.closingReason = this.closingReason || {};\n this.closingReason.confirmed = confirmed;\n },\n\n /**\n * Will dismiss the dialog if user clicked on an element with dialog-dismiss\n * or dialog-confirm attribute.\n */\n _onDialogClick: function(event) {\n // Search for the element with dialog-confirm or dialog-dismiss,\n // from the root target until this (excluded).\n var path = dom(event).path;\n for (var i = 0, l = path.indexOf(this); i < l; i++) {\n var target = path[i];\n if (target.hasAttribute &&\n (target.hasAttribute('dialog-dismiss') ||\n target.hasAttribute('dialog-confirm'))) {\n this._updateClosingReasonConfirmed(\n target.hasAttribute('dialog-confirm'));\n this.close();\n event.stopPropagation();\n break;\n }\n }\n }\n\n};\n\n/** @polymerBehavior */\nexport const PaperDialogBehavior =\n [IronOverlayBehavior, PaperDialogBehaviorImpl];\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\n\nimport {PaperDialogBehaviorImpl} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Dialogs](https://www.google.com/design/spec/components/dialogs.html)\n\n`paper-dialog-scrollable` implements a scrolling area used in a Material Design\ndialog. It shows a divider at the top and/or bottom indicating more content,\ndepending on scroll position. Use this together with elements implementing\n`Polymer.PaperDialogBehavior`.\n\n \n

    Header

    \n \n Lorem ipsum...\n \n
    \n OK\n
    \n
    \n\nIt shows a top divider after scrolling if it is not the first child in its\nparent container, indicating there is more content above. It shows a bottom\ndivider if it is scrollable and it is not the last child in its parent\ncontainer, indicating there is more content below. The bottom divider is hidden\nif it is scrolled to the bottom.\n\nIf `paper-dialog-scrollable` is not a direct child of the element implementing\n`Polymer.PaperDialogBehavior`, remember to set the `dialogElement`:\n\n \n

    Header

    \n
    \n

    Sub-header

    \n \n Lorem ipsum...\n \n
    \n
    \n OK\n
    \n
    \n\n \n\n### Styling\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-dialog-scrollable` | Mixin for the scrollable content | {}\n\n@group Paper Elements\n@element paper-dialog-scrollable\n@demo demo/index.html\n@hero hero.svg\n*/\nPolymer({\n _template: html`\n \n\n
    \n \n
    \n`,\n\n is: 'paper-dialog-scrollable',\n\n properties: {\n\n /**\n * The dialog element that implements `Polymer.PaperDialogBehavior`\n * containing this element.\n * @type {?Node}\n */\n dialogElement: {type: Object}\n\n },\n\n /**\n * Returns the scrolling element.\n */\n get scrollTarget() {\n return this.$.scrollable;\n },\n\n ready: function() {\n this._ensureTarget();\n this.classList.add('no-padding');\n },\n\n attached: function() {\n this._ensureTarget();\n requestAnimationFrame(this.updateScrollState.bind(this));\n },\n\n updateScrollState: function() {\n this.toggleClass('is-scrolled', this.scrollTarget.scrollTop > 0);\n this.toggleClass(\n 'can-scroll',\n this.scrollTarget.offsetHeight < this.scrollTarget.scrollHeight);\n this.toggleClass(\n 'scrolled-to-bottom',\n this.scrollTarget.scrollTop + this.scrollTarget.offsetHeight >=\n this.scrollTarget.scrollHeight);\n },\n\n _ensureTarget: function() {\n // Read parentElement instead of parentNode in order to skip shadowRoots.\n this.dialogElement = this.dialogElement || this.parentElement;\n // Check if dialog implements paper-dialog-behavior. If not, fit\n // scrollTarget to host.\n if (this.dialogElement && this.dialogElement.behaviors &&\n this.dialogElement.behaviors.indexOf(PaperDialogBehaviorImpl) >= 0) {\n this.dialogElement.sizingTarget = this.scrollTarget;\n this.scrollTarget.classList.remove('fit');\n } else if (this.dialogElement) {\n this.scrollTarget.classList.add('fit');\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\n### Styling\n\nThe following custom properties and mixins are available for styling.\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-dialog-background-color` | Dialog background color | `--primary-background-color`\n`--paper-dialog-color` | Dialog foreground color | `--primary-text-color`\n`--paper-dialog` | Mixin applied to the dialog | `{}`\n`--paper-dialog-title` | Mixin applied to the title (`

    `) element | `{}`\n`--paper-dialog-button-color` | Button area foreground color | `--default-primary-color`\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport '@polymer/paper-styles/typography.js';\nimport '@polymer/paper-styles/shadow.js';\nconst $_documentContainer = document.createElement('template');\n$_documentContainer.setAttribute('style', 'display: none;');\n\n$_documentContainer.innerHTML = `\n \n`;\n\ndocument.head.appendChild($_documentContainer.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/paper-dialog-behavior/paper-dialog-shared-styles.js';\n\nimport {NeonAnimationRunnerBehavior} from '@polymer/neon-animation/neon-animation-runner-behavior.js';\nimport {PaperDialogBehavior} from '@polymer/paper-dialog-behavior/paper-dialog-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Dialogs](https://www.google.com/design/spec/components/dialogs.html)\n\n`` is a dialog with Material Design styling and optional\nanimations when it is opened or closed. It provides styles for a header, content\narea, and an action area for buttons. You can use the\n`` element (in its own repository) if you need a\nscrolling content area. To autofocus a specific child element after opening the\ndialog, give it the `autofocus` attribute. See `Polymer.PaperDialogBehavior` and\n`Polymer.IronOverlayBehavior` for specifics.\n\nFor example, the following code implements a dialog with a header, scrolling\ncontent area and buttons. Focus will be given to the `dialog-confirm` button\nwhen the dialog is opened.\n\n \n

    Header

    \n \n Lorem ipsum...\n \n
    \n Cancel\n Accept\n
    \n
    \n\n### Styling\n\nSee the docs for `Polymer.PaperDialogBehavior` for the custom properties\navailable for styling this element.\n\n### Animations\n\nSet the `entry-animation` and/or `exit-animation` attributes to add an animation\nwhen the dialog is opened or closed. See the documentation in\n[PolymerElements/neon-animation](https://github.com/PolymerElements/neon-animation)\nfor more info.\n\nFor example:\n\n \n\n \n

    Header

    \n
    Dialog body
    \n
    \n\n### Accessibility\n\nSee the docs for `Polymer.PaperDialogBehavior` for accessibility features\nimplemented by this element.\n\n@group Paper Elements\n@element paper-dialog\n@hero hero.svg\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n \n`,\n\n is: 'paper-dialog',\n behaviors: [PaperDialogBehavior, NeonAnimationRunnerBehavior],\n listeners: {'neon-animation-finish': '_onNeonAnimationFinish'},\n\n _renderOpened: function() {\n this.cancelAnimation();\n this.playAnimation('entry');\n },\n\n _renderClosed: function() {\n this.cancelAnimation();\n this.playAnimation('exit');\n },\n\n _onNeonAnimationFinish: function() {\n if (this.opened) {\n this._finishRenderOpened();\n } else {\n this._finishRenderClosed();\n }\n }\n});\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\n Fixes issue with not using shadow dom properly in iron-overlay-behavior/icon-focusables-helper.js\n*/\nimport { dom } from \"@polymer/polymer/lib/legacy/polymer.dom.js\";\n\nimport { IronFocusablesHelper } from \"@polymer/iron-overlay-behavior/iron-focusables-helper.js\";\n\nexport const HaIronFocusablesHelper = {\n /**\n * Returns a sorted array of tabbable nodes, including the root node.\n * It searches the tabbable nodes in the light and shadow dom of the chidren,\n * sorting the result by tabindex.\n * @param {!Node} node\n * @return {!Array}\n */\n getTabbableNodes: function(node) {\n var result = [];\n // If there is at least one element with tabindex > 0, we need to sort\n // the final array by tabindex.\n var needsSortByTabIndex = this._collectTabbableNodes(node, result);\n if (needsSortByTabIndex) {\n return IronFocusablesHelper._sortByTabIndex(result);\n }\n return result;\n },\n\n /**\n * Searches for nodes that are tabbable and adds them to the `result` array.\n * Returns if the `result` array needs to be sorted by tabindex.\n * @param {!Node} node The starting point for the search; added to `result`\n * if tabbable.\n * @param {!Array} result\n * @return {boolean}\n * @private\n */\n _collectTabbableNodes: function(node, result) {\n // If not an element or not visible, no need to explore children.\n if (\n node.nodeType !== Node.ELEMENT_NODE ||\n !IronFocusablesHelper._isVisible(node)\n ) {\n return false;\n }\n var element = /** @type {!HTMLElement} */ (node);\n var tabIndex = IronFocusablesHelper._normalizedTabIndex(element);\n var needsSort = tabIndex > 0;\n if (tabIndex >= 0) {\n result.push(element);\n }\n\n // In ShadowDOM v1, tab order is affected by the order of distrubution.\n // E.g. getTabbableNodes(#root) in ShadowDOM v1 should return [#A, #B];\n // in ShadowDOM v0 tab order is not affected by the distrubution order,\n // in fact getTabbableNodes(#root) returns [#B, #A].\n //
    \n // \n // \n // \n // \n // \n // \n //
    \n // TODO(valdrin) support ShadowDOM v1 when upgrading to Polymer v2.0.\n var children;\n if (element.localName === \"content\" || element.localName === \"slot\") {\n children = dom(element).getDistributedNodes();\n } else {\n // /////////////////////////\n // Use shadow root if possible, will check for distributed nodes.\n // THIS IS THE CHANGED LINE\n children = dom(element.shadowRoot || element.root || element).children;\n // /////////////////////////\n }\n for (var i = 0; i < children.length; i++) {\n // Ensure method is always invoked to collect tabbable children.\n needsSort = this._collectTabbableNodes(children[i], result) || needsSort;\n }\n return needsSort;\n },\n};\n","import \"@polymer/paper-dialog/paper-dialog\";\nimport { mixinBehaviors } from \"@polymer/polymer/lib/legacy/class\";\nimport { HaIronFocusablesHelper } from \"./ha-iron-focusables-helper.js\";\n// tslint:disable-next-line\nimport { PaperDialogElement } from \"@polymer/paper-dialog/paper-dialog\";\n\nconst paperDialogClass = customElements.get(\"paper-dialog\");\n\n// behavior that will override existing iron-overlay-behavior and call the fixed implementation\nconst haTabFixBehaviorImpl = {\n get _focusableNodes() {\n return HaIronFocusablesHelper.getTabbableNodes(this);\n },\n};\n\n// paper-dialog that uses the haTabFixBehaviorImpl behvaior\n// export class HaPaperDialog extends paperDialogClass {}\n// @ts-ignore\nexport class HaPaperDialog\n extends mixinBehaviors([haTabFixBehaviorImpl], paperDialogClass)\n implements PaperDialogElement {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-paper-dialog\": HaPaperDialog;\n }\n}\ncustomElements.define(\"ha-paper-dialog\", HaPaperDialog);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.12902324b918e12549ba.js b/hassio/api/panel/chunk.12902324b918e12549ba.js deleted file mode 100644 index c51691e24..000000000 --- a/hassio/api/panel/chunk.12902324b918e12549ba.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see chunk.12902324b918e12549ba.js.LICENSE */ -(self.webpackJsonp=self.webpackJsonp||[]).push([[10],[,,,,function(e,t,n){"use strict";var i=n(13),o=n(27),r=n(19),a=133;function s(e,t){for(var n=e.element.content,i=e.parts,o=document.createTreeWalker(n,a,null,!1),r=c(i),s=i[r],l=-1,d=0,u=[],p=null;o.nextNode();){l++;var h=o.currentNode;for(h.previousSibling===p&&(p=null),t.has(h)&&(u.push(h),null===p&&(p=h)),null!==p&&d++;void 0!==s&&s.index===l;)s.index=null!==p?-1:s.index-d,s=i[r=c(i,r)]}u.forEach(function(e){return e.parentNode.removeChild(e)})}var l=function(e){for(var t=11===e.nodeType?0:1,n=document.createTreeWalker(e,a,null,!1);n.nextNode();)t++;return t},c=function(e){for(var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1)+1;t2&&void 0!==arguments[2]?arguments[2]:null,i=e.element.content,o=e.parts;if(null!=n)for(var r=document.createTreeWalker(i,a,null,!1),s=c(o),d=0,u=-1;r.nextNode();)for(u++,r.currentNode===n&&(d=l(t),n.parentNode.insertBefore(t,n));-1!==s&&o[s].index===u;){if(d>0){for(;-1!==s;)o[s].index+=d,s=c(o,s);return}s=c(o,s)}else i.appendChild(t)}(n,d,b.firstChild):b.insertBefore(d,b.firstChild),window.ShadyCSS.prepareTemplateStyles(i,e);var v=b.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==v)t.insertBefore(v.cloneNode(!0),t.firstChild);else if(n){b.insertBefore(d,b.firstChild);var g=new Set;g.add(d),s(n,g)}}else window.ShadyCSS.prepareTemplateStyles(i,e)};function _(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1&&void 0!==arguments[1]?arguments[1]:I;if(this._ensureClassProperties(),this._classProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){var n="symbol"===w(e)?Symbol():"__".concat(e);Object.defineProperty(this.prototype,e,{get:function(){return this[n]},set:function(t){var i=this[e];this[n]=t,this._requestUpdate(e,i)},configurable:!0,enumerable:!0})}}},{key:"finalize",value:function(){var e=Object.getPrototypeOf(this);if(e.hasOwnProperty("finalized")||e.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){var t=this.properties,n=[].concat(_(Object.getOwnPropertyNames(t)),_("function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[])),i=!0,o=!1,r=void 0;try{for(var a,s=n[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var l=a.value;this.createProperty(l,t[l])}}catch(c){o=!0,r=c}finally{try{i||null==s.return||s.return()}finally{if(o)throw r}}}}},{key:"_attributeNameForProperty",value:function(e,t){var n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}},{key:"_valueHasChanged",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:T)(e,t)}},{key:"_propertyValueFromAttribute",value:function(e,t){var n=t.type,i=t.converter||E,o="function"==typeof i?i:i.fromAttribute;return o?o(e,n):e}},{key:"_propertyValueToAttribute",value:function(e,t){if(void 0!==t.reflect){var n=t.type,i=t.converter;return(i&&i.toAttribute||E.toAttribute)(e,n)}}},{key:"observedAttributes",get:function(){var e=this;this.finalize();var t=[];return this._classProperties.forEach(function(n,i){var o=e._attributeNameForProperty(i,n);void 0!==o&&(e._attributeToPropertyMap.set(o,i),t.push(o))}),t}}],(i=[{key:"initialize",value:function(){this._saveInstanceProperties(),this._requestUpdate()}},{key:"_saveInstanceProperties",value:function(){var e=this;this.constructor._classProperties.forEach(function(t,n){if(e.hasOwnProperty(n)){var i=e[n];delete e[n],e._instanceProperties||(e._instanceProperties=new Map),e._instanceProperties.set(n,i)}})}},{key:"_applyInstanceProperties",value:function(){var e=this;this._instanceProperties.forEach(function(t,n){return e[n]=t}),this._instanceProperties=void 0}},{key:"connectedCallback",value:function(){this._updateState=32|this._updateState,this._hasConnectedResolver&&(this._hasConnectedResolver(),this._hasConnectedResolver=void 0)}},{key:"disconnectedCallback",value:function(){}},{key:"attributeChangedCallback",value:function(e,t,n){t!==n&&this._attributeToProperty(e,n)}},{key:"_propertyToAttribute",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:I,i=this.constructor,o=i._attributeNameForProperty(e,n);if(void 0!==o){var r=i._propertyValueToAttribute(t,n);if(void 0===r)return;this._updateState=8|this._updateState,null==r?this.removeAttribute(o):this.setAttribute(o,r),this._updateState=-9&this._updateState}}},{key:"_attributeToProperty",value:function(e,t){if(!(8&this._updateState)){var n=this.constructor,i=n._attributeToPropertyMap.get(e);if(void 0!==i){var o=n._classProperties.get(i)||I;this._updateState=16|this._updateState,this[i]=n._propertyValueFromAttribute(t,o),this._updateState=-17&this._updateState}}}},{key:"_requestUpdate",value:function(e,t){var n=!0;if(void 0!==e){var i=this.constructor,o=i._classProperties.get(e)||I;i._valueHasChanged(this[e],t,o.hasChanged)?(this._changedProperties.has(e)||this._changedProperties.set(e,t),!0!==o.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(e,o))):n=!1}!this._hasRequestedUpdate&&n&&this._enqueueUpdate()}},{key:"requestUpdate",value:function(e,t){return this._requestUpdate(e,t),this.updateComplete}},{key:"_enqueueUpdate",value:function(){var e,t,n,i,o=this;return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return this._updateState=4|this._updateState,n=this._updatePromise,this._updatePromise=new Promise(function(n,i){e=n,t=i}),r.prev=3,r.next=6,regeneratorRuntime.awrap(n);case 6:r.next=10;break;case 8:r.prev=8,r.t0=r.catch(3);case 10:if(this._hasConnected){r.next=13;break}return r.next=13,regeneratorRuntime.awrap(new Promise(function(e){return o._hasConnectedResolver=e}));case 13:if(r.prev=13,null==(i=this.performUpdate())){r.next=18;break}return r.next=18,regeneratorRuntime.awrap(i);case 18:r.next=23;break;case 20:r.prev=20,r.t1=r.catch(13),t(r.t1);case 23:e(!this._hasRequestedUpdate);case 24:case"end":return r.stop()}},null,this,[[3,8],[13,20]])}},{key:"performUpdate",value:function(){this._instanceProperties&&this._applyInstanceProperties();var e=!1,t=this._changedProperties;try{(e=this.shouldUpdate(t))&&this.update(t)}catch(n){throw e=!1,n}finally{this._markUpdated()}e&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(t)),this.updated(t))}},{key:"_markUpdated",value:function(){this._changedProperties=new Map,this._updateState=-5&this._updateState}},{key:"_getUpdateComplete",value:function(){return this._updatePromise}},{key:"shouldUpdate",value:function(e){return!0}},{key:"update",value:function(e){var t=this;void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(function(e,n){return t._propertyToAttribute(n,t[n],e)}),this._reflectingProperties=void 0)}},{key:"updated",value:function(e){}},{key:"firstUpdated",value:function(e){}},{key:"_hasConnected",get:function(){return 32&this._updateState}},{key:"_hasRequestedUpdate",get:function(){return 4&this._updateState}},{key:"hasUpdated",get:function(){return 1&this._updateState}},{key:"updateComplete",get:function(){return this._getUpdateComplete()}}])&&x(n.prototype,i),o&&x(n,o),t}();j.finalized=!0;var R=function(e){return function(t){return"function"==typeof t?function(e,t){return window.customElements.define(e,t),t}(e,t):function(e,t){return{kind:t.kind,elements:t.elements,finisher:function(t){window.customElements.define(e,t)}}}(e,t)}},B=function(e,t){return"method"!==t.kind||!t.descriptor||"value"in t.descriptor?{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer:function(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher:function(n){n.createProperty(t.key,e)}}:Object.assign({},t,{finisher:function(n){n.createProperty(t.key,e)}})},P=function(e,t,n){t.constructor.createProperty(n,e)};function N(e){return function(t,n){return void 0!==n?P(e,t,n):B(e,t)}}function L(e){return function(t,n){var i={get:function(){return this.renderRoot.querySelector(e)},enumerable:!0,configurable:!0};return void 0!==n?F(i,t,n):M(i,t)}}var F=function(e,t,n){Object.defineProperty(t,n,e)},M=function(e,t){return{kind:"method",placement:"prototype",key:t.key,descriptor:e}};function D(e,t){for(var n=0;n1?t-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:[],i=0,o=t.length;i\n \n\n\n \n']);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content);var a=document.createElement("style");a.textContent="[hidden] { display: none !important; }",document.head.appendChild(a)},function(e,t,n){"use strict";n(3),n(88);var i=n(5);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n \n'],['\n\n \n']);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content)},,function(e,t,n){"use strict";var i=n(18);function o(e,t){for(var n=0;n1?t-1:0),i=1;i\n
    \n ','\n ',"\n ","\n \n "]);return l=function(){return e},e}function c(){var e=d(['',""]);return c=function(){return e},e}function d(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function u(e,t){for(var n=0;n\n :host {\n display: inline-block;\n overflow: hidden;\n position: relative;\n }\n\n #baseURIAnchor {\n display: none;\n }\n\n #sizedImgDiv {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n\n display: none;\n }\n\n #img {\n display: block;\n width: var(--iron-image-width, auto);\n height: var(--iron-image-height, auto);\n }\n\n :host([sizing]) #sizedImgDiv {\n display: block;\n }\n\n :host([sizing]) #img {\n display: none;\n }\n\n #placeholder {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n\n background-color: inherit;\n opacity: 1;\n\n @apply --iron-image-placeholder;\n }\n\n #placeholder.faded-out {\n transition: opacity 0.5s linear;\n opacity: 0;\n }\n \n\n
    \n \n \n
    \n']);return a=function(){return e},e}Object(i.a)({_template:Object(o.a)(a()),is:"iron-image",properties:{src:{type:String,value:""},alt:{type:String,value:null},crossorigin:{type:String,value:null},preventLoad:{type:Boolean,value:!1},sizing:{type:String,value:null,reflectToAttribute:!0},position:{type:String,value:"center"},preload:{type:Boolean,value:!1},placeholder:{type:String,value:null,observer:"_placeholderChanged"},fade:{type:Boolean,value:!1},loaded:{notify:!0,readOnly:!0,type:Boolean,value:!1},loading:{notify:!0,readOnly:!0,type:Boolean,value:!1},error:{notify:!0,readOnly:!0,type:Boolean,value:!1},width:{observer:"_widthChanged",type:Number,value:null},height:{observer:"_heightChanged",type:Number,value:null}},observers:["_transformChanged(sizing, position)","_loadStateObserver(src, preventLoad)"],created:function(){this._resolvedSrc=""},_imgOnLoad:function(){this.$.img.src===this._resolveSrc(this.src)&&(this._setLoading(!1),this._setLoaded(!0),this._setError(!1))},_imgOnError:function(){this.$.img.src===this._resolveSrc(this.src)&&(this.$.img.removeAttribute("src"),this.$.sizedImgDiv.style.backgroundImage="",this._setLoading(!1),this._setLoaded(!1),this._setError(!0))},_computePlaceholderHidden:function(){return!this.preload||!this.fade&&!this.loading&&this.loaded},_computePlaceholderClassName:function(){return this.preload&&this.fade&&!this.loading&&this.loaded?"faded-out":""},_computeImgDivHidden:function(){return!this.sizing},_computeImgDivARIAHidden:function(){return""===this.alt?"true":void 0},_computeImgDivARIALabel:function(){return null!==this.alt?this.alt:""===this.src?"":this._resolveSrc(this.src).replace(/[?|#].*/g,"").split("/").pop()},_computeImgHidden:function(){return!!this.sizing},_widthChanged:function(){this.style.width=isNaN(this.width)?this.width:this.width+"px"},_heightChanged:function(){this.style.height=isNaN(this.height)?this.height:this.height+"px"},_loadStateObserver:function(e,t){var n=this._resolveSrc(e);n!==this._resolvedSrc&&(this._resolvedSrc="",this.$.img.removeAttribute("src"),this.$.sizedImgDiv.style.backgroundImage="",""===e||t?(this._setLoading(!1),this._setLoaded(!1),this._setError(!1)):(this._resolvedSrc=n,this.$.img.src=this._resolvedSrc,this.$.sizedImgDiv.style.backgroundImage='url("'+this._resolvedSrc+'")',this._setLoading(!0),this._setLoaded(!1),this._setError(!1)))},_placeholderChanged:function(){this.$.placeholder.style.backgroundImage=this.placeholder?'url("'+this.placeholder+'")':""},_transformChanged:function(){var e=this.$.sizedImgDiv.style,t=this.$.placeholder.style;e.backgroundSize=t.backgroundSize=this.sizing,e.backgroundPosition=t.backgroundPosition=this.sizing?this.position:"",e.backgroundRepeat=t.backgroundRepeat=this.sizing?"no-repeat":""},_resolveSrc:function(e){var t=Object(r.c)(e,this.$.baseURIAnchor.href);return t.length>=2&&"/"===t[0]&&"/"!==t[1]&&(t=(location.origin||location.protocol+"//"+location.host)+t),t}});n(39);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n \n']);return s=function(){return e},e}var l=Object(o.a)(s());l.setAttribute("style","display: none;"),document.head.appendChild(l.content);n(11);function c(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n
    [[heading]]
    \n
    \n\n \n'],['\n \n\n
    \n \n
    [[heading]]
    \n
    \n\n \n']);return c=function(){return e},e}Object(i.a)({_template:Object(o.a)(c()),is:"paper-card",properties:{heading:{type:String,value:"",observer:"_headingChanged"},image:{type:String,value:""},alt:{type:String},preloadImage:{type:Boolean,value:!1},fadeImage:{type:Boolean,value:!1},placeholderImage:{type:String,value:null},elevation:{type:Number,value:1,reflectToAttribute:!0},animatedShadow:{type:Boolean,value:!1},animated:{type:Boolean,reflectToAttribute:!0,readOnly:!0,computed:"_computeAnimated(animatedShadow)"}},_isHidden:function(e){return e?"false":"true"},_headingChanged:function(e){var t=this.getAttribute("heading"),n=this.getAttribute("aria-label");"string"==typeof n&&n!==t||this.setAttribute("aria-label",e)},_computeHeadingClass:function(e){return e?" over-image":""},_computeAnimated:function(e){return e}})},function(e,t,n){"use strict";n.d(t,"a",function(){return _}),n.d(t,"b",function(){return w}),n.d(t,"e",function(){return x}),n.d(t,"c",function(){return k}),n.d(t,"f",function(){return S}),n.d(t,"g",function(){return C}),n.d(t,"d",function(){return E});var i=n(49),o=n(27),r=n(50),a=n(51),s=n(36),l=n(19);function c(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function d(e,t,n){return(d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=u(e)););return e}(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.startNode;Object(o.b)(this.startNode.parentNode,e.nextSibling,this.endNode)}}]),e}(),k=function(){function e(t,n,i){if(f(this,e),this.value=void 0,this.__pendingValue=void 0,2!==i.length||""!==i[0]||""!==i[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=n,this.strings=i}return v(e,[{key:"setValue",value:function(e){this.__pendingValue=e}},{key:"commit",value:function(){for(;Object(i.b)(this.__pendingValue);){var e=this.__pendingValue;this.__pendingValue=r.a,e(this)}if(this.__pendingValue!==r.a){var t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=r.a}}}]),e}(),S=function(e){function t(e,n,i){var o;return f(this,t),(o=c(this,u(t).call(this,e,n,i))).single=2===i.length&&""===i[0]&&""===i[1],o}return p(t,_),v(t,[{key:"_createPart",value:function(){return new C(this)}},{key:"_getValue",value:function(){return this.single?this.parts[0].value:d(u(t.prototype),"_getValue",this).call(this)}},{key:"commit",value:function(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}]),t}(),C=function(e){function t(){return f(this,t),c(this,u(t).apply(this,arguments))}return p(t,w),t}(),O=!1;try{var A={get capture(){return O=!0,!1}};window.addEventListener("test",A,A),window.removeEventListener("test",A,A)}catch(I){}var E=function(){function e(t,n,i){var o=this;f(this,e),this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=n,this.eventContext=i,this.__boundHandleEvent=function(e){return o.handleEvent(e)}}return v(e,[{key:"setValue",value:function(e){this.__pendingValue=e}},{key:"commit",value:function(){for(;Object(i.b)(this.__pendingValue);){var e=this.__pendingValue;this.__pendingValue=r.a,e(this)}if(this.__pendingValue!==r.a){var t=this.__pendingValue,n=this.value,o=null==t||null!=n&&(t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive),a=null!=t&&(null==n||o);o&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),a&&(this.__options=T(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=r.a}}},{key:"handleEvent",value:function(e){"function"==typeof this.value?this.value.call(this.eventContext||this.element,e):this.value.handleEvent(e)}}]),e}(),T=function(e){return e&&(O?{capture:e.capture,passive:e.passive,once:e.once}:e.capture)}},function(e,t,n){"use strict";n.d(t,"f",function(){return i}),n.d(t,"g",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s}),n.d(t,"d",function(){return c}),n.d(t,"c",function(){return d}),n.d(t,"e",function(){return u});var i="{{lit-".concat(String(Math.random()).slice(2),"}}"),o="\x3c!--".concat(i,"--\x3e"),r=new RegExp("".concat(i,"|").concat(o)),a="$lit$",s=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.parts=[],this.element=n;for(var o=[],s=[],c=document.createTreeWalker(n.content,133,null,!1),p=0,h=-1,f=0,b=t.strings,v=t.values.length;f0;){var x=b[f],k=u.exec(x)[2],S=k.toLowerCase()+a,C=m.getAttribute(S);m.removeAttribute(S);var O=C.split(r);this.parts.push({type:"attribute",index:h,name:k,strings:O}),f+=O.length-1}}"TEMPLATE"===m.tagName&&(s.push(m),c.currentNode=m.content)}else if(3===m.nodeType){var A=m.data;if(A.indexOf(i)>=0){for(var E=m.parentNode,T=A.split(r),I=T.length-1,z=0;z=0&&e.slice(n)===t},c=function(e){return-1!==e.index},d=function(){return document.createComment("")},u=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/},function(e,t,n){"use strict";n(10),n(64);var i=n(6),o=n(7),r=n(5),a=n(3);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n"]);return s=function(){return e},e}Object(i.a)({_template:Object(r.a)(s()),is:"iron-icon",properties:{icon:{type:String},theme:{type:String},src:{type:String},_meta:{value:a.a.create("iron-meta",{type:"iconset"})}},observers:["_updateIcon(_meta, isAttached)","_updateIcon(theme, isAttached)","_srcChanged(src, isAttached)","_iconChanged(icon, isAttached)"],_DEFAULT_ICONSET:"icons",_iconChanged:function(e){var t=(e||"").split(":");this._iconName=t.pop(),this._iconsetName=t.pop()||this._DEFAULT_ICONSET,this._updateIcon()},_srcChanged:function(e){this._updateIcon()},_usesIconset:function(){return this.icon||!this.src},_updateIcon:function(){this._usesIconset()?(this._img&&this._img.parentNode&&Object(o.a)(this.root).removeChild(this._img),""===this._iconName?this._iconset&&this._iconset.removeIcon(this):this._iconsetName&&this._meta&&(this._iconset=this._meta.byKey(this._iconsetName),this._iconset?(this._iconset.applyIcon(this,this._iconName,this.theme),this.unlisten(window,"iron-iconset-added","_updateIcon")):this.listen(window,"iron-iconset-added","_updateIcon"))):(this._iconset&&this._iconset.removeIcon(this),this._img||(this._img=document.createElement("img"),this._img.style.width="100%",this._img.style.height="100%",this._img.draggable=!1),this._img.src=this.src,Object(o.a)(this.root).appendChild(this._img))}})},,function(e,t,n){"use strict";n(3),n(20),n(11);var i=n(65),o=n(6),r=n(5);function a(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \n '],['\n \n\n \n ']);return a=function(){return e},e}Object(o.a)({is:"paper-icon-button",_template:Object(r.a)(a()),hostAttributes:{role:"button",tabindex:"0"},behaviors:[i.a],registered:function(){this._template.setAttribute("strip-whitespace","")},properties:{src:{type:String},icon:{type:String},alt:{type:String,observer:"_altChanged"}},_altChanged:function(e,t){var n=this.getAttribute("aria-label");n&&t!=n||this.setAttribute("aria-label",e)}})},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(3),n(7);var i={properties:{focused:{type:Boolean,value:!1,notify:!0,readOnly:!0,reflectToAttribute:!0},disabled:{type:Boolean,value:!1,notify:!0,observer:"_disabledChanged",reflectToAttribute:!0},_oldTabIndex:{type:String},_boundFocusBlurHandler:{type:Function,value:function(){return this._focusBlurHandler.bind(this)}}},observers:["_changedControlState(focused, disabled)"],ready:function(){this.addEventListener("focus",this._boundFocusBlurHandler,!0),this.addEventListener("blur",this._boundFocusBlurHandler,!0)},_focusBlurHandler:function(e){this._setFocused("focus"===e.type)},_disabledChanged:function(e,t){this.setAttribute("aria-disabled",e?"true":"false"),this.style.pointerEvents=e?"none":"",e?(this._oldTabIndex=this.getAttribute("tabindex"),this._setFocused(!1),this.tabIndex=-1,this.blur()):void 0!==this._oldTabIndex&&(null===this._oldTabIndex?this.removeAttribute("tabindex"):this.setAttribute("tabindex",this._oldTabIndex))},_changedControlState:function(){this._controlStateChanged&&this._controlStateChanged()}}},function(e,t,n){"use strict";n.d(t,"a",function(){return b});n(3);var i={"U+0008":"backspace","U+0009":"tab","U+001B":"esc","U+0020":"space","U+007F":"del"},o={8:"backspace",9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown",35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",106:"*"},r={shift:"shiftKey",ctrl:"ctrlKey",alt:"altKey",meta:"metaKey"},a=/[a-z0-9*]/,s=/U\+/,l=/^arrow/,c=/^space(bar)?/,d=/^escape$/;function u(e,t){var n="";if(e){var i=e.toLowerCase();" "===i||c.test(i)?n="space":d.test(i)?n="esc":1==i.length?t&&!a.test(i)||(n=i):n=l.test(i)?i.replace("arrow",""):"multiply"==i?"*":i}return n}function p(e,t){return e.key?u(e.key,t):e.detail&&e.detail.key?u(e.detail.key,t):(n=e.keyIdentifier,r="",n&&(n in i?r=i[n]:s.test(n)?(n=parseInt(n.replace("U+","0x"),16),r=String.fromCharCode(n).toLowerCase()):r=n.toLowerCase()),r||function(e){var t="";return Number(e)&&(t=e>=65&&e<=90?String.fromCharCode(32+e):e>=112&&e<=123?"f"+(e-112+1):e>=48&&e<=57?String(e-48):e>=96&&e<=105?String(e-96):o[e]),t}(e.keyCode)||"");var n,r}function h(e,t){return p(t,e.hasModifiers)===e.key&&(!e.hasModifiers||!!t.shiftKey==!!e.shiftKey&&!!t.ctrlKey==!!e.ctrlKey&&!!t.altKey==!!e.altKey&&!!t.metaKey==!!e.metaKey)}function f(e){return e.trim().split(" ").map(function(e){return function(e){return 1===e.length?{combo:e,key:e,event:"keydown"}:e.split("+").reduce(function(e,t){var n=t.split(":"),i=n[0],o=n[1];return i in r?(e[r[i]]=!0,e.hasModifiers=!0):(e.key=i,e.event=o||"keydown"),e},{combo:e.split(":").shift()})}(e)})}var b={properties:{keyEventTarget:{type:Object,value:function(){return this}},stopKeyboardEventPropagation:{type:Boolean,value:!1},_boundKeyHandlers:{type:Array,value:function(){return[]}},_imperativeKeyBindings:{type:Object,value:function(){return{}}}},observers:["_resetKeyEventListeners(keyEventTarget, _boundKeyHandlers)"],keyBindings:{},registered:function(){this._prepKeyBindings()},attached:function(){this._listenKeyEventListeners()},detached:function(){this._unlistenKeyEventListeners()},addOwnKeyBinding:function(e,t){this._imperativeKeyBindings[e]=t,this._prepKeyBindings(),this._resetKeyEventListeners()},removeOwnKeyBindings:function(){this._imperativeKeyBindings={},this._prepKeyBindings(),this._resetKeyEventListeners()},keyboardEventMatchesKeys:function(e,t){for(var n=f(t),i=0;i2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;t!==n;){var o=t.nextSibling;e.insertBefore(t,i),t=o}},r=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;t!==n;){var i=t.nextSibling;e.removeChild(t),t=i}}},,function(e,t,n){"use strict";n(3),n(40);var i=n(5);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n"]);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content)},,,function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"c",function(){return r}),n.d(t,"a",function(){return a}),n.d(t,"b",function(){return s});var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function r(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=0;l--)(r=e[l])&&(s=(a<3?r(s):a>3?r(t,n,s):r(t,n))||s);return a>3&&s&&Object.defineProperty(t,n,s),s}},,,,function(e,t,n){"use strict";n.d(t,"b",function(){return f}),n.d(t,"a",function(){return b});var i=n(27),o=n(19);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e,t,n){return(s="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=l(e)););return e}(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n-1||n)&&-1===r.indexOf("--\x3e",a+1);var s=o.e.exec(r);t+=null===s?r+(n?h:o.g):r.substr(0,s.index)+s[1]+s[2]+o.b+s[3]+o.f}return t+=this.strings[e]}},{key:"getTemplateElement",value:function(){var e=document.createElement("template");return e.innerHTML=this.getHTML(),e}}]),e}(),b=function(e){function t(){return d(this,t),a(this,l(t).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,f),p(t,[{key:"getHTML",value:function(){return"".concat(s(l(t.prototype),"getHTML",this).call(this),"")}},{key:"getTemplateElement",value:function(){var e=s(l(t.prototype),"getTemplateElement",this).call(this),n=e.content,o=n.firstChild;return n.removeChild(o),Object(i.c)(n,o.firstChild),e}}]),t}()},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var i=n(19);function o(e){var t=r.get(e.type);void 0===t&&(t={stringsArray:new WeakMap,keyString:new Map},r.set(e.type,t));var n=t.stringsArray.get(e.strings);if(void 0!==n)return n;var o=e.strings.join(i.f);return void 0===(n=t.keyString.get(o))&&(n=new i.a(e,e.getTemplateElement()),t.keyString.set(o,n)),t.stringsArray.set(e.strings,n),n}var r=new Map},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"a",function(){return a});n(3),n(23);var i=n(24),o=n(7),r={properties:{pressed:{type:Boolean,readOnly:!0,value:!1,reflectToAttribute:!0,observer:"_pressedChanged"},toggles:{type:Boolean,value:!1,reflectToAttribute:!0},active:{type:Boolean,value:!1,notify:!0,reflectToAttribute:!0},pointerDown:{type:Boolean,readOnly:!0,value:!1},receivedFocusFromKeyboard:{type:Boolean,readOnly:!0},ariaActiveAttribute:{type:String,value:"aria-pressed",observer:"_ariaActiveAttributeChanged"}},listeners:{down:"_downHandler",up:"_upHandler",tap:"_tapHandler"},observers:["_focusChanged(focused)","_activeChanged(active, ariaActiveAttribute)"],keyBindings:{"enter:keydown":"_asyncClick","space:keydown":"_spaceKeyDownHandler","space:keyup":"_spaceKeyUpHandler"},_mouseEventRe:/^mouse/,_tapHandler:function(){this.toggles?this._userActivate(!this.active):this.active=!1},_focusChanged:function(e){this._detectKeyboardFocus(e),e||this._setPressed(!1)},_detectKeyboardFocus:function(e){this._setReceivedFocusFromKeyboard(!this.pointerDown&&e)},_userActivate:function(e){this.active!==e&&(this.active=e,this.fire("change"))},_downHandler:function(e){this._setPointerDown(!0),this._setPressed(!0),this._setReceivedFocusFromKeyboard(!1)},_upHandler:function(){this._setPointerDown(!1),this._setPressed(!1)},_spaceKeyDownHandler:function(e){var t=e.detail.keyboardEvent,n=Object(o.a)(t).localTarget;this.isLightDescendant(n)||(t.preventDefault(),t.stopImmediatePropagation(),this._setPressed(!0))},_spaceKeyUpHandler:function(e){var t=e.detail.keyboardEvent,n=Object(o.a)(t).localTarget;this.isLightDescendant(n)||(this.pressed&&this._asyncClick(),this._setPressed(!1))},_asyncClick:function(){this.async(function(){this.click()},1)},_pressedChanged:function(e){this._changedButtonState()},_ariaActiveAttributeChanged:function(e,t){t&&t!=e&&this.hasAttribute(t)&&this.removeAttribute(t)},_activeChanged:function(e,t){this.toggles?this.setAttribute(this.ariaActiveAttribute,e?"true":"false"):this.removeAttribute(this.ariaActiveAttribute),this._changedButtonState()},_controlStateChanged:function(){this.disabled?this._setPressed(!1):this._changedButtonState()},_changedButtonState:function(){this._buttonStateChanged&&this._buttonStateChanged()}},a=[i.a,r]},function(e,t,n){"use strict";n(3);var i=n(5);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n \n']);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content)},,function(e,t,n){"use strict";n(3),n(10);var i=n(6),o=n(5);function r(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n\n \n"]);return r=function(){return e},e}Object(i.a)({_template:Object(o.a)(r()),is:"app-toolbar"})},,,function(e,t,n){"use strict";n(3);var i=n(6),o=n(5);function r(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n
    [[_text]]
    \n']);return r=function(){return e},e}var a=Object(i.a)({_template:Object(o.a)(r()),is:"iron-a11y-announcer",properties:{mode:{type:String,value:"polite"},_text:{type:String,value:""}},created:function(){a.instance||(a.instance=this),document.body.addEventListener("iron-announce",this._onIronAnnounce.bind(this))},announce:function(e){this._text="",this.async(function(){this._text=e},100)},_onIronAnnounce:function(e){e.detail&&e.detail.text&&this.announce(e.detail.text)}});a.instance=null,a.requestAvailability=function(){a.instance||(a.instance=document.createElement("iron-a11y-announcer")),document.body.appendChild(a.instance)};var s=n(55),l=n(7);function c(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n \n']);return c=function(){return e},e}Object(i.a)({_template:Object(o.a)(c()),is:"iron-input",behaviors:[s.a],properties:{bindValue:{type:String,value:""},value:{type:String,computed:"_computeValue(bindValue)"},allowedPattern:{type:String},autoValidate:{type:Boolean,value:!1},_inputElement:Object},observers:["_bindValueChanged(bindValue, _inputElement)"],listeners:{input:"_onInput",keypress:"_onKeypress"},created:function(){a.requestAvailability(),this._previousValidInput="",this._patternAlreadyChecked=!1},attached:function(){this._observer=Object(l.a)(this).observeNodes(function(e){this._initSlottedInput()}.bind(this))},detached:function(){this._observer&&(Object(l.a)(this).unobserveNodes(this._observer),this._observer=null)},get inputElement(){return this._inputElement},_initSlottedInput:function(){this._inputElement=this.getEffectiveChildren()[0],this.inputElement&&this.inputElement.value&&(this.bindValue=this.inputElement.value),this.fire("iron-input-ready")},get _patternRegExp(){var e;if(this.allowedPattern)e=new RegExp(this.allowedPattern);else switch(this.inputElement.type){case"number":e=/[0-9.,e-]/}return e},_bindValueChanged:function(e,t){t&&(void 0===e?t.value=null:e!==t.value&&(this.inputElement.value=e),this.autoValidate&&this.validate(),this.fire("bind-value-changed",{value:e}))},_onInput:function(){this.allowedPattern&&!this._patternAlreadyChecked&&(this._checkPatternValidity()||(this._announceInvalidCharacter("Invalid string of characters not entered."),this.inputElement.value=this._previousValidInput));this.bindValue=this._previousValidInput=this.inputElement.value,this._patternAlreadyChecked=!1},_isPrintable:function(e){var t=8==e.keyCode||9==e.keyCode||13==e.keyCode||27==e.keyCode,n=19==e.keyCode||20==e.keyCode||45==e.keyCode||46==e.keyCode||144==e.keyCode||145==e.keyCode||e.keyCode>32&&e.keyCode<41||e.keyCode>111&&e.keyCode<124;return!(t||0==e.charCode&&n)},_onKeypress:function(e){if(this.allowedPattern||"number"===this.inputElement.type){var t=this._patternRegExp;if(t&&!(e.metaKey||e.ctrlKey||e.altKey)){this._patternAlreadyChecked=!0;var n=String.fromCharCode(e.charCode);this._isPrintable(e)&&!t.test(n)&&(e.preventDefault(),this._announceInvalidCharacter("Invalid character "+n+" not entered."))}}},_checkPatternValidity:function(){var e=this._patternRegExp;if(!e)return!0;for(var t=0;t\n :host {\n display: inline-block;\n float: right;\n\n @apply --paper-font-caption;\n @apply --paper-input-char-counter;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n :host(:dir(rtl)) {\n float: left;\n }\n \n\n [[_charCounterStr]]\n"]);return u=function(){return e},e}Object(i.a)({_template:Object(o.a)(u()),is:"paper-input-char-counter",behaviors:[d],properties:{_charCounterStr:{type:String,value:"0"}},update:function(e){if(e.inputElement){e.value=e.value||"";var t=e.value.toString().length.toString();e.inputElement.hasAttribute("maxlength")&&(t+="/"+e.inputElement.getAttribute("maxlength")),this._charCounterStr=t}}});n(10),n(11);var p=n(47);function h(){var e=b(['\n \n\n \n\n
    \n \n\n
    \n \n \n
    \n\n \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n']);return h=function(){return e},e}function f(){var e=b(['\n\n \n\n']);return f=function(){return e},e}function b(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var v=Object(o.a)(f());function m(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \x3c!--\n If the paper-input-error element is directly referenced by an\n `aria-describedby` attribute, such as when used as a paper-input add-on,\n then applying `visibility: hidden;` to the paper-input-error element itself\n does not hide the error.\n\n For more information, see:\n https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\n --\x3e\n
    \n \n
    \n'],['\n \n\n \x3c!--\n If the paper-input-error element is directly referenced by an\n \\`aria-describedby\\` attribute, such as when used as a paper-input add-on,\n then applying \\`visibility: hidden;\\` to the paper-input-error element itself\n does not hide the error.\n\n For more information, see:\n https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\n --\x3e\n
    \n \n
    \n']);return m=function(){return e},e}v.setAttribute("style","display: none;"),document.head.appendChild(v.content),Object(i.a)({_template:Object(o.a)(h()),is:"paper-input-container",properties:{noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},attrForValue:{type:String,value:"bind-value"},autoValidate:{type:Boolean,value:!1},invalid:{observer:"_invalidChanged",type:Boolean,value:!1},focused:{readOnly:!0,type:Boolean,value:!1,notify:!0},_addons:{type:Array},_inputHasContent:{type:Boolean,value:!1},_inputSelector:{type:String,value:"input,iron-input,textarea,.paper-input-input"},_boundOnFocus:{type:Function,value:function(){return this._onFocus.bind(this)}},_boundOnBlur:{type:Function,value:function(){return this._onBlur.bind(this)}},_boundOnInput:{type:Function,value:function(){return this._onInput.bind(this)}},_boundValueChanged:{type:Function,value:function(){return this._onValueChanged.bind(this)}}},listeners:{"addon-attached":"_onAddonAttached","iron-input-validate":"_onIronInputValidate"},get _valueChangedEvent(){return this.attrForValue+"-changed"},get _propertyForValue(){return Object(p.b)(this.attrForValue)},get _inputElement(){return Object(l.a)(this).querySelector(this._inputSelector)},get _inputElementValue(){return this._inputElement[this._propertyForValue]||this._inputElement.value},ready:function(){this.__isFirstValueUpdate=!0,this._addons||(this._addons=[]),this.addEventListener("focus",this._boundOnFocus,!0),this.addEventListener("blur",this._boundOnBlur,!0)},attached:function(){this.attrForValue?this._inputElement.addEventListener(this._valueChangedEvent,this._boundValueChanged):this.addEventListener("input",this._onInput),this._inputElementValue&&""!=this._inputElementValue?this._handleValueAndAutoValidate(this._inputElement):this._handleValue(this._inputElement)},_onAddonAttached:function(e){this._addons||(this._addons=[]);var t=e.target;-1===this._addons.indexOf(t)&&(this._addons.push(t),this.isAttached&&this._handleValue(this._inputElement))},_onFocus:function(){this._setFocused(!0)},_onBlur:function(){this._setFocused(!1),this._handleValueAndAutoValidate(this._inputElement)},_onInput:function(e){this._handleValueAndAutoValidate(e.target)},_onValueChanged:function(e){var t=e.target;this.__isFirstValueUpdate&&(this.__isFirstValueUpdate=!1,void 0===t.value||""===t.value)||this._handleValueAndAutoValidate(e.target)},_handleValue:function(e){var t=this._inputElementValue;t||0===t||"number"===e.type&&!e.checkValidity()?this._inputHasContent=!0:this._inputHasContent=!1,this.updateAddons({inputElement:e,value:t,invalid:this.invalid})},_handleValueAndAutoValidate:function(e){var t;this.autoValidate&&e&&(t=e.validate?e.validate(this._inputElementValue):e.checkValidity(),this.invalid=!t);this._handleValue(e)},_onIronInputValidate:function(e){this.invalid=this._inputElement.invalid},_invalidChanged:function(){this._addons&&this.updateAddons({invalid:this.invalid})},updateAddons:function(e){for(var t,n=0;t=this._addons[n];n++)t.update(e)},_computeInputContentClass:function(e,t,n,i,o){var r="input-content";if(e)o&&(r+=" label-is-hidden"),i&&(r+=" is-invalid");else{var a=this.querySelector("label");t||o?(r+=" label-is-floating",this.$.labelAndInputContainer.style.position="static",i?r+=" is-invalid":n&&(r+=" label-is-highlighted")):(a&&(this.$.labelAndInputContainer.style.position="relative"),i&&(r+=" is-invalid"))}return n&&(r+=" focused"),r},_computeUnderlineClass:function(e,t){var n="underline";return t?n+=" is-invalid":e&&(n+=" is-highlighted"),n},_computeAddOnContentClass:function(e,t){var n="add-on-content";return t?n+=" is-invalid":e&&(n+=" is-highlighted"),n}}),Object(i.a)({_template:Object(o.a)(m()),is:"paper-input-error",behaviors:[d],properties:{invalid:{readOnly:!0,reflectToAttribute:!0,type:Boolean}},update:function(e){this._setInvalid(e.invalid)}});var y=n(70),g=(n(61),n(24)),_=n(23),w=n(31),x={NextLabelID:1,NextAddonID:1,NextInputID:1},k={properties:{label:{type:String},value:{notify:!0,type:String},disabled:{type:Boolean,value:!1},invalid:{type:Boolean,value:!1,notify:!0},allowedPattern:{type:String},type:{type:String},list:{type:String},pattern:{type:String},required:{type:Boolean,value:!1},errorMessage:{type:String},charCounter:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},autoValidate:{type:Boolean,value:!1},validator:{type:String},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,observer:"_autofocusChanged"},inputmode:{type:String},minlength:{type:Number},maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},name:{type:String},placeholder:{type:String,value:""},readonly:{type:Boolean,value:!1},size:{type:Number},autocapitalize:{type:String,value:"none"},autocorrect:{type:String,value:"off"},autosave:{type:String},results:{type:Number},accept:{type:String},multiple:{type:Boolean},_ariaDescribedBy:{type:String,value:""},_ariaLabelledBy:{type:String,value:""},_inputId:{type:String,value:""}},listeners:{"addon-attached":"_onAddonAttached"},keyBindings:{"shift+tab:keydown":"_onShiftTabDown"},hostAttributes:{tabindex:0},get inputElement(){return this.$||(this.$={}),this.$.input||(this._generateInputId(),this.$.input=this.$$("#"+this._inputId)),this.$.input},get _focusableElement(){return this.inputElement},created:function(){this._typesThatHaveText=["date","datetime","datetime-local","month","time","week","file"]},attached:function(){this._updateAriaLabelledBy(),!w.a&&this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.inputElement.type)&&(this.alwaysFloatLabel=!0)},_appendStringWithSpace:function(e,t){return e=e?e+" "+t:t},_onAddonAttached:function(e){var t=Object(l.a)(e).rootTarget;if(t.id)this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,t.id);else{var n="paper-input-add-on-"+x.NextAddonID++;t.id=n,this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,n)}},validate:function(){return this.inputElement.validate()},_focusBlurHandler:function(e){_.a._focusBlurHandler.call(this,e),this.focused&&!this._shiftTabPressed&&this._focusableElement&&this._focusableElement.focus()},_onShiftTabDown:function(e){var t=this.getAttribute("tabindex");this._shiftTabPressed=!0,this.setAttribute("tabindex","-1"),this.async(function(){this.setAttribute("tabindex",t),this._shiftTabPressed=!1},1)},_handleAutoValidate:function(){this.autoValidate&&this.validate()},updateValueAndPreserveCaret:function(e){try{var t=this.inputElement.selectionStart;this.value=e,this.inputElement.selectionStart=t,this.inputElement.selectionEnd=t}catch(n){this.value=e}},_computeAlwaysFloatLabel:function(e,t){return t||e},_updateAriaLabelledBy:function(){var e,t=Object(l.a)(this.root).querySelector("label");t?(t.id?e=t.id:(e="paper-input-label-"+x.NextLabelID++,t.id=e),this._ariaLabelledBy=e):this._ariaLabelledBy=""},_generateInputId:function(){this._inputId&&""!==this._inputId||(this._inputId="input-"+x.NextInputID++)},_onChange:function(e){this.shadowRoot&&this.fire(e.type,{sourceEvent:e},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})},_autofocusChanged:function(){if(this.autofocus&&this._focusableElement){var e=document.activeElement;e instanceof HTMLElement&&e!==document.body&&e!==document.documentElement||this._focusableElement.focus()}}},S=[_.a,g.a,k];function C(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \n\n \n\n \n\n \x3c!-- Need to bind maxlength so that the paper-input-char-counter works correctly --\x3e\n \n \n \n\n \n\n \n\n \n\n \n ']);return C=function(){return e},e}Object(i.a)({is:"paper-input",_template:Object(o.a)(C()),behaviors:[S,y.a],properties:{value:{type:String}},get _focusableElement(){return this.inputElement._inputElement},listeners:{"iron-input-ready":"_onIronInputReady"},_onIronInputReady:function(){this.$.nativeInput||(this.$.nativeInput=this.$$("input")),this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.$.nativeInput.type)&&(this.alwaysFloatLabel=!0),this.inputElement.bindValue&&this.$.container._handleValueAndAutoValidate(this.inputElement)}})},,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r});var i=new WeakMap,o=function(e){return function(){var t=e.apply(void 0,arguments);return i.set(t,!0),t}},r=function(e){return"function"==typeof e&&i.has(e)}},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return o});var i={},o={}},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var i=n(27),o=n(19);function r(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");var n=t.committer,r=n.element;o.has(t)||(r.className=n.strings.join(" "));var a=r.classList,s=o.get(t);for(var l in s)l in e||a.remove(l);for(var c in e){var d=e[c];if(!s||d!==s[c])a[d?"add":"remove"](c)}o.set(t,e)}})},,function(e,t,n){"use strict";n.d(t,"a",function(){return r});n(3);var i=n(64),o=null,r={properties:{validator:{type:String},invalid:{notify:!0,reflectToAttribute:!0,type:Boolean,value:!1,observer:"_invalidChanged"}},registered:function(){o=new i.a({type:"validator"})},_invalidChanged:function(){this.invalid?this.setAttribute("aria-invalid","true"):this.removeAttribute("aria-invalid")},get _validator(){return o&&o.byKey(this.validator)},hasValidator:function(){return null!=this._validator},validate:function(e){return void 0===e&&void 0!==this.value?this.invalid=!this._getValidity(this.value):this.invalid=!this._getValidity(e),!this.invalid},_getValidity:function(e){return!this.hasValidator()||this._validator.validate(e)}}},,,,,,,,,,function(e,t,n){"use strict";n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s});n(3);var i=n(38),o=n(23),r=n(66),a={observers:["_focusedChanged(receivedFocusFromKeyboard)"],_focusedChanged:function(e){e&&this.ensureRipple(),this.hasRipple()&&(this._ripple.holdDown=e)},_createRipple:function(){var e=r.a._createRipple();return e.id="ink",e.setAttribute("center",""),e.classList.add("circle"),e}},s=[i.a,o.a,r.a,a]},function(e,t,n){"use strict";n.d(t,"a",function(){return r});n(3),n(89);var i=n(38),o=n(7),r={properties:{noink:{type:Boolean,observer:"_noinkChanged"},_rippleContainer:{type:Object}},_buttonStateChanged:function(){this.focused&&this.ensureRipple()},_downHandler:function(e){i.b._downHandler.call(this,e),this.pressed&&this.ensureRipple(e)},ensureRipple:function(e){if(!this.hasRipple()){this._ripple=this._createRipple(),this._ripple.noink=this.noink;var t=this._rippleContainer||this.root;if(t&&Object(o.a)(t).appendChild(this._ripple),e){var n=Object(o.a)(this._rippleContainer||this),i=Object(o.a)(e).rootTarget;n.deepContains(i)&&this._ripple.uiDownAction(e)}}},getRipple:function(){return this.ensureRipple(),this._ripple},hasRipple:function(){return Boolean(this._ripple)},_createRipple:function(){return document.createElement("paper-ripple")},_noinkChanged:function(e){this.hasRipple()&&(this._ripple.noink=e)}}},function(e,t,n){"use strict";n(3),n(40),n(94);var i=n(6),o=n(5),r=n(95);function a(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n']);return a=function(){return e},e}var s=Object(o.a)(a());s.setAttribute("strip-whitespace",""),Object(i.a)({_template:s,is:"paper-spinner-lite",behaviors:[r.a]})},function(e,t,n){"use strict";var i=function(e,t){return e.length===t.length&&e.every(function(e,n){return i=e,o=t[n],i===o;var i,o})};t.a=function(e,t){var n;void 0===t&&(t=i);var o,r=[],a=!1;return function(){for(var i=arguments.length,s=new Array(i),l=0;l-1&&(this._interestedResizables.splice(t,1),this._unsubscribeIronResize(e))},_subscribeIronResize:function(e){e.addEventListener("iron-resize",this._boundOnDescendantIronResize)},_unsubscribeIronResize:function(e){e.removeEventListener("iron-resize",this._boundOnDescendantIronResize)},resizerShouldNotify:function(e){return!0},_onDescendantIronResize:function(e){this._notifyingDescendant?e.stopPropagation():o.f||this._fireResize()},_fireResize:function(){this.fire("iron-resize",null,{node:this,bubbles:!1})},_onIronRequestResizeNotifications:function(e){var t=Object(i.a)(e).rootTarget;t!==this&&(t.assignParentResizable(this),this._notifyDescendant(t),e.stopPropagation())},_parentResizableChanged:function(e){e&&window.removeEventListener("resize",this._boundNotifyResize)},_notifyDescendant:function(e){this.isAttached&&(this._notifyingDescendant=!0,e.notifyResize(),this._notifyingDescendant=!1)},_requestResizeNotifications:function(){if(this.isAttached)if("loading"===document.readyState){var e=this._requestResizeNotifications.bind(this);document.addEventListener("readystatechange",function t(){document.removeEventListener("readystatechange",t),e()})}else this._findParent(),this._parentResizable?this._parentResizable._interestedResizables.forEach(function(e){e!==this&&e._findParent()},this):(r.forEach(function(e){e!==this&&e._findParent()},this),window.addEventListener("resize",this._boundNotifyResize),this.notifyResize())},_findParent:function(){this.assignParentResizable(null),this.fire("iron-request-resize-notifications",null,{node:this,bubbles:!0,cancelable:!0}),this._parentResizable?r.delete(this):r.add(this)}}},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(3);var i={properties:{name:{type:String},value:{notify:!0,type:String},required:{type:Boolean,value:!1}},attached:function(){},detached:function(){}}},function(e,t,n){"use strict";n.d(t,"a",function(){return a});n(3);var i=n(7),o=Element.prototype,r=o.matches||o.matchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector||o.webkitMatchesSelector,a={getTabbableNodes:function(e){var t=[];return this._collectTabbableNodes(e,t)?this._sortByTabIndex(t):t},isFocusable:function(e){return r.call(e,"input, select, textarea, button, object")?r.call(e,":not([disabled])"):r.call(e,"a[href], area[href], iframe, [tabindex], [contentEditable]")},isTabbable:function(e){return this.isFocusable(e)&&r.call(e,':not([tabindex="-1"])')&&this._isVisible(e)},_normalizedTabIndex:function(e){if(this.isFocusable(e)){var t=e.getAttribute("tabindex")||0;return Number(t)}return-1},_collectTabbableNodes:function(e,t){if(e.nodeType!==Node.ELEMENT_NODE||!this._isVisible(e))return!1;var n,o=e,r=this._normalizedTabIndex(o),a=r>0;r>=0&&t.push(o),n="content"===o.localName||"slot"===o.localName?Object(i.a)(o).getDistributedNodes():Object(i.a)(o.root||o).children;for(var s=0;s0&&t.length>0;)this._hasLowerTabOrder(e[0],t[0])?n.push(t.shift()):n.push(e.shift());return n.concat(e,t)},_hasLowerTabOrder:function(e,t){var n=Math.max(e.tabIndex,0),i=Math.max(t.tabIndex,0);return 0===n||0===i?i>n:n>i}}},,,,,function(e,t,n){"use strict";n(3);var i=n(7),o={properties:{sizingTarget:{type:Object,value:function(){return this}},fitInto:{type:Object,value:window},noOverlap:{type:Boolean},positionTarget:{type:Element},horizontalAlign:{type:String},verticalAlign:{type:String},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},autoFitOnAttach:{type:Boolean,value:!1},_fitInfo:{type:Object}},get _fitWidth(){return this.fitInto===window?this.fitInto.innerWidth:this.fitInto.getBoundingClientRect().width},get _fitHeight(){return this.fitInto===window?this.fitInto.innerHeight:this.fitInto.getBoundingClientRect().height},get _fitLeft(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().left},get _fitTop(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().top},get _defaultPositionTarget(){var e=Object(i.a)(this).parentNode;return e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(e=e.host),e},get _localeHorizontalAlign(){if(this._isRTL){if("right"===this.horizontalAlign)return"left";if("left"===this.horizontalAlign)return"right"}return this.horizontalAlign},get __shouldPosition(){return(this.horizontalAlign||this.verticalAlign)&&this.positionTarget},attached:function(){void 0===this._isRTL&&(this._isRTL="rtl"==window.getComputedStyle(this).direction),this.positionTarget=this.positionTarget||this._defaultPositionTarget,this.autoFitOnAttach&&("none"===window.getComputedStyle(this).display?setTimeout(function(){this.fit()}.bind(this)):(window.ShadyDOM&&ShadyDOM.flush(),this.fit()))},detached:function(){this.__deferredFit&&(clearTimeout(this.__deferredFit),this.__deferredFit=null)},fit:function(){this.position(),this.constrain(),this.center()},_discoverInfo:function(){if(!this._fitInfo){var e=window.getComputedStyle(this),t=window.getComputedStyle(this.sizingTarget);this._fitInfo={inlineStyle:{top:this.style.top||"",left:this.style.left||"",position:this.style.position||""},sizerInlineStyle:{maxWidth:this.sizingTarget.style.maxWidth||"",maxHeight:this.sizingTarget.style.maxHeight||"",boxSizing:this.sizingTarget.style.boxSizing||""},positionedBy:{vertically:"auto"!==e.top?"top":"auto"!==e.bottom?"bottom":null,horizontally:"auto"!==e.left?"left":"auto"!==e.right?"right":null},sizedBy:{height:"none"!==t.maxHeight,width:"none"!==t.maxWidth,minWidth:parseInt(t.minWidth,10)||0,minHeight:parseInt(t.minHeight,10)||0},margin:{top:parseInt(e.marginTop,10)||0,right:parseInt(e.marginRight,10)||0,bottom:parseInt(e.marginBottom,10)||0,left:parseInt(e.marginLeft,10)||0}}}},resetFit:function(){var e=this._fitInfo||{};for(var t in e.sizerInlineStyle)this.sizingTarget.style[t]=e.sizerInlineStyle[t];for(var t in e.inlineStyle)this.style[t]=e.inlineStyle[t];this._fitInfo=null},refit:function(){var e=this.sizingTarget.scrollLeft,t=this.sizingTarget.scrollTop;this.resetFit(),this.fit(),this.sizingTarget.scrollLeft=e,this.sizingTarget.scrollTop=t},position:function(){if(this.__shouldPosition){this._discoverInfo(),this.style.position="fixed",this.sizingTarget.style.boxSizing="border-box",this.style.left="0px",this.style.top="0px";var e=this.getBoundingClientRect(),t=this.__getNormalizedRect(this.positionTarget),n=this.__getNormalizedRect(this.fitInto),i=this._fitInfo.margin,o={width:e.width+i.left+i.right,height:e.height+i.top+i.bottom},r=this.__getPosition(this._localeHorizontalAlign,this.verticalAlign,o,e,t,n),a=r.left+i.left,s=r.top+i.top,l=Math.min(n.right-i.right,a+e.width),c=Math.min(n.bottom-i.bottom,s+e.height);a=Math.max(n.left+i.left,Math.min(a,l-this._fitInfo.sizedBy.minWidth)),s=Math.max(n.top+i.top,Math.min(s,c-this._fitInfo.sizedBy.minHeight)),this.sizingTarget.style.maxWidth=Math.max(l-a,this._fitInfo.sizedBy.minWidth)+"px",this.sizingTarget.style.maxHeight=Math.max(c-s,this._fitInfo.sizedBy.minHeight)+"px",this.style.left=a-e.left+"px",this.style.top=s-e.top+"px"}},constrain:function(){if(!this.__shouldPosition){this._discoverInfo();var e=this._fitInfo;e.positionedBy.vertically||(this.style.position="fixed",this.style.top="0px"),e.positionedBy.horizontally||(this.style.position="fixed",this.style.left="0px"),this.sizingTarget.style.boxSizing="border-box";var t=this.getBoundingClientRect();e.sizedBy.height||this.__sizeDimension(t,e.positionedBy.vertically,"top","bottom","Height"),e.sizedBy.width||this.__sizeDimension(t,e.positionedBy.horizontally,"left","right","Width")}},_sizeDimension:function(e,t,n,i,o){this.__sizeDimension(e,t,n,i,o)},__sizeDimension:function(e,t,n,i,o){var r=this._fitInfo,a=this.__getNormalizedRect(this.fitInto),s="Width"===o?a.width:a.height,l=t===i,c=l?s-e[i]:e[n],d=r.margin[l?n:i],u="offset"+o,p=this[u]-this.sizingTarget[u];this.sizingTarget.style["max"+o]=s-d-c-p+"px"},center:function(){if(!this.__shouldPosition){this._discoverInfo();var e=this._fitInfo.positionedBy;if(!e.vertically||!e.horizontally){this.style.position="fixed",e.vertically||(this.style.top="0px"),e.horizontally||(this.style.left="0px");var t=this.getBoundingClientRect(),n=this.__getNormalizedRect(this.fitInto);if(!e.vertically){var i=n.top-t.top+(n.height-t.height)/2;this.style.top=i+"px"}if(!e.horizontally){var o=n.left-t.left+(n.width-t.width)/2;this.style.left=o+"px"}}}},__getNormalizedRect:function(e){return e===document.documentElement||e===window?{top:0,left:0,width:window.innerWidth,height:window.innerHeight,right:window.innerWidth,bottom:window.innerHeight}:e.getBoundingClientRect()},__getOffscreenArea:function(e,t,n){var i=Math.min(0,e.top)+Math.min(0,n.bottom-(e.top+t.height)),o=Math.min(0,e.left)+Math.min(0,n.right-(e.left+t.width));return Math.abs(i)*t.width+Math.abs(o)*t.height},__getPosition:function(e,t,n,i,o,r){var a,s=[{verticalAlign:"top",horizontalAlign:"left",top:o.top+this.verticalOffset,left:o.left+this.horizontalOffset},{verticalAlign:"top",horizontalAlign:"right",top:o.top+this.verticalOffset,left:o.right-n.width-this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"left",top:o.bottom-n.height-this.verticalOffset,left:o.left+this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"right",top:o.bottom-n.height-this.verticalOffset,left:o.right-n.width-this.horizontalOffset}];if(this.noOverlap){for(var l=0,c=s.length;l\n :host {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--iron-overlay-backdrop-background-color, #000);\n opacity: 0;\n transition: opacity 0.2s;\n pointer-events: none;\n @apply --iron-overlay-backdrop;\n }\n\n :host(.opened) {\n opacity: var(--iron-overlay-backdrop-opacity, 0.6);\n pointer-events: auto;\n @apply --iron-overlay-backdrop-opened;\n }\n \n\n \n"]);return d=function(){return e},e}Object(l.a)({_template:Object(c.a)(d()),is:"iron-overlay-backdrop",properties:{opened:{reflectToAttribute:!0,type:Boolean,value:!1,observer:"_openedChanged"}},listeners:{transitionend:"_onTransitionend"},created:function(){this.__openedRaf=null},attached:function(){this.opened&&this._openedChanged(this.opened)},prepare:function(){this.opened&&!this.parentNode&&Object(i.a)(document.body).appendChild(this)},open:function(){this.opened=!0},close:function(){this.opened=!1},complete:function(){this.opened||this.parentNode!==document.body||Object(i.a)(this.parentNode).removeChild(this)},_onTransitionend:function(e){e&&e.target===this&&this.complete()},_openedChanged:function(e){if(e)this.prepare();else{var t=window.getComputedStyle(this);"0s"!==t.transitionDuration&&0!=t.opacity||this.complete()}this.isAttached&&(this.__openedRaf&&(window.cancelAnimationFrame(this.__openedRaf),this.__openedRaf=null),this.scrollTop=this.scrollTop,this.__openedRaf=window.requestAnimationFrame(function(){this.__openedRaf=null,this.toggleClass("opened",this.opened)}.bind(this)))}});var u=n(24),p=n(48),h=function(){this._overlays=[],this._minimumZ=101,this._backdropElement=null,p.a(document.documentElement,"tap",function(){}),document.addEventListener("tap",this._onCaptureClick.bind(this),!0),document.addEventListener("focus",this._onCaptureFocus.bind(this),!0),document.addEventListener("keydown",this._onCaptureKeyDown.bind(this),!0)};h.prototype={constructor:h,get backdropElement(){return this._backdropElement||(this._backdropElement=document.createElement("iron-overlay-backdrop")),this._backdropElement},get deepActiveElement(){var e=document.activeElement;for(e&&e instanceof Element!=!1||(e=document.body);e.root&&Object(i.a)(e.root).activeElement;)e=Object(i.a)(e.root).activeElement;return e},_bringOverlayAtIndexToFront:function(e){var t=this._overlays[e];if(t){var n=this._overlays.length-1,i=this._overlays[n];if(i&&this._shouldBeBehindOverlay(t,i)&&n--,!(e>=n)){var o=Math.max(this.currentOverlayZ(),this._minimumZ);for(this._getZ(t)<=o&&this._applyOverlayZ(t,o);e=0)return this._bringOverlayAtIndexToFront(t),void this.trackBackdrop();var n=this._overlays.length,i=this._overlays[n-1],o=Math.max(this._getZ(i),this._minimumZ),r=this._getZ(e);if(i&&this._shouldBeBehindOverlay(e,i)){this._applyOverlayZ(i,o),n--;var a=this._overlays[n-1];o=Math.max(this._getZ(a),this._minimumZ)}r<=o&&this._applyOverlayZ(e,o),this._overlays.splice(n,0,e),this.trackBackdrop()},removeOverlay:function(e){var t=this._overlays.indexOf(e);-1!==t&&(this._overlays.splice(t,1),this.trackBackdrop())},currentOverlay:function(){var e=this._overlays.length-1;return this._overlays[e]},currentOverlayZ:function(){return this._getZ(this.currentOverlay())},ensureMinimumZ:function(e){this._minimumZ=Math.max(this._minimumZ,e)},focusOverlay:function(){var e=this.currentOverlay();e&&e._applyFocus()},trackBackdrop:function(){var e=this._overlayWithBackdrop();(e||this._backdropElement)&&(this.backdropElement.style.zIndex=this._getZ(e)-1,this.backdropElement.opened=!!e,this.backdropElement.prepare())},getBackdrops:function(){for(var e=[],t=0;t=0;e--)if(this._overlays[e].withBackdrop)return this._overlays[e]},_getZ:function(e){var t=this._minimumZ;if(e){var n=Number(e.style.zIndex||window.getComputedStyle(e).zIndex);n==n&&(t=n)}return t},_setZ:function(e,t){e.style.zIndex=t},_applyOverlayZ:function(e,t){this._setZ(e,t+2)},_overlayInPath:function(e){e=e||[];for(var t=0;t=0||(0===k.length&&function(){f=f||function(e){e.cancelable&&function(e){var t=Object(i.a)(e).rootTarget;"touchmove"!==e.type&&y!==t&&(y=t,g=function(e){for(var t=[],n=e.indexOf(b),i=0;i<=n;i++)if(e[i].nodeType===Node.ELEMENT_NODE){var o=e[i],r=o.style;"scroll"!==r.overflow&&"auto"!==r.overflow&&(r=window.getComputedStyle(o)),"scroll"!==r.overflow&&"auto"!==r.overflow||t.push(o)}return t}(Object(i.a)(e).path));if(!g.length)return!0;if("touchstart"===e.type)return!1;var n=function(e){var t={deltaX:e.deltaX,deltaY:e.deltaY};if("deltaX"in e);else if("wheelDeltaX"in e&&"wheelDeltaY"in e)t.deltaX=-e.wheelDeltaX,t.deltaY=-e.wheelDeltaY;else if("wheelDelta"in e)t.deltaX=0,t.deltaY=-e.wheelDelta;else if("axis"in e)t.deltaX=1===e.axis?e.detail:0,t.deltaY=2===e.axis?e.detail:0;else if(e.targetTouches){var n=e.targetTouches[0];t.deltaX=m.pageX-n.pageX,t.deltaY=m.pageY-n.pageY}return t}(e);return!function(e,t,n){if(!t&&!n)return;for(var i=Math.abs(n)>=Math.abs(t),o=0;o0:r.scrollTop0:r.scrollLeft=0))switch(this.scrollAction){case"lock":this.__restoreScrollPosition();break;case"refit":this.__deraf("refit",this.refit);break;case"cancel":this.cancel(e)}},__saveScrollPosition:function(){document.scrollingElement?(this.__scrollTop=document.scrollingElement.scrollTop,this.__scrollLeft=document.scrollingElement.scrollLeft):(this.__scrollTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop),this.__scrollLeft=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft))},__restoreScrollPosition:function(){document.scrollingElement?(document.scrollingElement.scrollTop=this.__scrollTop,document.scrollingElement.scrollLeft=this.__scrollLeft):(document.documentElement.scrollTop=document.body.scrollTop=this.__scrollTop,document.documentElement.scrollLeft=document.body.scrollLeft=this.__scrollLeft)}},C=[o,r.a,S]},,,function(e,t,n){"use strict";n(3);var i=n(24),o=n(81),r={properties:{multi:{type:Boolean,value:!1,observer:"multiChanged"},selectedValues:{type:Array,notify:!0,value:function(){return[]}},selectedItems:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}}},observers:["_updateSelected(selectedValues.splices)"],select:function(e){this.multi?this._toggleSelected(e):this.selected=e},multiChanged:function(e){this._selection.multi=e,this._updateSelected()},get _shouldUpdateSelection(){return null!=this.selected||null!=this.selectedValues&&this.selectedValues.length},_updateAttrForSelected:function(){this.multi?this.selectedItems&&this.selectedItems.length>0&&(this.selectedValues=this.selectedItems.map(function(e){return this._indexToValue(this.indexOf(e))},this).filter(function(e){return null!=e},this)):o.a._updateAttrForSelected.apply(this)},_updateSelected:function(){this.multi?this._selectMulti(this.selectedValues):this._selectSelected(this.selected)},_selectMulti:function(e){e=e||[];var t=(this._valuesToItems(e)||[]).filter(function(e){return null!=e});this._selection.clear(t);for(var n=0;n=0}},{key:"setItemSelected",value:function(e,t){if(null!=e&&t!==this.isSelected(e)){if(t)this.selection.push(e);else{var n=this.selection.indexOf(e);n>=0&&this.selection.splice(n,1)}this.selectCallback&&this.selectCallback(e,t)}}},{key:"select",value:function(e){this.multi?this.toggle(e):this.get()!==e&&(this.setItemSelected(this.get(),!1),this.setItemSelected(e,!0))}},{key:"toggle",value:function(e){this.setItemSelected(e,!this.isSelected(e))}}])&&r(t.prototype,n),i&&r(t,i),e}();n.d(t,"a",function(){return s});var s={properties:{attrForSelected:{type:String,value:null},selected:{type:String,notify:!0},selectedItem:{type:Object,readOnly:!0,notify:!0},activateEvent:{type:String,value:"tap",observer:"_activateEventChanged"},selectable:String,selectedClass:{type:String,value:"iron-selected"},selectedAttribute:{type:String,value:null},fallbackSelection:{type:String,value:null},items:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}},_excludedLocalNames:{type:Object,value:function(){return{template:1,"dom-bind":1,"dom-if":1,"dom-repeat":1}}}},observers:["_updateAttrForSelected(attrForSelected)","_updateSelected(selected)","_checkFallback(fallbackSelection)"],created:function(){this._bindFilterItem=this._filterItem.bind(this),this._selection=new a(this._applySelection.bind(this))},attached:function(){this._observer=this._observeItems(this),this._addListener(this.activateEvent)},detached:function(){this._observer&&Object(i.a)(this).unobserveNodes(this._observer),this._removeListener(this.activateEvent)},indexOf:function(e){return this.items?this.items.indexOf(e):-1},select:function(e){this.selected=e},selectPrevious:function(){var e=this.items.length,t=e-1;void 0!==this.selected&&(t=(Number(this._valueToIndex(this.selected))-1+e)%e),this.selected=this._indexToValue(t)},selectNext:function(){var e=0;void 0!==this.selected&&(e=(Number(this._valueToIndex(this.selected))+1)%this.items.length),this.selected=this._indexToValue(e)},selectIndex:function(e){this.select(this._indexToValue(e))},forceSynchronousItemUpdate:function(){this._observer&&"function"==typeof this._observer.flush?this._observer.flush():this._updateItems()},get _shouldUpdateSelection(){return null!=this.selected},_checkFallback:function(){this._updateSelected()},_addListener:function(e){this.listen(this,e,"_activateHandler")},_removeListener:function(e){this.unlisten(this,e,"_activateHandler")},_activateEventChanged:function(e,t){this._removeListener(t),this._addListener(e)},_updateItems:function(){var e=Object(i.a)(this).queryDistributedElements(this.selectable||"*");e=Array.prototype.filter.call(e,this._bindFilterItem),this._setItems(e)},_updateAttrForSelected:function(){this.selectedItem&&(this.selected=this._valueForItem(this.selectedItem))},_updateSelected:function(){this._selectSelected(this.selected)},_selectSelected:function(e){if(this.items){var t=this._valueToItem(this.selected);t?this._selection.select(t):this._selection.clear(),this.fallbackSelection&&this.items.length&&void 0===this._selection.get()&&(this.selected=this.fallbackSelection)}},_filterItem:function(e){return!this._excludedLocalNames[e.localName]},_valueToItem:function(e){return null==e?null:this.items[this._valueToIndex(e)]},_valueToIndex:function(e){if(!this.attrForSelected)return Number(e);for(var t,n=0;t=this.items[n];n++)if(this._valueForItem(t)==e)return n},_indexToValue:function(e){if(!this.attrForSelected)return e;var t=this.items[e];return t?this._valueForItem(t):void 0},_valueForItem:function(e){if(!e)return null;if(!this.attrForSelected){var t=this.indexOf(e);return-1===t?null:t}var n=e[Object(o.b)(this.attrForSelected)];return null!=n?n:e.getAttribute(this.attrForSelected)},_applySelection:function(e,t){this.selectedClass&&this.toggleClass(this.selectedClass,t,e),this.selectedAttribute&&this.toggleAttribute(this.selectedAttribute,t,e),this._selectionChange(),this.fire("iron-"+(t?"select":"deselect"),{item:e})},_selectionChange:function(){this._setSelectedItem(this._selection.get())},_observeItems:function(e){return Object(i.a)(e).observeNodes(function(e){this._updateItems(),this._updateSelected(),this.fire("iron-items-changed",e,{bubbles:!1,cancelable:!1})})},_activateHandler:function(e){for(var t=e.target,n=this.items;t&&t!=this;){var i=n.indexOf(t);if(i>=0){var o=this._indexToValue(i);return void this._itemActivate(o,t)}t=t.parentNode}},_itemActivate:function(e,t){this.fire("iron-activate",{selected:e,item:t},{cancelable:!0}).defaultPrevented||this.select(e)}}},function(e,t,n){"use strict";n(3);var i={properties:{animationConfig:{type:Object},entryAnimation:{observer:"_entryAnimationChanged",type:String},exitAnimation:{observer:"_exitAnimationChanged",type:String}},_entryAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.entry=[{name:this.entryAnimation,node:this}]},_exitAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.exit=[{name:this.exitAnimation,node:this}]},_copyProperties:function(e,t){for(var n in t)e[n]=t[n]},_cloneConfig:function(e){var t={isClone:!0};return this._copyProperties(t,e),t},_getAnimationConfigRecursive:function(e,t,n){var i;if(this.animationConfig)if(this.animationConfig.value&&"function"==typeof this.animationConfig.value)this._warn(this._logf("playAnimation","Please put 'animationConfig' inside of your components 'properties' object instead of outside of it."));else if(i=e?this.animationConfig[e]:this.animationConfig,Array.isArray(i)||(i=[i]),i)for(var o,r=0;o=i[r];r++)if(o.animatable)o.animatable._getAnimationConfigRecursive(o.type||e,t,n);else if(o.id){var a=t[o.id];a?(a.isClone||(t[o.id]=this._cloneConfig(a),a=t[o.id]),this._copyProperties(a,o)):t[o.id]=o}else n.push(o)},getAnimationConfig:function(e){var t={},n=[];for(var i in this._getAnimationConfigRecursive(e,t,n),t)n.push(t[i]);return n}};n.d(t,"a",function(){return o});var o=[i,{_configureAnimations:function(e){var t=[],n=[];if(e.length>0)for(var i,o=0;i=e[o];o++){var r=document.createElement(i.name);if(r.isNeonAnimation){var a;r.configure||(r.configure=function(e){return null}),a=r.configure(i),n.push({result:a,config:i,neonAnimation:r})}else console.warn(this.is+":",i.name,"not found!")}for(var s=0;s\n :host {\n display: block;\n position: absolute;\n border-radius: inherit;\n overflow: hidden;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n /* See PolymerElements/paper-behaviors/issues/34. On non-Chrome browsers,\n * creating a node (with a position:absolute) in the middle of an event\n * handler "interrupts" that event handler (which happens when the\n * ripple is created on demand) */\n pointer-events: none;\n }\n\n :host([animating]) {\n /* This resolves a rendering issue in Chrome (as of 40) where the\n ripple is not properly clipped by its parent (which may have\n rounded corners). See: http://jsbin.com/temexa/4\n\n Note: We only apply this style conditionally. Otherwise, the browser\n will create a new compositing layer for every ripple element on the\n page, and that would be bad. */\n -webkit-transform: translate(0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n #background,\n #waves,\n .wave-container,\n .wave {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n #background,\n .wave {\n opacity: 0;\n }\n\n #waves,\n .wave {\n overflow: hidden;\n }\n\n .wave-container,\n .wave {\n border-radius: 50%;\n }\n\n :host(.circle) #background,\n :host(.circle) #waves {\n border-radius: 50%;\n }\n\n :host(.circle) .wave-container {\n overflow: hidden;\n }\n \n\n
    \n
    \n']);return s=function(){return e},e}var l={distance:function(e,t,n,i){var o=e-n,r=t-i;return Math.sqrt(o*o+r*r)},now:window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now};function c(e){this.element=e,this.width=this.boundingRect.width,this.height=this.boundingRect.height,this.size=Math.max(this.width,this.height)}function d(e){this.element=e,this.color=window.getComputedStyle(e).color,this.wave=document.createElement("div"),this.waveContainer=document.createElement("div"),this.wave.style.backgroundColor=this.color,this.wave.classList.add("wave"),this.waveContainer.classList.add("wave-container"),Object(r.a)(this.waveContainer).appendChild(this.wave),this.resetInteractionState()}c.prototype={get boundingRect(){return this.element.getBoundingClientRect()},furthestCornerDistanceFrom:function(e,t){var n=l.distance(e,t,0,0),i=l.distance(e,t,this.width,0),o=l.distance(e,t,0,this.height),r=l.distance(e,t,this.width,this.height);return Math.max(n,i,o,r)}},d.MAX_RADIUS=300,d.prototype={get recenters(){return this.element.recenters},get center(){return this.element.center},get mouseDownElapsed(){var e;return this.mouseDownStart?(e=l.now()-this.mouseDownStart,this.mouseUpStart&&(e-=this.mouseUpElapsed),e):0},get mouseUpElapsed(){return this.mouseUpStart?l.now()-this.mouseUpStart:0},get mouseDownElapsedSeconds(){return this.mouseDownElapsed/1e3},get mouseUpElapsedSeconds(){return this.mouseUpElapsed/1e3},get mouseInteractionSeconds(){return this.mouseDownElapsedSeconds+this.mouseUpElapsedSeconds},get initialOpacity(){return this.element.initialOpacity},get opacityDecayVelocity(){return this.element.opacityDecayVelocity},get radius(){var e=this.containerMetrics.width*this.containerMetrics.width,t=this.containerMetrics.height*this.containerMetrics.height,n=1.1*Math.min(Math.sqrt(e+t),d.MAX_RADIUS)+5,i=1.1-n/d.MAX_RADIUS*.2,o=this.mouseInteractionSeconds/i,r=n*(1-Math.pow(80,-o));return Math.abs(r)},get opacity(){return this.mouseUpStart?Math.max(0,this.initialOpacity-this.mouseUpElapsedSeconds*this.opacityDecayVelocity):this.initialOpacity},get outerOpacity(){var e=.3*this.mouseUpElapsedSeconds,t=this.opacity;return Math.max(0,Math.min(e,t))},get isOpacityFullyDecayed(){return this.opacity<.01&&this.radius>=Math.min(this.maxRadius,d.MAX_RADIUS)},get isRestingAtMaxRadius(){return this.opacity>=this.initialOpacity&&this.radius>=Math.min(this.maxRadius,d.MAX_RADIUS)},get isAnimationComplete(){return this.mouseUpStart?this.isOpacityFullyDecayed:this.isRestingAtMaxRadius},get translationFraction(){return Math.min(1,this.radius/this.containerMetrics.size*2/Math.sqrt(2))},get xNow(){return this.xEnd?this.xStart+this.translationFraction*(this.xEnd-this.xStart):this.xStart},get yNow(){return this.yEnd?this.yStart+this.translationFraction*(this.yEnd-this.yStart):this.yStart},get isMouseDown(){return this.mouseDownStart&&!this.mouseUpStart},resetInteractionState:function(){this.maxRadius=0,this.mouseDownStart=0,this.mouseUpStart=0,this.xStart=0,this.yStart=0,this.xEnd=0,this.yEnd=0,this.slideDistance=0,this.containerMetrics=new c(this.element)},draw:function(){var e,t,n;this.wave.style.opacity=this.opacity,e=this.radius/(this.containerMetrics.size/2),t=this.xNow-this.containerMetrics.width/2,n=this.yNow-this.containerMetrics.height/2,this.waveContainer.style.webkitTransform="translate("+t+"px, "+n+"px)",this.waveContainer.style.transform="translate3d("+t+"px, "+n+"px, 0)",this.wave.style.webkitTransform="scale("+e+","+e+")",this.wave.style.transform="scale3d("+e+","+e+",1)"},downAction:function(e){var t=this.containerMetrics.width/2,n=this.containerMetrics.height/2;this.resetInteractionState(),this.mouseDownStart=l.now(),this.center?(this.xStart=t,this.yStart=n,this.slideDistance=l.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)):(this.xStart=e?e.detail.x-this.containerMetrics.boundingRect.left:this.containerMetrics.width/2,this.yStart=e?e.detail.y-this.containerMetrics.boundingRect.top:this.containerMetrics.height/2),this.recenters&&(this.xEnd=t,this.yEnd=n,this.slideDistance=l.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)),this.maxRadius=this.containerMetrics.furthestCornerDistanceFrom(this.xStart,this.yStart),this.waveContainer.style.top=(this.containerMetrics.height-this.containerMetrics.size)/2+"px",this.waveContainer.style.left=(this.containerMetrics.width-this.containerMetrics.size)/2+"px",this.waveContainer.style.width=this.containerMetrics.size+"px",this.waveContainer.style.height=this.containerMetrics.size+"px"},upAction:function(e){this.isMouseDown&&(this.mouseUpStart=l.now())},remove:function(){Object(r.a)(this.waveContainer.parentNode).removeChild(this.waveContainer)}},Object(o.a)({_template:Object(a.a)(s()),is:"paper-ripple",behaviors:[i.a],properties:{initialOpacity:{type:Number,value:.25},opacityDecayVelocity:{type:Number,value:.8},recenters:{type:Boolean,value:!1},center:{type:Boolean,value:!1},ripples:{type:Array,value:function(){return[]}},animating:{type:Boolean,readOnly:!0,reflectToAttribute:!0,value:!1},holdDown:{type:Boolean,value:!1,observer:"_holdDownChanged"},noink:{type:Boolean,value:!1},_animating:{type:Boolean},_boundAnimate:{type:Function,value:function(){return this.animate.bind(this)}}},get target(){return this.keyEventTarget},keyBindings:{"enter:keydown":"_onEnterKeydown","space:keydown":"_onSpaceKeydown","space:keyup":"_onSpaceKeyup"},attached:function(){11==this.parentNode.nodeType?this.keyEventTarget=Object(r.a)(this).getOwnerRoot().host:this.keyEventTarget=this.parentNode;var e=this.keyEventTarget;this.listen(e,"up","uiUpAction"),this.listen(e,"down","uiDownAction")},detached:function(){this.unlisten(this.keyEventTarget,"up","uiUpAction"),this.unlisten(this.keyEventTarget,"down","uiDownAction"),this.keyEventTarget=null},get shouldKeepAnimating(){for(var e=0;e0||(this.addRipple().downAction(e),this._animating||(this._animating=!0,this.animate()))},uiUpAction:function(e){this.noink||this.upAction(e)},upAction:function(e){this.holdDown||(this.ripples.forEach(function(t){t.upAction(e)}),this._animating=!0,this.animate())},onAnimationComplete:function(){this._animating=!1,this.$.background.style.backgroundColor=null,this.fire("transitionend")},addRipple:function(){var e=new d(this);return Object(r.a)(this.$.waves).appendChild(e.waveContainer),this.$.background.style.backgroundColor=e.color,this.ripples.push(e),this._setAnimating(!0),e},removeRipple:function(e){var t=this.ripples.indexOf(e);t<0||(this.ripples.splice(t,1),e.remove(),this.ripples.length||this._setAnimating(!1))},animate:function(){if(this._animating){var e,t;for(e=0;e\n \n",document.head.appendChild(i.content)},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(3);var i={properties:{active:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"__activeChanged"},alt:{type:String,value:"loading",observer:"__altChanged"},__coolingDown:{type:Boolean,value:!1}},__computeContainerClasses:function(e,t){return[e||t?"active":"",t?"cooldown":""].join(" ")},__activeChanged:function(e,t){this.__setAriaHidden(!e),this.__coolingDown=!e&&t},__altChanged:function(e){"loading"===e?this.alt=this.getAttribute("aria-label")||e:(this.__setAriaHidden(""===e),this.setAttribute("aria-label",e))},__setAriaHidden:function(e){e?this.setAttribute("aria-hidden","true"):this.removeAttribute("aria-hidden")},__reset:function(){this.active=!1,this.__coolingDown=!1}}},function(e,t,n){"use strict";n(3),n(10);var i=n(6),o=n(7),r=n(5),a=n(97);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n\n
    \n \n
    \n
    \n'],['\n \n\n
    \n \n\n
    \n \n
    \n
    \n']);return s=function(){return e},e}Object(i.a)({_template:Object(r.a)(s()),is:"app-header-layout",behaviors:[a.a],properties:{hasScrollingRegion:{type:Boolean,value:!1,reflectToAttribute:!0}},observers:["resetLayout(isAttached, hasScrollingRegion)"],get header(){return Object(o.a)(this.$.headerSlot).getDistributedNodes()[0]},_updateLayoutStates:function(){var e=this.header;if(this.isAttached&&e){this.$.wrapper.classList.remove("initializing"),e.scrollTarget=this.hasScrollingRegion?this.$.contentContainer:this.ownerDocument.documentElement;var t=e.offsetHeight;this.hasScrollingRegion?(e.style.left="",e.style.right=""):requestAnimationFrame(function(){var t=this.getBoundingClientRect(),n=document.documentElement.clientWidth-t.right;e.style.left=t.left+"px",e.style.right=n+"px"}.bind(this));var n=this.$.contentContainer.style;e.fixed&&!e.condenses&&this.hasScrollingRegion?(n.marginTop=t+"px",n.paddingTop=""):(n.paddingTop=t+"px",n.marginTop="")}}})},function(e,t,n){"use strict";n.d(t,"a",function(){return l});n(3);var i=n(69),o=n(7),r=n(26),a=n(28),s=n(30),l=[i.a,{listeners:{"app-reset-layout":"_appResetLayoutHandler","iron-resize":"resetLayout"},attached:function(){this.fire("app-reset-layout")},_appResetLayoutHandler:function(e){Object(o.a)(e).path[0]!==this&&(this.resetLayout(),e.stopPropagation())},_updateLayoutStates:function(){console.error("unimplemented")},resetLayout:function(){var e=this._updateLayoutStates.bind(this);this._layoutDebouncer=a.a.debounce(this._layoutDebouncer,r.a,e),Object(s.a)(this._layoutDebouncer),this._notifyDescendantResize()},_notifyLayoutChanged:function(){var e=this;requestAnimationFrame(function(){e.fire("app-reset-layout")})},_notifyDescendantResize:function(){this.isAttached&&this._interestedResizables.forEach(function(e){this.resizerShouldNotify(e)&&this._notifyDescendant(e)},this)}}]},function(e,t,n){"use strict";n(3),n(10);var i=n(38),o=n(23),r=n(66),a=n(6),s=n(7),l=n(5);function c(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n
    \n']);return c=function(){return e},e}Object(a.a)({_template:Object(l.a)(c()),is:"paper-tab",behaviors:[o.a,i.a,r.a],properties:{link:{type:Boolean,value:!1,reflectToAttribute:!0}},hostAttributes:{role:"tab"},listeners:{down:"_updateNoink",tap:"_onTap"},attached:function(){this._updateNoink()},get _parentNoink(){var e=Object(s.a)(this).parentNode;return!!e&&!!e.noink},_updateNoink:function(){this.noink=!!this.noink||!!this._parentNoink},_onTap:function(e){if(this.link){var t=this.queryEffectiveChildren("a");if(!t)return;if(e.target===t)return;t.click()}}})},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});n(3);var i=n(79),o={hostAttributes:{role:"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},get _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:function(e){this._isRTL?this._focusNext():this._focusPrevious(),e.detail.keyboardEvent.preventDefault()},_onRightKey:function(e){this._isRTL?this._focusPrevious():this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up down left right esc")||this._focusWithKeyboardEvent(e)}},r=[i.a,o]},function(e,t,n){"use strict";n(3),n(11),n(10);var i=n(112),o=n(6),r=n(5),a=n(62);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n\n
    \n
    \n
    \n
    \n\n
    '],['\n\n\n
    \n
    \n
    \n
    \n\n
    ']);return s=function(){return e},e}var l=Object(r.a)(s());l.setAttribute("strip-whitespace",""),Object(o.a)({_template:l,is:"paper-radio-button",behaviors:[i.a],hostAttributes:{role:"radio","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},ready:function(){this._rippleContainer=this.$.radioContainer},attached:function(){Object(a.a)(this,function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-radio-button-ink-size").trim()){var e=parseFloat(this.getComputedStyleValue("--calculated-paper-radio-button-size").trim()),t=Math.floor(3*e);t%2!=e%2&&t++,this.updateStyles({"--paper-radio-button-ink-size":t+"px"})}})}})},,,,,,,function(e,t,n){"use strict";var i;function o(e,t){if(void 0===e&&(e=window),void 0===t&&(t=!1),void 0===i||t){var n=!1;try{e.document.addEventListener("test",function(){},{get passive(){return n=!0}})}catch(o){}i=n}return!!i&&{passive:!0}}function r(e,t){return(e.matches||e.webkitMatchesSelector||e.msMatchesSelector).call(e,t)}var a,s=n(32),l=n(90),c={BG_FOCUSED:"mdc-ripple-upgraded--background-focused",FG_ACTIVATION:"mdc-ripple-upgraded--foreground-activation",FG_DEACTIVATION:"mdc-ripple-upgraded--foreground-deactivation",ROOT:"mdc-ripple-upgraded",UNBOUNDED:"mdc-ripple-upgraded--unbounded"},d={VAR_FG_SCALE:"--mdc-ripple-fg-scale",VAR_FG_SIZE:"--mdc-ripple-fg-size",VAR_FG_TRANSLATE_END:"--mdc-ripple-fg-translate-end",VAR_FG_TRANSLATE_START:"--mdc-ripple-fg-translate-start",VAR_LEFT:"--mdc-ripple-left",VAR_TOP:"--mdc-ripple-top"},u={DEACTIVATION_TIMEOUT_MS:225,FG_DEACTIVATION_MS:150,INITIAL_ORIGIN_SCALE:.6,PADDING:10,TAP_DELAY_MS:300};var p=["touchstart","pointerdown","mousedown","keydown"],h=["touchend","pointerup","mouseup","contextmenu"],f=[],b=function(e){function t(n){var i=e.call(this,s.a({},t.defaultAdapter,n))||this;return i.activationAnimationHasEnded_=!1,i.activationTimer_=0,i.fgDeactivationRemovalTimer_=0,i.fgScale_="0",i.frame_={width:0,height:0},i.initialSize_=0,i.layoutFrame_=0,i.maxRadius_=0,i.unboundedCoords_={left:0,top:0},i.activationState_=i.defaultActivationState_(),i.activationTimerCallback_=function(){i.activationAnimationHasEnded_=!0,i.runDeactivationUXLogicIfReady_()},i.activateHandler_=function(e){return i.activate_(e)},i.deactivateHandler_=function(){return i.deactivate_()},i.focusHandler_=function(){return i.handleFocus()},i.blurHandler_=function(){return i.handleBlur()},i.resizeHandler_=function(){return i.layout()},i}return s.c(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return d},enumerable:!0,configurable:!0}),Object.defineProperty(t,"numbers",{get:function(){return u},enumerable:!0,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},browserSupportsCssVars:function(){return!0},computeBoundingRect:function(){return{top:0,right:0,bottom:0,left:0,width:0,height:0}},containsEventTarget:function(){return!0},deregisterDocumentInteractionHandler:function(){},deregisterInteractionHandler:function(){},deregisterResizeHandler:function(){},getWindowPageOffset:function(){return{x:0,y:0}},isSurfaceActive:function(){return!0},isSurfaceDisabled:function(){return!0},isUnbounded:function(){return!0},registerDocumentInteractionHandler:function(){},registerInteractionHandler:function(){},registerResizeHandler:function(){},removeClass:function(){},updateCssVariable:function(){}}},enumerable:!0,configurable:!0}),t.prototype.init=function(){var e=this,n=this.supportsPressRipple_();if(this.registerRootHandlers_(n),n){var i=t.cssClasses,o=i.ROOT,r=i.UNBOUNDED;requestAnimationFrame(function(){e.adapter_.addClass(o),e.adapter_.isUnbounded()&&(e.adapter_.addClass(r),e.layoutInternal_())})}},t.prototype.destroy=function(){var e=this;if(this.supportsPressRipple_()){this.activationTimer_&&(clearTimeout(this.activationTimer_),this.activationTimer_=0,this.adapter_.removeClass(t.cssClasses.FG_ACTIVATION)),this.fgDeactivationRemovalTimer_&&(clearTimeout(this.fgDeactivationRemovalTimer_),this.fgDeactivationRemovalTimer_=0,this.adapter_.removeClass(t.cssClasses.FG_DEACTIVATION));var n=t.cssClasses,i=n.ROOT,o=n.UNBOUNDED;requestAnimationFrame(function(){e.adapter_.removeClass(i),e.adapter_.removeClass(o),e.removeCssVars_()})}this.deregisterRootHandlers_(),this.deregisterDeactivationHandlers_()},t.prototype.activate=function(e){this.activate_(e)},t.prototype.deactivate=function(){this.deactivate_()},t.prototype.layout=function(){var e=this;this.layoutFrame_&&cancelAnimationFrame(this.layoutFrame_),this.layoutFrame_=requestAnimationFrame(function(){e.layoutInternal_(),e.layoutFrame_=0})},t.prototype.setUnbounded=function(e){var n=t.cssClasses.UNBOUNDED;e?this.adapter_.addClass(n):this.adapter_.removeClass(n)},t.prototype.handleFocus=function(){var e=this;requestAnimationFrame(function(){return e.adapter_.addClass(t.cssClasses.BG_FOCUSED)})},t.prototype.handleBlur=function(){var e=this;requestAnimationFrame(function(){return e.adapter_.removeClass(t.cssClasses.BG_FOCUSED)})},t.prototype.supportsPressRipple_=function(){return this.adapter_.browserSupportsCssVars()},t.prototype.defaultActivationState_=function(){return{activationEvent:void 0,hasDeactivationUXRun:!1,isActivated:!1,isProgrammatic:!1,wasActivatedByPointer:!1,wasElementMadeActive:!1}},t.prototype.registerRootHandlers_=function(e){var t=this;e&&(p.forEach(function(e){t.adapter_.registerInteractionHandler(e,t.activateHandler_)}),this.adapter_.isUnbounded()&&this.adapter_.registerResizeHandler(this.resizeHandler_)),this.adapter_.registerInteractionHandler("focus",this.focusHandler_),this.adapter_.registerInteractionHandler("blur",this.blurHandler_)},t.prototype.registerDeactivationHandlers_=function(e){var t=this;"keydown"===e.type?this.adapter_.registerInteractionHandler("keyup",this.deactivateHandler_):h.forEach(function(e){t.adapter_.registerDocumentInteractionHandler(e,t.deactivateHandler_)})},t.prototype.deregisterRootHandlers_=function(){var e=this;p.forEach(function(t){e.adapter_.deregisterInteractionHandler(t,e.activateHandler_)}),this.adapter_.deregisterInteractionHandler("focus",this.focusHandler_),this.adapter_.deregisterInteractionHandler("blur",this.blurHandler_),this.adapter_.isUnbounded()&&this.adapter_.deregisterResizeHandler(this.resizeHandler_)},t.prototype.deregisterDeactivationHandlers_=function(){var e=this;this.adapter_.deregisterInteractionHandler("keyup",this.deactivateHandler_),h.forEach(function(t){e.adapter_.deregisterDocumentInteractionHandler(t,e.deactivateHandler_)})},t.prototype.removeCssVars_=function(){var e=this,n=t.strings;Object.keys(n).forEach(function(t){0===t.indexOf("VAR_")&&e.adapter_.updateCssVariable(n[t],null)})},t.prototype.activate_=function(e){var t=this;if(!this.adapter_.isSurfaceDisabled()){var n=this.activationState_;if(!n.isActivated){var i=this.previousActivationEvent_;if(!(i&&void 0!==e&&i.type!==e.type))n.isActivated=!0,n.isProgrammatic=void 0===e,n.activationEvent=e,n.wasActivatedByPointer=!n.isProgrammatic&&(void 0!==e&&("mousedown"===e.type||"touchstart"===e.type||"pointerdown"===e.type)),void 0!==e&&f.length>0&&f.some(function(e){return t.adapter_.containsEventTarget(e)})?this.resetActivationState_():(void 0!==e&&(f.push(e.target),this.registerDeactivationHandlers_(e)),n.wasElementMadeActive=this.checkElementMadeActive_(e),n.wasElementMadeActive&&this.animateActivation_(),requestAnimationFrame(function(){f=[],n.wasElementMadeActive||void 0===e||" "!==e.key&&32!==e.keyCode||(n.wasElementMadeActive=t.checkElementMadeActive_(e),n.wasElementMadeActive&&t.animateActivation_()),n.wasElementMadeActive||(t.activationState_=t.defaultActivationState_())}))}}},t.prototype.checkElementMadeActive_=function(e){return void 0===e||"keydown"!==e.type||this.adapter_.isSurfaceActive()},t.prototype.animateActivation_=function(){var e=this,n=t.strings,i=n.VAR_FG_TRANSLATE_START,o=n.VAR_FG_TRANSLATE_END,r=t.cssClasses,a=r.FG_DEACTIVATION,s=r.FG_ACTIVATION,l=t.numbers.DEACTIVATION_TIMEOUT_MS;this.layoutInternal_();var c="",d="";if(!this.adapter_.isUnbounded()){var u=this.getFgTranslationCoordinates_(),p=u.startPoint,h=u.endPoint;c=p.x+"px, "+p.y+"px",d=h.x+"px, "+h.y+"px"}this.adapter_.updateCssVariable(i,c),this.adapter_.updateCssVariable(o,d),clearTimeout(this.activationTimer_),clearTimeout(this.fgDeactivationRemovalTimer_),this.rmBoundedActivationClasses_(),this.adapter_.removeClass(a),this.adapter_.computeBoundingRect(),this.adapter_.addClass(s),this.activationTimer_=setTimeout(function(){return e.activationTimerCallback_()},l)},t.prototype.getFgTranslationCoordinates_=function(){var e,t=this.activationState_,n=t.activationEvent;return{startPoint:e={x:(e=t.wasActivatedByPointer?function(e,t,n){if(!e)return{x:0,y:0};var i,o,r=t.x,a=t.y,s=r+n.left,l=a+n.top;if("touchstart"===e.type){var c=e;i=c.changedTouches[0].pageX-s,o=c.changedTouches[0].pageY-l}else{var d=e;i=d.pageX-s,o=d.pageY-l}return{x:i,y:o}}(n,this.adapter_.getWindowPageOffset(),this.adapter_.computeBoundingRect()):{x:this.frame_.width/2,y:this.frame_.height/2}).x-this.initialSize_/2,y:e.y-this.initialSize_/2},endPoint:{x:this.frame_.width/2-this.initialSize_/2,y:this.frame_.height/2-this.initialSize_/2}}},t.prototype.runDeactivationUXLogicIfReady_=function(){var e=this,n=t.cssClasses.FG_DEACTIVATION,i=this.activationState_,o=i.hasDeactivationUXRun,r=i.isActivated;(o||!r)&&this.activationAnimationHasEnded_&&(this.rmBoundedActivationClasses_(),this.adapter_.addClass(n),this.fgDeactivationRemovalTimer_=setTimeout(function(){e.adapter_.removeClass(n)},u.FG_DEACTIVATION_MS))},t.prototype.rmBoundedActivationClasses_=function(){var e=t.cssClasses.FG_ACTIVATION;this.adapter_.removeClass(e),this.activationAnimationHasEnded_=!1,this.adapter_.computeBoundingRect()},t.prototype.resetActivationState_=function(){var e=this;this.previousActivationEvent_=this.activationState_.activationEvent,this.activationState_=this.defaultActivationState_(),setTimeout(function(){return e.previousActivationEvent_=void 0},t.numbers.TAP_DELAY_MS)},t.prototype.deactivate_=function(){var e=this,t=this.activationState_;if(t.isActivated){var n=s.a({},t);t.isProgrammatic?(requestAnimationFrame(function(){return e.animateDeactivation_(n)}),this.resetActivationState_()):(this.deregisterDeactivationHandlers_(),requestAnimationFrame(function(){e.activationState_.hasDeactivationUXRun=!0,e.animateDeactivation_(n),e.resetActivationState_()}))}},t.prototype.animateDeactivation_=function(e){var t=e.wasActivatedByPointer,n=e.wasElementMadeActive;(t||n)&&this.runDeactivationUXLogicIfReady_()},t.prototype.layoutInternal_=function(){var e=this;this.frame_=this.adapter_.computeBoundingRect();var n=Math.max(this.frame_.height,this.frame_.width);this.maxRadius_=this.adapter_.isUnbounded()?n:Math.sqrt(Math.pow(e.frame_.width,2)+Math.pow(e.frame_.height,2))+t.numbers.PADDING,this.initialSize_=Math.floor(n*t.numbers.INITIAL_ORIGIN_SCALE),this.fgScale_=""+this.maxRadius_/this.initialSize_,this.updateLayoutCssVars_()},t.prototype.updateLayoutCssVars_=function(){var e=t.strings,n=e.VAR_FG_SIZE,i=e.VAR_LEFT,o=e.VAR_TOP,r=e.VAR_FG_SCALE;this.adapter_.updateCssVariable(n,this.initialSize_+"px"),this.adapter_.updateCssVariable(r,this.fgScale_),this.adapter_.isUnbounded()&&(this.unboundedCoords_={left:Math.round(this.frame_.width/2-this.initialSize_/2),top:Math.round(this.frame_.height/2-this.initialSize_/2)},this.adapter_.updateCssVariable(i,this.unboundedCoords_.left+"px"),this.adapter_.updateCssVariable(o,this.unboundedCoords_.top+"px"))},t}(l.a),v=n(13),m=n(4);function y(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}"]);return y=function(){return e},e}var g=Object(m.c)(y());n.d(t,"a",function(){return C});var _=function(e,t){void 0===t&&(t=!1);var n=e.CSS,i=a;if("boolean"==typeof a&&!t)return a;if(!n||"function"!=typeof n.supports)return!1;var o=n.supports("--css-vars","yes"),r=n.supports("(--css-vars: yes)")&&n.supports("color","#00000000");return i=!(!o&&!r||function(e){var t=e.document,n=t.createElement("div");n.className="mdc-ripple-surface--test-edge-var-bug",t.head.appendChild(n);var i=e.getComputedStyle(n),o=null!==i&&"solid"===i.borderTopStyle;return n.parentNode&&n.parentNode.removeChild(n),o}(e)),t||(a=i),i}(window),w=navigator.userAgent.match(/Safari/),x=!1,k=function(e){w&&!x&&function(){x=!0;var e=new v.b({templateFactory:v.k});e.appendInto(document.head),e.setValue(g),e.commit()}();var t=e.surfaceNode,n=e.interactionNode||t;n.getRootNode()!==t.getRootNode()&&""===n.style.position&&(n.style.position="relative");var i=new b({browserSupportsCssVars:function(){return _},isUnbounded:function(){return void 0===e.unbounded||e.unbounded},isSurfaceActive:function(){return r(n,":active")},isSurfaceDisabled:function(){return Boolean(e.disabled)},addClass:function(e){return t.classList.add(e)},removeClass:function(e){return t.classList.remove(e)},containsEventTarget:function(e){return n.contains(e)},registerInteractionHandler:function(e,t){return n.addEventListener(e,t,o())},deregisterInteractionHandler:function(e,t){return n.removeEventListener(e,t,o())},registerDocumentInteractionHandler:function(e,t){return document.documentElement.addEventListener(e,t,o())},deregisterDocumentInteractionHandler:function(e,t){return document.documentElement.removeEventListener(e,t,o())},registerResizeHandler:function(e){return window.addEventListener("resize",e)},deregisterResizeHandler:function(e){return window.removeEventListener("resize",e)},updateCssVariable:function(e,n){return t.style.setProperty(e,n)},computeBoundingRect:function(){return t.getBoundingClientRect()},getWindowPageOffset:function(){return{x:window.pageXOffset,y:window.pageYOffset}}});return i.init(),i},S=new WeakMap,C=Object(v.f)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.committer.element,i=e.interactionNode||n,o=t.value,r=S.get(o);void 0!==r&&r!==i&&(o.destroy(),o=v.h),o===v.h?(o=k(Object.assign({},e,{surfaceNode:n})),S.set(o,i),t.setValue(o)):(void 0!==e.unbounded&&o.setUnbounded(e.unbounded),void 0!==e.disabled&&o.setUnbounded(e.disabled)),!0===e.active?o.activate():!1===e.active&&o.deactivate()}})},function(e,t,n){"use strict";n(3);var i=n(24),o=n(23),r=n(76),a=n(82),s=n(6),l=n(7),c=n(5);function d(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n
    \n']);return d=function(){return e},e}Object(s.a)({_template:Object(c.a)(d()),is:"iron-dropdown",behaviors:[o.a,i.a,r.a,a.a],properties:{horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},openAnimationConfig:{type:Object},closeAnimationConfig:{type:Object},focusTarget:{type:Object},noAnimations:{type:Boolean,value:!1},allowOutsideScroll:{type:Boolean,value:!1,observer:"_allowOutsideScrollChanged"}},listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},observers:["_updateOverlayPosition(positionTarget, verticalAlign, horizontalAlign, verticalOffset, horizontalOffset)"],get containedElement(){for(var e=Object(l.a)(this.$.content).getDistributedNodes(),t=0,n=e.length;t\n :host {\n display: inline-block;\n position: relative;\n padding: 8px;\n outline: none;\n\n @apply --paper-menu-button;\n }\n\n :host([disabled]) {\n cursor: auto;\n color: var(--disabled-text-color);\n\n @apply --paper-menu-button-disabled;\n }\n\n iron-dropdown {\n @apply --paper-menu-button-dropdown;\n }\n\n .dropdown-content {\n @apply --shadow-elevation-2dp;\n\n position: relative;\n border-radius: 2px;\n background-color: var(--paper-menu-button-dropdown-background, var(--primary-background-color));\n\n @apply --paper-menu-button-content;\n }\n\n :host([vertical-align="top"]) .dropdown-content {\n margin-bottom: 20px;\n margin-top: -10px;\n top: 10px;\n }\n\n :host([vertical-align="bottom"]) .dropdown-content {\n bottom: 10px;\n margin-bottom: -10px;\n margin-top: 20px;\n }\n\n #trigger {\n cursor: pointer;\n }\n \n\n
    \n \n
    \n\n \n \n \n']);return p=function(){return e},e}Object(s.a)({is:"paper-menu-grow-height-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().height;return this._effect=new KeyframeEffect(t,[{height:n/2+"px"},{height:n+"px"}],this.timingFromConfig(e)),this._effect}}),Object(s.a)({is:"paper-menu-grow-width-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().width;return this._effect=new KeyframeEffect(t,[{width:n/2+"px"},{width:n+"px"}],this.timingFromConfig(e)),this._effect}}),Object(s.a)({is:"paper-menu-shrink-width-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().width;return this._effect=new KeyframeEffect(t,[{width:n+"px"},{width:n-n/20+"px"}],this.timingFromConfig(e)),this._effect}}),Object(s.a)({is:"paper-menu-shrink-height-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().height;return this.setPrefixedProperty(t,"transformOrigin","0 0"),this._effect=new KeyframeEffect(t,[{height:n+"px",transform:"translateY(0)"},{height:n/2+"px",transform:"translateY(-20px)"}],this.timingFromConfig(e)),this._effect}});var h={ANIMATION_CUBIC_BEZIER:"cubic-bezier(.3,.95,.5,1)",MAX_ANIMATION_TIME_MS:400},f=Object(s.a)({_template:Object(c.a)(p()),is:"paper-menu-button",behaviors:[i.a,o.a],properties:{opened:{type:Boolean,value:!1,notify:!0,observer:"_openedChanged"},horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},noOverlap:{type:Boolean},noAnimations:{type:Boolean,value:!1},ignoreSelect:{type:Boolean,value:!1},closeOnActivate:{type:Boolean,value:!1},openAnimationConfig:{type:Object,value:function(){return[{name:"fade-in-animation",timing:{delay:100,duration:200}},{name:"paper-menu-grow-width-animation",timing:{delay:100,duration:150,easing:h.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-grow-height-animation",timing:{delay:100,duration:275,easing:h.ANIMATION_CUBIC_BEZIER}}]}},closeAnimationConfig:{type:Object,value:function(){return[{name:"fade-out-animation",timing:{duration:150}},{name:"paper-menu-shrink-width-animation",timing:{delay:100,duration:50,easing:h.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-shrink-height-animation",timing:{duration:200,easing:"ease-in"}}]}},allowOutsideScroll:{type:Boolean,value:!1},restoreFocusOnClose:{type:Boolean,value:!0},_dropdownContent:{type:Object}},hostAttributes:{role:"group","aria-haspopup":"true"},listeners:{"iron-activate":"_onIronActivate","iron-select":"_onIronSelect"},get contentElement(){for(var e=Object(l.a)(this.$.content).getDistributedNodes(),t=0,n=e.length;t-1&&e.preventDefault()}});Object.keys(h).forEach(function(e){f[e]=h[e]})},function(e,t,n){"use strict";n(3),n(10);var i=n(6),o=n(7),r=n(5),a=n(97);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var l={properties:{scrollTarget:{type:HTMLElement,value:function(){return this._defaultScrollTarget}}},observers:["_scrollTargetChanged(scrollTarget, isAttached)"],_shouldHaveListener:!0,_scrollTargetChanged:function(e,t){if(this._oldScrollTarget&&(this._toggleScrollListener(!1,this._oldScrollTarget),this._oldScrollTarget=null),t)if("document"===e)this.scrollTarget=this._doc;else if("string"==typeof e){var n=this.domHost;this.scrollTarget=n&&n.$?n.$[e]:Object(o.a)(this.ownerDocument).querySelector("#"+e)}else this._isValidScrollTarget()&&(this._oldScrollTarget=e,this._toggleScrollListener(this._shouldHaveListener,e))},_scrollHandler:function(){},get _defaultScrollTarget(){return this._doc},get _doc(){return this.ownerDocument.documentElement},get _scrollTop(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageYOffset:this.scrollTarget.scrollTop:0},get _scrollLeft(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageXOffset:this.scrollTarget.scrollLeft:0},set _scrollTop(e){this.scrollTarget===this._doc?window.scrollTo(window.pageXOffset,e):this._isValidScrollTarget()&&(this.scrollTarget.scrollTop=e)},set _scrollLeft(e){this.scrollTarget===this._doc?window.scrollTo(e,window.pageYOffset):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=e)},scroll:function(e,t){var n;"object"===s(e)?(n=e.left,t=e.top):n=e,n=n||0,t=t||0,this.scrollTarget===this._doc?window.scrollTo(n,t):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=n,this.scrollTarget.scrollTop=t)},get _scrollTargetWidth(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerWidth:this.scrollTarget.offsetWidth:0},get _scrollTargetHeight(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerHeight:this.scrollTarget.offsetHeight:0},_isValidScrollTarget:function(){return this.scrollTarget instanceof HTMLElement},_toggleScrollListener:function(e,t){var n=t===this._doc?window:t;e?this._boundScrollHandler||(this._boundScrollHandler=this._scrollHandler.bind(this),n.addEventListener("scroll",this._boundScrollHandler)):this._boundScrollHandler&&(n.removeEventListener("scroll",this._boundScrollHandler),this._boundScrollHandler=null)},toggleScrollListener:function(e){this._shouldHaveListener=e,this._toggleScrollListener(e,this.scrollTarget)}},c={},d=[l,{properties:{effects:{type:String},effectsConfig:{type:Object,value:function(){return{}}},disabled:{type:Boolean,reflectToAttribute:!0,value:!1},threshold:{type:Number,value:0},thresholdTriggered:{type:Boolean,notify:!0,readOnly:!0,reflectToAttribute:!0}},observers:["_effectsChanged(effects, effectsConfig, isAttached)"],_updateScrollState:function(e){},isOnScreen:function(){return!1},isContentBelow:function(){return!1},_effectsRunFn:null,_effects:null,get _clampedScrollTop(){return Math.max(0,this._scrollTop)},attached:function(){this._scrollStateChanged()},detached:function(){this._tearDownEffects()},createEffect:function(e,t){var n=c[e];if(!n)throw new ReferenceError(this._getUndefinedMsg(e));var i=this._boundEffect(n,t||{});return i.setUp(),i},_effectsChanged:function(e,t,n){this._tearDownEffects(),e&&n&&(e.split(" ").forEach(function(e){var n;""!==e&&((n=c[e])?this._effects.push(this._boundEffect(n,t[e])):console.warn(this._getUndefinedMsg(e)))},this),this._setUpEffect())},_layoutIfDirty:function(){return this.offsetWidth},_boundEffect:function(e,t){t=t||{};var n=parseFloat(t.startsAt||0),i=parseFloat(t.endsAt||1),o=i-n,r=function(){},a=0===n&&1===i?e.run:function(t,i){e.run.call(this,Math.max(0,(t-n)/o),i)};return{setUp:e.setUp?e.setUp.bind(this,t):r,run:e.run?a.bind(this):r,tearDown:e.tearDown?e.tearDown.bind(this):r}},_setUpEffect:function(){this.isAttached&&this._effects&&(this._effectsRunFn=[],this._effects.forEach(function(e){!1!==e.setUp()&&this._effectsRunFn.push(e.run)},this))},_tearDownEffects:function(){this._effects&&this._effects.forEach(function(e){e.tearDown()}),this._effectsRunFn=[],this._effects=[]},_runEffects:function(e,t){this._effectsRunFn&&this._effectsRunFn.forEach(function(n){n(e,t)})},_scrollHandler:function(){this._scrollStateChanged()},_scrollStateChanged:function(){if(!this.disabled){var e=this._clampedScrollTop;this._updateScrollState(e),this.threshold>0&&this._setThresholdTriggered(e>=this.threshold)}},_getDOMRef:function(e){console.warn("_getDOMRef","`"+e+"` is undefined")},_getUndefinedMsg:function(e){return"Scroll effect `"+e+"` is undefined. Did you forget to import app-layout/app-scroll-effects/effects/"+e+".html ?"}}];function u(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n
    \n \n
    \n']);return u=function(){return e},e}Object(i.a)({_template:Object(r.a)(u()),is:"app-header",behaviors:[d,a.a],properties:{condenses:{type:Boolean,value:!1},fixed:{type:Boolean,value:!1},reveals:{type:Boolean,value:!1},shadow:{type:Boolean,reflectToAttribute:!0,value:!1}},observers:["_configChanged(isAttached, condenses, fixed)"],_height:0,_dHeight:0,_stickyElTop:0,_stickyElRef:null,_top:0,_progress:0,_wasScrollingDown:!1,_initScrollTop:0,_initTimestamp:0,_lastTimestamp:0,_lastScrollTop:0,get _maxHeaderTop(){return this.fixed?this._dHeight:this._height+5},get _stickyEl(){if(this._stickyElRef)return this._stickyElRef;for(var e,t=Object(o.a)(this.$.slot).getDistributedNodes(),n=0;e=t[n];n++)if(e.nodeType===Node.ELEMENT_NODE){if(e.hasAttribute("sticky")){this._stickyElRef=e;break}this._stickyElRef||(this._stickyElRef=e)}return this._stickyElRef},_configChanged:function(){this.resetLayout(),this._notifyLayoutChanged()},_updateLayoutStates:function(){if(0!==this.offsetWidth||0!==this.offsetHeight){var e=this._clampedScrollTop,t=0===this._height||0===e,n=this.disabled;this._height=this.offsetHeight,this._stickyElRef=null,this.disabled=!0,t||this._updateScrollState(0,!0),this._mayMove()?this._dHeight=this._stickyEl?this._height-this._stickyEl.offsetHeight:0:this._dHeight=0,this._stickyElTop=this._stickyEl?this._stickyEl.offsetTop:0,this._setUpEffect(),t?this._updateScrollState(e,!0):(this._updateScrollState(this._lastScrollTop,!0),this._layoutIfDirty()),this.disabled=n}},_updateScrollState:function(e,t){if(0!==this._height){var n=0,i=0,o=this._top,r=(this._lastScrollTop,this._maxHeaderTop),a=e-this._lastScrollTop,s=Math.abs(a),l=e>this._lastScrollTop,c=performance.now();if(this._mayMove()&&(i=this._clamp(this.reveals?o+a:e,0,r)),e>=this._dHeight&&(i=this.condenses&&!this.fixed?Math.max(this._dHeight,i):i,this.style.transitionDuration="0ms"),this.reveals&&!this.disabled&&s<100&&((c-this._initTimestamp>300||this._wasScrollingDown!==l)&&(this._initScrollTop=e,this._initTimestamp=c),e>=r))if(Math.abs(this._initScrollTop-e)>30||s>10){l&&e>=r?i=r:!l&&e>=this._dHeight&&(i=this.condenses&&!this.fixed?this._dHeight:0);var d=a/(c-this._lastTimestamp);this.style.transitionDuration=this._clamp((i-o)/d,0,300)+"ms"}else i=this._top;n=0===this._dHeight?e>0?1:0:i/this._dHeight,t||(this._lastScrollTop=e,this._top=i,this._wasScrollingDown=l,this._lastTimestamp=c),(t||n!==this._progress||o!==i||0===e)&&(this._progress=n,this._runEffects(n,i),this._transformHeader(i))}},_mayMove:function(){return this.condenses||!this.fixed},willCondense:function(){return this._dHeight>0&&this.condenses},isOnScreen:function(){return 0!==this._height&&this._top0:this._clampedScrollTop-this._maxHeaderTop>=0},_transformHeader:function(e){this.translate3d(0,-e+"px",0),this._stickyEl&&this.translate3d(0,this.condenses&&e>=this._stickyElTop?Math.min(e,this._dHeight)-this._stickyElTop+"px":0,0,this._stickyEl)},_clamp:function(e,t,n){return Math.min(n,Math.max(t,e))},_ensureBgContainers:function(){this._bgContainer||(this._bgContainer=document.createElement("div"),this._bgContainer.id="background",this._bgRear=document.createElement("div"),this._bgRear.id="backgroundRearLayer",this._bgContainer.appendChild(this._bgRear),this._bgFront=document.createElement("div"),this._bgFront.id="backgroundFrontLayer",this._bgContainer.appendChild(this._bgFront),Object(o.a)(this.root).insertBefore(this._bgContainer,this.$.contentContainer))},_getDOMRef:function(e){switch(e){case"backgroundFrontLayer":return this._ensureBgContainers(),this._bgFront;case"backgroundRearLayer":return this._ensureBgContainers(),this._bgRear;case"background":return this._ensureBgContainers(),this._bgContainer;case"mainTitle":return Object(o.a)(this).querySelector("[main-title]");case"condensedTitle":return Object(o.a)(this).querySelector("[condensed-title]")}return null},getScrollState:function(){return{progress:this._progress,top:this._top}}})},,,function(e,t,n){"use strict";n(3);var i=n(70),o=n(55),r={properties:{checked:{type:Boolean,value:!1,reflectToAttribute:!0,notify:!0,observer:"_checkedChanged"},toggles:{type:Boolean,value:!0,reflectToAttribute:!0},value:{type:String,value:"on",observer:"_valueChanged"}},observers:["_requiredChanged(required)"],created:function(){this._hasIronCheckedElementBehavior=!0},_getValidity:function(e){return this.disabled||!this.required||this.checked},_requiredChanged:function(){this.required?this.setAttribute("aria-required","true"):this.removeAttribute("aria-required")},_checkedChanged:function(){this.active=this.checked,this.fire("iron-change")},_valueChanged:function(){void 0!==this.value&&null!==this.value||(this.value="on")}},a=[i.a,o.a,r],s=n(65),l=n(66);n.d(t,"a",function(){return d});var c={_checkedChanged:function(){r._checkedChanged.call(this),this.hasRipple()&&(this.checked?this._ripple.setAttribute("checked",""):this._ripple.removeAttribute("checked"))},_buttonStateChanged:function(){l.a._buttonStateChanged.call(this),this.disabled||this.isAttached&&(this.checked=this.active)}},d=[s.a,a,c]},function(e,t,n){"use strict";n(10),n(88),n(11),n(39),n(29)},function(e,t,n){"use strict";function i(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}n.d(t,"a",function(){return u}),"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));function o(e){return{type:"unsubscribe_events",subscription:e}}var r=function(e,t){this.options=t,this.commandId=1,this.commands=new Map,this.eventListeners=new Map,this.closeRequested=!1,this.setSocket(e)};r.prototype.setSocket=function(e){var t=this,n=this.socket;if(this.socket=e,e.addEventListener("message",function(e){return t._handleMessage(e)}),e.addEventListener("close",function(e){return t._handleClose(e)}),n){var i=this.commands;this.commandId=1,this.commands=new Map,i.forEach(function(e){"subscribe"in e&&e.subscribe().then(function(t){e.unsubscribe=t,e.resolve()})}),this.fireEvent("ready")}},r.prototype.addEventListener=function(e,t){var n=this.eventListeners.get(e);n||this.eventListeners.set(e,n=[]),n.push(t)},r.prototype.removeEventListener=function(e,t){var n=this.eventListeners.get(e);if(n){var i=n.indexOf(t);-1!==i&&n.splice(i,1)}},r.prototype.fireEvent=function(e,t){var n=this;(this.eventListeners.get(e)||[]).forEach(function(e){return e(n,t)})},r.prototype.close=function(){this.closeRequested=!0,this.socket.close()},r.prototype.subscribeEvents=function(e,t){try{return this.subscribeMessage(e,function(e){var t={type:"subscribe_events"};return e&&(t.event_type=e),t}(t))}catch(e){return Promise.reject(e)}},r.prototype.ping=function(){return this.sendMessagePromise({type:"ping"})},r.prototype.sendMessage=function(e,t){t||(t=this._genCmdId()),e.id=t,this.socket.send(JSON.stringify(e))},r.prototype.sendMessagePromise=function(e){var t=this;return new Promise(function(n,i){var o=t._genCmdId();t.commands.set(o,{resolve:n,reject:i}),t.sendMessage(e,o)})},r.prototype.subscribeMessage=function(e,t){try{var n,i=this,r=i._genCmdId();return Promise.resolve(new Promise(function(a,s){n={resolve:a,reject:s,callback:e,subscribe:function(){return i.subscribeMessage(e,t)},unsubscribe:function(){try{return Promise.resolve(i.sendMessagePromise(o(r))).then(function(){i.commands.delete(r)})}catch(e){return Promise.reject(e)}}},i.commands.set(r,n);try{i.sendMessage(t,r)}catch(e){}})).then(function(){return function(){return n.unsubscribe()}})}catch(e){return Promise.reject(e)}},r.prototype._handleMessage=function(e){var t=JSON.parse(e.data),n=this.commands.get(t.id);switch(t.type){case"event":n?n.callback(t.event):(console.warn("Received event for unknown subscription "+t.id+". Unsubscribing."),this.sendMessagePromise(o(t.id)));break;case"result":n&&(t.success?(n.resolve(t.result),"subscribe"in n||this.commands.delete(t.id)):(n.reject(t.error),this.commands.delete(t.id)));break;case"pong":n?(n.resolve(),this.commands.delete(t.id)):console.warn("Received unknown pong response "+t.id)}},r.prototype._handleClose=function(e){var t=this;if(this.commands.forEach(function(e){"subscribe"in e||e.reject({type:"result",success:!1,error:{code:3,message:"Connection lost"}})}),!this.closeRequested){this.fireEvent("disconnected");var n=Object.assign({},this.options,{setupRetry:0});!function e(o){var r=t;setTimeout(function(){try{var t=i(function(){return Promise.resolve(n.createSocket(n)).then(function(e){r.setSocket(e)})},function(t){2===t?r.fireEvent("reconnect-error",t):e(o+1)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(i){return Promise.reject(i)}},1e3*Math.min(o,5))}(0)}},r.prototype._genCmdId=function(){return++this.commandId};var a=function(e,t,n){try{var i="undefined"!=typeof location&&location;if(i&&"https:"===i.protocol){var o=document.createElement("a");if(o.href=e,"http:"===o.protocol&&"localhost"!==o.hostname)throw 5}var r=new FormData;return null!==t&&r.append("client_id",t),Object.keys(n).forEach(function(e){r.append(e,n[e])}),Promise.resolve(fetch(e+"/auth/token",{method:"POST",credentials:"same-origin",body:r})).then(function(n){if(!n.ok)throw 400===n.status||403===n.status?2:new Error("Unable to fetch tokens");return Promise.resolve(n.json()).then(function(n){return n.hassUrl=e,n.clientId=t,n.expires=s(n.expires_in),n})})}catch(e){return Promise.reject(e)}},s=function(e){return 1e3*e+Date.now()};var l=function(e,t){this.data=e,this._saveTokens=t},c={wsUrl:{configurable:!0},accessToken:{configurable:!0},expired:{configurable:!0}};c.wsUrl.get=function(){return"ws"+this.data.hassUrl.substr(4)+"/api/websocket"},c.accessToken.get=function(){return this.data.access_token},c.expired.get=function(){return Date.now()>this.data.expires},l.prototype.refreshAccessToken=function(){try{var e=this;return Promise.resolve(a(e.data.hassUrl,e.data.clientId,{grant_type:"refresh_token",refresh_token:e.data.refresh_token})).then(function(t){t.refresh_token=e.data.refresh_token,e.data=t,e._saveTokens&&e._saveTokens(t)})}catch(e){return Promise.reject(e)}},l.prototype.revoke=function(){try{var e=this,t=new FormData;return t.append("action","revoke"),t.append("token",e.data.refresh_token),Promise.resolve(fetch(e.data.hassUrl+"/auth/token",{method:"POST",credentials:"same-origin",body:t})).then(function(){e._saveTokens&&e._saveTokens(null)})}catch(e){return Promise.reject(e)}},Object.defineProperties(l.prototype,c);var d=function(e,t,n,i){if(e[t])return e[t];var o,r=0,a=function(e){var t=[];function n(n,i){e=i?n:Object.assign({},e,n);for(var o=t,r=0;r\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n']);return a=function(){return e},e}var s=Object(o.a)(a());s.setAttribute("strip-whitespace",""),Object(i.a)({_template:s,is:"paper-spinner",behaviors:[r.a]})},function(e,t,n){"use strict";n(3),n(11);var i=n(112),o=n(65),r=n(6),a=n(5),s=n(62);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n
    \n
    \n
    \n
    \n
    \n\n
    '],['\n\n
    \n
    \n
    \n
    \n
    \n\n
    ']);return l=function(){return e},e}var c=Object(a.a)(l());c.setAttribute("strip-whitespace",""),Object(r.a)({_template:c,is:"paper-checkbox",behaviors:[i.a],hostAttributes:{role:"checkbox","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},attached:function(){Object(s.a)(this,function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-checkbox-ink-size").trim()){var e=this.getComputedStyleValue("--calculated-paper-checkbox-size").trim(),t="px",n=e.match(/[A-Za-z]+$/);null!==n&&(t=n[0]);var i=parseFloat(e),o=8/3*i;"px"===t&&(o=Math.floor(o))%2!=i%2&&o++,this.updateStyles({"--paper-checkbox-ink-size":o+t})}})},_computeCheckboxClass:function(e,t){var n="";return e&&(n+="checked "),t&&(n+="invalid"),n},_computeCheckmarkClass:function(e){return e?"":"hidden"},_createRipple:function(){return this._rippleContainer=this.$.checkboxContainer,o.b._createRipple.call(this)}})},function(e,t,n){"use strict";n(3),n(24),n(100);var i=n(99),o=n(81),r=n(6),a=n(5);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n\n \n"]);return s=function(){return e},e}Object(r.a)({_template:Object(a.a)(s()),is:"paper-radio-group",behaviors:[i.a],hostAttributes:{role:"radiogroup"},properties:{attrForSelected:{type:String,value:"name"},selectedAttribute:{type:String,value:"checked"},selectable:{type:String,value:"paper-radio-button"},allowEmptySelection:{type:Boolean,value:!1}},select:function(e){var t=this._valueToItem(e);if(!t||!t.hasAttribute("disabled")){if(this.selected){var n=this._valueToItem(this.selected);if(this.selected==e){if(!this.allowEmptySelection)return void(n&&(n.checked=!0));e=""}n&&(n.checked=!1)}o.a.select.apply(this,[e]),this.fire("paper-radio-group-changed")}},_activateFocusedItem:function(){this._itemActivate(this._valueForItem(this.focusedItem),this.focusedItem)},_onUpKey:function(e){this._focusPrevious(),e.preventDefault(),this._activateFocusedItem()},_onDownKey:function(e){this._focusNext(),e.preventDefault(),this._activateFocusedItem()},_onLeftKey:function(e){i.b._onLeftKey.apply(this,arguments),this._activateFocusedItem()},_onRightKey:function(e){i.b._onRightKey.apply(this,arguments),this._activateFocusedItem()}})},function(e,t,n){(function(e){var n,i,o,r;function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}r=function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==a(e)&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t){e.exports=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==a(Symbol.iterator)?function(e){return a(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":a(e)})(e)}function o(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\nSearch pattern: "'.concat(e,'"'));var n=this._prepareSearchers(e),i=n.tokenSearchers,o=n.fullSearcher,r=this._search(i,o),a=r.weights,s=r.results;return this._computeScore(a,s),this.options.shouldSort&&this._sort(s),t.limit&&"number"==typeof t.limit&&(s=s.slice(0,t.limit)),this._format(s)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),i=0,o=n.length;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=this.list,i={},o=[];if("string"==typeof n[0]){for(var r=0,a=n.length;r1)throw new Error("Key weight has to be > 0 and <= 1");h=h.name}else s[h]={weight:1};this._analyze({key:h,value:this.options.getFn(d,h),record:d,index:l},{resultMap:i,results:o,tokenSearchers:e,fullSearcher:t})}return{weights:s,results:o}}},{key:"_analyze",value:function(e,t){var n=e.key,i=e.arrayIndex,o=void 0===i?-1:i,r=e.value,a=e.record,s=e.index,c=t.tokenSearchers,d=void 0===c?[]:c,u=t.fullSearcher,p=void 0===u?[]:u,h=t.resultMap,f=void 0===h?{}:h,b=t.results,v=void 0===b?[]:b;if(null!=r){var m=!1,y=-1,g=0;if("string"==typeof r){this._log("\nKey: ".concat(""===n?"-":n));var _=p.search(r);if(this._log('Full text: "'.concat(r,'", score: ').concat(_.score)),this.options.tokenize){for(var w=r.split(this.options.tokenSeparator),x=[],k=0;k-1&&(j=(j+y)/2),this._log("Score average:",j);var R=!this.options.tokenize||!this.options.matchAllTokens||g>=d.length;if(this._log("\nCheck Matches: ".concat(R)),(m||_.isMatch)&&R){var B=f[s];B?B.output.push({key:n,arrayIndex:o,value:r,score:j,matchedIndices:_.matchedIndices}):(f[s]={item:a,output:[{key:n,arrayIndex:o,value:r,score:j,matchedIndices:_.matchedIndices}]},v.push(f[s]))}}else if(l(r))for(var P=0,N=r.length;P-1&&(a.arrayIndex=r.arrayIndex),t.matches.push(a)}}}),this.options.includeScore&&o.push(function(e,t){t.score=e.score});for(var r=0,a=e.length;rn)return o(e,this.pattern,i);var a=this.options,s=a.location,l=a.distance,c=a.threshold,d=a.findAllMatches,u=a.minMatchCharLength;return r(e,this.pattern,this.patternAlphabet,{location:s,distance:l,threshold:c,findAllMatches:d,minMatchCharLength:u})}}])&&i(t.prototype,n),e}();e.exports=s},function(e,t){var n=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,o=new RegExp(t.replace(n,"\\$&").replace(i,"|")),r=e.match(o),a=!!r,s=[];if(a)for(var l=0,c=r.length;l=j;P-=1){var N=P-1,L=n[e.charAt(N)];if(L&&(w[N]=1),B[P]=(B[P+1]<<1|1)&L,0!==T&&(B[P]|=(C[P+1]|C[P])<<1|1|C[P+1]),B[P]&E&&(O=i(t,{errors:T,currentLocation:N,expectedLocation:v,distance:c}))<=y){if(y=O,(g=N)<=v)break;j=Math.max(1,2*v-g)}}if(i(t,{errors:T+1,currentLocation:v,expectedLocation:v,distance:c})>y)break;C=B}return{isMatch:g>=0,score:0===O?.001:O,matchedIndices:o(w,b)}}},function(e,t){e.exports=function(e,t){var n=t.errors,i=void 0===n?0:n,o=t.currentLocation,r=void 0===o?0:o,a=t.expectedLocation,s=void 0===a?0:a,l=t.distance,c=void 0===l?100:l,d=i/e.length,u=Math.abs(s-r);return c?d+u/c:u?1:d}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],i=-1,o=-1,r=0,a=e.length;r=t&&n.push([i,o]),i=-1)}return e[r-1]&&r-i>=t&&n.push([i,r-1]),n}},function(e,t){e.exports=function(e){for(var t={},n=e.length,i=0;i\n\n\n\n\n']);return o=function(){return e},e}var r=Object(i.a)(o());document.head.appendChild(r.content);n(98);var a=n(79),s=n(99),l=n(69),c=n(6),d=n(7);function u(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n\n \n'],['\n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n\n \n']);return u=function(){return e},e}Object(c.a)({_template:Object(i.a)(u()),is:"paper-tabs",behaviors:[l.a,s.a],properties:{noink:{type:Boolean,value:!1,observer:"_noinkChanged"},noBar:{type:Boolean,value:!1},noSlide:{type:Boolean,value:!1},scrollable:{type:Boolean,value:!1},fitContainer:{type:Boolean,value:!1},disableDrag:{type:Boolean,value:!1},hideScrollButtons:{type:Boolean,value:!1},alignBottom:{type:Boolean,value:!1},selectable:{type:String,value:"paper-tab"},autoselect:{type:Boolean,value:!1},autoselectDelay:{type:Number,value:0},_step:{type:Number,value:10},_holdDelay:{type:Number,value:1},_leftHidden:{type:Boolean,value:!1},_rightHidden:{type:Boolean,value:!1},_previousTab:{type:Object}},hostAttributes:{role:"tablist"},listeners:{"iron-resize":"_onTabSizingChanged","iron-items-changed":"_onTabSizingChanged","iron-select":"_onIronSelect","iron-deselect":"_onIronDeselect"},keyBindings:{"left:keyup right:keyup":"_onArrowKeyup"},created:function(){this._holdJob=null,this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,this._bindDelayedActivationHandler=this._delayedActivationHandler.bind(this),this.addEventListener("blur",this._onBlurCapture.bind(this),!0)},ready:function(){this.setScrollDirection("y",this.$.tabsContainer)},detached:function(){this._cancelPendingActivation()},_noinkChanged:function(e){Object(d.a)(this).querySelectorAll("paper-tab").forEach(e?this._setNoinkAttribute:this._removeNoinkAttribute)},_setNoinkAttribute:function(e){e.setAttribute("noink","")},_removeNoinkAttribute:function(e){e.removeAttribute("noink")},_computeScrollButtonClass:function(e,t,n){return!t||n?"hidden":e?"not-visible":""},_computeTabsContentClass:function(e,t){return e?"scrollable"+(t?" fit-container":""):" fit-container"},_computeSelectionBarClass:function(e,t){return e?"hidden":t?"align-bottom":""},_onTabSizingChanged:function(){this.debounce("_onTabSizingChanged",function(){this._scroll(),this._tabChanged(this.selectedItem)},10)},_onIronSelect:function(e){this._tabChanged(e.detail.item,this._previousTab),this._previousTab=e.detail.item,this.cancelDebouncer("tab-changed")},_onIronDeselect:function(e){this.debounce("tab-changed",function(){this._tabChanged(null,this._previousTab),this._previousTab=null},1)},_activateHandler:function(){this._cancelPendingActivation(),a.b._activateHandler.apply(this,arguments)},_scheduleActivation:function(e,t){this._pendingActivationItem=e,this._pendingActivationTimeout=this.async(this._bindDelayedActivationHandler,t)},_delayedActivationHandler:function(){var e=this._pendingActivationItem;this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,e.fire(this.activateEvent,null,{bubbles:!0,cancelable:!0})},_cancelPendingActivation:function(){void 0!==this._pendingActivationTimeout&&(this.cancelAsync(this._pendingActivationTimeout),this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0)},_onArrowKeyup:function(e){this.autoselect&&this._scheduleActivation(this.focusedItem,this.autoselectDelay)},_onBlurCapture:function(e){e.target===this._pendingActivationItem&&this._cancelPendingActivation()},get _tabContainerScrollSize(){return Math.max(0,this.$.tabsContainer.scrollWidth-this.$.tabsContainer.offsetWidth)},_scroll:function(e,t){if(this.scrollable){var n=t&&-t.ddx||0;this._affectScroll(n)}},_down:function(e){this.async(function(){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusAsync=null)},1)},_affectScroll:function(e){this.$.tabsContainer.scrollLeft+=e;var t=this.$.tabsContainer.scrollLeft;this._leftHidden=0===t,this._rightHidden=t===this._tabContainerScrollSize},_onLeftScrollButtonDown:function(){this._scrollToLeft(),this._holdJob=setInterval(this._scrollToLeft.bind(this),this._holdDelay)},_onRightScrollButtonDown:function(){this._scrollToRight(),this._holdJob=setInterval(this._scrollToRight.bind(this),this._holdDelay)},_onScrollButtonUp:function(){clearInterval(this._holdJob),this._holdJob=null},_scrollToLeft:function(){this._affectScroll(-this._step)},_scrollToRight:function(){this._affectScroll(this._step)},_tabChanged:function(e,t){if(!e)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(0,0);var n=this.$.tabsContent.getBoundingClientRect(),i=n.width,o=e.getBoundingClientRect(),r=o.left-n.left;if(this._pos={width:this._calcPercent(o.width,i),left:this._calcPercent(r,i)},this.noSlide||null==t)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(this._pos.width,this._pos.left);var a=t.getBoundingClientRect(),s=this.items.indexOf(t),l=this.items.indexOf(e);this.$.selectionBar.classList.add("expand");var c=s0&&(this.$.tabsContainer.scrollLeft+=n)},_calcPercent:function(e,t){return 100*e/t},_positionBar:function(e,t){e=e||0,t=t||0,this._width=e,this._left=t,this.transform("translateX("+t+"%) scaleX("+e/100+")",this.$.selectionBar)},_onBarTransitionEnd:function(e){var t=this.$.selectionBar.classList;t.contains("expand")?(t.remove("expand"),t.add("contract"),this._positionBar(this._pos.width,this._pos.left)):t.contains("contract")&&t.remove("contract")}})}]]); -//# sourceMappingURL=chunk.12902324b918e12549ba.js.map \ No newline at end of file diff --git a/hassio/api/panel/chunk.12902324b918e12549ba.js.gz b/hassio/api/panel/chunk.12902324b918e12549ba.js.gz deleted file mode 100644 index a658962eebb3cff3f9d6f517583a9c519151e216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63491 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 diff --git a/hassio/api/panel/chunk.12902324b918e12549ba.js.map b/hassio/api/panel/chunk.12902324b918e12549ba.js.map deleted file mode 100644 index b7acfcba3..000000000 --- a/hassio/api/panel/chunk.12902324b918e12549ba.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///../src/lib/modify-template.ts","webpack:///../src/lib/shady-render.ts","webpack:///../src/lib/updating-element.ts","webpack:///../src/lib/decorators.ts","webpack:///../src/lib/css-tag.ts","webpack:///src/lit-element.ts","webpack:///./node_modules/@polymer/iron-flex-layout/iron-flex-layout.js","webpack:///./node_modules/@polymer/paper-styles/default-theme.js","webpack:///../src/lib/default-template-processor.ts","webpack:///src/lit-html.ts","webpack:///src/mwc-button-base.ts","webpack:///src/mwc-button-css.ts","webpack:///src/mwc-button.ts","webpack:///./node_modules/@polymer/iron-image/iron-image.js","webpack:///./node_modules/@polymer/paper-styles/element-styles/paper-material-styles.js","webpack:///./node_modules/@polymer/paper-card/paper-card.js","webpack:///../src/lib/parts.ts","webpack:///../src/lib/template.ts","webpack:///./node_modules/@polymer/iron-icon/iron-icon.js","webpack:///./node_modules/@polymer/paper-icon-button/paper-icon-button.js","webpack:///./node_modules/@polymer/iron-behaviors/iron-control-state.js","webpack:///./node_modules/@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.js","webpack:///../src/lib/dom.ts","webpack:///./node_modules/@polymer/paper-styles/typography.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///../src/lib/template-result.ts","webpack:///../src/lib/template-factory.ts","webpack:///./node_modules/@polymer/iron-behaviors/iron-button-state.js","webpack:///./node_modules/@polymer/paper-styles/shadow.js","webpack:///./node_modules/@polymer/app-layout/app-toolbar/app-toolbar.js","webpack:///./node_modules/@polymer/iron-a11y-announcer/iron-a11y-announcer.js","webpack:///./node_modules/@polymer/iron-input/iron-input.js","webpack:///./node_modules/@polymer/paper-input/paper-input-addon-behavior.js","webpack:///./node_modules/@polymer/paper-input/paper-input-char-counter.js","webpack:///./node_modules/@polymer/paper-input/paper-input-container.js","webpack:///./node_modules/@polymer/paper-input/paper-input-error.js","webpack:///./node_modules/@polymer/paper-input/paper-input-behavior.js","webpack:///./node_modules/@polymer/paper-input/paper-input.js","webpack:///../src/lib/directive.ts","webpack:///../src/lib/part.ts","webpack:///../src/lib/template-instance.ts","webpack:///../src/lib/render.ts","webpack:///../src/directives/class-map.ts","webpack:///./node_modules/@polymer/iron-validatable-behavior/iron-validatable-behavior.js","webpack:///./node_modules/@polymer/paper-behaviors/paper-inky-focus-behavior.js","webpack:///./node_modules/@polymer/paper-behaviors/paper-ripple-behavior.js","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner-lite.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js","webpack:///./node_modules/@polymer/iron-form-element-behavior/iron-form-element-behavior.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-focusables-helper.js","webpack:///./node_modules/@polymer/iron-fit-behavior/iron-fit-behavior.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-overlay-backdrop.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-overlay-manager.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-scroll-manager.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-overlay-behavior.js","webpack:///./node_modules/@polymer/iron-selector/iron-multi-selectable.js","webpack:///./node_modules/@polymer/iron-menu-behavior/iron-menu-behavior.js","webpack:///./node_modules/@polymer/iron-selector/iron-selection.js","webpack:///./node_modules/@polymer/iron-selector/iron-selectable.js","webpack:///./node_modules/@polymer/neon-animation/neon-animatable-behavior.js","webpack:///./node_modules/@polymer/neon-animation/neon-animation-runner-behavior.js","webpack:///./node_modules/@polymer/paper-ripple/paper-ripple.js","webpack:///foundation.ts","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner-styles.js","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner-behavior.js","webpack:///./node_modules/@polymer/app-layout/app-header-layout/app-header-layout.js","webpack:///./node_modules/@polymer/app-layout/app-layout-behavior/app-layout-behavior.js","webpack:///./node_modules/@polymer/paper-tabs/paper-tab.js","webpack:///./node_modules/@polymer/iron-menu-behavior/iron-menubar-behavior.js","webpack:///./node_modules/@polymer/paper-radio-button/paper-radio-button.js","webpack:///events.ts","webpack:///ponyfill.ts","webpack:///util.ts","webpack:///constants.ts","webpack:///src/mwc-ripple-global-css.ts","webpack:///src/ripple-directive.ts","webpack:///./node_modules/@polymer/iron-dropdown/iron-dropdown.js","webpack:///./node_modules/@polymer/neon-animation/neon-animation-behavior.js","webpack:///./node_modules/@polymer/neon-animation/animations/fade-in-animation.js","webpack:///./node_modules/@polymer/neon-animation/animations/fade-out-animation.js","webpack:///./node_modules/@polymer/paper-menu-button/paper-menu-button-animations.js","webpack:///./node_modules/@polymer/paper-menu-button/paper-menu-button.js","webpack:///./node_modules/@polymer/iron-scroll-target-behavior/iron-scroll-target-behavior.js","webpack:///./node_modules/@polymer/app-layout/helpers/helpers.js","webpack:///./node_modules/@polymer/app-layout/app-scroll-effects/app-scroll-effects-behavior.js","webpack:///./node_modules/@polymer/app-layout/app-header/app-header.js","webpack:///./node_modules/@polymer/iron-checked-element-behavior/iron-checked-element-behavior.js","webpack:///./node_modules/@polymer/paper-behaviors/paper-checked-element-behavior.js","webpack:///./node_modules/@polymer/paper-styles/paper-styles.js","webpack:///../node_modules/babel-plugin-transform-async-to-promises/helpers.js","webpack:///../lib/errors.ts","webpack:///../lib/messages.ts","webpack:///../lib/socket.ts","webpack:///../lib/connection.ts","webpack:///../lib/auth.ts","webpack:///../lib/store.ts","webpack:///../lib/collection.ts","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner.js","webpack:///./node_modules/@polymer/paper-checkbox/paper-checkbox.js","webpack:///./node_modules/@polymer/paper-radio-group/paper-radio-group.js","webpack:///./node_modules/fuse.js/dist/fuse.js","webpack:///(webpack)/buildin/module.js","webpack:///../src/directives/repeat.ts","webpack:///./node_modules/@polymer/paper-tabs/paper-tabs-icons.js","webpack:///./node_modules/@polymer/paper-tabs/paper-tabs.js"],"names":["walkerNodeFilter","removeNodesFromTemplate","template","nodesToRemove","content","element","parts","walker","document","createTreeWalker","partIndex","modify_template_nextActiveIndexInTemplateParts","part","nodeIndex","removeCount","nodesToRemoveInTemplate","currentRemovingNode","nextNode","node","currentNode","previousSibling","has","push","undefined","index","forEach","n","parentNode","removeChild","countNodes","count","nodeType","i","arguments","length","Object","lib_template","getTemplateCacheKey","type","scopeName","concat","compatibleShadyCSSVersion","window","ShadyCSS","prepareTemplateDom","console","warn","shady_render_shadyTemplateFactory","result","cacheKey","templateCache","template_factory","get","stringsArray","WeakMap","keyString","Map","set","strings","key","join","getTemplateElement","TEMPLATE_TYPES","shadyRenderSet","Set","shady_render_prepareTemplateStyles","renderedDOM","add","templateElement","createElement","styles","querySelectorAll","condensedStyle","_style","textContent","templates","Array","from","s","shady_render_removeStylesFromLitTemplates","refNode","insertCount","walkerIndex","insertBefore","appendChild","insertNodeIntoTemplate","firstChild","prepareTemplateStyles","style","querySelector","nativeShadow","cloneNode","removes","JSCompiler_renameProperty","prop","_obj","defaultConverter","toAttribute","value","Boolean","JSON","stringify","fromAttribute","Number","parse","notEqual","old","defaultPropertyDeclaration","attribute","String","converter","reflect","hasChanged","microtaskPromise","Promise","resolve","UpdatingElement","_HTMLElement","_this","_classCallCheck","this","_possibleConstructorReturn","_getPrototypeOf","call","_updateState","_instanceProperties","_updatePromise","_hasConnectedResolver","_changedProperties","_reflectingProperties","initialize","_inherits","_wrapNativeSuper","HTMLElement","_this6","hasOwnProperty","_classProperties","superProperties","getPrototypeOf","v","k","name","options","_ensureClassProperties","noAccessor","prototype","updating_element_typeof","Symbol","defineProperty","oldValue","_requestUpdate","configurable","enumerable","superCtor","finalize","_attributeToPropertyMap","props","properties","propKeys","_toConsumableArray","getOwnPropertyNames","getOwnPropertySymbols","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","p","createProperty","err","toLowerCase","_this7","attributes","attr","_attributeNameForProperty","_saveInstanceProperties","_this2","constructor","_v","_this3","_attributeToProperty","ctor","attrValue","_propertyValueToAttribute","removeAttribute","setAttribute","propName","_propertyValueFromAttribute","shouldRequestUpdate","_valueHasChanged","_hasRequestedUpdate","_enqueueUpdate","updateComplete","reject","previousUpdatePromise","_this4","regeneratorRuntime","async","_context","prev","res","rej","awrap","t0","_hasConnected","performUpdate","t1","stop","_applyInstanceProperties","shouldUpdate","changedProperties","update","e","_markUpdated","firstUpdated","updated","_this5","size","_propertyToAttribute","_getUpdateComplete","customElement","tagName","classOrDescriptor","clazz","customElements","define","legacyCustomElement","descriptor","kind","elements","finisher","standardCustomElement","standardProperty","placement","initializer","assign","legacyProperty","proto","property","protoOrDescriptor","query","selector","renderRoot","legacyQuery","standardQuery","supportsAdoptingStyleSheets","Document","CSSStyleSheet","constructionToken","CSSResult","cssText","safeToken","css_tag_classCallCheck","Error","_styleSheet","replaceSync","css","_len","values","_key","reduce","acc","idx","textFromCSSResult","flattenStyles","flat","Infinity","arrayFlat","isArray","lit_element_LitElement","_UpdatingElement","LitElement","lit_element_classCallCheck","lit_element_possibleConstructorReturn","lit_element_getPrototypeOf","apply","lit_element_inherits","_get","_styles","_getUniqueStyles","userStyles","reduceRight","unshift","createRenderRoot","ShadowRoot","adoptStyles","attachShadow","mode","adoptedStyleSheets","map","styleSheet","_needsShimAdoptedStyleSheets","ScopingShim","prepareAdoptedCssText","localName","hasUpdated","styleElement","templateResult","render","lit_html","eventContext","container","_typeof","hasRendered","lib_render","needsScoping","host","firstScopeRender","renderContainer","createDocumentFragment","templateFactory","template_instance","dom","html","_templateObject","head","defaultTemplateProcessor","DefaultTemplateProcessor","prefix","slice","__webpack_require__","d","__webpack_exports__","lit_html_html","directive","template_result","mwc_button_base_ButtonBase","_LitElement","ButtonBase","raised","unelevated","outlined","dense","disabled","trailingIcon","icon","label","lit_element","delegatesFocus","buttonElement","_ripple","ripple","handleFocus","focus","_ripple2","handleBlur","blur","classes","mdc-button--raised","mdc-button--unelevated","mdc-button--outlined","mdc-button--dense","mdcButtonIcon","buttonRipple","ripple_directive","unbounded","_templateObject2","class_map","tslib_es6","mwc_button_css_templateObject","Button","_ButtonBase","mwc_button_classCallCheck","mwc_button_possibleConstructorReturn","mwc_button_getPrototypeOf","mwc_button_inherits","Polymer","_template","is","src","alt","crossorigin","preventLoad","sizing","reflectToAttribute","position","preload","placeholder","observer","fade","loaded","notify","readOnly","loading","error","width","height","observers","created","_resolvedSrc","_imgOnLoad","$","img","_resolveSrc","_setLoading","_setLoaded","_setError","_imgOnError","sizedImgDiv","backgroundImage","_computePlaceholderHidden","_computePlaceholderClassName","_computeImgDivHidden","_computeImgDivARIAHidden","_computeImgDivARIALabel","replace","split","pop","_computeImgHidden","_widthChanged","isNaN","_heightChanged","_loadStateObserver","newResolvedSrc","_placeholderChanged","_transformChanged","sizedImgDivStyle","placeholderStyle","backgroundSize","backgroundPosition","backgroundRepeat","testSrc","resolved","resolveUrl","baseURIAnchor","href","location","origin","protocol","paper_material_styles_templateObject","paper_card_templateObject","heading","image","preloadImage","fadeImage","placeholderImage","elevation","animatedShadow","animated","computed","_isHidden","_headingChanged","currentHeading","getAttribute","currentLabel","_computeHeadingClass","_computeAnimated","isPrimitive","isIterable","AttributeCommitter","dirty","_createPart","_createClass","AttributePart","l","text","t","_getValue","committer","_part_js__WEBPACK_IMPORTED_MODULE_2__","_directive_js__WEBPACK_IMPORTED_MODULE_0__","commit","NodePart","__pendingValue","startNode","_template_js__WEBPACK_IMPORTED_MODULE_5__","endNode","ref","nextSibling","__insert","__commitText","_template_result_js__WEBPACK_IMPORTED_MODULE_4__","__commitTemplateResult","Node","__commitNode","__commitIterable","clear","valueAsString","data","createTextNode","_template_instance_js__WEBPACK_IMPORTED_MODULE_3__","instance","processor","fragment","_clone","itemPart","itemParts","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","item","appendIntoPart","insertAfterPart","setValue","_dom_js__WEBPACK_IMPORTED_MODULE_1__","BooleanAttributePart","PropertyCommitter","_AttributeCommitter","single","PropertyPart","_AttributePart","eventOptionsSupported","capture","addEventListener","removeEventListener","_e","EventPart","eventName","__boundHandleEvent","handleEvent","newListener","oldListener","shouldRemoveListener","once","passive","shouldAddListener","__options","getOptions","event","o","marker","Math","random","nodeMarker","markerRegex","RegExp","boundAttributeSuffix","Template","stack","lastPartIndex","hasAttributes","_length","endsWith","stringForPart","lastAttributeNameRegex","exec","attributeLookupName","attributeValue","statics","indexOf","parent","_strings","lastIndex","_i","insert","createMarker","match","_parent","_i2","_i3","_nodesToRemove","str","suffix","isTemplatePartActive","createComment","theme","_meta","Base","create","_DEFAULT_ICONSET","_iconChanged","_iconName","_iconsetName","_updateIcon","_srcChanged","_usesIconset","_img","root","_iconset","removeIcon","byKey","applyIcon","unlisten","listen","draggable","hostAttributes","role","tabindex","behaviors","PaperInkyFocusBehavior","registered","_altChanged","newValue","IronControlState","focused","_oldTabIndex","_boundFocusBlurHandler","Function","_focusBlurHandler","bind","ready","_setFocused","_disabledChanged","pointerEvents","tabIndex","_changedControlState","_controlStateChanged","IronA11yKeysBehavior","KEY_IDENTIFIER","U+0008","U+0009","U+001B","U+0020","U+007F","KEY_CODE","8","9","13","27","33","34","35","36","32","37","38","39","40","46","106","MODIFIER_KEYS","shift","ctrl","meta","KEY_CHAR","IDENT_CHAR","ARROW_KEY","SPACE_KEY","ESC_KEY","transformKey","noSpecialChars","validKey","lKey","test","normalizedKeyForEvent","keyEvent","detail","keyIdent","keyIdentifier","parseInt","fromCharCode","keyCode","transformKeyCode","keyComboMatchesEvent","keyCombo","hasModifiers","shiftKey","ctrlKey","altKey","metaKey","parseEventString","eventString","trim","keyComboString","combo","parsedKeyCombo","keyComboPart","eventParts","keyName","parseKeyComboString","keyEventTarget","stopKeyboardEventPropagation","_boundKeyHandlers","_imperativeKeyBindings","keyBindings","_prepKeyBindings","attached","_listenKeyEventListeners","detached","_unlistenKeyEventListeners","addOwnKeyBinding","handlerName","_resetKeyEventListeners","removeOwnKeyBindings","keyboardEventMatchesKeys","keyCombos","_collectKeyBindings","behavior","_keyBindings","_addKeyBinding","sort","kb1","kb2","b1","isAttached","keys","boundKeyHandler","_onKeyBindingEvent","keyHandlerTuple","stopPropagation","defaultPrevented","_triggerKeyHandler","keyboardEvent","CustomEvent","cancelable","preventDefault","isCEPolyfill","reparentNodes","removeNodes","polyfillWrapFlushCallback","start","end","before","extendStatics","b","setPrototypeOf","__proto__","__extends","__","__assign","__decorate","decorators","target","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","commentMarker","_template_js__WEBPACK_IMPORTED_MODULE_1__","TemplateResult","isCommentBinding","commentOpen","lastIndexOf","attributeMatch","substr","innerHTML","getHTML","SVGTemplateResult","_TemplateResult","svgElement","_dom_js__WEBPACK_IMPORTED_MODULE_0__","templateCaches","_template_js__WEBPACK_IMPORTED_MODULE_0__","IronButtonStateImpl","IronButtonState","_polymer_iron_a11y_keys_behavior_iron_a11y_keys_behavior_js__WEBPACK_IMPORTED_MODULE_2__","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_3__","pressed","toggles","active","pointerDown","receivedFocusFromKeyboard","ariaActiveAttribute","listeners","down","up","tap","enter:keydown","space:keydown","space:keyup","_mouseEventRe","_tapHandler","_userActivate","_focusChanged","_detectKeyboardFocus","_setPressed","_setReceivedFocusFromKeyboard","fire","_downHandler","_setPointerDown","_upHandler","_spaceKeyDownHandler","localTarget","isLightDescendant","stopImmediatePropagation","_spaceKeyUpHandler","_asyncClick","click","_pressedChanged","_changedButtonState","_ariaActiveAttributeChanged","hasAttribute","_activeChanged","_buttonStateChanged","IronA11yAnnouncer","_text","body","_onIronAnnounce","announce","requestAvailability","iron_input_templateObject","IronValidatableBehavior","bindValue","allowedPattern","autoValidate","_inputElement","input","keypress","_previousValidInput","_patternAlreadyChecked","_observer","observeNodes","info","_initSlottedInput","unobserveNodes","inputElement","getEffectiveChildren","_patternRegExp","pattern","_bindValueChanged","validate","_onInput","_checkPatternValidity","_announceInvalidCharacter","_isPrintable","anyNonPrintable","mozNonPrintable","charCode","_onKeypress","regexp","thisChar","invalid","valid","checkValidity","required","hasValidator","message","_computeValue","PaperInputAddonBehavior","state","paper_input_char_counter_templateObject","_charCounterStr","counter","toString","paper_input_container_templateObject","noLabelFloat","alwaysFloatLabel","attrForValue","_addons","_inputHasContent","_inputSelector","_boundOnFocus","_onFocus","_boundOnBlur","_onBlur","_boundOnInput","_boundValueChanged","_onValueChanged","addon-attached","iron-input-validate","_valueChangedEvent","_propertyForValue","dashToCamelCase","_inputElementValue","__isFirstValueUpdate","_handleValueAndAutoValidate","_handleValue","_onAddonAttached","updateAddons","_onIronInputValidate","_invalidChanged","addon","_computeInputContentClass","cls","labelAndInputContainer","_computeUnderlineClass","_computeAddOnContentClass","paper_input_error_templateObject","_setInvalid","PaperInputHelper","PaperInputBehaviorImpl","list","errorMessage","charCounter","validator","autocomplete","autofocus","inputmode","minlength","maxlength","min","max","step","readonly","autocapitalize","autocorrect","autosave","results","accept","multiple","_ariaDescribedBy","_ariaLabelledBy","_inputId","shift+tab:keydown","_generateInputId","$$","_focusableElement","_typesThatHaveText","_updateAriaLabelledBy","PolymerElement","_appendStringWithSpace","more","rootTarget","id","NextAddonID","_shiftTabPressed","_onShiftTabDown","oldTabIndex","_handleAutoValidate","updateValueAndPreserveCaret","selectionStart","selectionEnd","_computeAlwaysFloatLabel","labelledBy","NextLabelID","NextInputID","_onChange","shadowRoot","sourceEvent","bubbles","_autofocusChanged","activeElement","documentElement","PaperInputBehavior","paper_input_templateObject","IronFormElementBehavior","iron-input-ready","_onIronInputReady","nativeInput","isDirective","directives","f","noChange","nothing","TemplateInstance","__parts","_part","importNode","nodeName","_part2","handleTextExpression","insertAfterNode","_this$__parts","handleAttributeExpressions","adoptNode","upgrade","_parts_js__WEBPACK_IMPORTED_MODULE_1__","_template_factory_js__WEBPACK_IMPORTED_MODULE_2__","appendInto","classMap","_lit_html_js__WEBPACK_IMPORTED_MODULE_0__","classMapCache","classInfo","className","classList","oldInfo","remove","_name","_polymer_iron_meta_iron_meta_js__WEBPACK_IMPORTED_MODULE_1__","IronValidatableBehaviorMeta","IronMeta","_validator","_getValidity","PaperInkyFocusBehaviorImpl","_polymer_iron_behaviors_iron_button_state_js__WEBPACK_IMPORTED_MODULE_1__","_polymer_iron_behaviors_iron_control_state_js__WEBPACK_IMPORTED_MODULE_2__","_paper_ripple_behavior_js__WEBPACK_IMPORTED_MODULE_3__","_focusedChanged","ensureRipple","hasRipple","holdDown","_createRipple","PaperRippleBehavior","_polymer_iron_behaviors_iron_button_state_js__WEBPACK_IMPORTED_MODULE_2__","noink","_rippleContainer","optTriggeringEvent","rippleContainer","domContainer","deepContains","uiDownAction","getRipple","_noinkChanged","PaperSpinnerBehavior","simpleIsEqual","newArgs","lastArgs","every","newArg","resultFn","isEqual","lastThis","lastResult","calledOnce","IronResizableBehavior","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_1__","_polymer_polymer_lib_utils_settings_js__WEBPACK_IMPORTED_MODULE_2__","ORPHANS","_parentResizable","_notifyingDescendant","iron-request-resize-notifications","_interestedResizables","_boundNotifyResize","notifyResize","_boundOnDescendantIronResize","_onDescendantIronResize","_requestResizeNotifications","stopResizeNotificationsFor","resizable","resizerShouldNotify","_notifyDescendant","_fireResize","assignParentResizable","parentResizable","_subscribeIronResize","splice","_unsubscribeIronResize","useShadow","_onIronRequestResizeNotifications","_parentResizableChanged","descendant","readyState","readystatechanged","_findParent","orphan","IronFocusablesHelper","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getTabbableNodes","_collectTabbableNodes","_sortByTabIndex","isFocusable","isTabbable","_isVisible","_normalizedTabIndex","ELEMENT_NODE","children","needsSort","getDistributedNodes","visibility","display","getComputedStyle","tabbables","len","pivot","ceil","left","right","_mergeSortByTabIndex","_hasLowerTabOrder","a","ati","bti","IronFitBehavior","sizingTarget","fitInto","noOverlap","positionTarget","horizontalAlign","verticalAlign","dynamicAlign","horizontalOffset","verticalOffset","autoFitOnAttach","_fitInfo","_fitWidth","innerWidth","getBoundingClientRect","_fitHeight","innerHeight","_fitLeft","_fitTop","top","_defaultPositionTarget","DOCUMENT_FRAGMENT_NODE","_localeHorizontalAlign","_isRTL","__shouldPosition","direction","setTimeout","fit","ShadyDOM","flush","__deferredFit","clearTimeout","constrain","center","_discoverInfo","sizer","inlineStyle","sizerInlineStyle","maxWidth","maxHeight","boxSizing","positionedBy","vertically","bottom","horizontally","sizedBy","minWidth","minHeight","margin","marginTop","marginRight","marginBottom","marginLeft","resetFit","refit","scrollLeft","scrollTop","rect","positionRect","__getNormalizedRect","fitRect","__getPosition","__sizeDimension","_sizeDimension","extent","flip","offset","offsetExtent","sizingOffset","__getOffscreenArea","verticalCrop","horizontalCrop","abs","hAlign","vAlign","sizeNoMargins","positions","copy","candidate","vAlignOk","hAlignOk","alignOk","offscreenArea","diff","opened","transitionend","__openedRaf","_openedChanged","prepare","open","close","complete","_onTransitionend","cs","transitionDuration","opacity","cancelAnimationFrame","requestAnimationFrame","toggleClass","IronOverlayManagerClass","_overlays","_minimumZ","_backdropElement","gestures","_onCaptureClick","_onCaptureFocus","_onCaptureKeyDown","backdropElement","deepActiveElement","_bringOverlayAtIndexToFront","overlay","lastI","currentOverlay","_shouldBeBehindOverlay","minimumZ","currentOverlayZ","_getZ","_applyOverlayZ","addOrRemoveOverlay","addOverlay","removeOverlay","trackBackdrop","insertionIndex","newZ","previousOverlay","ensureMinimumZ","focusOverlay","current","_applyFocus","_overlayWithBackdrop","zIndex","getBackdrops","backdrops","withBackdrop","backdropZ","z","z1","_setZ","aboveZ","_overlayInPath","path","_manager","allowClickThrough","_onCaptureEsc","_onCaptureTab","overlay1","overlay2","alwaysOnTop","_boundScrollHandler","currentLockingElement","IronOverlayManager","lastTouchPosition","pageX","pageY","lastRootTarget","lastScrollableNodes","scrollEvents","pushScrollLock","_lockingElements","nodes","scrollables","lockingIndex","overflow","_getScrollableNodes","deltaX","deltaY","wheelDeltaX","wheelDeltaY","wheelDelta","axis","targetTouches","touch","_getScrollInfo","verticalScroll","scrollHeight","clientHeight","scrollWidth","clientWidth","_getScrollingNode","_shouldPreventScrolling","_lockScrollInteractions","removeScrollLock","_unlockScrollInteractions","IronOverlayBehaviorImpl","IronOverlayBehavior","canceled","noAutoFocus","noCancelOnEscKey","noCancelOnOutsideClick","closingReason","restoreFocusOnClose","scrollAction","_focusedChild","iron-resize","_focusNode","_focusableNodes","__isAnimating","__shouldRemoveTabIndex","__firstFocusableNode","__lastFocusableNode","__rafs","__restoreFocusNode","__scrollTop","__scrollLeft","__onCaptureScroll","__rootNodes","_ensureSetup","_onNodesChange","cb","_finishRenderOpened","_finishRenderClosed","toggle","_setCanceled","cancel","invalidateTabbables","_overlaySetup","outline","__deraf","__openedChanged","_canceledChanged","_withBackdropChanged","_prepareRenderOpened","_preparePositioning","_finishPositioning","_renderOpened","_renderClosed","transition","webkitTransition","transform","webkitTransform","__ensureFirstLastFocusables","nodeToCheck","nodeToSet","shouldWrap","focusedNode","_onIronResize","focusableNodes","jobname","callback","rafs","__updateScrollObservers","__isValidScrollAction","__saveScrollPosition","__addScrollListeners","__removeScrollListeners","assignedSlot","el","__restoreScrollPosition","scrollingElement","IronMultiSelectableBehaviorImpl","multi","selectedValues","selectedItems","select","_toggleSelected","selected","multiChanged","_selection","_updateSelected","_shouldUpdateSelection","_updateAttrForSelected","selectedItem","_indexToValue","filter","unfilteredValue","IronSelectableBehavior","_selectMulti","_selectSelected","_valuesToItems","setItemSelected","fallbackSelection","_valueToItem","_selectionChange","_setSelectedItems","_setSelectedItem","IronMultiSelectableBehavior","IronMenuBehaviorImpl","IronMenuBehavior","focusedItem","attrForItemTitle","_MODIFIER_KEYS","_SEARCH_RESET_TIMEOUT_MS","_previousTabIndex","keydown","iron-items-changed","esc","_resetTabindices","_defaultFocusAsync","cancelAsync","_setFocusedItem","firstSelectedItem","items","isSelected","_updateMultiselectable","_focusWithKeyboardEvent","cancelDebouncer","searchText","_searchText","searchLength","toLocaleLowerCase","title","debounce","_clearSearchText","_focusPrevious","curFocusIndex","owner","getOwnerRoot","_focusNext","_applySelection","_focusedItemChanged","_onIronItemsChanged","addedNodes","_onUpKey","_onDownKey","_onEscKey","_onKeydown","_activateHandler","IronSelection","selectCallback","selection","excludes","attrForSelected","activateEvent","selectable","selectedClass","selectedAttribute","_excludedLocalNames","dom-bind","dom-if","dom-repeat","_bindFilterItem","_filterItem","_observeItems","_addListener","_removeListener","selectPrevious","_valueToIndex","selectNext","selectIndex","forceSynchronousItemUpdate","_updateItems","_checkFallback","_activateEventChanged","queryDistributedElements","_setItems","_valueForItem","propValue","toggleAttribute","mutation","_itemActivate","NeonAnimatableBehavior","animationConfig","entryAnimation","exitAnimation","_entryAnimationChanged","_exitAnimationChanged","_copyProperties","config1","config2","_cloneConfig","config","clone","isClone","_getAnimationConfigRecursive","allConfigs","thisConfig","_warn","_logf","animatable","cachedConfig","getAnimationConfig","NeonAnimationRunnerBehavior","_configureAnimations","configs","resultsToPlay","neonAnimation","isNeonAnimation","configure","timeline","play","animation","_shouldComplete","activeEntries","finished","playState","_complete","playAnimation","cookie","_active","onfinish","cancelAnimation","entries","j","Utility","distance","x1","y1","x2","y2","xDelta","yDelta","sqrt","now","performance","Date","ElementMetrics","boundingRect","Ripple","color","wave","waveContainer","backgroundColor","resetInteractionState","furthestCornerDistanceFrom","x","y","topLeft","topRight","bottomLeft","bottomRight","MAX_RADIUS","recenters","mouseDownElapsed","elapsed","mouseDownStart","mouseUpStart","mouseUpElapsed","mouseDownElapsedSeconds","mouseUpElapsedSeconds","mouseInteractionSeconds","initialOpacity","opacityDecayVelocity","radius","width2","containerMetrics","height2","waveRadius","duration","timeNow","pow","outerOpacity","waveOpacity","isOpacityFullyDecayed","maxRadius","isRestingAtMaxRadius","isAnimationComplete","translationFraction","xNow","xEnd","xStart","yNow","yEnd","yStart","isMouseDown","slideDistance","draw","scale","dx","dy","downAction","xCenter","yCenter","upAction","ripples","animating","_animating","_boundAnimate","animate","shouldKeepAnimating","simulatedRipple","addRipple","uiUpAction","onAnimationComplete","background","waves","_setAnimating","removeRipple","rippleIndex","animateRipple","_onEnterKeydown","_onSpaceKeydown","_onSpaceKeyup","_holdDownChanged","newVal","oldVal","MDCFoundation","adapter","adapter_","init","destroy","$_documentContainer","__coolingDown","__computeContainerClasses","coolingDown","__activeChanged","__setAriaHidden","__altChanged","hidden","__reset","AppLayoutBehavior","hasScrollingRegion","header","headerSlot","_updateLayoutStates","wrapper","scrollTarget","contentContainer","ownerDocument","headerHeight","offsetHeight","rightOffset","containerStyle","fixed","condenses","paddingTop","_polymer_iron_resizable_behavior_iron_resizable_behavior_js__WEBPACK_IMPORTED_MODULE_1__","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_2__","_polymer_polymer_lib_utils_async_js__WEBPACK_IMPORTED_MODULE_3__","_polymer_polymer_lib_utils_debounce_js__WEBPACK_IMPORTED_MODULE_4__","_polymer_polymer_lib_utils_flush_js__WEBPACK_IMPORTED_MODULE_5__","app-reset-layout","_appResetLayoutHandler","resetLayout","_layoutDebouncer","Debouncer","animationFrame","enqueueDebouncer","_notifyDescendantResize","_notifyLayoutChanged","self","link","_updateNoink","_parentNoink","_onTap","anchor","queryEffectiveChildren","IronMenubarBehaviorImpl","IronMenubarBehavior","_iron_menu_behavior_js__WEBPACK_IMPORTED_MODULE_1__","_onLeftKey","_onRightKey","PaperCheckedElementBehavior","aria-checked","radioContainer","afterNextRender","getComputedStyleValue","parseFloat","defaultInkSize","floor","updateStyles","--paper-radio-button-ink-size","supportsPassive_","applyPassive","globalObj","forceRefresh","isSupported_1","supportsCssVariables_","cssClasses","BG_FOCUSED","FG_ACTIVATION","FG_DEACTIVATION","ROOT","UNBOUNDED","VAR_FG_SCALE","VAR_FG_SIZE","VAR_FG_TRANSLATE_END","VAR_FG_TRANSLATE_START","VAR_LEFT","VAR_TOP","numbers","DEACTIVATION_TIMEOUT_MS","FG_DEACTIVATION_MS","INITIAL_ORIGIN_SCALE","PADDING","TAP_DELAY_MS","ACTIVATION_EVENT_TYPES","POINTER_DEACTIVATION_EVENT_TYPES","activatedTargets","ripple_foundation","_super","MDCRippleFoundation","defaultAdapter","activationAnimationHasEnded_","activationTimer_","fgDeactivationRemovalTimer_","fgScale_","frame_","initialSize_","layoutFrame_","maxRadius_","unboundedCoords_","activationState_","defaultActivationState_","activationTimerCallback_","runDeactivationUXLogicIfReady_","activateHandler_","activate_","deactivateHandler_","deactivate_","focusHandler_","blurHandler_","resizeHandler_","layout","addClass","browserSupportsCssVars","computeBoundingRect","containsEventTarget","deregisterDocumentInteractionHandler","deregisterInteractionHandler","deregisterResizeHandler","getWindowPageOffset","isSurfaceActive","isSurfaceDisabled","isUnbounded","registerDocumentInteractionHandler","registerInteractionHandler","registerResizeHandler","removeClass","updateCssVariable","supportsPressRipple","supportsPressRipple_","registerRootHandlers_","_a","ROOT_1","UNBOUNDED_1","layoutInternal_","ROOT_2","UNBOUNDED_2","removeCssVars_","deregisterRootHandlers_","deregisterDeactivationHandlers_","activate","evt","deactivate","setUnbounded","activationEvent","hasDeactivationUXRun","isActivated","isProgrammatic","wasActivatedByPointer","wasElementMadeActive","evtType","registerDeactivationHandlers_","rippleStrings","activationState","previousActivationEvent","previousActivationEvent_","some","resetActivationState_","checkElementMadeActive_","animateActivation_","_b","translateStart","translateEnd","_c","getFgTranslationCoordinates_","startPoint","endPoint","rmBoundedActivationClasses_","pageOffset","clientRect","normalizedX","normalizedY","documentX","documentY","touchEvent","changedTouches","mouseEvent","getNormalizedEventCoords","animateDeactivation_","maxDim","updateLayoutCssVars_","round","foundation","supportsCssVariablesWin","windowObj","CSS","supportsCssVars","supports","explicitlySupportsCssVars","weAreFeatureDetectingSafari10plus","computedStyle","hasPseudoVarBug","borderTopStyle","detectEdgePseudoVarBug","supportsCssVariables","isSafari","navigator","userAgent","didApplyRippleStyle","ripple_directive_rippleNode","ripple_directive_applyRippleStyle","surfaceNode","interactionNode","getRootNode","rippleFoundation","contains","handler","varName","setProperty","pageXOffset","pageYOffset","rippleInteractionNodes","existingInteractionNode","openAnimationConfig","closeAnimationConfig","focusTarget","noAnimations","allowOutsideScroll","neon-animation-finish","containedElement","_readied","_updateAnimationConfig","contentWrapper","_onNeonAnimationFinish","animationNode","animations","_updateOverlayPosition","_allowOutsideScrollChanged","NeonAnimationBehavior","animationTiming","easing","fill","timingFromConfig","timing","setPrefixedProperty","prefixes","transformOrigin","_effect","KeyframeEffect","ANIMATION_CUBIC_BEZIER","MAX_ANIMATION_TIME_MS","PaperMenuButton","paper_menu_button_templateObject","ignoreSelect","closeOnActivate","delay","_dropdownContent","aria-haspopup","iron-activate","iron-select","contentElement","dropdown","_onIronSelect","_onIronActivate","oldOpened","__onIronOverlayCanceled","uiEvent","trigger","IronScrollTargetBehavior","_defaultScrollTarget","_shouldHaveListener","_scrollTargetChanged","_oldScrollTarget","_toggleScrollListener","_doc","domHost","_isValidScrollTarget","_scrollHandler","_scrollTop","_scrollLeft","scrollTo","scroll","leftOrOptions","_scrollTargetWidth","offsetWidth","_scrollTargetHeight","yes","eventTarget","toggleScrollListener","_scrollEffects","AppScrollEffectsBehavior","effects","effectsConfig","threshold","thresholdTriggered","_updateScrollState","isOnScreen","isContentBelow","_effectsRunFn","_effects","_clampedScrollTop","_scrollStateChanged","_tearDownEffects","createEffect","effectName","effectConfig","effectDef","ReferenceError","_getUndefinedMsg","_boundEffect","setUp","_effectsChanged","_setUpEffect","_layoutIfDirty","startsAt","endsAt","deltaS","noop","runFn","run","progress","tearDown","_runEffects","_setThresholdTriggered","_getDOMRef","reveals","shadow","_height","_dHeight","_stickyElTop","_stickyElRef","_top","_progress","_wasScrollingDown","_initScrollTop","_initTimestamp","_lastTimestamp","_lastScrollTop","_maxHeaderTop","_stickyEl","slot","_configChanged","firstSetup","currentDisabled","_mayMove","offsetTop","forceUpdate","lastTop","maxHeaderTop","dScrollTop","absDScrollTop","isScrollingDown","_clamp","scrollVelocity","_transformHeader","willCondense","translate3d","_ensureBgContainers","_bgContainer","_bgRear","_bgFront","getScrollState","IronCheckedElementBehaviorImpl","checked","_hasIronCheckedElementBehavior","_value","_requiredChanged","_checkedChanged","_valueChanged","IronCheckedElementBehavior","PaperCheckedElementBehaviorImpl","_catch","recover","then","asyncIterator","unsubscribeEvents","subscription","const","Connection","socket","commandId","commands","eventListeners","closeRequested","setSocket","oldSocket","ev","_handleMessage","_handleClose","oldCommands","subscribe","unsub","unsubscribe","fireEvent","eventType","eventData","subscribeEvents","subscribeMessage","event_type","ping","sendMessagePromise","sendMessage","_genCmdId","send","messages","success","code","setupRetry","reconnect","tries","createSocket","tokenRequest","hassUrl","clientId","hostname","formData","FormData","append","fetch","method","credentials","resp","ok","status","json","tokens","expires","genExpires","expires_in","Auth","saveTokens","_saveTokens","prototypeAccessors","wsUrl","accessToken","access_token","expired","refreshAccessToken","grant_type","refresh_token","revoke","defineProperties","getCollection","conn","fetchCollection","subscribeUpdates","unsubProm","store","setState","overwrite","currentListeners","action","args","ret","listener","out","refresh","refreshSwallow","catch","OPEN","subscriber","createCollection","onChange","checkboxSizeText","units","unitsMatches","checkboxSize","--paper-checkbox-ink-size","_computeCheckboxClass","_computeCheckmarkClass","checkboxContainer","allowEmptySelection","newItem","oldItem","_activateFocusedItem","exports","m","toStringTag","__esModule","writable","h","maxPatternLength","u","caseSensitive","tokenSeparator","g","findAllMatches","minMatchCharLength","S","M","_","shouldSort","L","w","getFn","A","C","sortFn","I","score","O","tokenize","P","matchAllTokens","F","T","includeMatches","E","includeScore","K","verbose","J","TypeError","isCaseSensitive","setCollection","limit","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","_computeScore","_sort","_format","_analyze","record","resultMap","weight","arrayIndex","search","isMatch","output","matchedIndices","nScore","indices","log","patternAlphabet","errors","currentLocation","expectedLocation","charAt","module","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","webpackPolyfill","deprecate","paths","repeat","createAndInsertPart","containerPart","beforePart","beforeNode","newPart","updatePart","insertPartBefore","removePart","generateMap","partListCache","keyListCache","keyFnOrTemplate","keyFn","newKeyToIndexMap","oldKeyToIndexMap","oldParts","oldKeys","newParts","newValues","newKeys","oldHead","oldTail","newHead","newTail","oldIndex","oldPart","_newPart","_oldPart","paper_tabs_templateObject","noBar","noSlide","scrollable","fitContainer","disableDrag","hideScrollButtons","alignBottom","autoselect","autoselectDelay","_holdDelay","_leftHidden","_rightHidden","_previousTab","iron-deselect","left:keyup right:keyup","_holdJob","_pendingActivationItem","_pendingActivationTimeout","_bindDelayedActivationHandler","_delayedActivationHandler","_onBlurCapture","setScrollDirection","tabsContainer","_cancelPendingActivation","_setNoinkAttribute","_removeNoinkAttribute","_computeScrollButtonClass","hideThisButton","_computeTabsContentClass","_computeSelectionBarClass","_onTabSizingChanged","_scroll","_tabChanged","_onIronDeselect","_scheduleActivation","_onArrowKeyup","_tabContainerScrollSize","ddx","_affectScroll","_down","_onLeftScrollButtonDown","_scrollToLeft","setInterval","_onRightScrollButtonDown","_scrollToRight","_onScrollButtonUp","clearInterval","tab","selectionBar","_positionBar","tabsContent","tabRect","tabOffsetLeft","_pos","_calcPercent","oldRect","moveRight","_left","_scrollToSelectedIfNeeded","tabWidth","w0","_width","_onBarTransitionEnd","cl"],"mappings":"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","file":"chunk.12902324b918e12549ba.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module shady-render\n */\n\nimport {isTemplatePartActive, Template, TemplatePart} from './template.js';\n\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n * div#1 (remove) <-- start removing (removing node is div#1)\n * div\n * div#2 (remove) <-- continue removing (removing node is still div#1)\n * div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(\n template: Template, nodesToRemove: Set) {\n const {element: {content}, parts} = template;\n const walker =\n document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let part = parts[partIndex];\n let nodeIndex = -1;\n let removeCount = 0;\n const nodesToRemoveInTemplate = [];\n let currentRemovingNode: Node|null = null;\n while (walker.nextNode()) {\n nodeIndex++;\n const node = walker.currentNode as Element;\n // End removal if stepped past the removing node\n if (node.previousSibling === currentRemovingNode) {\n currentRemovingNode = null;\n }\n // A node to remove was found in the template\n if (nodesToRemove.has(node)) {\n nodesToRemoveInTemplate.push(node);\n // Track node we're removing\n if (currentRemovingNode === null) {\n currentRemovingNode = node;\n }\n }\n // When removing, increment count by which to adjust subsequent part indices\n if (currentRemovingNode !== null) {\n removeCount++;\n }\n while (part !== undefined && part.index === nodeIndex) {\n // If part is in a removed node deactivate it by setting index to -1 or\n // adjust the index as needed.\n part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n // go to the next active part.\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n part = parts[partIndex];\n }\n }\n nodesToRemoveInTemplate.forEach((n) => n.parentNode!.removeChild(n));\n}\n\nconst countNodes = (node: Node) => {\n let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n while (walker.nextNode()) {\n count++;\n }\n return count;\n};\n\nconst nextActiveIndexInTemplateParts =\n (parts: TemplatePart[], startIndex: number = -1) => {\n for (let i = startIndex + 1; i < parts.length; i++) {\n const part = parts[i];\n if (isTemplatePartActive(part)) {\n return i;\n }\n }\n return -1;\n };\n\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(\n template: Template, node: Node, refNode: Node|null = null) {\n const {element: {content}, parts} = template;\n // If there's no refNode, then put node at end of template.\n // No part indices need to be shifted in this case.\n if (refNode === null || refNode === undefined) {\n content.appendChild(node);\n return;\n }\n const walker =\n document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let insertCount = 0;\n let walkerIndex = -1;\n while (walker.nextNode()) {\n walkerIndex++;\n const walkerNode = walker.currentNode as Element;\n if (walkerNode === refNode) {\n insertCount = countNodes(node);\n refNode.parentNode!.insertBefore(node, refNode);\n }\n while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n // If we've inserted the node, simply adjust all subsequent parts\n if (insertCount > 0) {\n while (partIndex !== -1) {\n parts[partIndex].index += insertCount;\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n return;\n }\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n }\n}\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * Module to add shady DOM/shady CSS polyfill support to lit-html template\n * rendering. See the [[render]] method for details.\n *\n * @module shady-render\n * @preferred\n */\n\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport {removeNodes} from './dom.js';\nimport {insertNodeIntoTemplate, removeNodesFromTemplate} from './modify-template.js';\nimport {RenderOptions} from './render-options.js';\nimport {parts, render as litRender} from './render.js';\nimport {templateCaches} from './template-factory.js';\nimport {TemplateInstance} from './template-instance.js';\nimport {TemplateResult} from './template-result.js';\nimport {marker, Template} from './template.js';\n\nexport {html, svg, TemplateResult} from '../lit-html.js';\n\n// Get a key to lookup in `templateCaches`.\nconst getTemplateCacheKey = (type: string, scopeName: string) =>\n `${type}--${scopeName}`;\n\nlet compatibleShadyCSSVersion = true;\n\nif (typeof window.ShadyCSS === 'undefined') {\n compatibleShadyCSSVersion = false;\n} else if (typeof window.ShadyCSS.prepareTemplateDom === 'undefined') {\n console.warn(\n `Incompatible ShadyCSS version detected. ` +\n `Please update to at least @webcomponents/webcomponentsjs@2.0.2 and ` +\n `@webcomponents/shadycss@1.3.1.`);\n compatibleShadyCSSVersion = false;\n}\n\n/**\n * Template factory which scopes template DOM using ShadyCSS.\n * @param scopeName {string}\n */\nconst shadyTemplateFactory = (scopeName: string) =>\n (result: TemplateResult) => {\n const cacheKey = getTemplateCacheKey(result.type, scopeName);\n let templateCache = templateCaches.get(cacheKey);\n if (templateCache === undefined) {\n templateCache = {\n stringsArray: new WeakMap(),\n keyString: new Map()\n };\n templateCaches.set(cacheKey, templateCache);\n }\n\n let template = templateCache.stringsArray.get(result.strings);\n if (template !== undefined) {\n return template;\n }\n\n const key = result.strings.join(marker);\n template = templateCache.keyString.get(key);\n if (template === undefined) {\n const element = result.getTemplateElement();\n if (compatibleShadyCSSVersion) {\n window.ShadyCSS!.prepareTemplateDom(element, scopeName);\n }\n template = new Template(result, element);\n templateCache.keyString.set(key, template);\n }\n templateCache.stringsArray.set(result.strings, template);\n return template;\n };\n\nconst TEMPLATE_TYPES = ['html', 'svg'];\n\n/**\n * Removes all style elements from Templates for the given scopeName.\n */\nconst removeStylesFromLitTemplates = (scopeName: string) => {\n TEMPLATE_TYPES.forEach((type) => {\n const templates = templateCaches.get(getTemplateCacheKey(type, scopeName));\n if (templates !== undefined) {\n templates.keyString.forEach((template) => {\n const {element: {content}} = template;\n // IE 11 doesn't support the iterable param Set constructor\n const styles = new Set();\n Array.from(content.querySelectorAll('style')).forEach((s: Element) => {\n styles.add(s);\n });\n removeNodesFromTemplate(template, styles);\n });\n }\n });\n};\n\nconst shadyRenderSet = new Set();\n\n/**\n * For the given scope name, ensures that ShadyCSS style scoping is performed.\n * This is done just once per scope name so the fragment and template cannot\n * be modified.\n * (1) extracts styles from the rendered fragment and hands them to ShadyCSS\n * to be scoped and appended to the document\n * (2) removes style elements from all lit-html Templates for this scope name.\n *\n * Note, \n \n
    \n
    horizontal layout center alignment
    \n
    \n `;\n document.body.appendChild(template.content);\n ```\n\n2. [Custom CSS\nmixins](https://github.com/PolymerElements/iron-flex-layout/blob/master/iron-flex-layout.html).\nThe mixin stylesheet includes custom CSS mixins that can be applied inside a CSS\nrule using the `@apply` function.\n\nPlease note that the old [/deep/ layout\nclasses](https://github.com/PolymerElements/iron-flex-layout/tree/master/classes)\nare deprecated, and should not be used. To continue using layout properties\ndirectly in markup, please switch to using the new `dom-module`-based\n[layout\nclasses](https://github.com/PolymerElements/iron-flex-layout/tree/master/iron-flex-layout-classes.html).\nPlease note that the new version does not use `/deep/`, and therefore requires\nyou to import the `dom-modules` in every element that needs to use them.\n\n@group Iron Elements\n@pseudoElement iron-flex-layout\n@demo demo/index.html\n*/\nconst template = html`\n\n \n\n\n \n`;\n\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n\nvar style = document.createElement('style');\nstyle.textContent = '[hidden] { display: none !important; }';\ndocument.head.appendChild(style);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/* Taken from\n * https://www.google.com/design/spec/style/color.html#color-ui-color-application\n */\nimport '@polymer/polymer/polymer-legacy.js';\nimport './color.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {Part} from './part.js';\nimport {AttributeCommitter, BooleanAttributePart, EventPart, NodePart, PropertyCommitter} from './parts.js';\nimport {RenderOptions} from './render-options.js';\nimport {TemplateProcessor} from './template-processor.js';\n\n/**\n * Creates Parts when a template is instantiated.\n */\nexport class DefaultTemplateProcessor implements TemplateProcessor {\n /**\n * Create parts for an attribute-position binding, given the event, attribute\n * name, and string literals.\n *\n * @param element The element containing the binding\n * @param name The attribute name\n * @param strings The string literals. There are always at least two strings,\n * event for fully-controlled bindings with a single expression.\n */\n handleAttributeExpressions(\n element: Element, name: string, strings: string[],\n options: RenderOptions): ReadonlyArray {\n const prefix = name[0];\n if (prefix === '.') {\n const committer = new PropertyCommitter(element, name.slice(1), strings);\n return committer.parts;\n }\n if (prefix === '@') {\n return [new EventPart(element, name.slice(1), options.eventContext)];\n }\n if (prefix === '?') {\n return [new BooleanAttributePart(element, name.slice(1), strings)];\n }\n const committer = new AttributeCommitter(element, name, strings);\n return committer.parts;\n }\n /**\n * Create parts for a text-position binding.\n * @param templateFactory\n */\n handleTextExpression(options: RenderOptions) {\n return new NodePart(options);\n }\n}\n\nexport const defaultTemplateProcessor = new DefaultTemplateProcessor();\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n *\n * Main lit-html module.\n *\n * Main exports:\n *\n * - [[html]]\n * - [[svg]]\n * - [[render]]\n *\n * @module lit-html\n * @preferred\n */\n\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport {defaultTemplateProcessor} from './lib/default-template-processor.js';\nimport {SVGTemplateResult, TemplateResult} from './lib/template-result.js';\n\nexport {DefaultTemplateProcessor, defaultTemplateProcessor} from './lib/default-template-processor.js';\nexport {directive, DirectiveFn, isDirective} from './lib/directive.js';\n// TODO(justinfagnani): remove line when we get NodePart moving methods\nexport {removeNodes, reparentNodes} from './lib/dom.js';\nexport {noChange, nothing, Part} from './lib/part.js';\nexport {AttributeCommitter, AttributePart, BooleanAttributePart, EventPart, isIterable, isPrimitive, NodePart, PropertyCommitter, PropertyPart} from './lib/parts.js';\nexport {RenderOptions} from './lib/render-options.js';\nexport {parts, render} from './lib/render.js';\nexport {templateCaches, templateFactory} from './lib/template-factory.js';\nexport {TemplateInstance} from './lib/template-instance.js';\nexport {TemplateProcessor} from './lib/template-processor.js';\nexport {SVGTemplateResult, TemplateResult} from './lib/template-result.js';\nexport {createMarker, isTemplatePartActive, Template} from './lib/template.js';\n\ndeclare global {\n interface Window {\n litHtmlVersions: string[];\n }\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litHtmlVersions'] || (window['litHtmlVersions'] = [])).push('1.1.2');\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n */\nexport const html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n new TemplateResult(strings, values, 'html', defaultTemplateProcessor);\n\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n */\nexport const svg = (strings: TemplateStringsArray, ...values: unknown[]) =>\n new SVGTemplateResult(strings, values, 'svg', defaultTemplateProcessor);\n","/**\n@license\nCopyright 2019 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport {HTMLElementWithRipple} from '@material/mwc-base/form-element';\nimport {ripple} from '@material/mwc-ripple/ripple-directive.js';\nimport {html, LitElement, property, query} from 'lit-element';\nimport {classMap} from 'lit-html/directives/class-map';\n\nexport class ButtonBase extends LitElement {\n @property({type: Boolean}) raised = false;\n\n @property({type: Boolean}) unelevated = false;\n\n @property({type: Boolean}) outlined = false;\n\n @property({type: Boolean}) dense = false;\n\n @property({type: Boolean, reflect: true}) disabled = false;\n\n @property({type: Boolean}) trailingIcon = false;\n\n @property() icon = '';\n\n @property() label = '';\n\n @query('#button') buttonElement!: HTMLElementWithRipple;\n\n protected createRenderRoot() {\n return this.attachShadow({mode: 'open', delegatesFocus: true});\n }\n\n focus() {\n const buttonElement = this.buttonElement;\n if (buttonElement) {\n const ripple = buttonElement.ripple;\n if (ripple) {\n ripple.handleFocus();\n }\n\n buttonElement.focus();\n }\n }\n\n blur() {\n const buttonElement = this.buttonElement;\n if (buttonElement) {\n const ripple = buttonElement.ripple;\n if (ripple) {\n ripple.handleBlur();\n }\n\n buttonElement.blur();\n }\n }\n\n protected render() {\n const classes = {\n 'mdc-button--raised': this.raised,\n 'mdc-button--unelevated': this.unelevated,\n 'mdc-button--outlined': this.outlined,\n 'mdc-button--dense': this.dense,\n };\n const mdcButtonIcon =\n html`${this.icon}`;\n const buttonRipple = ripple({unbounded: false});\n return html`\n `;\n }\n}\n","/**\n@license\nCopyright 2018 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport {css} from 'lit-element';\n\nexport const style = css`.mdc-button{font-family:Roboto, sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;line-height:2.25rem;font-weight:500;letter-spacing:.0892857143em;text-decoration:none;text-transform:uppercase;padding:0 8px 0 8px;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;border-radius:4px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{background-color:transparent;color:rgba(0,0,0,.37);cursor:default;pointer-events:none}.mdc-button .mdc-button__ripple{border-radius:4px}.mdc-button:not(:disabled){background-color:transparent}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;width:18px;height:18px;font-size:18px;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__touch{position:absolute;top:50%;right:0;left:0;height:48px;transform:translateY(-50%)}.mdc-button:not(:disabled){color:#6200ee;color:var(--mdc-theme-primary, #6200ee)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--raised .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon,.mdc-button--outlined .mdc-button__icon{margin-left:-4px;margin-right:8px}[dir=rtl] .mdc-button--raised .mdc-button__icon,.mdc-button--raised .mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--unelevated .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--outlined .mdc-button__icon,.mdc-button--outlined .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mdc-button--raised .mdc-button__label+.mdc-button__icon,.mdc-button--unelevated .mdc-button__label+.mdc-button__icon,.mdc-button--outlined .mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mdc-button--raised .mdc-button__label+.mdc-button__icon,.mdc-button--raised .mdc-button__label+.mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--unelevated .mdc-button__label+.mdc-button__icon,.mdc-button--unelevated .mdc-button__label+.mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--outlined .mdc-button__label+.mdc-button__icon,.mdc-button--outlined .mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mdc-button--raised,.mdc-button--unelevated{padding:0 16px 0 16px}.mdc-button--raised:disabled,.mdc-button--unelevated:disabled{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.37)}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){background-color:#6200ee}@supports not (-ms-ime-align: auto){.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){background-color:var(--mdc-theme-primary, #6200ee)}}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary, #fff)}.mdc-button--raised{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2),0px 2px 2px 0px rgba(0, 0, 0, 0.14),0px 1px 5px 0px rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--raised:hover,.mdc-button--raised:focus{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0,0,0,.12)}.mdc-button--raised:active{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2),0px 8px 10px 1px rgba(0, 0, 0, 0.14),0px 3px 14px 2px rgba(0,0,0,.12)}.mdc-button--raised:disabled{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2),0px 0px 0px 0px rgba(0, 0, 0, 0.14),0px 0px 0px 0px rgba(0,0,0,.12)}.mdc-button--outlined{border-style:solid;padding:0 15px 0 15px;border-width:1px}.mdc-button--outlined:disabled{border-color:rgba(0,0,0,.37)}.mdc-button--outlined .mdc-button__ripple{top:-1px;left:-1px;border:1px solid transparent}.mdc-button--outlined:not(:disabled){border-color:#6200ee;border-color:var(--mdc-theme-primary, #6200ee)}.mdc-button--touch{margin-top:6px;margin-bottom:6px}@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface--test-edge-var-bug{--mdc-ripple-surface-test-edge-var: 1px solid #000;visibility:hidden}.mdc-ripple-surface--test-edge-var-bug::before{border:var(--mdc-ripple-surface-test-edge-var)}.mdc-button{--mdc-ripple-fg-size: 0;--mdc-ripple-left: 0;--mdc-ripple-top: 0;--mdc-ripple-fg-scale: 1;--mdc-ripple-fg-translate-end: 0;--mdc-ripple-fg-translate-start: 0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-button .mdc-button__ripple::before{transition:opacity 15ms linear,background-color 15ms linear;z-index:1}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-button.mdc-ripple-upgraded--unbounded .mdc-button__ripple::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-button.mdc-ripple-upgraded--foreground-activation .mdc-button__ripple::after{animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-button.mdc-ripple-upgraded--foreground-deactivation .mdc-button__ripple::after{animation:mdc-ripple-fg-opacity-out 150ms;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{background-color:#6200ee}@supports not (-ms-ime-align: auto){.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{background-color:var(--mdc-theme-primary, #6200ee)}}.mdc-button:hover .mdc-button__ripple::before{opacity:.04}.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:.12}.mdc-button:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:.12}.mdc-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: 0.12}.mdc-button .mdc-button__ripple{position:absolute;width:100%;height:100%;overflow:hidden}.mdc-button:not(.mdc-button--outlined) .mdc-button__ripple{top:0;left:0}.mdc-button--raised .mdc-button__ripple::before,.mdc-button--raised .mdc-button__ripple::after,.mdc-button--unelevated .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after{background-color:#fff}@supports not (-ms-ime-align: auto){.mdc-button--raised .mdc-button__ripple::before,.mdc-button--raised .mdc-button__ripple::after,.mdc-button--unelevated .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after{background-color:var(--mdc-theme-on-primary, #fff)}}.mdc-button--raised:hover .mdc-button__ripple::before,.mdc-button--unelevated:hover .mdc-button__ripple::before{opacity:.08}.mdc-button--raised.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--raised:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before,.mdc-button--unelevated.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:.24}.mdc-button--raised:not(.mdc-ripple-upgraded) .mdc-button__ripple::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button--raised:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:.24}.mdc-button--raised.mdc-ripple-upgraded,.mdc-button--unelevated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: 0.24}.mdc-button{height:36px}.material-icons{font-family:var(--mdc-icon-font, \"Material Icons\");font-weight:normal;font-style:normal;font-size:var(--mdc-icon-size, 24px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}:host{display:inline-flex;outline:none}:host([disabled]){pointer-events:none}.mdc-button{flex:auto}`;\n","/**\n@license\nCopyright 2018 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport {customElement} from 'lit-element';\n\nimport {ButtonBase} from './mwc-button-base.js';\nimport {style} from './mwc-button-css.js';\n\n@customElement('mwc-button')\nexport class Button extends ButtonBase {\n static styles = style;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mwc-button': Button;\n }\n}\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nimport {resolveUrl} from '@polymer/polymer/lib/utils/resolve-url.js';\n\n/**\n`iron-image` is an element for displaying an image that provides useful sizing and\npreloading options not found on the standard `` tag.\n\nThe `sizing` option allows the image to be either cropped (`cover`) or\nletterboxed (`contain`) to fill a fixed user-size placed on the element.\n\nThe `preload` option prevents the browser from rendering the image until the\nimage is fully loaded. In the interim, either the element's CSS `background-color`\ncan be be used as the placeholder, or the `placeholder` property can be\nset to a URL (preferably a data-URI, for instant rendering) for an\nplaceholder image.\n\nThe `fade` option (only valid when `preload` is set) will cause the placeholder\nimage/color to be faded out once the image is rendered.\n\nExamples:\n\n Basically identical to `` tag:\n\n \n\n Will letterbox the image to fit:\n\n \n\n Will crop the image to fit:\n\n \n\n Will show light-gray background until the image loads:\n\n \n\n Will show a base-64 encoded placeholder image until the image loads:\n\n \n\n Will fade the light-gray background out once the image is loaded:\n\n \n\nCustom property | Description | Default\n----------------|-------------|----------\n`--iron-image-placeholder` | Mixin applied to #placeholder | `{}`\n`--iron-image-width` | Sets the width of the wrapped image | `auto`\n`--iron-image-height` | Sets the height of the wrapped image | `auto`\n\n@group Iron Elements\n@element iron-image\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n\n
    \n
    \n \n
    \n`,\n\n is: 'iron-image',\n\n properties: {\n /**\n * The URL of an image.\n */\n src: {type: String, value: ''},\n\n /**\n * A short text alternative for the image.\n */\n alt: {type: String, value: null},\n\n /**\n * CORS enabled images support:\n * https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image\n */\n crossorigin: {type: String, value: null},\n\n /**\n * When true, the image is prevented from loading and any placeholder is\n * shown. This may be useful when a binding to the src property is known to\n * be invalid, to prevent 404 requests.\n */\n preventLoad: {type: Boolean, value: false},\n\n /**\n * Sets a sizing option for the image. Valid values are `contain` (full\n * aspect ratio of the image is contained within the element and\n * letterboxed) or `cover` (image is cropped in order to fully cover the\n * bounds of the element), or `null` (default: image takes natural size).\n */\n sizing: {type: String, value: null, reflectToAttribute: true},\n\n /**\n * When a sizing option is used (`cover` or `contain`), this determines\n * how the image is aligned within the element bounds.\n */\n position: {type: String, value: 'center'},\n\n /**\n * When `true`, any change to the `src` property will cause the\n * `placeholder` image to be shown until the new image has loaded.\n */\n preload: {type: Boolean, value: false},\n\n /**\n * This image will be used as a background/placeholder until the src image\n * has loaded. Use of a data-URI for placeholder is encouraged for instant\n * rendering.\n */\n placeholder: {type: String, value: null, observer: '_placeholderChanged'},\n\n /**\n * When `preload` is true, setting `fade` to true will cause the image to\n * fade into place.\n */\n fade: {type: Boolean, value: false},\n\n /**\n * Read-only value that is true when the image is loaded.\n */\n loaded: {notify: true, readOnly: true, type: Boolean, value: false},\n\n /**\n * Read-only value that tracks the loading state of the image when the\n * `preload` option is used.\n */\n loading: {notify: true, readOnly: true, type: Boolean, value: false},\n\n /**\n * Read-only value that indicates that the last set `src` failed to load.\n */\n error: {notify: true, readOnly: true, type: Boolean, value: false},\n\n /**\n * Can be used to set the width of image (e.g. via binding); size may also\n * be set via CSS.\n */\n width: {observer: '_widthChanged', type: Number, value: null},\n\n /**\n * Can be used to set the height of image (e.g. via binding); size may also\n * be set via CSS.\n *\n * @attribute height\n * @type number\n * @default null\n */\n height: {observer: '_heightChanged', type: Number, value: null},\n },\n\n observers: [\n '_transformChanged(sizing, position)',\n '_loadStateObserver(src, preventLoad)'\n ],\n\n created: function() {\n this._resolvedSrc = '';\n },\n\n _imgOnLoad: function() {\n if (this.$.img.src !== this._resolveSrc(this.src)) {\n return;\n }\n\n this._setLoading(false);\n this._setLoaded(true);\n this._setError(false);\n },\n\n _imgOnError: function() {\n if (this.$.img.src !== this._resolveSrc(this.src)) {\n return;\n }\n\n this.$.img.removeAttribute('src');\n this.$.sizedImgDiv.style.backgroundImage = '';\n\n this._setLoading(false);\n this._setLoaded(false);\n this._setError(true);\n },\n\n _computePlaceholderHidden: function() {\n return !this.preload || (!this.fade && !this.loading && this.loaded);\n },\n\n _computePlaceholderClassName: function() {\n return (this.preload && this.fade && !this.loading && this.loaded) ?\n 'faded-out' :\n '';\n },\n\n _computeImgDivHidden: function() {\n return !this.sizing;\n },\n\n _computeImgDivARIAHidden: function() {\n return this.alt === '' ? 'true' : undefined;\n },\n\n _computeImgDivARIALabel: function() {\n if (this.alt !== null) {\n return this.alt;\n }\n\n // Polymer.ResolveUrl.resolveUrl will resolve '' relative to a URL x to\n // that URL x, but '' is the default for src.\n if (this.src === '') {\n return '';\n }\n\n // NOTE: Use of `URL` was removed here because IE11 doesn't support\n // constructing it. If this ends up being problematic, we should\n // consider reverting and adding the URL polyfill as a dev dependency.\n var resolved = this._resolveSrc(this.src);\n // Remove query parts, get file name.\n return resolved.replace(/[?|#].*/g, '').split('/').pop();\n },\n\n _computeImgHidden: function() {\n return !!this.sizing;\n },\n\n _widthChanged: function() {\n this.style.width = isNaN(this.width) ? this.width : this.width + 'px';\n },\n\n _heightChanged: function() {\n this.style.height = isNaN(this.height) ? this.height : this.height + 'px';\n },\n\n _loadStateObserver: function(src, preventLoad) {\n var newResolvedSrc = this._resolveSrc(src);\n if (newResolvedSrc === this._resolvedSrc) {\n return;\n }\n\n this._resolvedSrc = '';\n this.$.img.removeAttribute('src');\n this.$.sizedImgDiv.style.backgroundImage = '';\n\n if (src === '' || preventLoad) {\n this._setLoading(false);\n this._setLoaded(false);\n this._setError(false);\n } else {\n this._resolvedSrc = newResolvedSrc;\n this.$.img.src = this._resolvedSrc;\n this.$.sizedImgDiv.style.backgroundImage =\n 'url(\"' + this._resolvedSrc + '\")';\n\n this._setLoading(true);\n this._setLoaded(false);\n this._setError(false);\n }\n },\n\n _placeholderChanged: function() {\n this.$.placeholder.style.backgroundImage =\n this.placeholder ? 'url(\"' + this.placeholder + '\")' : '';\n },\n\n _transformChanged: function() {\n var sizedImgDivStyle = this.$.sizedImgDiv.style;\n var placeholderStyle = this.$.placeholder.style;\n\n sizedImgDivStyle.backgroundSize = placeholderStyle.backgroundSize =\n this.sizing;\n\n sizedImgDivStyle.backgroundPosition = placeholderStyle.backgroundPosition =\n this.sizing ? this.position : '';\n\n sizedImgDivStyle.backgroundRepeat = placeholderStyle.backgroundRepeat =\n this.sizing ? 'no-repeat' : '';\n },\n\n _resolveSrc: function(testSrc) {\n var resolved = resolveUrl(testSrc, this.$.baseURIAnchor.href);\n // NOTE: Use of `URL` was removed here because IE11 doesn't support\n // constructing it. If this ends up being problematic, we should\n // consider reverting and adding the URL polyfill as a dev dependency.\n if (resolved.length >= 2 && resolved[0] === '/' && resolved[1] !== '/') {\n // In IE location.origin might not work\n // https://connect.microsoft.com/IE/feedback/details/1763802/location-origin-is-undefined-in-ie-11-on-windows-10-but-works-on-windows-7\n resolved = (location.origin || location.protocol + '//' + location.host) +\n resolved;\n }\n return resolved;\n }\n});\n","/**\n@license\nCopyright (c) 2017 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/**\nMaterial design:\n[Cards](https://www.google.com/design/spec/components/cards.html)\n\nShared styles that you can apply to an element to renders two shadows on top\nof each other,that create the effect of a lifted piece of paper.\n\nExample:\n\n \n \n \n\n
    \n ... content ...\n
    \n\n@group Paper Elements\n@demo demo/index.html\n*/\n\nimport '@polymer/polymer/polymer-legacy.js';\nimport '../shadow.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/iron-image/iron-image.js';\nimport '@polymer/paper-styles/element-styles/paper-material-styles.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Cards](https://www.google.com/design/spec/components/cards.html)\n\n`paper-card` is a container with a drop shadow.\n\nExample:\n\n \n
    Some content
    \n
    \n Some action\n
    \n
    \n\nExample - top card image:\n\n \n ...\n \n\n### Accessibility\n\nBy default, the `aria-label` will be set to the value of the `heading`\nattribute.\n\n### Styling\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-card-background-color` | The background color of the card | `--primary-background-color`\n`--paper-card-header-color` | The color of the header text | `#000`\n`--paper-card-header` | Mixin applied to the card header section | `{}`\n`--paper-card-header-text` | Mixin applied to the title in the card header section | `{}`\n`--paper-card-header-image` | Mixin applied to the image in the card header section | `{}`\n`--paper-card-header-image-text` | Mixin applied to the text overlapping the image in the card header section | `{}`\n`--paper-card-content` | Mixin applied to the card content section| `{}`\n`--paper-card-actions` | Mixin applied to the card action section | `{}`\n`--paper-card` | Mixin applied to the card | `{}`\n\n@group Paper Elements\n@element paper-card\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n\n
    \n \n
    [[heading]]
    \n
    \n\n \n`,\n\n is: 'paper-card',\n\n properties: {\n /**\n * The title of the card.\n */\n heading: {type: String, value: '', observer: '_headingChanged'},\n\n /**\n * The url of the title image of the card.\n */\n image: {type: String, value: ''},\n\n /**\n * The text alternative of the card's title image.\n */\n alt: {type: String},\n\n /**\n * When `true`, any change to the image url property will cause the\n * `placeholder` image to be shown until the image is fully rendered.\n */\n preloadImage: {type: Boolean, value: false},\n\n /**\n * When `preloadImage` is true, setting `fadeImage` to true will cause the\n * image to fade into place.\n */\n fadeImage: {type: Boolean, value: false},\n\n /**\n * This image will be used as a background/placeholder until the src image\n * has loaded. Use of a data-URI for placeholder is encouraged for instant\n * rendering.\n */\n placeholderImage: {type: String, value: null},\n\n /**\n * The z-depth of the card, from 0-5.\n */\n elevation: {type: Number, value: 1, reflectToAttribute: true},\n\n /**\n * Set this to true to animate the card shadow when setting a new\n * `z` value.\n */\n animatedShadow: {type: Boolean, value: false},\n\n /**\n * Read-only property used to pass down the `animatedShadow` value to\n * the underlying paper-material style (since they have different names).\n */\n animated: {\n type: Boolean,\n reflectToAttribute: true,\n readOnly: true,\n computed: '_computeAnimated(animatedShadow)'\n }\n },\n\n /**\n * Format function for aria-hidden. Use the ! operator results in the\n * empty string when given a falsy value.\n */\n _isHidden: function(image) {\n return image ? 'false' : 'true';\n },\n\n _headingChanged: function(heading) {\n var currentHeading = this.getAttribute('heading'),\n currentLabel = this.getAttribute('aria-label');\n\n if (typeof currentLabel !== 'string' || currentLabel === currentHeading) {\n this.setAttribute('aria-label', heading);\n }\n },\n\n _computeHeadingClass: function(image) {\n return image ? ' over-image' : '';\n },\n\n _computeAnimated: function(animatedShadow) {\n return animatedShadow;\n }\n});\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {isDirective} from './directive.js';\nimport {removeNodes} from './dom.js';\nimport {noChange, nothing, Part} from './part.js';\nimport {RenderOptions} from './render-options.js';\nimport {TemplateInstance} from './template-instance.js';\nimport {TemplateResult} from './template-result.js';\nimport {createMarker} from './template.js';\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\nexport type Primitive = null|undefined|boolean|number|string|Symbol|bigint;\nexport const isPrimitive = (value: unknown): value is Primitive => {\n return (\n value === null ||\n !(typeof value === 'object' || typeof value === 'function'));\n};\nexport const isIterable = (value: unknown): value is Iterable => {\n return Array.isArray(value) ||\n // tslint:disable-next-line:no-any\n !!(value && (value as any)[Symbol.iterator]);\n};\n\n/**\n * Writes attribute values to the DOM for a group of AttributeParts bound to a\n * single attibute. The value is only set once even if there are multiple parts\n * for an attribute.\n */\nexport class AttributeCommitter {\n readonly element: Element;\n readonly name: string;\n readonly strings: ReadonlyArray;\n readonly parts: ReadonlyArray;\n dirty = true;\n\n constructor(element: Element, name: string, strings: ReadonlyArray) {\n this.element = element;\n this.name = name;\n this.strings = strings;\n this.parts = [];\n for (let i = 0; i < strings.length - 1; i++) {\n (this.parts as AttributePart[])[i] = this._createPart();\n }\n }\n\n /**\n * Creates a single part. Override this to create a differnt type of part.\n */\n protected _createPart(): AttributePart {\n return new AttributePart(this);\n }\n\n protected _getValue(): unknown {\n const strings = this.strings;\n const l = strings.length - 1;\n let text = '';\n\n for (let i = 0; i < l; i++) {\n text += strings[i];\n const part = this.parts[i];\n if (part !== undefined) {\n const v = part.value;\n if (isPrimitive(v) || !isIterable(v)) {\n text += typeof v === 'string' ? v : String(v);\n } else {\n for (const t of v) {\n text += typeof t === 'string' ? t : String(t);\n }\n }\n }\n }\n\n text += strings[l];\n return text;\n }\n\n commit(): void {\n if (this.dirty) {\n this.dirty = false;\n this.element.setAttribute(this.name, this._getValue() as string);\n }\n }\n}\n\n/**\n * A Part that controls all or part of an attribute value.\n */\nexport class AttributePart implements Part {\n readonly committer: AttributeCommitter;\n value: unknown = undefined;\n\n constructor(committer: AttributeCommitter) {\n this.committer = committer;\n }\n\n setValue(value: unknown): void {\n if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n this.value = value;\n // If the value is a not a directive, dirty the committer so that it'll\n // call setAttribute. If the value is a directive, it'll dirty the\n // committer if it calls setValue().\n if (!isDirective(value)) {\n this.committer.dirty = true;\n }\n }\n }\n\n commit() {\n while (isDirective(this.value)) {\n const directive = this.value;\n this.value = noChange;\n directive(this);\n }\n if (this.value === noChange) {\n return;\n }\n this.committer.commit();\n }\n}\n\n/**\n * A Part that controls a location within a Node tree. Like a Range, NodePart\n * has start and end locations and can set and update the Nodes between those\n * locations.\n *\n * NodeParts support several value types: primitives, Nodes, TemplateResults,\n * as well as arrays and iterables of those types.\n */\nexport class NodePart implements Part {\n readonly options: RenderOptions;\n startNode!: Node;\n endNode!: Node;\n value: unknown = undefined;\n private __pendingValue: unknown = undefined;\n\n constructor(options: RenderOptions) {\n this.options = options;\n }\n\n /**\n * Appends this part into a container.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n appendInto(container: Node) {\n this.startNode = container.appendChild(createMarker());\n this.endNode = container.appendChild(createMarker());\n }\n\n /**\n * Inserts this part after the `ref` node (between `ref` and `ref`'s next\n * sibling). Both `ref` and its next sibling must be static, unchanging nodes\n * such as those that appear in a literal section of a template.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n insertAfterNode(ref: Node) {\n this.startNode = ref;\n this.endNode = ref.nextSibling!;\n }\n\n /**\n * Appends this part into a parent part.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n appendIntoPart(part: NodePart) {\n part.__insert(this.startNode = createMarker());\n part.__insert(this.endNode = createMarker());\n }\n\n /**\n * Inserts this part after the `ref` part.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n insertAfterPart(ref: NodePart) {\n ref.__insert(this.startNode = createMarker());\n this.endNode = ref.endNode;\n ref.endNode = this.startNode;\n }\n\n setValue(value: unknown): void {\n this.__pendingValue = value;\n }\n\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n const value = this.__pendingValue;\n if (value === noChange) {\n return;\n }\n if (isPrimitive(value)) {\n if (value !== this.value) {\n this.__commitText(value);\n }\n } else if (value instanceof TemplateResult) {\n this.__commitTemplateResult(value);\n } else if (value instanceof Node) {\n this.__commitNode(value);\n } else if (isIterable(value)) {\n this.__commitIterable(value);\n } else if (value === nothing) {\n this.value = nothing;\n this.clear();\n } else {\n // Fallback, will render the string representation\n this.__commitText(value);\n }\n }\n\n private __insert(node: Node) {\n this.endNode.parentNode!.insertBefore(node, this.endNode);\n }\n\n private __commitNode(value: Node): void {\n if (this.value === value) {\n return;\n }\n this.clear();\n this.__insert(value);\n this.value = value;\n }\n\n private __commitText(value: unknown): void {\n const node = this.startNode.nextSibling!;\n value = value == null ? '' : value;\n // If `value` isn't already a string, we explicitly convert it here in case\n // it can't be implicitly converted - i.e. it's a symbol.\n const valueAsString: string =\n typeof value === 'string' ? value : String(value);\n if (node === this.endNode.previousSibling &&\n node.nodeType === 3 /* Node.TEXT_NODE */) {\n // If we only have a single text node between the markers, we can just\n // set its value, rather than replacing it.\n // TODO(justinfagnani): Can we just check if this.value is primitive?\n (node as Text).data = valueAsString;\n } else {\n this.__commitNode(document.createTextNode(valueAsString));\n }\n this.value = value;\n }\n\n private __commitTemplateResult(value: TemplateResult): void {\n const template = this.options.templateFactory(value);\n if (this.value instanceof TemplateInstance &&\n this.value.template === template) {\n this.value.update(value.values);\n } else {\n // Make sure we propagate the template processor from the TemplateResult\n // so that we use its syntax extension, etc. The template factory comes\n // from the render function options so that it can control template\n // caching and preprocessing.\n const instance =\n new TemplateInstance(template, value.processor, this.options);\n const fragment = instance._clone();\n instance.update(value.values);\n this.__commitNode(fragment);\n this.value = instance;\n }\n }\n\n private __commitIterable(value: Iterable): void {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n\n // If _value is an array, then the previous render was of an\n // iterable and _value will contain the NodeParts from the previous\n // render. If _value is not an array, clear this part and make a new\n // array for NodeParts.\n if (!Array.isArray(this.value)) {\n this.value = [];\n this.clear();\n }\n\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this.value as NodePart[];\n let partIndex = 0;\n let itemPart: NodePart|undefined;\n\n for (const item of value) {\n // Try to reuse an existing part\n itemPart = itemParts[partIndex];\n\n // If no existing part, create a new one\n if (itemPart === undefined) {\n itemPart = new NodePart(this.options);\n itemParts.push(itemPart);\n if (partIndex === 0) {\n itemPart.appendIntoPart(this);\n } else {\n itemPart.insertAfterPart(itemParts[partIndex - 1]);\n }\n }\n itemPart.setValue(item);\n itemPart.commit();\n partIndex++;\n }\n\n if (partIndex < itemParts.length) {\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n this.clear(itemPart && itemPart.endNode);\n }\n }\n\n clear(startNode: Node = this.startNode) {\n removeNodes(\n this.startNode.parentNode!, startNode.nextSibling!, this.endNode);\n }\n}\n\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart implements Part {\n readonly element: Element;\n readonly name: string;\n readonly strings: ReadonlyArray;\n value: unknown = undefined;\n private __pendingValue: unknown = undefined;\n\n constructor(element: Element, name: string, strings: ReadonlyArray) {\n if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n throw new Error(\n 'Boolean attributes can only contain a single expression');\n }\n this.element = element;\n this.name = name;\n this.strings = strings;\n }\n\n setValue(value: unknown): void {\n this.__pendingValue = value;\n }\n\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n if (this.__pendingValue === noChange) {\n return;\n }\n const value = !!this.__pendingValue;\n if (this.value !== value) {\n if (value) {\n this.element.setAttribute(this.name, '');\n } else {\n this.element.removeAttribute(this.name);\n }\n this.value = value;\n }\n this.__pendingValue = noChange;\n }\n}\n\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n readonly single: boolean;\n\n constructor(element: Element, name: string, strings: ReadonlyArray) {\n super(element, name, strings);\n this.single =\n (strings.length === 2 && strings[0] === '' && strings[1] === '');\n }\n\n protected _createPart(): PropertyPart {\n return new PropertyPart(this);\n }\n\n protected _getValue() {\n if (this.single) {\n return this.parts[0].value;\n }\n return super._getValue();\n }\n\n commit(): void {\n if (this.dirty) {\n this.dirty = false;\n // tslint:disable-next-line:no-any\n (this.element as any)[this.name] = this._getValue();\n }\n }\n}\n\nexport class PropertyPart extends AttributePart {}\n\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\n\ntry {\n const options = {\n get capture() {\n eventOptionsSupported = true;\n return false;\n }\n };\n // tslint:disable-next-line:no-any\n window.addEventListener('test', options as any, options);\n // tslint:disable-next-line:no-any\n window.removeEventListener('test', options as any, options);\n} catch (_e) {\n}\n\n\ntype EventHandlerWithOptions =\n EventListenerOrEventListenerObject&Partial;\nexport class EventPart implements Part {\n readonly element: Element;\n readonly eventName: string;\n readonly eventContext?: EventTarget;\n value: undefined|EventHandlerWithOptions = undefined;\n private __options?: AddEventListenerOptions;\n private __pendingValue: undefined|EventHandlerWithOptions = undefined;\n private readonly __boundHandleEvent: (event: Event) => void;\n\n constructor(element: Element, eventName: string, eventContext?: EventTarget) {\n this.element = element;\n this.eventName = eventName;\n this.eventContext = eventContext;\n this.__boundHandleEvent = (e) => this.handleEvent(e);\n }\n\n setValue(value: undefined|EventHandlerWithOptions): void {\n this.__pendingValue = value;\n }\n\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange as EventHandlerWithOptions;\n directive(this);\n }\n if (this.__pendingValue === noChange) {\n return;\n }\n\n const newListener = this.__pendingValue;\n const oldListener = this.value;\n const shouldRemoveListener = newListener == null ||\n oldListener != null &&\n (newListener.capture !== oldListener.capture ||\n newListener.once !== oldListener.once ||\n newListener.passive !== oldListener.passive);\n const shouldAddListener =\n newListener != null && (oldListener == null || shouldRemoveListener);\n\n if (shouldRemoveListener) {\n this.element.removeEventListener(\n this.eventName, this.__boundHandleEvent, this.__options);\n }\n if (shouldAddListener) {\n this.__options = getOptions(newListener);\n this.element.addEventListener(\n this.eventName, this.__boundHandleEvent, this.__options);\n }\n this.value = newListener;\n this.__pendingValue = noChange as EventHandlerWithOptions;\n }\n\n handleEvent(event: Event) {\n if (typeof this.value === 'function') {\n this.value.call(this.eventContext || this.element, event);\n } else {\n (this.value as EventListenerObject).handleEvent(event);\n }\n }\n}\n\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o: AddEventListenerOptions|undefined) => o &&\n (eventOptionsSupported ?\n {capture: o.capture, passive: o.passive, once: o.once} :\n o.capture as AddEventListenerOptions);\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {TemplateResult} from './template-result.js';\n\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = ``;\n\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n readonly parts: TemplatePart[] = [];\n readonly element: HTMLTemplateElement;\n\n constructor(result: TemplateResult, element: HTMLTemplateElement) {\n this.element = element;\n\n const nodesToRemove: Node[] = [];\n const stack: Node[] = [];\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(\n element.content,\n 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */,\n null,\n false);\n // Keeps track of the last index associated with a part. We try to delete\n // unnecessary nodes, but we never want to associate two different parts\n // to the same index. They must have a constant node between.\n let lastPartIndex = 0;\n let index = -1;\n let partIndex = 0;\n const {strings, values: {length}} = result;\n while (partIndex < length) {\n const node = walker.nextNode() as Element | Comment | Text | null;\n if (node === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop()!;\n continue;\n }\n index++;\n\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n if ((node as Element).hasAttributes()) {\n const attributes = (node as Element).attributes;\n const {length} = attributes;\n // Per\n // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n // attributes are not guaranteed to be returned in document order.\n // In particular, Edge/IE can return them out of order, so we cannot\n // assume a correspondence between part index and attribute index.\n let count = 0;\n for (let i = 0; i < length; i++) {\n if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n count++;\n }\n }\n while (count-- > 0) {\n // Get the template literal section leading up to the first\n // expression in this attribute\n const stringForPart = strings[partIndex];\n // Find the attribute name\n const name = lastAttributeNameRegex.exec(stringForPart)![2];\n // Find the corresponding attribute\n // All bound attributes have had a suffix added in\n // TemplateResult#getHTML to opt out of special attribute\n // handling. To look up the attribute value we also need to add\n // the suffix.\n const attributeLookupName =\n name.toLowerCase() + boundAttributeSuffix;\n const attributeValue =\n (node as Element).getAttribute(attributeLookupName)!;\n (node as Element).removeAttribute(attributeLookupName);\n const statics = attributeValue.split(markerRegex);\n this.parts.push({type: 'attribute', index, name, strings: statics});\n partIndex += statics.length - 1;\n }\n }\n if ((node as Element).tagName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = (node as HTMLTemplateElement).content;\n }\n } else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n const data = (node as Text).data;\n if (data.indexOf(marker) >= 0) {\n const parent = node.parentNode!;\n const strings = data.split(markerRegex);\n const lastIndex = strings.length - 1;\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n for (let i = 0; i < lastIndex; i++) {\n let insert: Node;\n let s = strings[i];\n if (s === '') {\n insert = createMarker();\n } else {\n const match = lastAttributeNameRegex.exec(s);\n if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n s = s.slice(0, match.index) + match[1] +\n match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n }\n insert = document.createTextNode(s);\n }\n parent.insertBefore(insert, node);\n this.parts.push({type: 'node', index: ++index});\n }\n // If there's no text, we must insert a comment to mark our place.\n // Else, we can trust it will stick around after cloning.\n if (strings[lastIndex] === '') {\n parent.insertBefore(createMarker(), node);\n nodesToRemove.push(node);\n } else {\n (node as Text).data = strings[lastIndex];\n }\n // We have a part for each match found\n partIndex += lastIndex;\n }\n } else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n if ((node as Comment).data === marker) {\n const parent = node.parentNode!;\n // Add a new marker node to be the startNode of the Part if any of\n // the following are true:\n // * We don't have a previousSibling\n // * The previousSibling is already the start of a previous part\n if (node.previousSibling === null || index === lastPartIndex) {\n index++;\n parent.insertBefore(createMarker(), node);\n }\n lastPartIndex = index;\n this.parts.push({type: 'node', index});\n // If we don't have a nextSibling, keep this node so we have an end.\n // Else, we can remove it to save future costs.\n if (node.nextSibling === null) {\n (node as Comment).data = '';\n } else {\n nodesToRemove.push(node);\n index--;\n }\n partIndex++;\n } else {\n let i = -1;\n while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n // TODO (justinfagnani): consider whether it's even worth it to\n // make bindings in comments work\n this.parts.push({type: 'node', index: -1});\n partIndex++;\n }\n }\n }\n }\n\n // Remove text binding nodes after the walk to not disturb the TreeWalker\n for (const n of nodesToRemove) {\n n.parentNode!.removeChild(n);\n }\n }\n}\n\nconst endsWith = (str: string, suffix: string): boolean => {\n const index = str.length - suffix.length;\n return index >= 0 && str.slice(index) === suffix;\n};\n\n/**\n * A placeholder for a dynamic expression in an HTML template.\n *\n * There are two built-in part types: AttributePart and NodePart. NodeParts\n * always represent a single dynamic expression, while AttributeParts may\n * represent as many expressions are contained in the attribute.\n *\n * A Template's parts are mutable, so parts can be replaced or modified\n * (possibly to implement different template semantics). The contract is that\n * parts can only be replaced, not removed, added or reordered, and parts must\n * always consume the correct number of values in their `update()` method.\n *\n * TODO(justinfagnani): That requirement is a little fragile. A\n * TemplateInstance could instead be more careful about which values it gives\n * to Part.update().\n */\nexport type TemplatePart = {\n readonly type: 'node',\n index: number\n}|{readonly type: 'attribute', index: number, readonly name: string, readonly strings: ReadonlyArray};\n\nexport const isTemplatePartActive = (part: TemplatePart) => part.index !== -1;\n\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n * * The name: any character except a control character, space character, ('),\n * (\"), \">\", \"=\", or \"/\"\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nexport const lastAttributeNameRegex =\n /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\n\nimport {IronMeta} from '@polymer/iron-meta/iron-meta.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nimport {Base} from '@polymer/polymer/polymer-legacy.js';\n\n/**\n\nThe `iron-icon` element displays an icon. By default an icon renders as a 24px\nsquare.\n\nExample using src:\n\n \n\nExample setting size to 32px x 32px:\n\n \n\n \n\nThe iron elements include several sets of icons. To use the default set of\nicons, import `iron-icons.js` and use the `icon` attribute to specify an icon:\n\n \n\n \n\nTo use a different built-in set of icons, import the specific\n`iron-icons/-icons.js`, and specify the icon as `:`.\nFor example, to use a communication icon, you would use:\n\n \n\n \n\nYou can also create custom icon sets of bitmap or SVG icons.\n\nExample of using an icon named `cherry` from a custom iconset with the ID\n`fruit`:\n\n \n\nSee `` and `` for more information about how to\ncreate a custom iconset.\n\nSee the `iron-icons` demo to see the icons available in the various iconsets.\n\n### Styling\n\nThe following custom properties are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--iron-icon` | Mixin applied to the icon | {}\n`--iron-icon-width` | Width of the icon | `24px`\n`--iron-icon-height` | Height of the icon | `24px`\n`--iron-icon-fill-color` | Fill color of the svg icon | `currentcolor`\n`--iron-icon-stroke-color` | Stroke color of the svg icon | none\n\n@group Iron Elements\n@element iron-icon\n@demo demo/index.html\n@hero hero.svg\n@homepage polymer.github.io\n*/\nPolymer({\n _template: html`\n \n`,\n\n is: 'iron-icon',\n\n properties: {\n\n /**\n * The name of the icon to use. The name should be of the form:\n * `iconset_name:icon_name`.\n */\n icon: {type: String},\n\n /**\n * The name of the theme to used, if one is specified by the\n * iconset.\n */\n theme: {type: String},\n\n /**\n * If using iron-icon without an iconset, you can set the src to be\n * the URL of an individual icon image file. Note that this will take\n * precedence over a given icon attribute.\n */\n src: {type: String},\n\n /**\n * @type {!IronMeta}\n */\n _meta: {value: Base.create('iron-meta', {type: 'iconset'})}\n\n },\n\n observers: [\n '_updateIcon(_meta, isAttached)',\n '_updateIcon(theme, isAttached)',\n '_srcChanged(src, isAttached)',\n '_iconChanged(icon, isAttached)'\n ],\n\n _DEFAULT_ICONSET: 'icons',\n\n _iconChanged: function(icon) {\n var parts = (icon || '').split(':');\n this._iconName = parts.pop();\n this._iconsetName = parts.pop() || this._DEFAULT_ICONSET;\n this._updateIcon();\n },\n\n _srcChanged: function(src) {\n this._updateIcon();\n },\n\n _usesIconset: function() {\n return this.icon || !this.src;\n },\n\n /** @suppress {visibility} */\n _updateIcon: function() {\n if (this._usesIconset()) {\n if (this._img && this._img.parentNode) {\n dom(this.root).removeChild(this._img);\n }\n if (this._iconName === '') {\n if (this._iconset) {\n this._iconset.removeIcon(this);\n }\n } else if (this._iconsetName && this._meta) {\n this._iconset = /** @type {?Polymer.Iconset} */ (\n this._meta.byKey(this._iconsetName));\n if (this._iconset) {\n this._iconset.applyIcon(this, this._iconName, this.theme);\n this.unlisten(window, 'iron-iconset-added', '_updateIcon');\n } else {\n this.listen(window, 'iron-iconset-added', '_updateIcon');\n }\n }\n } else {\n if (this._iconset) {\n this._iconset.removeIcon(this);\n }\n if (!this._img) {\n this._img = document.createElement('img');\n this._img.style.width = '100%';\n this._img.style.height = '100%';\n this._img.draggable = false;\n }\n this._img.src = this.src;\n dom(this.root).appendChild(this._img);\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-icon/iron-icon.js';\nimport '@polymer/paper-styles/default-theme.js';\n\nimport {PaperInkyFocusBehavior} from '@polymer/paper-behaviors/paper-inky-focus-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design: [Icon\ntoggles](https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons)\n\n`paper-icon-button` is a button with an image placed at the center. When the\nuser touches the button, a ripple effect emanates from the center of the button.\n\n`paper-icon-button` does not include a default icon set. To use icons from the\ndefault set, include `PolymerElements/iron-icons/iron-icons.html`, and use the\n`icon` attribute to specify which icon from the icon set to use.\n\n \n\nSee [`iron-iconset`](iron-iconset) for more information about\nhow to use a custom icon set.\n\nExample:\n\n \n\n \n \n\nTo use `paper-icon-button` as a link, wrap it in an anchor tag. Since\n`paper-icon-button` will already receive focus, you may want to prevent the\nanchor tag from receiving focus as well by setting its tabindex to -1.\n\n \n \n \n\n### Styling\n\nStyle the button with CSS as you would a normal DOM element. If you are using\nthe icons provided by `iron-icons`, they will inherit the foreground color of\nthe button.\n\n /* make a red \"favorite\" button *\\/\n \n\nBy default, the ripple is the same color as the foreground at 25% opacity. You\nmay customize the color using the `--paper-icon-button-ink-color` custom\nproperty.\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-icon-button-disabled-text` | The color of the disabled button | `--disabled-text-color`\n`--paper-icon-button-ink-color` | Selected/focus ripple color | `--primary-text-color`\n`--paper-icon-button` | Mixin for a button | `{}`\n`--paper-icon-button-disabled` | Mixin for a disabled button | `{}`\n`--paper-icon-button-hover` | Mixin for button on hover | `{}`\n\n@group Paper Elements\n@element paper-icon-button\n@demo demo/index.html\n*/\nPolymer({\n is: 'paper-icon-button',\n\n _template: html`\n \n\n \n `,\n\n hostAttributes: {role: 'button', tabindex: '0'},\n\n behaviors: [PaperInkyFocusBehavior],\n\n registered: function() {\n this._template.setAttribute('strip-whitespace', '');\n },\n\n properties: {\n /**\n * The URL of an image for the icon. If the src property is specified,\n * the icon property should not be.\n */\n src: {type: String},\n\n /**\n * Specifies the icon name or index in the set of icons available in\n * the icon's icon set. If the icon property is specified,\n * the src property should not be.\n */\n icon: {type: String},\n\n /**\n * Specifies the alternate text for the button, for accessibility.\n */\n alt: {type: String, observer: '_altChanged'}\n },\n\n _altChanged: function(newValue, oldValue) {\n var label = this.getAttribute('aria-label');\n\n // Don't stomp over a user-set aria-label.\n if (!label || oldValue == label) {\n this.setAttribute('aria-label', newValue);\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\n\n/**\n * @demo demo/index.html\n * @polymerBehavior\n */\nexport const IronControlState = {\n\n properties: {\n\n /**\n * If true, the element currently has focus.\n */\n focused: {\n type: Boolean,\n value: false,\n notify: true,\n readOnly: true,\n reflectToAttribute: true\n },\n\n /**\n * If true, the user cannot interact with this element.\n */\n disabled: {\n type: Boolean,\n value: false,\n notify: true,\n observer: '_disabledChanged',\n reflectToAttribute: true\n },\n\n /**\n * Value of the `tabindex` attribute before `disabled` was activated.\n * `null` means the attribute was not present.\n * @type {?string|undefined}\n */\n _oldTabIndex: {type: String},\n\n _boundFocusBlurHandler: {\n type: Function,\n value: function() {\n return this._focusBlurHandler.bind(this);\n }\n }\n },\n\n observers: ['_changedControlState(focused, disabled)'],\n\n /**\n * @return {void}\n */\n ready: function() {\n this.addEventListener('focus', this._boundFocusBlurHandler, true);\n this.addEventListener('blur', this._boundFocusBlurHandler, true);\n },\n\n _focusBlurHandler: function(event) {\n // Polymer takes care of retargeting events.\n this._setFocused(event.type === 'focus');\n return;\n },\n\n _disabledChanged: function(disabled, old) {\n this.setAttribute('aria-disabled', disabled ? 'true' : 'false');\n this.style.pointerEvents = disabled ? 'none' : '';\n if (disabled) {\n // Read the `tabindex` attribute instead of the `tabIndex` property.\n // The property returns `-1` if there is no `tabindex` attribute.\n // This distinction is important when restoring the value because\n // leaving `-1` hides shadow root children from the tab order.\n this._oldTabIndex = this.getAttribute('tabindex');\n this._setFocused(false);\n this.tabIndex = -1;\n this.blur();\n } else if (this._oldTabIndex !== undefined) {\n if (this._oldTabIndex === null) {\n this.removeAttribute('tabindex');\n } else {\n this.setAttribute('tabindex', this._oldTabIndex);\n }\n }\n },\n\n _changedControlState: function() {\n // _controlStateChanged is abstract, follow-on behaviors may implement it\n if (this._controlStateChanged) {\n this._controlStateChanged();\n }\n }\n\n};\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\n/**\n * Chrome uses an older version of DOM Level 3 Keyboard Events\n *\n * Most keys are labeled as text, but some are Unicode codepoints.\n * Values taken from:\n * http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/keyset.html#KeySet-Set\n */\nvar KEY_IDENTIFIER = {\n 'U+0008': 'backspace',\n 'U+0009': 'tab',\n 'U+001B': 'esc',\n 'U+0020': 'space',\n 'U+007F': 'del'\n};\n\n/**\n * Special table for KeyboardEvent.keyCode.\n * KeyboardEvent.keyIdentifier is better, and KeyBoardEvent.key is even better\n * than that.\n *\n * Values from:\n * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyCode#Value_of_keyCode\n */\nvar KEY_CODE = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 27: 'esc',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 32: 'space',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 46: 'del',\n 106: '*'\n};\n\n/**\n * MODIFIER_KEYS maps the short name for modifier keys used in a key\n * combo string to the property name that references those same keys\n * in a KeyboardEvent instance.\n */\nvar MODIFIER_KEYS = {\n 'shift': 'shiftKey',\n 'ctrl': 'ctrlKey',\n 'alt': 'altKey',\n 'meta': 'metaKey'\n};\n\n/**\n * KeyboardEvent.key is mostly represented by printable character made by\n * the keyboard, with unprintable keys labeled nicely.\n *\n * However, on OS X, Alt+char can make a Unicode character that follows an\n * Apple-specific mapping. In this case, we fall back to .keyCode.\n */\nvar KEY_CHAR = /[a-z0-9*]/;\n\n/**\n * Matches a keyIdentifier string.\n */\nvar IDENT_CHAR = /U\\+/;\n\n/**\n * Matches arrow keys in Gecko 27.0+\n */\nvar ARROW_KEY = /^arrow/;\n\n/**\n * Matches space keys everywhere (notably including IE10's exceptional name\n * `spacebar`).\n */\nvar SPACE_KEY = /^space(bar)?/;\n\n/**\n * Matches ESC key.\n *\n * Value from: http://w3c.github.io/uievents-key/#key-Escape\n */\nvar ESC_KEY = /^escape$/;\n\n/**\n * Transforms the key.\n * @param {string} key The KeyBoardEvent.key\n * @param {Boolean} [noSpecialChars] Limits the transformation to\n * alpha-numeric characters.\n */\nfunction transformKey(key, noSpecialChars) {\n var validKey = '';\n if (key) {\n var lKey = key.toLowerCase();\n if (lKey === ' ' || SPACE_KEY.test(lKey)) {\n validKey = 'space';\n } else if (ESC_KEY.test(lKey)) {\n validKey = 'esc';\n } else if (lKey.length == 1) {\n if (!noSpecialChars || KEY_CHAR.test(lKey)) {\n validKey = lKey;\n }\n } else if (ARROW_KEY.test(lKey)) {\n validKey = lKey.replace('arrow', '');\n } else if (lKey == 'multiply') {\n // numpad '*' can map to Multiply on IE/Windows\n validKey = '*';\n } else {\n validKey = lKey;\n }\n }\n return validKey;\n}\n\nfunction transformKeyIdentifier(keyIdent) {\n var validKey = '';\n if (keyIdent) {\n if (keyIdent in KEY_IDENTIFIER) {\n validKey = KEY_IDENTIFIER[keyIdent];\n } else if (IDENT_CHAR.test(keyIdent)) {\n keyIdent = parseInt(keyIdent.replace('U+', '0x'), 16);\n validKey = String.fromCharCode(keyIdent).toLowerCase();\n } else {\n validKey = keyIdent.toLowerCase();\n }\n }\n return validKey;\n}\n\nfunction transformKeyCode(keyCode) {\n var validKey = '';\n if (Number(keyCode)) {\n if (keyCode >= 65 && keyCode <= 90) {\n // ascii a-z\n // lowercase is 32 offset from uppercase\n validKey = String.fromCharCode(32 + keyCode);\n } else if (keyCode >= 112 && keyCode <= 123) {\n // function keys f1-f12\n validKey = 'f' + (keyCode - 112 + 1);\n } else if (keyCode >= 48 && keyCode <= 57) {\n // top 0-9 keys\n validKey = String(keyCode - 48);\n } else if (keyCode >= 96 && keyCode <= 105) {\n // num pad 0-9\n validKey = String(keyCode - 96);\n } else {\n validKey = KEY_CODE[keyCode];\n }\n }\n return validKey;\n}\n\n/**\n * Calculates the normalized key for a KeyboardEvent.\n * @param {KeyboardEvent} keyEvent\n * @param {Boolean} [noSpecialChars] Set to true to limit keyEvent.key\n * transformation to alpha-numeric chars. This is useful with key\n * combinations like shift + 2, which on FF for MacOS produces\n * keyEvent.key = @\n * To get 2 returned, set noSpecialChars = true\n * To get @ returned, set noSpecialChars = false\n */\nfunction normalizedKeyForEvent(keyEvent, noSpecialChars) {\n // Fall back from .key, to .detail.key for artifical keyboard events,\n // and then to deprecated .keyIdentifier and .keyCode.\n if (keyEvent.key) {\n return transformKey(keyEvent.key, noSpecialChars);\n }\n if (keyEvent.detail && keyEvent.detail.key) {\n return transformKey(keyEvent.detail.key, noSpecialChars);\n }\n return transformKeyIdentifier(keyEvent.keyIdentifier) ||\n transformKeyCode(keyEvent.keyCode) || '';\n}\n\nfunction keyComboMatchesEvent(keyCombo, event) {\n // For combos with modifiers we support only alpha-numeric keys\n var keyEvent = normalizedKeyForEvent(event, keyCombo.hasModifiers);\n return keyEvent === keyCombo.key &&\n (!keyCombo.hasModifiers ||\n (!!event.shiftKey === !!keyCombo.shiftKey &&\n !!event.ctrlKey === !!keyCombo.ctrlKey &&\n !!event.altKey === !!keyCombo.altKey &&\n !!event.metaKey === !!keyCombo.metaKey));\n}\n\nfunction parseKeyComboString(keyComboString) {\n if (keyComboString.length === 1) {\n return {combo: keyComboString, key: keyComboString, event: 'keydown'};\n }\n return keyComboString.split('+')\n .reduce(function(parsedKeyCombo, keyComboPart) {\n var eventParts = keyComboPart.split(':');\n var keyName = eventParts[0];\n var event = eventParts[1];\n\n if (keyName in MODIFIER_KEYS) {\n parsedKeyCombo[MODIFIER_KEYS[keyName]] = true;\n parsedKeyCombo.hasModifiers = true;\n } else {\n parsedKeyCombo.key = keyName;\n parsedKeyCombo.event = event || 'keydown';\n }\n\n return parsedKeyCombo;\n }, {combo: keyComboString.split(':').shift()});\n}\n\nfunction parseEventString(eventString) {\n return eventString.trim().split(' ').map(function(keyComboString) {\n return parseKeyComboString(keyComboString);\n });\n}\n\n/**\n * `Polymer.IronA11yKeysBehavior` provides a normalized interface for processing\n * keyboard commands that pertain to [WAI-ARIA best\n * practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). The\n * element takes care of browser differences with respect to Keyboard events and\n * uses an expressive syntax to filter key presses.\n *\n * Use the `keyBindings` prototype property to express what combination of keys\n * will trigger the callback. A key binding has the format\n * `\"KEY+MODIFIER:EVENT\": \"callback\"` (`\"KEY\": \"callback\"` or\n * `\"KEY:EVENT\": \"callback\"` are valid as well). Some examples:\n *\n * keyBindings: {\n * 'space': '_onKeydown', // same as 'space:keydown'\n * 'shift+tab': '_onKeydown',\n * 'enter:keypress': '_onKeypress',\n * 'esc:keyup': '_onKeyup'\n * }\n *\n * The callback will receive with an event containing the following information\n * in `event.detail`:\n *\n * _onKeydown: function(event) {\n * console.log(event.detail.combo); // KEY+MODIFIER, e.g. \"shift+tab\"\n * console.log(event.detail.key); // KEY only, e.g. \"tab\"\n * console.log(event.detail.event); // EVENT, e.g. \"keydown\"\n * console.log(event.detail.keyboardEvent); // the original KeyboardEvent\n * }\n *\n * Use the `keyEventTarget` attribute to set up event handlers on a specific\n * node.\n *\n * See the [demo source\n * code](https://github.com/PolymerElements/iron-a11y-keys-behavior/blob/master/demo/x-key-aware.html)\n * for an example.\n *\n * @demo demo/index.html\n * @polymerBehavior\n */\nexport const IronA11yKeysBehavior = {\n properties: {\n /**\n * The EventTarget that will be firing relevant KeyboardEvents. Set it to\n * `null` to disable the listeners.\n * @type {?EventTarget}\n */\n keyEventTarget: {\n type: Object,\n value: function() {\n return this;\n }\n },\n\n /**\n * If true, this property will cause the implementing element to\n * automatically stop propagation on any handled KeyboardEvents.\n */\n stopKeyboardEventPropagation: {type: Boolean, value: false},\n\n _boundKeyHandlers: {\n type: Array,\n value: function() {\n return [];\n }\n },\n\n // We use this due to a limitation in IE10 where instances will have\n // own properties of everything on the \"prototype\".\n _imperativeKeyBindings: {\n type: Object,\n value: function() {\n return {};\n }\n }\n },\n\n observers: ['_resetKeyEventListeners(keyEventTarget, _boundKeyHandlers)'],\n\n\n /**\n * To be used to express what combination of keys will trigger the relative\n * callback. e.g. `keyBindings: { 'esc': '_onEscPressed'}`\n * @type {!Object}\n */\n keyBindings: {},\n\n registered: function() {\n this._prepKeyBindings();\n },\n\n attached: function() {\n this._listenKeyEventListeners();\n },\n\n detached: function() {\n this._unlistenKeyEventListeners();\n },\n\n /**\n * Can be used to imperatively add a key binding to the implementing\n * element. This is the imperative equivalent of declaring a keybinding\n * in the `keyBindings` prototype property.\n *\n * @param {string} eventString\n * @param {string} handlerName\n */\n addOwnKeyBinding: function(eventString, handlerName) {\n this._imperativeKeyBindings[eventString] = handlerName;\n this._prepKeyBindings();\n this._resetKeyEventListeners();\n },\n\n /**\n * When called, will remove all imperatively-added key bindings.\n */\n removeOwnKeyBindings: function() {\n this._imperativeKeyBindings = {};\n this._prepKeyBindings();\n this._resetKeyEventListeners();\n },\n\n /**\n * Returns true if a keyboard event matches `eventString`.\n *\n * @param {KeyboardEvent} event\n * @param {string} eventString\n * @return {boolean}\n */\n keyboardEventMatchesKeys: function(event, eventString) {\n var keyCombos = parseEventString(eventString);\n for (var i = 0; i < keyCombos.length; ++i) {\n if (keyComboMatchesEvent(keyCombos[i], event)) {\n return true;\n }\n }\n return false;\n },\n\n _collectKeyBindings: function() {\n var keyBindings = this.behaviors.map(function(behavior) {\n return behavior.keyBindings;\n });\n\n if (keyBindings.indexOf(this.keyBindings) === -1) {\n keyBindings.push(this.keyBindings);\n }\n\n return keyBindings;\n },\n\n _prepKeyBindings: function() {\n this._keyBindings = {};\n\n this._collectKeyBindings().forEach(function(keyBindings) {\n for (var eventString in keyBindings) {\n this._addKeyBinding(eventString, keyBindings[eventString]);\n }\n }, this);\n\n for (var eventString in this._imperativeKeyBindings) {\n this._addKeyBinding(\n eventString, this._imperativeKeyBindings[eventString]);\n }\n\n // Give precedence to combos with modifiers to be checked first.\n for (var eventName in this._keyBindings) {\n this._keyBindings[eventName].sort(function(kb1, kb2) {\n var b1 = kb1[0].hasModifiers;\n var b2 = kb2[0].hasModifiers;\n return (b1 === b2) ? 0 : b1 ? -1 : 1;\n })\n }\n },\n\n _addKeyBinding: function(eventString, handlerName) {\n parseEventString(eventString).forEach(function(keyCombo) {\n this._keyBindings[keyCombo.event] =\n this._keyBindings[keyCombo.event] || [];\n\n this._keyBindings[keyCombo.event].push([keyCombo, handlerName]);\n }, this);\n },\n\n _resetKeyEventListeners: function() {\n this._unlistenKeyEventListeners();\n\n if (this.isAttached) {\n this._listenKeyEventListeners();\n }\n },\n\n _listenKeyEventListeners: function() {\n if (!this.keyEventTarget) {\n return;\n }\n Object.keys(this._keyBindings).forEach(function(eventName) {\n var keyBindings = this._keyBindings[eventName];\n var boundKeyHandler = this._onKeyBindingEvent.bind(this, keyBindings);\n\n this._boundKeyHandlers.push(\n [this.keyEventTarget, eventName, boundKeyHandler]);\n\n this.keyEventTarget.addEventListener(eventName, boundKeyHandler);\n }, this);\n },\n\n _unlistenKeyEventListeners: function() {\n var keyHandlerTuple;\n var keyEventTarget;\n var eventName;\n var boundKeyHandler;\n\n while (this._boundKeyHandlers.length) {\n // My kingdom for block-scope binding and destructuring assignment..\n keyHandlerTuple = this._boundKeyHandlers.pop();\n keyEventTarget = keyHandlerTuple[0];\n eventName = keyHandlerTuple[1];\n boundKeyHandler = keyHandlerTuple[2];\n\n keyEventTarget.removeEventListener(eventName, boundKeyHandler);\n }\n },\n\n _onKeyBindingEvent: function(keyBindings, event) {\n if (this.stopKeyboardEventPropagation) {\n event.stopPropagation();\n }\n\n // if event has been already prevented, don't do anything\n if (event.defaultPrevented) {\n return;\n }\n\n for (var i = 0; i < keyBindings.length; i++) {\n var keyCombo = keyBindings[i][0];\n var handlerName = keyBindings[i][1];\n if (keyComboMatchesEvent(keyCombo, event)) {\n this._triggerKeyHandler(keyCombo, handlerName, event);\n // exit the loop if eventDefault was prevented\n if (event.defaultPrevented) {\n return;\n }\n }\n }\n },\n\n _triggerKeyHandler: function(keyCombo, handlerName, keyboardEvent) {\n var detail = Object.create(keyCombo);\n detail.keyboardEvent = keyboardEvent;\n var event =\n new CustomEvent(keyCombo.event, {detail: detail, cancelable: true});\n this[handlerName].call(this, event);\n if (event.defaultPrevented) {\n keyboardEvent.preventDefault();\n }\n }\n};\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\ninterface MaybePolyfilledCe extends CustomElementRegistry {\n readonly polyfillWrapFlushCallback?: object;\n}\n\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n (window.customElements as MaybePolyfilledCe).polyfillWrapFlushCallback !==\n undefined;\n\n/**\n * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive),\n * into another container (could be the same container), before `before`. If\n * `before` is null, it appends the nodes to the container.\n */\nexport const reparentNodes =\n (container: Node,\n start: Node|null,\n end: Node|null = null,\n before: Node|null = null): void => {\n while (start !== end) {\n const n = start!.nextSibling;\n container.insertBefore(start!, before);\n start = n;\n }\n };\n\n/**\n * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from\n * `container`.\n */\nexport const removeNodes =\n (container: Node, start: Node|null, end: Node|null = null): void => {\n while (start !== end) {\n const n = start!.nextSibling;\n container.removeChild(start!);\n start = n;\n }\n };\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\nTypographic styles are provided matching the Material Design standard styles:\nhttp://www.google.com/design/spec/style/typography.html#typography-standard-styles\n\nNote that these are English/Latin centric styles. You may need to further adjust\nline heights and weights for CJK typesetting. See the notes in the Material\nDesign typography section.\n*/\n\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/font-roboto/roboto.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {reparentNodes} from './dom.js';\nimport {TemplateProcessor} from './template-processor.js';\nimport {boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker} from './template.js';\n\nconst commentMarker = ` ${marker} `;\n\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n readonly strings: TemplateStringsArray;\n readonly values: ReadonlyArray;\n readonly type: string;\n readonly processor: TemplateProcessor;\n\n constructor(\n strings: TemplateStringsArray, values: ReadonlyArray,\n type: string, processor: TemplateProcessor) {\n this.strings = strings;\n this.values = values;\n this.type = type;\n this.processor = processor;\n }\n\n /**\n * Returns a string of HTML used to create a `\n\n \n"),document.head.appendChild(o.content);var a=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e._themes||(e._themes={});var i=t.default_theme;("default"===r||r&&t.themes[r])&&(i=r);var o=Object.assign({},e._themes);if("default"!==i){var a=t.themes[i];Object.keys(a).forEach(function(t){var r="--".concat(t);if(e._themes[r]="",o[r]=a[t],!t.startsWith("rgb")){var n="rgb-".concat(t);if(void 0===a[n]){var i="--".concat(n);e._themes[i]="";var s,c,l,u=(s=a[t],c=s.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,t,r,n){return t+t+r+r+n+n}),(l=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c))?"".concat(parseInt(l[1],16),", ").concat(parseInt(l[2],16),", ").concat(parseInt(l[3],16)):null);null!==u&&(o[i]=u)}}})}if(e.updateStyles?e.updateStyles(o):window.ShadyCSS&&window.ShadyCSS.styleSubtree(e,o),n){var s=document.querySelector("meta[name=theme-color]");if(s){s.hasAttribute("default-content")||s.setAttribute("default-content",s.getAttribute("content"));var c=o["--primary-color"]||s.getAttribute("default-content");s.setAttribute("content",c)}}},s=r(14);r(16),r(91);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(){var e=d(["\n .content {\n height: calc(100% - 64px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n }\n "]);return l=function(){return e},e}function u(){var e=d(['\n \n
    \n

    ',"

    \n \n go back\n \n
    \n
    \n "]);return u=function(){return e},e}function d(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t,r=w(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function y(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function v(e){return e.decorators&&e.decorators.length}function b(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function g(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function w(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}(function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!v(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n
    \n You don\'t have any add-ons installed yet. Head over to\n \n
    Add-ons
    \n ',"\n
    \n "]);return ee=function(){return e},e}function te(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function re(e){return(re=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function oe(e){var t,r=ue(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function ae(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function se(e){return e.decorators&&e.decorators.length}function ce(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function le(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function ue(e){var t=function(e,t){if("object"!==K(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===K(t)?t:String(t)}(function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!se(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;at.name?1:-1}).map(function(t){return Object(n.e)(X(),t,e._addonTapped,e.hass,t.name,t.description,t.available,e._computeIcon(t),e._computeIconTitle(t),e._computeIconClass(t))}):Object(n.e)(Z(),this._openStore))}},{kind:"get",static:!0,key:"styles",value:function(){return[i.a,$.a,Object(n.c)(Q())]}},{kind:"method",key:"_computeIcon",value:function(e){return e.installed!==e.version?"hassio:arrow-up-bold-circle":"hassio:puzzle"}},{kind:"method",key:"_computeIconTitle",value:function(e){return e.installed!==e.version?"New version available":"started"===e.state?"Add-on is running":"Add-on is stopped"}},{kind:"method",key:"_computeIconClass",value:function(e){return e.installed!==e.version?"update":"started"===e.state?"running":""}},{kind:"method",key:"_addonTapped",value:function(e){Object(k.a)(this,"/hassio/addon/".concat(e.currentTarget.addon.slug))}},{kind:"method",key:"_openStore",value:function(){Object(k.a)(this,"/hassio/store")}}]}},n.a),r(20),r(45);function de(){var e=ge(["\n :host {\n width: 33%;\n }\n paper-card {\n display: inline-block;\n margin-bottom: 32px;\n }\n .icon {\n --iron-icon-height: 48px;\n --iron-icon-width: 48px;\n float: right;\n margin: 0 0 2px 10px;\n }\n .update-heading {\n font-size: var(--paper-font-subhead_-_font-size);\n font-weight: 500;\n margin-bottom: 0.5em;\n }\n .warning {\n color: var(--secondary-text-color);\n }\n .card-actions {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n padding: 16px;\n }\n a {\n text-decoration: none;\n }\n "]);return de=function(){return e},e}function fe(e){return(fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pe(){var e=ge(['\n
    \n \n
    \n ']);return pe=function(){return e},e}function he(){var e=ge(['\n \n
    \n ','\n
    '," ",'
    \n
    \n You are currently running version ','\n
    \n
    \n
    \n "]);return ye=function(){return e},e}function ve(){var e=ge(['\n
    \n ','\n
    \n
    \n ',"\n
    \n ","\n ","\n ","\n
    \n
    \n "]);return ve=function(){return e},e}function be(){var e=ge([""]);return be=function(){return e},e}function ge(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function we(e){return(we=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ke(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ee(e,t){return(Ee=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Oe(e){var t,r=Se(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function je(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Pe(e){return e.decorators&&e.decorators.length}function xe(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function _e(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Se(e){var t=function(e,t){if("object"!==fe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==fe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===fe(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Pe(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a1?"Updates Available 🎉":"Update Available 🎉",this._renderUpdateCard("Home Assistant",this.hassInfo.version,this.hassInfo.last_version,"hassio/homeassistant/update","https://".concat(this.hassInfo.last_version.includes("b")?"rc":"www",".home-assistant.io/latest-release-notes/"),"hassio:home-assistant"),this._renderUpdateCard("Hass.io Supervisor",this.supervisorInfo.version,this.supervisorInfo.last_version,"hassio/supervisor/update","https://github.com//home-assistant/hassio/releases/tag/".concat(this.supervisorInfo.last_version)),this.hassOsInfo?this._renderUpdateCard("HassOS",this.hassOsInfo.version,this.hassOsInfo.version_latest,"hassio/hassos/update","https://github.com//home-assistant/hassos/releases/tag/".concat(this.hassOsInfo.version_latest)):""):Object(n.e)(be())}},{kind:"method",key:"_renderUpdateCard",value:function(e,t,r,i,o,a){return r===t?Object(n.e)(me()):Object(n.e)(he(),a?Object(n.e)(pe(),a):"",e,r,t,o,this.hass,i,this._apiCalled)}},{kind:"method",key:"_apiCalled",value:function(e){if(e.detail.success)this._error="";else{var t=e.detail.response;"object"===fe(t.body)?this._error=t.body.message||"Unknown error":this._error=t.body}}},{kind:"get",static:!0,key:"styles",value:function(){return[i.a,$.a,Object(n.c)(de())]}}]}},n.a);function Ce(e){return(Ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function De(){var e=Ae(["\n .content {\n margin: 0 auto;\n }\n "]);return De=function(){return e},e}function Te(){var e=Ae(['\n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n
    \n \n
    \n \n ']);return qe=function(){return e},e}function We(){var e=Ze(['\n \n
    \n You don\'t have any snapshots yet.\n
    \n
    \n ']);return We=function(){return e},e}function Je(){var e=Ze(['\n

    ',"

    \n "]);return Je=function(){return e},e}function Ye(){var e=Ze(['\n \n
    \n
    \n Create snapshot\n
    \n Snapshots allow you to easily backup and restore all data of your\n Hass.io instance.\n
    \n
    \n \n
    \n \n Type:\n \n \n Full snapshot\n \n \n Partial snapshot\n \n \n ','\n Security:\n \n
    \n \n Create\n \n
    \n \n
    \n\n
    \n
    Available snapshots
    \n ',"\n
    \n
    \n "]);return Xe=function(){return e},e}function Ze(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function et(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function tt(e,t){return(tt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function rt(e){var t,r=st(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function nt(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function it(e){return e.decorators&&e.decorators.length}function ot(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function at(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function st(e){var t=function(e,t){if("object"!==Ge(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ge(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ge(t)?t:String(t)}function ct(e,t,r){return(ct="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=lt(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function lt(e){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!it(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n
    \n ','\n
    \n Maintained by ','
    \n ',"\n
    \n
    \n\n ","\n
    \n "]);return ht=function(){return e},e}function mt(){var e=yt(['\n
    \n
    \n
    \n No results found in "','"\n
    \n
    \n
    \n ']);return mt=function(){return e},e}function yt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vt(e){return(vt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function bt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gt(e,t){return(gt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function wt(e){var t,r=Pt(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function kt(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Et(e){return e.decorators&&e.decorators.length}function Ot(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function jt(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Pt(e){var t=function(e,t){if("object"!==dt(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==dt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===dt(t)?t:String(t)}var xt=function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Et(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n
    \n \n
    \n
    \n \n Remove\n \n
    \n \n ']);return Dt=function(){return e},e}function Tt(){var e=At(['\n
    \n
    \n Repositories\n
    \n Configure which add-on repositories to fetch data from:\n
    \n
    \n ','\n\n \n
    \n \n \n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n "]);return Wt=function(){return e},e}function Jt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Yt(e){return(Yt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $t(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Kt(e,t){return(Kt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Qt(e){var t,r=rr(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function Xt(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Zt(e){return e.decorators&&e.decorators.length}function er(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function tr(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function rr(e){var t=function(e,t){if("object"!==Vt(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Vt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Vt(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Zt(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n ']);return or=function(){return e},e}function ar(){var e=sr(['\n
    \n \n \n ',"\n \n
    \n "]);return ar=function(){return e},e}function sr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function cr(e){return(cr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function lr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ur(e,t){return(ur=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function dr(e){var t,r=yr(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function fr(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function pr(e){return e.decorators&&e.decorators.length}function hr(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function mr(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function yr(e){var t=function(e,t){if("object"!==nr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==nr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===nr(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!pr(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n "]);return gr=function(){return e},e}function wr(){var e=Er(["\n \n\n \n\n ","\n "]);return wr=function(){return e},e}function kr(){var e=Er(["\n \n "]);return kr=function(){return e},e}function Er(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Or(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function jr(e,t){return(jr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Pr(e){var t,r=Dr(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function xr(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function _r(e){return e.decorators&&e.decorators.length}function Sr(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function Cr(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Dr(e){var t=function(e,t){if("object"!==vr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==vr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===vr(t)?t:String(t)}function Tr(e,t,r){return(Tr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Ar(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function Ar(e){return(Ar=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var zr=function(e,t){return"local"===e.slug?-1:"local"===t.slug?1:"core"===e.slug?-1:"core"===t.slug?1:e.name.toUpperCase()=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;aUpdate
    \n ']);return Hr=function(){return e},e}function Ur(){var e=Jr(['\n Import from USB\n ']);return Ur=function(){return e},e}function Br(){var e=Jr(['\n Shutdown\n ']);return Br=function(){return e},e}function Mr(){var e=Jr(['\n Reboot\n ']);return Mr=function(){return e},e}function Gr(){var e=Jr(['\n
    Error: ',"
    \n "]);return Gr=function(){return e},e}function Vr(){var e=Jr(["\n \n Change hostname\n \n ']);return Vr=function(){return e},e}function qr(){var e=Jr(["\n \n Deployment\n ","\n \n "]);return qr=function(){return e},e}function Wr(){var e=Jr(['\n \n
    \n

    Host system

    \n \n \n \n \n \n \n \n \n \n \n ","\n \n
    Hostname',"
    System","
    \n \n Hardware\n \n ',"\n ",'\n
    \n
    \n ',"\n ","\n ","\n ","\n
    \n
    \n "]);return Wr=function(){return e},e}function Jr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Yr(e){return(Yr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Kr(e,t){return(Kr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Qr(e){var t,r=rn(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function Xr(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Zr(e){return e.decorators&&e.decorators.length}function en(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function tn(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function rn(e){var t=function(e,t){if("object"!==Lr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Lr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Lr(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Zr(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"",n="";return Object.keys(e).forEach(function(i){"object"!==Lr(e[i])?n+="".concat(r,"- ").concat(i,": ").concat(e[i],"\n"):(n+="".concat(r,"- ").concat(i,":\n"),Array.isArray(e[i])?e[i].length&&(n+="".concat(r," - ")+e[i].join("\n".concat(r," - "))+"\n"):n+=t._objectToMarkdown(e[i]," ".concat(r)))}),n}},{kind:"method",key:"_changeHostnameClicked",value:function(){var e=this.hostInfo.hostname,t=prompt("Please enter a new hostname:",e);t&&t!==e&&this.hass.callApi("POST","hassio/host/options",{hostname:t})}}]}},n.a);function nn(e){return(nn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function on(){var e=fn(["\n paper-card {\n display: inline-block;\n width: 400px;\n }\n .card-content {\n height: 200px;\n color: var(--primary-text-color);\n }\n @media screen and (max-width: 830px) {\n paper-card {\n width: 100%;\n }\n .card-content {\n height: auto;\n }\n }\n .info {\n width: 100%;\n }\n .info td:nth-child(2) {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n "]);return on=function(){return e},e}function an(){var e=fn(["\n Join beta channel\n ']);return an=function(){return e},e}function sn(){var e=fn(["\n Update\n ']);return cn=function(){return e},e}function ln(){var e=fn(['\n
    Error: ',"
    \n "]);return ln=function(){return e},e}function un(){var e=fn(["\n \n Channel\n ","\n \n "]);return un=function(){return e},e}function dn(){var e=fn(['\n \n
    \n

    Hass.io supervisor

    \n \n \n \n \n \n \n \n \n \n \n ","\n \n
    Version',"
    Latest version","
    \n ",'\n
    \n
    \n Reload\n ',"\n ","\n ","\n
    \n
    \n "]);return dn=function(){return e},e}function fn(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function pn(e){return(pn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function hn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function mn(e,t){return(mn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function yn(e){var t,r=kn(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function vn(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function bn(e){return e.decorators&&e.decorators.length}function gn(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function wn(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function kn(e){var t=function(e,t){if("object"!==nn(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==nn(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===nn(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!bn(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a',"
    \n "]);return Pn=function(){return e},e}function xn(){var e=_n(["\n \n ",'\n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n
    Information
    \n \n
    System log
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n \n \n \n Dashboard\n Snapshots\n Add-on store\n System\n \n \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a200?n.scrollTop=0:t._currentAnimationId===i&&(n.scrollTop=(r=c,-s*(r/=200)*(r-2)+a),requestAnimationFrame(e.bind(t)))}.call(t)}},{kind:"method",key:"refreshClicked",value:function(){"snapshots"===this._page?this.shadowRoot.querySelector("hassio-snapshots").refreshData():this.shadowRoot.querySelector("hassio-addon-store").refreshData()}},{kind:"get",key:"_page",value:function(){return this.route.path.substr(1)}},{kind:"get",static:!0,key:"styles",value:function(){return[i.a,Object(n.c)(ci())]}}]}},n.a);function Ei(e){return(Ei="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oi(e,t){return zi(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(c){i=!0,o=c}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(e,t)||Ai()}function ji(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Pi(e,t){return(Pi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function xi(e){var t,r=Ti(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function _i(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Si(e){return e.decorators&&e.decorators.length}function Ci(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function Di(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Ti(e){var t=function(e,t){if("object"!==Ei(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ei(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ei(t)?t:String(t)}function Ai(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function zi(e){if(Array.isArray(e))return e}function Ri(e,t,r){return(Ri="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Ii(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function Ii(e){return(Ii=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}customElements.get("paper-icon-button").prototype._keyBindings={};var Fi;!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Si(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n"),document.head.appendChild(o.content)},14:function(e,t,r){"use strict";r.d(t,"a",function(){return n});var n=function(e,t,r,n){n=n||{},r=null==r?{}:r;var i=new Event(t,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return i.detail=r,e.dispatchEvent(i),i}},25:function(e,t,r){"use strict";r.d(t,"f",function(){return i}),r.d(t,"d",function(){return o}),r.d(t,"b",function(){return a}),r.d(t,"a",function(){return s}),r.d(t,"c",function(){return c}),r.d(t,"g",function(){return l}),r.d(t,"h",function(){return u}),r.d(t,"e",function(){return d}),r.d(t,"i",function(){return f});var n=r(42),i=function(e){return regeneratorRuntime.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,regeneratorRuntime.awrap(e.callApi("POST","hassio/addons/reload"));case 2:case"end":return t.stop()}})},o=function(e){return regeneratorRuntime.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=n.a,t.next=3,regeneratorRuntime.awrap(e.callApi("GET","hassio/addons"));case 3:return t.t1=t.sent,t.abrupt("return",(0,t.t0)(t.t1));case 5:case"end":return t.stop()}})},a=function(e,t){return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return r.t0=n.a,r.next=3,regeneratorRuntime.awrap(e.callApi("GET","hassio/addons/".concat(t,"/info")));case 3:return r.t1=r.sent,r.abrupt("return",(0,r.t0)(r.t1));case 5:case"end":return r.stop()}})},s=function(e,t){return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",e.callApi("GET","hassio/addons/".concat(t,"/changelog")));case 1:case"end":return r.stop()}})},c=function(e,t){return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",e.callApi("GET","hassio/addons/".concat(t,"/logs")));case 1:case"end":return r.stop()}})},l=function(e,t,r){return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,regeneratorRuntime.awrap(e.callApi("POST","hassio/addons/".concat(t,"/options"),r));case 2:case"end":return n.stop()}})},u=function(e,t,r){return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,regeneratorRuntime.awrap(e.callApi("POST","hassio/addons/".concat(t,"/security"),r));case 2:case"end":return n.stop()}})},d=function(e,t){return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",e.callApi("POST","hassio/addons/".concat(t,"/install")));case 1:case"end":return r.stop()}})},f=function(e,t){return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,regeneratorRuntime.awrap(e.callApi("POST","hassio/addons/".concat(t,"/uninstall")));case 2:case"end":return r.stop()}})}},33:function(e,t,r){"use strict";r.d(t,"a",function(){return i});var n=r(14),i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];r?history.replaceState(null,"",t):history.pushState(null,"",t),Object(n.a)(window,"location-changed",{replace:r})}},34:function(e,t,r){"use strict";var n=r(4),i=(r(20),r(7)),o=r(31),a=[60,60,24,7],s=["second","minute","hour","day"];var c=r(15);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{},i=((n.compareTime||new Date).getTime()-e.getTime())/1e3,o=i>=0?"past":"future";i=Math.abs(i);for(var c=0;c\n
    \n
    ','
    \n
    \n ',"\n ","\n ","\n
    \n
    \n "]);return x=function(){return e},e}function _(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function D(e,t){return(D=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e){var t,r=F(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function A(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function z(e){return e.decorators&&e.decorators.length}function R(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function I(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function F(e){var t=function(e,t){if("object"!==O(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==O(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===O(t)?t:String(t)}customElements.define("ha-relative-time",E);!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!z(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n .container {\n position: relative;\n display: inline-block;\n }\n\n mwc-button {\n transition: all 1s;\n }\n\n .success mwc-button {\n --mdc-theme-primary: white;\n background-color: var(--google-green-500);\n transition: none;\n }\n\n .error mwc-button {\n --mdc-theme-primary: white;\n background-color: var(--google-red-500);\n transition: none;\n }\n\n .progress {\n @apply --layout;\n @apply --layout-center-center;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n \n
    \n \n \n \n \n
    \n ']);return s=function(){return e},e}function c(e,t){for(var r=0;r\n ']);return y=function(){return e},e}function v(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e,t){for(var r=0;r
    \n ']);return u=function(){return e},e}function d(){var e=f(["\n \n ","\n "]);return d=function(){return e},e}function f(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t,r=w(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function y(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function v(e){return e.decorators&&e.decorators.length}function b(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function g(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function w(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}function k(e,t,r){return(k="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=E(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!v(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a0},Object(o.a)("_ntf",a,s,e,t))}},{kind:"method",key:"_toggleMenu",value:function(){Object(i.a)(this,"hass-toggle-menu")}},{kind:"get",static:!0,key:"styles",value:function(){return Object(n.c)(l())}}]}},n.a)},88:function(e,t){},9:function(e,t,r){"use strict";r.d(t,"a",function(){return s}),r.d(t,"b",function(){return c});var n=r(4);function i(){var e=a(["\n /* prevent clipping of positioned elements */\n paper-dialog-scrollable {\n --paper-dialog-scrollable: {\n -webkit-overflow-scrolling: auto;\n }\n }\n\n /* force smooth scrolling for iOS 10 */\n paper-dialog-scrollable.can-scroll {\n --paper-dialog-scrollable: {\n -webkit-overflow-scrolling: touch;\n }\n }\n\n .paper-dialog-buttons {\n align-items: flex-end;\n padding: 8px;\n }\n\n .paper-dialog-buttons .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n\n @media all and (max-width: 450px), all and (max-height: 500px) {\n paper-dialog,\n ha-paper-dialog {\n margin: 0;\n width: 100% !important;\n max-height: calc(100% - 64px);\n\n position: fixed !important;\n bottom: 0px;\n left: 0px;\n right: 0px;\n overflow: scroll;\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n }\n"]);return i=function(){return e},e}function o(){var e=a(["\n :host {\n @apply --paper-font-body1;\n }\n\n app-header-layout,\n ha-app-layout {\n background-color: var(--primary-background-color);\n }\n\n app-header,\n app-toolbar {\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n }\n\n app-toolbar ha-menu-button + [main-title],\n app-toolbar ha-paper-icon-button-arrow-prev + [main-title],\n app-toolbar paper-icon-button + [main-title] {\n margin-left: 24px;\n }\n\n h1 {\n @apply --paper-font-title;\n }\n\n button.link {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n text-align: left;\n text-decoration: underline;\n cursor: pointer;\n }\n\n .card-actions a {\n text-decoration: none;\n }\n\n .card-actions .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n"]);return o=function(){return e},e}function a(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var s=Object(n.c)(o()),c=Object(n.c)(i())},91:function(e,t,r){"use strict";var n=r(4),i=(r(78),r(92),r(53));function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(){var e=c(['\n :host {\n display: block;\n height: 100%;\n background-color: var(--primary-background-color);\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n font-size: 20px;\n height: 64px;\n padding: 0 16px;\n pointer-events: none;\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n }\n\n ha-menu-button,\n ha-paper-icon-button-arrow-prev,\n ::slotted([slot="toolbar-icon"]) {\n pointer-events: auto;\n }\n\n ha-paper-icon-button-arrow-prev.hidden {\n visibility: hidden;\n }\n\n [main-title] {\n margin: 0 0 0 24px;\n line-height: 20px;\n flex-grow: 1;\n }\n\n .content {\n position: relative;\n width: 100%;\n height: calc(100% - 64px);\n overflow-y: auto;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n ']);return a=function(){return e},e}function s(){var e=c(['\n
    \n \n \n
    \n
    \n ']);return s=function(){return e},e}function c(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){var t,r=v(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function p(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function h(e){return e.decorators&&e.decorators.length}function m(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function y(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function v(e){var t=function(e,t){if("object"!==o(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===o(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!h(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n "]);return s=function(){return e},e}function c(){var e=u(["\n \n "]);return c=function(){return e},e}function l(){var e=u(["\n \n ",'\n \n
    \n \n
    \n ']);return l=function(){return e},e}function u(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t,r=g(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function m(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function y(e){return e.decorators&&e.decorators.length}function v(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function b(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function g(e){var t=function(e,t){if("object"!==o(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===o(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!y(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ai)8>k99otiqY$V`C@h2f?e&Yr--fgLDWQ7^&kxf zA8Uy5p-)BF!sK`ZSRTJS-(-wSZzrvM&EhxQqE(xgtFHaW6GtxiJ(iM*b9lc{x`4qg zIQE8b0~~Y;3K-wXanlV6S!52;GIh7eamkBReWM0;5(H_CSSxg!}1A z`q0YvQAPxE;-3mEX9dK^5t=dMgQfxH)02QlV>1ycAC8*z2pXoX0`7h0h(r3=R4aQ!@}x|LN$_Uuvr_ zvzSKvb60QpVWr>0Ij7r>;jo5o_AJaa!&ok(>DtNHOeN(=9|JeET&>j6taocvV+EkE zMxlb}47=e^pQu&A`fAr?mAipk%#ax1(R!l%acRF*R_Ii=$zvmzWS-zqBv_x+Jd?kf zKo2N|uEahDPpuSt?n-@^(Rn;}Wh8Xvy?A~Uyv;GXf%2ethROQ&VxvbqA(w_Vqocd; zw!7vpuLPUtLXkcM==8^|ErWFxx0;EBT{aw2T0ZqGddcc717w$nqjDQIIpLf#phUdh zXL}pYQV^PB*1v46*M>*S6l$3dBsggn2X>{k&>$UoMLhA){VQTa9(oL#a~I`(;KujI zxC;up|Q~?9EdG2>Heax`* z$EJq28a=;tg}HO%S)ry0)!i^cX{V4p+@UVmCgNk|!6Pi{NW;SuyQM-tB>MtsG8x?O zo%SVeL}7wNV_|4X_Wt;EpxePl>9~?!#HTVnG>UH$c+pITVr@(jj;o5BV$+S8^Nsht z1;6No&uRbRp{idEKn>jUp+?-wwyKc`lBvvDdxa1S>uLE&2N?l<>6;W>p_y*mk@r$-mi4m~IEr1%tc3bzz>6*r~y zTp;Be^KN{}bY%UfN87lX&zQv%*>XxadZL4+xU>XbpmtYKoy%vcUgBxu$yLb7BQBw( zHV9iQ;@0=8O|nF|2XY~i`D%)FmXKV$s=ce@!Fr*8302S)82@x<7 zW;B^rk<)x|Dekrk+$gEf3^32D8`8O0h8n{foO5V;;?uV15U$p>N^7ng3~HM!&)bUZ zQh%57oT$a1TMo@jJux?}cI|3eexop@ap~8@`@MhN*z(O>c+KPa;C4-0=ypmYJOnF7 z*TM^k4&gaCUO6OD4#PVjU*YY!7%S9+e_gnV_1Mhy$L7=5EUj;zYVA`q+FtO7XQ0J( z05`hM6-xq_O#9Xr9JdbMMh?P&49hgD+x&Ju+*)oCl6K69kf`I_kj{uBZ4}1M!JElC zjPWPXerWKcdUMRJXV1;~IF`r6TrPy3uI@!R%T^bD=Vl{hqJ-nEGzL+yH)MFU+!DN_ z)%|9ODNXch9?<&Xr`x^`R`2Z*vzJo5S#Y=3zi!ZG~6CfFm=L^#jdSL-OMrPAZ@dpJ5s00)sw}1J~!?R`p#~Az4=epU7!{= zS5#nI4<(pv4KI70fWjtSLeJ|#eeo^o1x|C$ijL4$n_vYbBr)>R)%BHX6AbO89jjLC z(_2ZbV~_5Iw>8!h)JpmF#WH83*ii)i?W7y=yNqUMn zAeU-q7%2ciZN%yP3+U$Zf}5ub=uCMEX?qNtay3{Cgj8TyO-m30VY6aw&rQrm5XD+a zq7C?_0heXnFIb&yW6$Pl+WveaGEyrQ%Wgo9zwq0$*UUm?1K`RPh(8nJggq0SmuAxZ`SS8otiPlgU`LmW{BtvOGe(DGncWBe zJW;hqk)!Ptt4aI#;ErN*LH!JJr#o2rTH`H-AX_nZRmtCQ-~yT(>(vBIjZ+qZR-v4( zxud~QD6e@~?^kJ#72IAxp+UhLn3E{kfqHj#^9yuVG-zS;Ao`mDCIb?CtQE@WkdA<8 zgt#%Kkpgu}CH4FUH;-CWD^NA5O-5NU)>EU|7c|2XVAMcxt;@sh!-VByyhHiR z@7f2LiOPxWBq!fn76?qs`QjI(*d;ZQG)|uL#CY}(nRiNAAL#1GM~OEdKhQWXqO*^8 z_J^e$rpqB{S;a$^-PZ>7VuDs#|DpT+jb1)^=xnAToiI11V7)?>CEHYriy!dv7!+|=~*m(ELxo=C+p$D>)6Zvm3lug|SF-u2zmJ}LC#{t9})t09W z_bV&9ka8&vA=H;Zn7yjsq0PsUUdU1pB)!oiCGx6Dxp zk@a#!M4N!bNnGANdRzNHgMVn71E^|Zr?{<+`N9C@@zOT&J--@t@`Z7C@VYLd?x?Im zTc%2cXW_nkE;&AMJ%(B(T!Ul2JOq1SR5D=Pm=ql)0R#X8(W`#I?y5C;KcKQU3;hL> z5Ekj>&Xa6jMiXedekM~}9T2yKcJPWfkuX8)Bth-Z_%{P=BuBY#ny0*>wdmnudE)&0 z3~-z%X)^sAcn?nSpIl~Y*5IzdbYw5G4sCDR#^z#Z=b)MWTc0OD#0S@Z$v#mjmW^C>)4t`(ox|f#y~7IVb^# zb(m#IeyQ^Qz|D}?3S^lba4@tr#rh{y#OmboR-M>9`_OZm3lF8z4a0YPv160U_8rHw zTRpuoJIGhzg7}W3dyjvMtSHGX&%X$mjhNNz!ZUU#t>F|?U#OLG%-V~q>Y+P;6Y{Zb z<-?c?s=BuZ39ZAGH_i<(zk~{6ZkDK3qi7MZR3bbR6{vKeAUq)zaM1N8KVQOm6)zy9 z`SUTTHg%9{r0L!ha~LCDMy`N7dTnjp1mP)y?e$07yfcEY!SeS7fj@?Z9=+Cj_3b%} zvO-|NvjX;>${87h>^4cRs&%b|#^z0J37riI^SKq{lj6+XA&xHI1Zi{5T-ovf2J$kb z!TPY1QBi8nS)-s8p9gaIy)|xvz(8o#8mX09rb*pSLjLjXQIzLg)9)|9CWDD)0Ge1~mj}=$<49out!VsTt!6GMgtvyhWa@!Of_i z-fe5PP3*l8IE~%^Pdh-`?bpKiF=gp7jA-s#+HR{bSTU@w3CdEwArI9e3pFram+X zQKsNlBjG7E0?ItS@BOuVBG|e8K^B|qbb9u<4qjJKphev|MmyGzG3g*)ko?)-tJlQq z3NXG$6MQg;$5T_t_iRz$t}sk(S!t^GB|%W`_83hyTK zkmE@*WBL@2W@uYT>71BK{w7flKY}f6Prz*j@gOc!Hgs@!YBz3m(Fh%Cs6o9n*WC$wL%~f3mFvvtLFr6f|n1 z@&q`gQQoxxJ7mCBYCw=R$ps9zm)J~)+HZ5OKK1_ z!}|Rf(?k0gnGrqJx~iY=>%274Y37jS=7nV#_5wCllwwpKU#iqGS-Ao30qt?iHB{Fs zzAg$rwoU-~D@B^OBq9nuxVsU{)vDMIBHkzf&uC!vF8ASzDb3MfCby@OYeI9EekWU3 z!{Yht+S+@Gqb!kI3Kz3tk*s>hf>YGy6={Qnw4kqT5M5lprj*-o3oiqoUrzGt!;a9# zQ(aXfmiWfSc*kK5MfZ?gg!Giy?^A|y_d_WQyjAb9~e(Y8{gswTD;643|RL&P(v@GJzZ z$^i@!jS69hC7^s6f}t9E92(?^_57Js-Zt0aRO|O*T0AxB?_&x4(Gnp>LE-1&`=VA8 zhTTX*;ct~bRQQFfcZKj%j&tG)al~6C89%iL@tBHehS9-_kzi>J6L* zkjRIJ1GOXO=5wr2iA0}nyycQT^l?nJYvfxoa_wMh@|NwK`kqGF^=E?1ZHtWHtLSL4 zQ>Zv&QyWJ~p^qARL~3OIZr@3V&}}QTS%Vp3!f$$;!689ZAE4{5^pGjPn?d|c&pd1KHBrZltxi9hOg!#h8qexF%AC*17u zvB`7}+Cqyjz;K{oP7Xani)7zRA(1#d~B2y3W!kLqI~*;G8sU*W=d zoC!;W#roU6LYiM*@jaDMsE`tK8%ULbIqg@Yv3zHpqn$<6LEU;Lyf8+gvIL#!Ad0lv zKz#fZwk-V+iN~ZGRTQ`Wv`Ou>3Q7j%&x#S_>@5w+8y)}!pNn$BIPW`OXb+&PmJnbD zNE3nMBySIz_uF|%vArA85L&{lswBaXV$Hr!Su0xeZ5#s_cLJ^EGr<3U*LGbc%0$NI`} znR?B0A4U0WKvI%mH_@)B2x{a$okd0J8&aPAdVOCFaR+%-(jxvCH2w(rTEn&5F$AK= zwOSD1T|W0A>NirR1=~_Wq$!BPY#aVXCyf$^l|2dm=ajn+|9fgX^QLsF@@uvTRM|jeB|Sd3=bHxm4Pu?c%FIc=LT0+KX;!es9Lff{I=MXLy?*#? zTGkSQf^$;P>kz(AGQ&hz5{QH~_2np{bql7l_RGT%=tpko1z>6Xb%gNgD%nzptM(1V z$HxX9WPW4eE+XejvfO(;7qOwLAfwAkgprqGd{iJ-gpnHYfnC1X@VAxN@bYF{)X0Pg zBW%fE32KDVWfgHk9aD^v7?F)h&)mEfi??am5K}^o6>C~1(W1#l;3M$O^tkDO=fdaA z>T&g^;+Ia`W!C;>OJQRj)r+k1p>JsEm$b3Y2}AE=0ttq^zl6p30CiO-DXjb3TMr@c zK8wKI1>NA~HA9*1)#Xm|(c1@*xk%YYj_n)9#EhDc$$xRqVyoO#8_{(=Kh$JDX=YhIKT41WPKP4UBv6w}WodhDWd`RHkr=5fD)th61tU8q+s zFTZiFJOJ{G?zMnbM8f?bzqsAX2Bz2Phsnu?R0koh8nhDD`{3w2rrnb4AxTs#eV2+l zHoSL9h;*$#9a_Uv54WYM&!-}tHA`N|^7>>w+=vG@A^8f#`hKkw1@0s-|Tu8^Ro# zpc$@oG?h%J?+tuz9+c7jm_Oh93IryGl3V6Gw=le4#;iPjQ&0!?5hoF$dQyC;+aG-%_&GO$3ZOO;UUGLC&gG$Nq^6=Xka|K+mJeY%? zaYCcg!E(S2ImI9sm!A$|?vIE1l z;Vv~CD;InCC(lQG8?#YX!f#n4%7gII^ixQJn}e2*ra*9&!txF=!-a#CAi%98>Ug!& z*dS$_o$hGZl7`_1c@JiES4c$*vJ^Q=|LV?POkr4d=mb&!y|DS>K2=e3q2o5m?)|=C z@1=c5bn6thq%h}2Ja+(v>2E!+{^b@n>c!eiUSU9Yi#Y0*VMI4iQ%`@g8&ALt5IG_Z9sS;ioNBl_B)8Kg4B+&JyKqZ1y3l5zK@;E<5K5l{pI8VG} zRWYZna?X2EPg6q2M)QgSUT*ALN&9H-j9}o7`eK}+nU?36`Xal=-DFi!bD44sEi^)O zdI4`tnq;{fe36k+nTLFAJuyf@oQ-=(Y%m&!@6#;KgTxOb-U#cAfJ&G49FoR}v=Vp- z-6AS7ieFPg6@yu>VD^oayUg%D479-?fPRusE3aJSgtNkpCjZqT?IV@*d8Z1eVZ^5Q zB+(JPacI6}ZG>Qi=|Bq)@pX)X@{t4*SizXry#I|afLuKGO}d9%Y*%GU(Pkv?Yuk$l zt{+l1-cQPmYp0X-lM>Y7F#89vc`-Vc3VqhpS)sK4mWsf&JxepT-Y>wJ#HYqQ$W;)GVU5w>VP z>zw&UfgNcqn;p8VfwJW8VYO^D9XMoqi&GN(S@{MxN5%u*hCN- z4=2P_f{TIosnbs7J?>h(7X5Nh6h9h2N_w}F!F|kKI#wsU;-x}MmpMXfi};E})-Hcd zdG_Z+X*KxxQbGG655NYc!1(3cA}c>gJE!5h{;u+(>uD`=K$JaY5sFT~%577vj$TE} zj2b$tU$Z&aYa*xay+}_wyH$FaXdBIi+KzF?(alEcUQ;(#t9Pxj*cu2lo;0>C{Vn8; z;l)V@W{NZ#B{4>c^A9rh>yoqb6<6jn4P>W)xj``Y(-PgKeSdrCZv|u)xihFuc-2=Q z1^5!e$tS5a@?&}gso46Yo0L+TcaGs%Uv2S_@2`4{_m^=!_a5ljUSD&}+MeSIz>l&Q ze@I>|U~XoI=`~J=g397fi1rGomOfX|AmbV2;LVA*_x0S{lWh((jPE`=>s!g5NV=X# z?MZ7qpkB`REzgMa+v0g*x<416PbQ5kA{mB{bM~C=mXFVI#CF#c_{ZQ?({QT1kD7$e>YRu6f1lvR8323jwa2xBl#EH$!f<31qoWfj1}!n$^Z9{LSVj&=shc)z z?CjDjQ}4tqXuD=KD3X{89krOUEnDW|gF?w9Gh=CT$C{G1!Ob_mmw)94QSjsnPiL>Ji<(M~(?YpLFA+`5-z0R-fp*{{sX8og8i<{SN{>OO?d{e>I9|lo_Nrr+^F*6b^Kcuj$T2BtA5o zB)d)nLbgx2(G@6(m_13|aUcyw19@4lM4HklyrEm@eQhRt}1HjuPq#(1DtXb;U}e0CwO?jaCbZI@DT070GmZ+M|Rn9wmsL@^*(GY z%dFflWq$)sqVdYghYXmwhSRE3^VR$=k)!LaA0>u4hv7yf(m--HOC_I7ST9UlOjVVDp@`e4>I@L=-U4uvZP}l5LIOA$I zOs)^+8eO_8%cSYH)!$U-Sdea*@L5#qoG}Io$&~z)V%dIKOXTk&mRys+i-!Ap{9KEL zWD|Cze&Ae?QrSaoBGRK4;Kicd`TR6$Tf$I8-vx3b6Tm0$r4fp}Q4)Ay0DpPX zmG!};YS8~$c!k%JICg9yc2D}!h0iP{SzWqAH#|Z!aOv`T1HzEbIH_K0D^%U){4kWP zb#U$ZylzM!C~t0ItGWdIL0ASj<=7!<>d#F!^)(pPnPTDfF)E!JnMyn)P0<25L2wvo zB;e$KQ?+-5i1$&j$x3N6);w}`MVo2Jt(aInQ*e7eAi2Mkb;|h~^KyU2i8kHoDd*}q zTI-=sG2O|IH~nGZ&H1uBG%5B`C$t`G3p@X9v?kUewFk-*;mebp&0aK+ z@0Um)J~mV8JQ|TTY z&2{nBf?Ik8E_iQb2D{Y?=D^&fLQj`8gID!x|AA8v>q_MNRvYN$;`}{FZ82KRgWK3yn|O{)xph;(UGpS zo}yCV=WpsIaOoS% z4-5CLLF5T%y)2C7(pIn9G`vUrt@LJce*U?jd)ibDS}25>q|RS7fhut0FkNkKmyaDB zLEUtqoLicNF7E;(GP;v!oZc1srLi`YE*5nQS3?G+e@q8ua%bQ;y*r#PALo)*&z249 z7OIy9Wm;xYZi}qy6eF`WE+3zshGb~|KJuSz(V!HSvuU+_NCs~z;BWOmxi^&<=ReZF ziR~Z8|4Mmg^h;+VYZq34IK8`&FO?2y$LkVS&z>7s&lZ9`6s|$U|DXWJ8q6u4`}S~o zwEqU=-by?@+n(Z=)uqPcrU~Uvjjo%HiAHtP022}c?4*@Ws(3jzEd3nA-Xy8iS~_5; z87EqLdfM5Y>GJ%XSkGvE?obQSCBUPtp#oTDO2&0}u?DPiB?3541juu0=^#E0sB zz3t|_c6ljagV?))pC4t{NT#*h`&lSCj0SJ^Ec4!s=s5xs;6k78dHd@&1`xAHLwKsI zt7Kw3xWp#gM*n!;z$r3Z1hNexBXHmS?V@%u8DJ)ND%^3sRbdsqf3skIlAQ!MlD8(z zS)1o)?TbBufCm<#DdLzfd>S+t)_PxZ=4e1Cs!lrCmc6}ltdtD13@I~kIU--*&bg8f z%X5vU4ndO_==V_f#i3}gj-wYJUTau1R~bjO0S=|Mq%+&K32GIRDFn`J{yE})@m8Pt z?KYF$b>dgK0sHVt>D#~8AYsy8+OddzG(0PP*S(4Co17t#W;i)T`SOQj6iu3p z@rQEe=OF2Af_;%~vmh^+aA$4mSVghZ36eGvER;2>-PODTXgz~@`De(m7L>48d&<_< zr_{0xCjW7Epud3+0=BH|{mb;POwTwX5}trjBd$IrWYXNCu%X#b=y9qNP|uL!cBf>(@)7w> zTvB+Y*2hlRcQF_E1qni;^p)88WWmSuvy~`dfD`B@Wgm@X6r2PKN{;}-7&t76Tu|96 zKXa&(9~-12c1#iZJCO?tD27LyIqQ3K9m*4aJ~MQ5#vK&@h9lcBVocJWkqJ#Zyrxj% zBGcLFqspkZ_%$_VTbDyjqRe(LV+z|dYF@W}DTG`Sg8Aa*gn+EP%;ZTTV^I9@s(EH4SndTFLK!l^Rpf6S_^o%m{SCg-5_%PZ}7{};=n2L8i1aG8u2hhH{yVlFcF zf15(ij{7GQls5$C)(xc+_ptsex?)`-;Xesk0y+A^iwO6Sx4yz5gVsR>FAbnlO8X;l zO$&k$MahKid^GovxOI9>HYyh;O*RBw%^Iwg&JF)Bv;yUP$E{$$qoqViYFJhK-ldGtT|_zcKx;CiwrKbyw-umCVxgyr z$Mb#m@0$+=X8SxyR(8sx%cESgy#b5Fv7!{qCcwqM_CSp3f)(R}9e4mJzk<$rnNKK+ zj@PLZG2W;4Ft3zAJbt~kvqKv*5A`b{epgbTnZUFYY3PcNv<*g=(jOqJsl%ieCf7t@ zb4qTv?U^s1fdY?-o&5}fU;M_N54fQuDUY^4%(RDf5I?yBdl@;gi)!K&j{~F*2s`D%k3zzPYtkV zp-s5DM4j&m^Ll{4X)hxF*CJ5bqoJn8JEPl6kFoRD%ml69gi}bVoGLjh*74&+;Lv;W z03Wk~pi}~>c!C?au9C@?@w)J&&eNVhnjQZ3aRcTR9=wl;Fy+ufZLk zUzMPn<$xx8A)Ml$u>J%XJ>a1FO?3m5E)Iuy2-tm#XvYI5XvxF|~ob@H(>DrDogy2b3rImHg?^F&SviZE1#oMF&kiZJ_)YyC^x_7b-?ew8Zniak<4%?4T+ zJ;U*Yv@*taOUq5SI2M1WY!WRx<%gXng>w*#pV~3(@29d|yVW@bwHou6dYF$c^U1)v zhvAl$@jxwkSv?ng2{-ZW!UI0Ow$NK)Q%|;_`>PDcDQ~Py%pOI0gDUuURwTYDm*cgA zO^)jFv81=qgf?7X|1(!ueo!k(-SC-XOUTy1EZD%L3H zj0b+V9oA|8VyVzct}4xapt#r1%d);#jN0z8BuI@r;c5@(6m6AaEmQ|*x0qiM-z>%Y zQ8*I>`d)Y1BVG-wg%#=8cvJVX6#_DLfE04vm23Lj3Q}-KtT>EK?g%mdBP#U8qR~>F`H7AXNN2_Jf3<9#~+?! zKH5>y)vdf?@WM9BzyJ|<4<9BaCjKV^vB0QJGKSxYFnukLPYAFw{j`Tlu|S(RVA?EV zvIrd4AXVyx=&m?7(4a+ocJ~N6WG{wNp0^zgq>Fd>Inah*OxC%)^U~wh1vt&jcki}_ zEYCAT37-0!Zjj_8Os%?`Nj0g)cD5OJSmXyQg=@cbdRD{~*H-1gH{Na46%#h2%(x8e z0}d_HOu3DaSDomw46NJI4Eyy>bm0d(42bybM@N!v^Kz+hqX=aBo(Xu;>c;qWdhNlghH6Gn#%gXqoU<}w}Ey^w4?eGrQ_X`l@Aj*A@4EVIO zue8uUQS;ZC#@-ns6KFK5|AO-MI@O*C48Lkz)@KRpsFDqb1Ltqq3yW>4dm)S=tLZs~ zGZ27sAaPdOvb$&uwM$;qyj_lBy?Nh)S?LnHF)@LA@1<>h;ElT5dex7@HZJCQh4>J> zgI<e}g`cve?EIfn1q*Zv*P0jXBfDSFX|ky2CdMjBBq~`Kf-r&XbwN z$DLq_!B(-voTXv6N@ z9163OvQtkb{1X7b0I=whyo^y~-y=-vI$VisMA5hFNXZ=#P!mq(gkf6UoN`K?SIG%=I=!OaTYgNf_foqGwIJ^tL&&y}4A-5|2!q?c7a=s=?`~L?w(**)8 zlung@;gL=y*hcwOC75V*U+s`E2ell=sBqvRUEl0&J>s0p1*yV4sYN z*@Zav$T@Z*<5(5$w$8&&!Ks9Yl%%W{o0!8+N!2|wWj-k%T2TJ;Z!OFKqMWRdUS@s? zB1URX=_he+I~b0*(BRbk6=(`ObZROUIfBJIW}qQQzhfsJPrtEiqO4v?Znx^|C&5oh zd~H%R!VRyY-z;3~!1*@V&X`Xyai;lxjh?p|F{Yb*#R1hE(L1nUVODjQ71!Pxb_^(v z+MhwYOOn2Ee5SXIURoL&mw%6}M^TkhMJrkP&~* z*;gT9mn1(=U6Es+nOTR*C*fA(F5_p zOFadT&=_>sr^>q_gtCmMen;y2T{%37vYWG8kXZ-W^m@?AY_$2F&Db?nUk3MtC=)V; zXw`(d>wK8Of#`4|L=xT@h0In^Hr!7%qlO^A(5;ItR=dF)M&>aR%hZWwMzsb{!G!3; zB+(jI#L+Joi9@c*G`n&yuH$oC+)xwoA^tbFO|8y|-48^BZ*H8uolLs^9|6JFoo%I{ z9l}ppw8&fAnXucQ9K8M?ud`o28x#oNUqghSAC=*^H;R9MtFgl~AD)dFCtqC}@9w^G zK<34&te>5{m5sF$P?e3V-QEA({uBS75ZTf|PE$4CPx%-2+x#Y~|0jG?R?$!^4p!Fa zoTi}BL8G8)4xTsgq>zA$?;szMprpx>scdws8-4gz`YsINxGjG@77>}34HU~x?1E^DfhAQ0L|%?5Vi6V=&)E5DtxezxX?q~sxnl3S1p4x z_uD1tAbkP}APhq6FSk{uENHuTs;L@Uu%(vbq=Z65%AJ2i|1KgfA=#U@yPqS{Fm^DL9ScFBXp!*w_+>(^@Z--)xRDe`6dD0Z03LQVyXpZmm1xE zZrekp;pckZ@#VUr0(I*=c<^0p0f^bfHaGf)izvrK{{ZB&BK}tRs~p}7K3My^vn7{) z6*t;F;)hYn%*`n!zq$<_jXmkkl70M@M;9g8UK)&G_|kR|QW;|1ZxO&H18TxB>1N{L z+wu$Wa2F$%a%DI5nj?^TQ1>Yz(9OjmMI}CY%=<=$Y_n2 zj9?)?>jqWQp<7cr;Xym*P>Y{!w%;EWw$W~v3<_N1-y|;>mQ_HZT)ut5rvJiVTXwUV!w*_`sbzqfk$i#v#TJ&e$vxmznT!(=^=yfBL5k_ z41+h}%X6Okyt|j$?SPQlwH^c6?q-+Tl?=2zE~jV^ScR$$%YEommnX>hL&!ch8`b_> z-VH>mhKe2u@$H$KAc2vABMXE&grDiMr!Q_8pw$eP7%Tbr)>N?*Zn}r{Uu(yWG(<`I zo5J~3w$amIyjR{mAms3i3fj=Th67DAkY7^$)(vHRzK`cy4BdK)c~yrer3 zI#!LK_{wn_F?#RELR9}_HTCaYW@9u{iD?5`|+t#7BbhT+vdm{uRX0vp!FNQ8_$VBZ~#A4t0A(x z96US&H3Z`e*8*i$3ogZd5o$b>gaAskZ~c66gLHzgkFcH#+3N4=h=bTsxQ|0fxNn*o z(nV3emZ)A1*^19Zu+QT`u zxQ`mrM4mn}KwA^}(hBuoUQKtF?jPyj`nxK|e*+J8zC?8X8R7lqZhE?2P(FrVeQ z#is2#C=X0dWPWcQG8fq~^XSQv@l+c=MuYZKd?YuCXsjDKy*G)pv#tGA7y=>99k$f4 z?#2#4pEK8om*>p7$pw$|o9;i+mY35X>{nE>=x11?ES0m(W}5Pro>Np?U)vll2^=g5 z6lj!nYQz}UKr$*B%X}J%L4O{GL*8X+Y5LUvE?CYf`z+e)eC7%x|7$F@vc`*8B|Bx7Nm0FDlpFgn`Dun9QWBLH ze8NOt%R;4U$|>wt44`lLeXpm_qxiS?WJOSAT`_NKi<$BkF#T2se1sCda@5M%OB@;q z;FKhO>OL*nPJK)8=)f$0SxxX@Oi{<*iQU;Ep5XCuRor5*rA71%UH2yQnWIc@M}1*h+25u2a*B?yyhLmz zUNIb#WK6i_(kZ>$0BqP)iOZ|-%th5g)*0*K-v5JpW9}|H;i<9xFngbq^3vE@dc;lh zzq$AOoLJMne+e6i!Kwd>PL`FA|HICFVc)dr4tnB3Za>&jbe4{4CmE8s&)6>9=X6lq zq=!smeH>EHPVv0BKHN*4jDeImiZW(%vWA|03aDIe?g;vmP3;}-g*dpv}VIsWk~Fb~<$g>bVkO5*nas3Xif`LLD} zIe;@mL@7=wyn0Ja+CK|MzXf_M;qv-yDo`Jz@(+%HK$cYQ&Ff<_R`$IYO&Id_51z zhXs;zaDr#XLFb8`7gYUSD&TXPLWMi!s~aLI92sHdo3jI5(UxMX@v$crJq zFFRQ@ybHFDsf9`x;O$b|vgYhl>(XZ7OSKFH^~=FaME%`%SyK2Oqwv={qv}V7KDfSZ zuevcPi*G9{;kj=+GXCvN3VlkXl!xh~tByMnZkW56?WU0WzPBhyOJw>6om%_>RQS}m zC$N6eqJSy~4pLm~gjdRDlN%c~+*jE$Yl47|5T^2CnY;fO?Kwpsk%Nt7T!11NoUzNM zKgomRQsWVzD(IIl8StUR8bEm1N`Y5<{%6>KdwV!9gKq>C=GFA#!1n!y_Oy)Bw}nHZ z#Dg%76Ihy)I}QTc>W4>RGxzkqf@8Sr!RPVXu>(|5taLtA zV#@TR^ZF75b z!Ld*vk1r$%p5PYhYjf3ai|tyZOhm5q`C>i8sxvEl#h1ys;M<(j*-=YQwK#f%f3fDf z{W&)oGqYIT60LODSM>-n!PtC=x{wEbX0=onI6!c7$@b6Ed$vpTvmBnWck?C?8ffj$ zg~RGkn|&VDI8wK_zjst0Xfx&HYcaVU{H)Hgbb2N6{^4|-ZE04)Dcqn66bQXf3m(eGyRa`j5+%`B=iE*T*4LZ`Cb!IKb`fh)_A4?PmL)IDmpc_VWy^f! zQWGM7HCxFL%ld&nuWi2S5vqrZ1;Nr?r1C-lv@shpbg zWVIj=JS~6No)JKr(p2@huY8h*%BSe3P#GT*P_4GyB4=T}j76sFk;|Kg30gb>31hC8 z+DV@wbJ%_ZPk)u*-1J~s%nAAd-;|Ne@bb5YPUTAouB+}ffH2^Fm+V$4`#T0mS2Xy{ z!Qb6#Lr?(^7CV*)+m5N(Rdujnl*%R`w@I6QaCJ^8HvqIr*nOmhOd`RA<2sr%;* zDPDg5qT!h`+Dfn9zJ?EU39t-?cB0e=7k>7FU#}Vk9*JS8oEfm{^zV{xgj?JcHY7#r zpNttku}8g|8LlP zN=8QH3jD9)uZ*HOL4b;)F+t$Y4oFx3ziNX1g9L#fDB|GUprYFa1>#^rSNWLaBxIj7 z6@^!mcu_F`as{N(c5dGOA2;{vy=Rc>J?rw{o!*X(A#{!!1IE9g^L2atY`z@J0qoO1 zy*NUFq%sfu(OY9S&pj!M#w#>udjHf-(5r(o4{iza<41$K5(hrXN#g;~8A|=#`x4&L zpAD5_2s5Gn`~t07B`*(c#ev}@FXvE4z)_vJ%yys$4_##pFo(j&U6j8^T3);claYf8 zK0PuPrx5KT{-fl*o&+IYrX+hl2Q3c4=tiC2VhoY}cWwrlL=|3vBLWD1I`+DyxXde#5 z+YUBGTI~EHQS3t})}@^H)Ul#xUTx~Ydnh>mB&gpS_^QkoqdyyN+5vye@5FlHCmYTs zbdnYL2xDrLiM(i)2jz+hx*Jje(5dtet6NQ_Eu{Zl{W$+ifXt1-G+%F;IkC7FckHSV zx60IRibi*hsoK}4%*X!?{3C|xIVmWaK%f0k7dQ0!4gK-n^>xiV>}PC#v{_})(E?>; zsyifSL9V+W27tF;u%mthKc%$C3jVFH$DG?g3sVv-PF(Cfmuo$hZBTi%7C+=eRvs}0 zXv$SICq0a-ea)HwEfVHRrSmYoRA?aM22O1Ae>HKA(UmsK-;OhJCbl!NCgzUq9owF8 zV%z4#wrx(#iEZ27$vfwH&iSwROLf;()gSM5ul`ka5zmx2;FBJ!eF2Knf^Tt|)!`w( zxB5+H=T_{e?G;!!q1Jb}KB5pPBtrg%^sn|f`cCMf1iBkck^)UCy6K$BXQ6d79>b%7fY%D{#Lw`8RJw*f%OlvS!f2W;s(XNc2iH1|%v+PhS2&_rhHb|1Q|DD}N$sISu3fFAW>PL8W16bZ- zZKpJ0lk^>iRi7SpR5Gr`SC1;!UDwwh{pzMkVki}PQ6HK3ACpQ#rfI_BR_c5Ef~Z{m z{>o>wYOPuv4ExYJcj`9IV-mez^;(Urb1yGp-EbqSi1f0JDrz)4SBITcZL$ni>zr*c zwK@MT0odisRy!*g+8Zx4&GM<$%RJf2b-_2nnA$isg+>T_bh*p*5eyZ7O%+!2zng!& z|C#pYh^jqJ3~jYKQ_R1{*$PwJ2=|{vp02U~9<-IOTVPPOX<}BlX}VU%(2nb%ABLxG zmcLGlsABCD99%rcY+m?b+Fk|T-Drzo++bS~%DSP3vW2suMqCqMYdznguI9YZ_sd3{ zt}`wJk4StO%dLsCN>KDEwMD&DlmGXWd5Q7zXeVJx z*jka{obLMYln~eKAxjgN4%E>IyHqJIoE7lv4~a^h&u=ThC>c`)wa1{FOcRBAcDco% zjg$L&Dn3Tfe&H`c&MW8*NIB9{J*S;p>z<(9hlU~F8>3pjRxt81D5&rsU!Nr|qfn-^^;>vgOyP`3BK#LsD?B^koXhr54wJVsK$*f_I>48*jAScNH7$j-eW0l;KBY9ho=SCB#L5T?^h~O6ns~0tF*<~f5S;dF z`P^2|CM0su41e==^=P_$3N~a8eL_L5qomZwMTOD+Xtms@JL>RgfMo$i$k-!MPg02i z7wX5n-wfW*v6nNkTXUsk8S(CS`|zqiQdnUiz9nWkP@G%fhW)(qlDmXv!_SP{FQAiwGpgZq7wz8*Sklu^hRY zob|~P=5csVB>HTFv|elkcW-N`{#K29#s8@qKgtWPt|U+Qm5*#4q8b5z9g@Pg^gsnm zyrNKYAMjJEq4vh9`+d@Vr?4f*=*nR*$VUVClxF$hR~)@E%D2@gm^4xrFyQ_eJ(iOZ z*Z#hm@Fyjz`Ty9NjCfC4@c%#;m4V`alRVXb{Y!g}Mvkwz=l3|kVJ`BLLcw9ubAibQgS_8EiEp0>LE7h zf6379mF#;jYW1PZN=5yJ&;IR+D_4kp4-$cdTLo;iFExj9tS5SB1+Sr#7ppXGQ?ysY zsXsMmnR}K4w@Aey{)SFIGbj1_PM+pTwgDG1cprtf7aRC!%r}zW z#DpX&-6fBRD?X(DFV5RLde}+}Mc>EyX~?9@6e7Zu)4L!F;g#T7s0j20Bf@7N!iTX7 z`8^!w;H5|RWfV~GfeI+@*e^Az7&{M5!KOK}y&)1j^xD&&?x`f!1&(%%A7^LlM{bO; zCtBXdhc?>)36|m}iuV`|;nEstqyTxU-y2#%G1N{;C~aw$8vtp;jiUpdW9^L@zu$+W zY6}|<0%`c;?qFlMvnV7B1mCnP0V=28vMza6#dK5mc&(TN9U>DaP3dFGSxrukHOC5A zZozK_nRaCO^pSs!n}}RE{eYY(04|3Q;;o3AB*&5_#=)I}wtu(-+#1~ko|Ac!yR;$z z+vYN&Nn0mjw;eBJWBTl(FGXTWcC`8LK6PQY`mAJQ#7CjjTY5bC?~c-=0(A|BaqqRLK6D zOYAg%HcWQj zti$>U1}7|ryO3-&-u(?7#>2dxY4b+0G~UOX>QB!nKHsVUHk$?b)T6km;HHjt=0%{^ zB#MlXt^mVVXQ8~1_FVhwQUoN`dCD&gr;Z{@*l3Ix&V4&Jr7}2ENY3E{rUi^bT!g2$ zW_6|G84IGin>x_*gZYeD&UK{-$PA}OO4yO@8vi4aV!G7~r)WW}x&I{mb)O+|{u^h; zsb>B+J!psP6fFe$?|JUifPtc1#(#cm`HU2qXwG>%5K7p1jR|<+p%~x3jdwf~GfsDO z{_5@UO6VLf$r$L!ow;Q!=3($l|9TQOVq|i4jjldvKgJ!K!ZyV#G;2Kwe!@0oIrGCL zF{txg#|;h{MvAF8oJdSBgu3!t5(Swj3unmNn;+>OxcGg40MPi?Hv#z%2D{P<^r8ahl>{O2O~_144E|pB{UB)!#jD z1@C_}Y<-mA;wBcB#{EpX3n-HP2-zil6uQhWXlj+vXffo`^wgJ23CCQAvJ~&K7QhnK zrpzC828~95lGgkfKez8>iJC=uYN@e3R?t3b7CB+IB5tuG-2=#e)9F}4*W-LT{QOzC z(Jvz`<%fPPzfg(@OAl_}qoz}Bz${63c!F(7AVE*u)ws=BFSAQ}iIE|sk^5UpotNHu z3Zsl69iXJnzt3Sa%*8L;Os!S~@%8=ZcPkTtyNH6Z2CKWB{wq~RnTzE$9l3(rbYvv< zE`U{<7Dncv2>iJwgJmLDM6WTP(1zlqepi7bhL1>=G}_?2>+hmENRMQ!6!2L}^{Uuw zW^-V}+V`)1kixsbtx;IGwE@-1G!JnPmLU8(AJknuSF%SEex9!D36m@ADqC0CXf2>DaLd)sle2)E!@qMjhK(`yAW3o*ZADBpuuR{a`?H z{mG)fiS`7bU>?HIkF67qeqb|2P6piwv^L|iV_yn_K%GwQK>!1`O`E~^|5$go&h-iX z|M+&bAnAYOt~KBPO>A-0v9Ab25csNdJ*wPl@K52!vCn+Yu@5BX*mq4UP$mR=jx-;x z@0$m}Gfl!!<^4h;3c|(b`(lTPzpf3(p&=;QP(u1gE0TJ8txo@vKbwml>#)Ggzof@7 z?eCRIYl$}`y#DVcPO!Lj6?`VXla3P9>~}0e$jML|TF>S{wL5X+Gxj6=tn)&K01h>fjd(a1~DLHT`=h!{B1h1UdCg{;>_byZ))q)=j+y4+D>Jy%C+^A`ZQ$ zkuk&`rj$xSM6}^g90+$Tc2a^Zpdc}2zBrdcF0c9M$L|8alS=!%zT z?MYXW>IJmibJo^Q_uZD3sZv8b z5*i7O_+$=+*m4MqBcR7);Kod8@N81&x0AR4g_yGsCSo}Cwt1?`N`{u?}aI({At0YO^9Wtk_;lR8U{`&|2o9_rXlnH32%(C6l#kho^%^X zKBe}@{Zsu)Amz_YAq6!{hG4uq9`q^Iopf-|A4iS@3lzR77U)y3zaAVa7Ibi1HPXE7 z+2ewpkn~cglLzv2pr~UePDCYi=Rw=o=5Ym&Z?@PB3rR=`x)ZttS@4p#cNSvj2+yOs z=9wZ27|HdvE+Mb-TL>?hR%+o)#h<7LX=^;7NlZoPjAjRgtuWG7k1~e883vqQgB{o@ zODq6%Q9jn403FV&BCXO;$*^53+C3eY{Rnt!3di>zwkLz5FG7Ex4HS36&kC^Jg7M8l$Pv!vPFw|+nwwiABCFigr%Xfi-uRAw8ebGwQ<3#A{ziUpg#{YE9e zXUi$P4qKd%?wPH{0j~0tw89`zg#xjxJwG^ps+*S2M?ba|4oKvaJB0vJf>x?8MWh){&6#oVX#H&RpV z&R_gbKYamo+d!krS&$HhE1_K{RUu+ykeMR3Z9sP`=Wn+20*|=N9T(Nj)Iv$oIXQWe zTuAgq=NTz!-1ehwG;BTB*ZSkU*fTQEXI-LkJEqsbG)1O3Y!^thd-N+M%y#n$c&t{r z>~(R-53Vn)5cCYxXNGJU_lr-hpZmP_cwm3H7}p7yvP?rss}X|p!7y;-ULeCI>&d9t1fPC?qxG{WePx0 z%azZYu|ZHU6#mu4ldY5ujse~PbEAS&bTjUlY{1KTm*(4Ppt`j_^yOkVyk7MNizJlg z%~pN1Bm?gknCi`LkNwMwitU3n^_{gALQz~jR=jm+ADkc&WB$I4k6~-~jiuXF3-=2v zZmwlK!;8&ralaP3P)l?ItVGV@5L1V4tf&TQ8x@wWtY!xB}p`oqV>>(G`c-n1~Quo zmSrdz9i(KrL#JkitUOA{bR z8G3yidj1cFX40(%>%&%yHH1~9h&reibDnLoe_vATw0)_4QCtfOOGij<`&$#ss}i1- zUm#Xx5jQbBfbrCtPYWkzGf?G)T}Y9!Rnhjdl1ZSXs7?_+ahY|QtLSP~*dz(Ws&ul(|gOqQk37e8J0&euDY}sr^;jbUe{2AhCvtJr5!83tR#wMVrcVGC5S);0dSnuP|tp9*ce5afg$ulb2iJ# zZ6$Px3$&CgD+i{v3fkCQ=i`E6s1l7OE9qUx8BHBS^>^`E2QUH#hweL~_n4yp@-%FtaVaurIHymAkm^874C zRiwNfl?y=G!w`DAReN6fP)K>XNNL0X@|N%5Y_v+9USY%|xvFni8$fZ;_kOxnT3Y@C z{gV|7t}iX}*9j$us$H-5RLl7ikEb)-4Snv6{lgmZ$}0m*GsO$#QZ>Z#`~v=l7{Maq zTUhfmGUS?WWZ@OWnSjL+>JB57Z0ehSC0pMw;j6#~a~paN2(__oq4Aa@G$jlefLpS7 zGDwx4hp!5)-x+VGwh?#Wt8_xqiUEUp<5Gx@eNobpQN8Lq0gXtOeEW*t_LAD+&BGbUQvP5R%V8koO3t6 z*9E2z0Wxxe7i204LJ0!v=@c~Y%@1nH-6X*~DMW+O-;04w6Cr`&=MzCv7ukAT*&_MV zq=sA+odjqMp})6}FZn{-7qqj@{aFp#2V6DQG6lu$F?5y2D)RNswb zdE60k=!z+sqX{>2Lc?_5?boOKP|HSZ0HT?iV>N#x){IU{hCzyH5edzrx)LZ zR$3xh-rInY%nnHfO+>#xuix2PuB*Kg=vRn^&FG?1@daNKV?psd5IjEISX@bd>W z9z8+I1)eEBBO#X4QCHKpll3>pxvtERVX0wZW%H#?Llz8UL-+TB zTO&+`><{X{V+-CtZZ8IlUJ=7BJzlZE7#S1x_tUQ_b=+@ZY_hbRDTk8!sH{o0BaMM1 zLOTP9=sv~nxuID5QHjer0TyHd6l}ckH_2M~reBJVN3bhz`xET=0!+F}*0)dmnQ`%k zl()ef-0@~fry(!)E6{M1%c=M|+#+bl4N80<4xRno$4F=bbr?>_iX z8t<;`VDELC^=UMcJA&mm*93pUiX3N`Wtv&cU$?e*#GTG>GKUbaj03!PGuhzW*e9uK z8Z|0hgr~^N(tTzH;bif_S4SjV=<#j*s$1TKeW3J2BU%B@ZbbA!d+`xM;tg2b_t_K z*zjOKWJzeetIL+-G`v4|;OO{GUy$9*x+s7UxpNu!YCzzH;Y_#82E6+jRE@&-=ZZ+= z*PcGZFb$ILq{`$uIJ)ak1a1DC=o?m>ncceTqDo>Ca=-8mP839MRtxH^2^-+lzI96R zkw`=!6tSL`9X@U>%8KC8N1l}mw8jZScQPksWzCP>$CY(1nYk-5V^EyOy-LHlx>SNF z)s8Gsb9cM?W+>?>7pi=PrR!*kRwCXx_jnk^X54b#rZHB&;s*v`Ce>J!Bcu4_(lp?t z(`pXe5@t00Qlb@YUnb_bix(|5m^k_6$ZzbPTTr zX(HNQf&5j1Tpy8#6ouut@Fj4=y0~V*?RNnyfxtl-yQdFdPxaL-uIe8>J^Dg#NTyp< zUkc68X!*BZ7B6mO)T-!>Be!Gf+=(RrG~I6H#Kf4!U~N)eeE-lc+;nC$W% zhLrsiM&5BEnEou2e4&9kzn$P_gQHsz?XVlz`xm6>kLj=X)b$4`_gc5vvV4M~d!*CZt*GQ@AsCOsvv zftVOT!r;$~(E3FaE|W5Wj~@~3OYJS)9hfufnEIstu)~NhSY{;z;o)F|d!}PfNG&_vnoG~L9x&vGja^}N2tDJTi7Ztw` zhLI@74&E8Po>6dT!1TiEKB6(M+ycOB@%4?h!Ps%j-2}N#5|+RyCygutOA4`bvLiFoB85~xrh52!?nYMDdF}#Gw|0}S(oS4yfx?Jn`ne)u z8=Har+jKS{XdD~|b1t7`EfCkXHhGgKX^4U&{Ij6%C49i^oudvNcIWQ7L+6;_sJO6H z0Nmv5@4$1aDBjsV1zG!x2)!}JHt^Y?cjd;2K4GGM@_hw^sp~hgI4s6^#BqIsLah(CEu$CX?})>1%ZQACNQTdLo^*pI%#g%3LFD5o>5YHx@)L zoVTLWU(Bd@*A{bcB+<}C@CcZrFQR6A**KObVkRUCk8R)}IUGGCDPH448QorS92mfM zDr#E=^#LDpx8;Stau?6*j#Vi6J4-GhqGMH$GRIT&X=NZZ{jgfM%v+Pb#Jr;29-7NY z+cAQCu!+Km+3$u4ssiDAH+>C6sI-x?wF^e*@Mj3fG*A8)aCYx<^)Qbbk5+02VG^0qM05edhDe+GKmYdHA8VTknV*qzkPF3!C?{Wpmp}@vC4^k z#zk~`rcoy0n4YoHu7G9QFIHtw(uppetNyE*2>z+aLKiVL&+H^+;y^>et4 zuo9;|SVhM$Qza^~dQV=L6qBmks8|Xo@?P@2v5K#E$u{0bP5FL5*h_T(2yS+`N|_xQ zJ|H|HFyC?;WBqB{0!npV#Y;D@2g?(rRn6T~Ki1D~P1xs7+>0+#M1R8?tL&44h%c>g zh!?zpYUJ;Vx@HeDERBbJk3$ZXp5MR}_v%BJag^}~NKgG05qFM3#{31JYVz#}LAav| zaejBScEJiHwf<0o@K9WS#N@?b03*p(GDw3EmC_hsuY{2q37R1K&xQz0m`c`^(B2p> z|G|p4{H>mbO5qFtjTjoD9LJtKvhY6ZN>~nq#x=!cvKjVysA><>5cXHVuMsnTkMY%|`5J}kpz!h`2D;-FQVh~M;ynw* zA|8UT!`ztQBUgv;Y_rDBf#H6)`a=>w2T|>`?%8Kfp`&b}vY!ik%)MbH2vLUCQH!Xw zClfTm71c$@&jfz*ZU%Fr2%GbIz9>-APUwO5OaixMG%XviM@_yURvQIf3ORU;%Sz$q z>QR_+Bd;K)1-cqi^JQy(ZOp{Q5w0vzdmssh&u8_!2TRjQQCsymg^j$0{ZPRifv9wy zUT&Bp2hvud(@ieDPPFe)(dfL1yPs=q7Rg4yHhz@8nS=gpXFs@} zWIa4}ahV6V{|OWMIr+Mfo~`M-nPseoVN4^+V9RU4z;7);NL&T@ai0I+-4(iMmlU{Y zmmTH1Xy^P?`F1@TAsFR}DMV4(O!sAHE_i<|npTap>C&1|_{XIt{I-@)NOij_OY7@; z4-TYS>+&Z>wfES7`w{}0LYmH=EcH%qqK3A7N#!rzM~M!unPdhH5Pgp!%FeXSLvj>K zQ195x?QOOu;hVmZ933QqwS{Jys%|H%)p$=b!_15oPsy=jiOu)T#9eQIte6G2G*i(e z1MCH*Kdkdi-B;!!yXDAk7c&f@VU!9x(LM;3t*T_|hsWX7G<#o9 z1jE*R{niLm{W0=HW<{M@u4(zpurm*WG^W8E^t(8RVM~HTtqzLkPK7{uOypI1iIxR8uh+x?K6UJiskc@FEpy+j)D zaOO?AsBSZhER#P=W=eecfnshN?W;s`nk$c9%IO`hef6{&*HYuxqf>9J{kd!8F1V-b zhi{J2;aS8K=xbY?=xbE47{0_`j-{YO_}r<>Z#%QgJ7oeK!?wJ5D;72si6}RyaywXP zXa*&z#cL9(XS)?;Y><*$MP7cDbs8Gr*TvEJKZlg*8fvt$40T}ky0bQ&EKmv_#Dr-n zT=AT3%7T_oP1+r+?E@|`TSdHkXH!4Af~I$&L)##;4b^`rw4O1YQCA(avbK0fQ$+om zXf$OOwJHhFC4n{5b~LAYQvC@(dqFgHKsRn7%b$o{1CiTUM1oUke_0e6O&#fITAXuT zX=71IU)~AUoQy^DfVO|GK@JH0Nzvj$q)dsUPFcrdPCc=E!YHDPJG35fs~O9!)}@>o zOwTd=wnQVH$8vT+LQF0bS2a@hB*X1|Kf~J8c>MM1xG$}?+jhzOZM)5e z&yDetYjzU(LGo!t)mUpGEsJ(&*{iXaxLqr1ZeX~%KzIi&2R=q%qnDFicQAPGKqpjR zLFUW103d$6;>z_+v&OKd>D;hB_I<9OQ279%Ze3AA^X2?NeIh`Trpbt3R!iun&yY1q z={ak1!zKd!I=WA=Kj-=)1XGoOuJ0`Mp}*n){aM*Bd9k59pWeGjGm9qKdh%F^ecO5^ zuWJl$93}xeJFhmGKi-i@f`-_1?6~jmT;uXR!$0NVY;cFS{7wQ8nGI#(mw|UPUjp<}beJ_!JeYAd0;Q4_uI`U(q?|HtqJYAiL`2)UvKF+xf?ckpW{4Aqo!z#5x9Qw?RkjRrtkLl1+=nn>QvjsIP3qs(oQ@`b~=T*&RJ^T}-yD7m|?k8htCm)H<=F;pR*g{6u5lbB4X_Y7O#8pH` zW1IN=ySU_rreioI^bMM6K^q-|#-nmy?{;A}Rick0V~`MCEfZmfH}7kcn9Q@J{N z4L=1ndH}|=PC@j|b8onSw9V;*?gyXhrMb5om-44Q!otnik`s`HLKmFk{waw++13R< z^(`Uys!z*6DpS>>az)d;6$4@J;_U7pD~2X5ng5~xZ>!t#U)&hHI9sHXr&U#?W?iGC4*4b)VLhEh&CTBPLRJi>nK-Mv|`(s(oW{8N2UZ|o?{)F zRyL-=7~sdilgXRcfG-B!QLm$%X5NG}?y_Kz%QI~Aj=pX1ATHYp7GOg4~L5)h1oE#j3D6ef%-_FY{D zm#NG>jZ!xOR#Qn3LL!7D@Lm~jy7dPaQ<*A!F|kS|70sV~O`|7VCVf2(eiP;EJmI%CMzO#Nx~ zIECcwIW|~fdh2LNUCF`B5Wya1gF0k%H77ZKANFHYEmb!RQyU+|cE-Hzz3&0sxq{Ks zId91@sBi7#Oz5I@%vvtg`?mSvg)qdac2zC1vy>Rpe$Zt;y6HZ*5<)Ym$C9y53kSyD zdAr`AaU(3%mDnf|#pKO|tn7YHTW|};FpgnIu03yQdfuBBk+?F%`)g_F%AqEd4E}_5 zhXdt`Rh7N`r5>l9tyQ&$T#SdB{?65B;UZZ^BGGUYCYgqsE;yp@@8k;GI( z&RtZk4&me8jy z6 z>8^HJP~Kq4FDzmp&=puVW#fA^%PwDZdXUm{`I{a86{xS{-xl)O zia5^=XwgGSlT`hL+H))jz)*!oVKnTq$CQ6Vrt8bVU>=_wQ zegIwgYxIbJVmP$N7Cb$RIS-~GU$(w$pvuKyKJ=5cw|f&}K!&-Pp~|_VmAVH9;?JGP zXy)h;@aJ?wI0_MrX-Wp(Oc9o_3i>B9Yv9IH(P$_!C)3IlB{53i@$wD7n$V-ku^)NH z6(vt?w>rRdbmaGvOoV0wjkJ@lR0ANsQpi&UPMWys_ke>oT85Q_pV~x_30c4yhGUas zk5VFQCAjokQ8_!FsFGR)3@d)LEuZ#R^0)s!4e9+VYC0QB)ecWrU2A#Gi%loLCAs4H z5CAo2n#<}I%rZ$o;Aso#Y6FdL2kW74r40`3L$dbyWy=L6R~Gg5$nAxz>1N5CqrrOW zo_22`D`!>N5$amnxW9mOSsPdv;)s+H!GwUBCDu{?`!43sik(c4(7<_%^;q1FL>K;!t=WK4W$O2cqN|twkJkS~r_=no=Wx?lAt9Y;ant6yn3?lz*>+KJ)9%=D(-O0onZd!b z5BJ(UNA2#IWFFV?Fl1eaF(&Rgpy$XjWd9I%<6M1MdhAB}UuL}}1)OA1r!gur4}60! zE&(zdudxG}HyQ~3vOSj%6Y8{X`97ON-P0&hQSy`Xt~YzmIZH1jKa`(YKpA~M@mgJb zQJNpdz$4W%T~aZcCDnZA;62*0+vlL=;vMYos!jN|5stMTXE>CFCV}2$J;xcQC}=Av zBZLm@mm_O?&Ygg`WXoW@a3Z?R@6Ys|U_);M)2-?G^`3DNV<+91$-wWLvl}9nY%0Gl z_>+2u?F-%ib{dRngYl0Wx(Av|@@+B42Geg1(okt8otz{315ip@vd1|voQJb3j&Z2rwp#eRI9EwVnDPi(u7{0 z`wlnd1jQubuVv<~ZXw@=4~5#Nz-e-TWE_I$kn?vQ2vdKk0_qdC-Ff z=eeI}xx1e{u4zmIXe`L?k`v$$@h<}QB7cvhHnwE!gRyU zZuXv77&!MHak9V!jMi(bRF~v!=2u<_UNk1-7cAjlA6rAtSi)Gd9=ig0zt9AUqyOY@ zN*B$u5%Nxy?0aCi#?wZ{)3%om3oZN^S@q?MgjRw_62Caw6YzvDjLaYj2KTC!D3?Mk z!*&=q?|qu%wzbL0qFVur#+UeLX!OID;V_x}>|H4D1qeUcW0UuyfRPSZqha%HBV_Zv zF_?M3>CSsejfG3!628;6@Ijcg%X=A@_-A2Y>j^$=nR&RmvN&58_J$NRE4>#yzJ!)o)=pp;J16Et4+45V=IvzW(`YN6mG3~YYpF>u> z6D1P?aw6``JmhV4\n \n\n \n\n \n\n \n`;\n\ndocument.head.appendChild(documentContainer.content);\n","const hexToRgb = (hex: string): string | null => {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const checkHex = hex.replace(shorthandRegex, (_m, r, g, b) => {\n return r + r + g + g + b + b;\n });\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(checkHex);\n return result\n ? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(\n result[3],\n 16\n )}`\n : null;\n};\n\n/**\n * Apply a theme to an element by setting the CSS variables on it.\n *\n * element: Element to apply theme on.\n * themes: HASS Theme information\n * localTheme: selected theme.\n * updateMeta: boolean if we should update the theme-color meta element.\n */\nexport const applyThemesOnElement = (\n element,\n themes,\n localTheme,\n updateMeta = false\n) => {\n if (!element._themes) {\n element._themes = {};\n }\n let themeName = themes.default_theme;\n if (localTheme === \"default\" || (localTheme && themes.themes[localTheme])) {\n themeName = localTheme;\n }\n const styles = { ...element._themes };\n if (themeName !== \"default\") {\n const theme = themes.themes[themeName];\n Object.keys(theme).forEach((key) => {\n const prefixedKey = `--${key}`;\n element._themes[prefixedKey] = \"\";\n styles[prefixedKey] = theme[key];\n if (key.startsWith(\"rgb\")) {\n return;\n }\n const rgbKey = `rgb-${key}`;\n if (theme[rgbKey] !== undefined) {\n return;\n }\n const prefixedRgbKey = `--${rgbKey}`;\n element._themes[prefixedRgbKey] = \"\";\n const rgbValue = hexToRgb(theme[key]);\n if (rgbValue !== null) {\n styles[prefixedRgbKey] = rgbValue;\n }\n });\n }\n if (element.updateStyles) {\n element.updateStyles(styles);\n } else if (window.ShadyCSS) {\n // implement updateStyles() method of Polymer elements\n window.ShadyCSS.styleSubtree(/** @type {!HTMLElement} */ element, styles);\n }\n\n if (!updateMeta) {\n return;\n }\n\n const meta = document.querySelector(\"meta[name=theme-color]\");\n if (meta) {\n if (!meta.hasAttribute(\"default-content\")) {\n meta.setAttribute(\"default-content\", meta.getAttribute(\"content\")!);\n }\n const themeColor =\n styles[\"--primary-color\"] || meta.getAttribute(\"default-content\");\n meta.setAttribute(\"content\", themeColor);\n }\n};\n","import {\n LitElement,\n CSSResultArray,\n css,\n TemplateResult,\n html,\n property,\n customElement,\n} from \"lit-element\";\nimport \"@material/mwc-button\";\nimport \"./hass-subpage\";\n\n@customElement(\"hass-error-screen\")\nclass HassErrorScreen extends LitElement {\n @property()\n public error?: string;\n\n protected render(): TemplateResult {\n return html`\n \n
    \n

    ${this.error}

    \n \n go back\n \n
    \n
    \n `;\n }\n\n private _backTapped(): void {\n history.back();\n }\n\n static get styles(): CSSResultArray {\n return [\n css`\n .content {\n height: calc(100% - 64px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hass-error-screen\": HassErrorScreen;\n }\n}\n","import { UpdatingElement, property, PropertyValues } from \"lit-element\";\nimport \"./hass-error-screen\";\nimport \"./hass-loading-screen\";\nimport { Route } from \"../types\";\nimport { navigate } from \"../common/navigate\";\nimport memoizeOne from \"memoize-one\";\n\nconst extractPage = (path: string, defaultPage: string) => {\n if (path === \"\") {\n return defaultPage;\n }\n const subpathStart = path.indexOf(\"/\", 1);\n return subpathStart === -1\n ? path.substr(1)\n : path.substr(1, subpathStart - 1);\n};\n\nexport interface RouteOptions {\n // HTML tag of the route page.\n tag: string;\n // Function to load the page.\n load?: () => Promise;\n cache?: boolean;\n}\n\nexport interface RouterOptions {\n // The default route to show if path does not define a page.\n defaultPage?: string;\n // If all routes should be preloaded\n preloadAll?: boolean;\n // If a route has been shown, should we keep the element in memory\n cacheAll?: boolean;\n // Should we show a loading spinner while we load the element for the route\n showLoading?: boolean;\n // Promise that resolves when the initial data is loaded which is needed to show any route.\n initialLoad?: () => Promise;\n // Hook that is called before rendering a new route. Allowing redirects.\n // If string returned, that page will be rendered instead.\n beforeRender?: (page: string) => string | undefined;\n routes: {\n // If it's a string, it is another route whose options should be adopted.\n [route: string]: RouteOptions | string;\n };\n}\n\n// Time to wait for code to load before we show loading screen.\nconst LOADING_SCREEN_THRESHOLD = 400; // ms\n\nexport class HassRouterPage extends UpdatingElement {\n @property() public route?: Route;\n\n protected routerOptions!: RouterOptions;\n\n protected _currentPage = \"\";\n private _currentLoadProm?: Promise;\n private _cache = {};\n private _initialLoadDone = false;\n private _computeTail = memoizeOne((route: Route) => {\n const dividerPos = route.path.indexOf(\"/\", 1);\n return dividerPos === -1\n ? {\n prefix: route.prefix + route.path,\n path: \"\",\n }\n : {\n prefix: route.prefix + route.path.substr(0, dividerPos),\n path: route.path.substr(dividerPos),\n };\n });\n\n protected update(changedProps: PropertyValues) {\n super.update(changedProps);\n\n const routerOptions = this.routerOptions || { routes: {} };\n\n if (routerOptions && routerOptions.initialLoad && !this._initialLoadDone) {\n return;\n }\n\n if (!changedProps.has(\"route\")) {\n // Do not update if we have a currentLoadProm, because that means\n // that there is still an old panel shown and we're moving to a new one.\n if (this.lastChild && !this._currentLoadProm) {\n this.updatePageEl(this.lastChild, changedProps);\n }\n return;\n }\n\n const route = this.route;\n const defaultPage = routerOptions.defaultPage;\n\n if (route && route.path === \"\" && defaultPage !== undefined) {\n navigate(this, `${route.prefix}/${defaultPage}`, true);\n }\n\n let newPage = route\n ? extractPage(route.path, defaultPage || \"\")\n : \"not_found\";\n let routeOptions = routerOptions.routes[newPage];\n\n // Handle redirects\n while (typeof routeOptions === \"string\") {\n newPage = routeOptions;\n routeOptions = routerOptions.routes[newPage];\n }\n\n if (routerOptions.beforeRender) {\n const result = routerOptions.beforeRender(newPage);\n if (result !== undefined) {\n newPage = result;\n routeOptions = routerOptions.routes[newPage];\n\n // Handle redirects\n while (typeof routeOptions === \"string\") {\n newPage = routeOptions;\n routeOptions = routerOptions.routes[newPage];\n }\n\n // Update the url if we know where we're mounted.\n if (route) {\n navigate(this, `${route.prefix}/${result}`, true);\n }\n }\n }\n\n if (this._currentPage === newPage) {\n if (this.lastChild) {\n this.updatePageEl(this.lastChild, changedProps);\n }\n return;\n }\n\n if (!routeOptions) {\n this._currentPage = \"\";\n if (this.lastChild) {\n this.removeChild(this.lastChild);\n }\n return;\n }\n\n this._currentPage = newPage;\n const loadProm = routeOptions.load\n ? routeOptions.load()\n : Promise.resolve();\n\n // Check when loading the page source failed.\n loadProm.catch((err) => {\n // tslint:disable-next-line\n console.error(\"Error loading page\", newPage, err);\n\n // Verify that we're still trying to show the same page.\n if (this._currentPage !== newPage) {\n return;\n }\n\n // Removes either loading screen or the panel\n this.removeChild(this.lastChild!);\n\n // Show error screen\n const errorEl = document.createElement(\"hass-error-screen\");\n errorEl.error = `Error while loading page ${newPage}.`;\n this.appendChild(errorEl);\n });\n\n // If we don't show loading screen, just show the panel.\n // It will be automatically upgraded when loading done.\n if (!routerOptions.showLoading) {\n this._createPanel(routerOptions, newPage, routeOptions);\n return;\n }\n\n // We are only going to show the loading screen after some time.\n // That way we won't have a double fast flash on fast connections.\n let created = false;\n\n setTimeout(() => {\n if (created || this._currentPage !== newPage) {\n return;\n }\n\n // Show a loading screen.\n if (this.lastChild) {\n this.removeChild(this.lastChild);\n }\n this.appendChild(this.createLoadingScreen());\n }, LOADING_SCREEN_THRESHOLD);\n\n this._currentLoadProm = loadProm.then(\n () => {\n this._currentLoadProm = undefined;\n // Check if we're still trying to show the same page.\n if (this._currentPage !== newPage) {\n return;\n }\n\n created = true;\n this._createPanel(\n routerOptions,\n newPage,\n // @ts-ignore TS forgot this is not a string.\n routeOptions\n );\n },\n () => {\n this._currentLoadProm = undefined;\n }\n );\n }\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n\n const options = this.routerOptions;\n\n if (!options) {\n return;\n }\n\n if (options.preloadAll) {\n Object.values(options.routes).forEach(\n (route) => typeof route === \"object\" && route.load && route.load()\n );\n }\n\n if (options.initialLoad) {\n setTimeout(() => {\n if (!this._initialLoadDone) {\n this.appendChild(this.createLoadingScreen());\n }\n }, LOADING_SCREEN_THRESHOLD);\n\n options.initialLoad().then(() => {\n this._initialLoadDone = true;\n this.requestUpdate(\"route\");\n });\n }\n }\n\n protected createLoadingScreen() {\n return document.createElement(\"hass-loading-screen\");\n }\n\n /**\n * Rebuild the current panel.\n *\n * Promise will resolve when rebuilding is done and DOM updated.\n */\n protected async rebuild(): Promise {\n const oldRoute = this.route;\n\n if (oldRoute === undefined) {\n return;\n }\n\n this.route = undefined;\n await this.updateComplete;\n // Make sure that the parent didn't override this in the meanwhile.\n if (this.route === undefined) {\n this.route = oldRoute;\n }\n }\n\n /**\n * Promise that resolves when the page has rendered.\n */\n protected get pageRendered(): Promise {\n return this.updateComplete.then(() => this._currentLoadProm);\n }\n\n protected createElement(tag: string) {\n return document.createElement(tag);\n }\n\n protected updatePageEl(_pageEl, _changedProps?: PropertyValues) {\n // default we do nothing\n }\n\n protected get routeTail(): Route {\n return this._computeTail(this.route!);\n }\n\n private _createPanel(\n routerOptions: RouterOptions,\n page: string,\n routeOptions: RouteOptions\n ) {\n if (this.lastChild) {\n this.removeChild(this.lastChild);\n }\n\n const panelEl = this._cache[page] || this.createElement(routeOptions.tag);\n this.updatePageEl(panelEl);\n this.appendChild(panelEl);\n\n if (routerOptions.cacheAll || routeOptions.cache) {\n this._cache[page] = panelEl;\n }\n }\n}\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport type HassioHostInfo = any;\n\nexport interface HassioHassOSInfo {\n version: string;\n version_cli: string;\n version_latest: string;\n version_cli_latest: string;\n board: \"ova\" | \"rpi\";\n}\n\nexport const fetchHassioHostInfo = async (hass: HomeAssistant) => {\n const response = await hass.callApi>(\n \"GET\",\n \"hassio/host/info\"\n );\n return hassioApiResultExtractor(response);\n};\n\nexport const fetchHassioHassOsInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/hassos/info\"\n )\n );\n};\n","import { HASSDomEvent, ValidHassDomEvent } from \"../common/dom/fire_event\";\nimport { ProvideHassElement } from \"../mixins/provide-hass-lit-mixin\";\n\ndeclare global {\n // for fire event\n interface HASSDomEvents {\n \"show-dialog\": ShowDialogParams;\n \"close-dialog\": undefined;\n }\n // for add event listener\n interface HTMLElementEventMap {\n \"show-dialog\": HASSDomEvent>;\n }\n}\n\ninterface HassDialog extends HTMLElement {\n showDialog(params: T);\n}\n\ninterface ShowDialogParams {\n dialogTag: keyof HTMLElementTagNameMap;\n dialogImport: () => Promise;\n dialogParams: T;\n}\n\nconst LOADED = {};\n\nexport const showDialog = async (\n element: HTMLElement & ProvideHassElement,\n root: ShadowRoot | HTMLElement,\n dialogImport: () => Promise,\n dialogTag: string,\n dialogParams: unknown\n) => {\n if (!(dialogTag in LOADED)) {\n LOADED[dialogTag] = dialogImport().then(() => {\n const dialogEl = document.createElement(dialogTag) as HassDialog;\n element.provideHass(dialogEl);\n root.appendChild(dialogEl);\n return dialogEl;\n });\n }\n const dialogElement = await LOADED[dialogTag];\n dialogElement.showDialog(dialogParams);\n};\n\nexport const makeDialogManager = (\n element: HTMLElement & ProvideHassElement,\n root: ShadowRoot | HTMLElement\n) => {\n element.addEventListener(\n \"show-dialog\",\n async (e: HASSDomEvent>) => {\n const { dialogTag, dialogImport, dialogParams } = e.detail;\n showDialog(element, root, dialogImport, dialogTag, dialogParams);\n }\n );\n};\n","import { UpdatingElement, PropertyValues } from \"lit-element\";\nimport { HomeAssistant, Constructor } from \"../types\";\n\nexport interface ProvideHassElement {\n provideHass(element: HTMLElement);\n}\n\n/* tslint:disable-next-line:variable-name */\nexport const ProvideHassLitMixin = >(\n superClass: T\n) =>\n class extends superClass {\n protected hass!: HomeAssistant;\n /* tslint:disable-next-line:variable-name */\n private __provideHass: HTMLElement[] = [];\n\n public provideHass(el) {\n this.__provideHass.push(el);\n el.hass = this.hass;\n }\n\n protected updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has(\"hass\")) {\n this.__provideHass.forEach((el) => {\n (el as any).hass = this.hass;\n });\n }\n }\n };\n","import \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioAddonInfo } from \"../../../src/data/hassio/addon\";\nimport { navigate } from \"../../../src/common/navigate\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport \"../components/hassio-card-content\";\n\n@customElement(\"hassio-addons\")\nclass HassioAddons extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public addons?: HassioAddonInfo[];\n\n protected render(): TemplateResult {\n return html`\n
    \n
    Add-ons
    \n ${!this.addons\n ? html`\n \n
    \n You don't have any add-ons installed yet. Head over to\n the add-on store to\n get started!\n
    \n
    \n `\n : this.addons\n .sort((a, b) => (a.name > b.name ? 1 : -1))\n .map(\n (addon) => html`\n \n
    \n \n
    \n
    \n `\n )}\n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-card {\n cursor: pointer;\n }\n `,\n ];\n }\n\n private _computeIcon(addon: HassioAddonInfo): string {\n return addon.installed !== addon.version\n ? \"hassio:arrow-up-bold-circle\"\n : \"hassio:puzzle\";\n }\n\n private _computeIconTitle(addon: HassioAddonInfo): string {\n if (addon.installed !== addon.version) {\n return \"New version available\";\n }\n return addon.state === \"started\"\n ? \"Add-on is running\"\n : \"Add-on is stopped\";\n }\n\n private _computeIconClass(addon: HassioAddonInfo): string {\n if (addon.installed !== addon.version) {\n return \"update\";\n }\n return addon.state === \"started\" ? \"running\" : \"\";\n }\n\n private _addonTapped(ev: any): void {\n navigate(this, `/hassio/addon/${ev.currentTarget.addon.slug}`);\n }\n\n private _openStore(): void {\n navigate(this, \"/hassio/store\");\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addons\": HassioAddons;\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResult,\n css,\n property,\n customElement,\n} from \"lit-element\";\nimport \"@polymer/iron-icon/iron-icon\";\n\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioHassOSInfo } from \"../../../src/data/hassio/host\";\nimport {\n HassioHomeAssistantInfo,\n HassioSupervisorInfo,\n} from \"../../../src/data/hassio/supervisor\";\n\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"../../../src/components/buttons/ha-call-api-button\";\nimport \"../components/hassio-card-content\";\n\n@customElement(\"hassio-update\")\nexport class HassioUpdate extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public hassInfo: HassioHomeAssistantInfo;\n @property() public hassOsInfo?: HassioHassOSInfo;\n @property() public supervisorInfo: HassioSupervisorInfo;\n @property() private _error?: string;\n\n protected render(): TemplateResult {\n const updatesAvailable: number = [\n this.hassInfo,\n this.supervisorInfo,\n this.hassOsInfo,\n ].filter((value) => {\n return !!value && value.version !== value.last_version;\n }).length;\n\n if (!updatesAvailable) {\n return html``;\n }\n\n return html`\n
    \n ${this._error\n ? html`\n
    Error: ${this._error}
    \n `\n : \"\"}\n
    \n
    \n ${updatesAvailable > 1\n ? \"Updates Available 🎉\"\n : \"Update Available 🎉\"}\n
    \n ${this._renderUpdateCard(\n \"Home Assistant\",\n this.hassInfo.version,\n this.hassInfo.last_version,\n \"hassio/homeassistant/update\",\n `https://${\n this.hassInfo.last_version.includes(\"b\") ? \"rc\" : \"www\"\n }.home-assistant.io/latest-release-notes/`,\n \"hassio:home-assistant\"\n )}\n ${this._renderUpdateCard(\n \"Hass.io Supervisor\",\n this.supervisorInfo.version,\n this.supervisorInfo.last_version,\n \"hassio/supervisor/update\",\n `https://github.com//home-assistant/hassio/releases/tag/${this.supervisorInfo.last_version}`\n )}\n ${this.hassOsInfo\n ? this._renderUpdateCard(\n \"HassOS\",\n this.hassOsInfo.version,\n this.hassOsInfo.version_latest,\n \"hassio/hassos/update\",\n `https://github.com//home-assistant/hassos/releases/tag/${this.hassOsInfo.version_latest}`\n )\n : \"\"}\n
    \n
    \n `;\n }\n\n private _renderUpdateCard(\n name: string,\n curVersion: string,\n lastVersion: string,\n apiPath: string,\n releaseNotesUrl: string,\n icon?: string\n ): TemplateResult {\n if (lastVersion === curVersion) {\n return html``;\n }\n return html`\n \n
    \n ${icon\n ? html`\n
    \n \n
    \n `\n : \"\"}\n
    ${name} ${lastVersion}
    \n
    \n You are currently running version ${curVersion}\n
    \n
    \n
    \n \n Release notes\n \n \n Update\n \n
    \n
    \n `;\n }\n\n private _apiCalled(ev) {\n if (ev.detail.success) {\n this._error = \"\";\n return;\n }\n\n const response = ev.detail.response;\n\n typeof response.body === \"object\"\n ? (this._error = response.body.message || \"Unknown error\")\n : (this._error = response.body);\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n :host {\n width: 33%;\n }\n paper-card {\n display: inline-block;\n margin-bottom: 32px;\n }\n .icon {\n --iron-icon-height: 48px;\n --iron-icon-width: 48px;\n float: right;\n margin: 0 0 2px 10px;\n }\n .update-heading {\n font-size: var(--paper-font-subhead_-_font-size);\n font-weight: 500;\n margin-bottom: 0.5em;\n }\n .warning {\n color: var(--secondary-text-color);\n }\n .card-actions {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n padding: 16px;\n }\n a {\n text-decoration: none;\n }\n `,\n ];\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResult,\n css,\n property,\n customElement,\n} from \"lit-element\";\nimport \"./hassio-addons\";\nimport \"./hassio-update\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioHassOSInfo } from \"../../../src/data/hassio/host\";\nimport {\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n} from \"../../../src/data/hassio/supervisor\";\n\n@customElement(\"hassio-dashboard\")\nclass HassioDashboard extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() public hassInfo!: HassioHomeAssistantInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n protected render(): TemplateResult {\n return html`\n
    \n \n \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n css`\n .content {\n margin: 0 auto;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-dashboard\": HassioDashboard;\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResultArray,\n css,\n property,\n PropertyValues,\n customElement,\n} from \"lit-element\";\nimport \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"@polymer/paper-checkbox/paper-checkbox\";\nimport \"@polymer/paper-input/paper-input\";\nimport \"@polymer/paper-radio-button/paper-radio-button\";\nimport \"@polymer/paper-radio-group/paper-radio-group\";\n\nimport \"../components/hassio-card-content\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport { showHassioSnapshotDialog } from \"../dialogs/snapshot/show-dialog-hassio-snapshot\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioSnapshot,\n fetchHassioSnapshots,\n reloadHassioSnapshots,\n HassioFullSnapshotCreateParams,\n HassioPartialSnapshotCreateParams,\n createHassioFullSnapshot,\n createHassioPartialSnapshot,\n} from \"../../../src/data/hassio/snapshot\";\nimport { HassioSupervisorInfo } from \"../../../src/data/hassio/supervisor\";\nimport { PolymerChangedEvent } from \"../../../src/polymer-types\";\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\n\n// Not duplicate, used for typing\n// tslint:disable-next-line\nimport { PaperInputElement } from \"@polymer/paper-input/paper-input\";\n// tslint:disable-next-line\nimport { PaperRadioGroupElement } from \"@polymer/paper-radio-group/paper-radio-group\";\n// tslint:disable-next-line\nimport { PaperCheckboxElement } from \"@polymer/paper-checkbox/paper-checkbox\";\n\ninterface CheckboxItem {\n slug: string;\n name: string;\n checked: boolean;\n}\n\n@customElement(\"hassio-snapshots\")\nclass HassioSnapshots extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() private _snapshotName = \"\";\n @property() private _snapshotPassword = \"\";\n @property() private _snapshotHasPassword = false;\n @property() private _snapshotType: HassioSnapshot[\"type\"] = \"full\";\n @property() private _snapshots?: HassioSnapshot[] = [];\n @property() private _addonList: CheckboxItem[] = [];\n @property() private _folderList: CheckboxItem[] = [\n {\n slug: \"homeassistant\",\n name: \"Home Assistant configuration\",\n checked: true,\n },\n { slug: \"ssl\", name: \"SSL\", checked: true },\n { slug: \"share\", name: \"Share\", checked: true },\n { slug: \"addons/local\", name: \"Local add-ons\", checked: true },\n ];\n @property() private _creatingSnapshot = false;\n @property() private _error = \"\";\n\n public async refreshData() {\n await reloadHassioSnapshots(this.hass);\n await this._updateSnapshots();\n }\n\n protected render(): TemplateResult {\n return html`\n
    \n
    \n
    \n Create snapshot\n
    \n Snapshots allow you to easily backup and restore all data of your\n Hass.io instance.\n
    \n
    \n \n
    \n \n Type:\n \n \n Full snapshot\n \n \n Partial snapshot\n \n \n ${this._snapshotType === \"full\"\n ? undefined\n : html`\n Folders:\n ${this._folderList.map(\n (folder, idx) => html`\n \n ${folder.name}\n \n `\n )}\n Add-ons:\n ${this._addonList.map(\n (addon, idx) => html`\n \n ${addon.name}\n \n `\n )}\n `}\n Security:\n \n Password protection\n \n ${this._snapshotHasPassword\n ? html`\n \n `\n : undefined}\n ${this._error !== \"\"\n ? html`\n

    ${this._error}

    \n `\n : undefined}\n
    \n
    \n \n Create\n \n
    \n
    \n
    \n\n
    \n
    Available snapshots
    \n ${this._snapshots === undefined\n ? undefined\n : this._snapshots.length === 0\n ? html`\n \n
    \n You don't have any snapshots yet.\n
    \n
    \n `\n : this._snapshots.map(\n (snapshot) => html`\n \n
    \n \n
    \n \n `\n )}\n
    \n
    \n `;\n }\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n this._updateSnapshots();\n }\n\n protected updated(changedProps: PropertyValues) {\n if (changedProps.has(\"supervisorInfo\")) {\n this._addonList = this.supervisorInfo.addons\n .map((addon) => ({\n slug: addon.slug,\n name: addon.name,\n checked: true,\n }))\n .sort((a, b) => (a.name < b.name ? -1 : 1));\n }\n }\n\n private _handleTextValueChanged(ev: PolymerChangedEvent) {\n const input = ev.currentTarget as PaperInputElement;\n this[`_${input.name}`] = ev.detail.value;\n }\n\n private _handleCheckboxValueChanged(ev) {\n const input = ev.currentTarget as PaperCheckboxElement;\n this[`_${input.name}`] = input.checked;\n }\n\n private _handleRadioValueChanged(ev: PolymerChangedEvent) {\n const input = ev.currentTarget as PaperRadioGroupElement;\n this[`_${input.getAttribute(\"name\")}`] = ev.detail.value;\n }\n\n private _folderChecked(ev) {\n const { idx, checked } = ev.currentTarget!;\n this._folderList = this._folderList.map((folder, curIdx) =>\n curIdx === idx ? { ...folder, checked } : folder\n );\n }\n\n private _addonChecked(ev) {\n const { idx, checked } = ev.currentTarget!;\n this._addonList = this._addonList.map((addon, curIdx) =>\n curIdx === idx ? { ...addon, checked } : addon\n );\n }\n\n private async _updateSnapshots() {\n try {\n this._snapshots = await fetchHassioSnapshots(this.hass);\n this._snapshots.sort((a, b) => (a.date < b.date ? 1 : -1));\n } catch (err) {\n this._error = err.message;\n }\n }\n\n private async _createSnapshot() {\n this._error = \"\";\n if (this._snapshotHasPassword && !this._snapshotPassword.length) {\n this._error = \"Please enter a password.\";\n return;\n }\n this._creatingSnapshot = true;\n await this.updateComplete;\n\n const name =\n this._snapshotName ||\n new Date().toLocaleDateString(navigator.language, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n\n try {\n if (this._snapshotType === \"full\") {\n const data: HassioFullSnapshotCreateParams = { name };\n if (this._snapshotHasPassword) {\n data.password = this._snapshotPassword;\n }\n await createHassioFullSnapshot(this.hass, data);\n } else {\n const addons = this._addonList\n .filter((addon) => addon.checked)\n .map((addon) => addon.slug);\n const folders = this._folderList\n .filter((folder) => folder.checked)\n .map((folder) => folder.slug);\n\n const data: HassioPartialSnapshotCreateParams = {\n name,\n folders,\n addons,\n };\n if (this._snapshotHasPassword) {\n data.password = this._snapshotPassword;\n }\n await createHassioPartialSnapshot(this.hass, data);\n }\n this._updateSnapshots();\n fireEvent(this, \"hass-api-called\", { success: true, response: null });\n } catch (err) {\n this._error = err.message;\n } finally {\n this._creatingSnapshot = false;\n }\n }\n\n private _computeDetails(snapshot: HassioSnapshot) {\n const type =\n snapshot.type === \"full\" ? \"Full snapshot\" : \"Partial snapshot\";\n return snapshot.protected ? `${type}, password protected` : type;\n }\n\n private _snapshotClicked(ev) {\n showHassioSnapshotDialog(this, {\n slug: ev.currentTarget!.snapshot.slug,\n onDelete: () => this._updateSnapshots(),\n });\n }\n\n static get styles(): CSSResultArray {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-radio-group {\n display: block;\n }\n paper-radio-button {\n padding: 0 0 2px 2px;\n }\n paper-radio-button,\n paper-checkbox,\n paper-input[type=\"password\"] {\n display: block;\n margin: 4px 0 4px 48px;\n }\n .pointer {\n cursor: pointer;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-snapshots\": HassioSnapshots;\n }\n}\n","import { fireEvent } from \"../../../../src/common/dom/fire_event\";\n\nexport interface HassioSnapshotDialogParams {\n slug: string;\n onDelete: () => void;\n}\n\nexport const showHassioSnapshotDialog = (\n element: HTMLElement,\n dialogParams: HassioSnapshotDialogParams\n): void => {\n fireEvent(element, \"show-dialog\", {\n dialogTag: \"dialog-hassio-snapshot\",\n dialogImport: () =>\n import(\n /* webpackChunkName: \"dialog-hassio-snapshot\" */ \"./dialog-hassio-snapshot\"\n ),\n dialogParams,\n });\n};\n","import {\n css,\n TemplateResult,\n html,\n LitElement,\n property,\n CSSResultArray,\n} from \"lit-element\";\nimport \"@polymer/paper-card/paper-card\";\nimport memoizeOne from \"memoize-one\";\n\nimport \"../components/hassio-card-content\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonInfo,\n HassioAddonRepository,\n} from \"../../../src/data/hassio/addon\";\nimport { navigate } from \"../../../src/common/navigate\";\nimport { filterAndSort } from \"../components/hassio-filter-addons\";\n\nclass HassioAddonRepositoryEl extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public repo!: HassioAddonRepository;\n @property() public addons!: HassioAddonInfo[];\n @property() public filter!: string;\n\n private _getAddons = memoizeOne(\n (addons: HassioAddonInfo[], filter?: string) => {\n if (filter) {\n return filterAndSort(addons, filter);\n }\n return addons.sort((a, b) =>\n a.name.toUpperCase() < b.name.toUpperCase() ? -1 : 1\n );\n }\n );\n\n protected render(): TemplateResult {\n const repo = this.repo;\n const addons = this._getAddons(this.addons, this.filter);\n\n if (this.filter && addons.length < 1) {\n return html`\n
    \n
    \n
    \n No results found in \"${repo.name}\"\n
    \n
    \n
    \n `;\n }\n return html`\n
    \n
    \n ${repo.name}\n
    \n Maintained by ${repo.maintainer}
    \n ${repo.url}\n
    \n
    \n\n ${addons.map(\n (addon) => html`\n \n
    \n \n
    \n \n `\n )}\n
    \n `;\n }\n\n private computeIcon(addon) {\n return addon.installed && addon.installed !== addon.version\n ? \"hassio:arrow-up-bold-circle\"\n : \"hassio:puzzle\";\n }\n\n private computeIconTitle(addon) {\n if (addon.installed) {\n return addon.installed !== addon.version\n ? \"New version available\"\n : \"Add-on is installed\";\n }\n return addon.available\n ? \"Add-on is not installed\"\n : \"Add-on is not available on your system\";\n }\n\n private computeIconClass(addon) {\n if (addon.installed) {\n return addon.installed !== addon.version ? \"update\" : \"installed\";\n }\n return !addon.available ? \"not_available\" : \"\";\n }\n\n private addonTapped(ev) {\n navigate(this, `/hassio/addon/${ev.currentTarget.addon.slug}`);\n }\n\n static get styles(): CSSResultArray {\n return [\n hassioStyle,\n css`\n paper-card {\n cursor: pointer;\n }\n .not_available {\n opacity: 0.6;\n }\n a.repo {\n color: var(--primary-text-color);\n }\n `,\n ];\n }\n}\n\ncustomElements.define(\"hassio-addon-repository\", HassioAddonRepositoryEl);\n","import { HassioAddonInfo } from \"../../../src/data/hassio/addon\";\nimport * as Fuse from \"fuse.js\";\n\nexport function filterAndSort(addons: HassioAddonInfo[], filter: string) {\n const options: Fuse.FuseOptions = {\n keys: [\"name\", \"description\", \"slug\"],\n caseSensitive: false,\n minMatchCharLength: 2,\n threshold: 0.2,\n };\n const fuse = new Fuse(addons, options);\n return fuse.search(filter);\n}\n","import {\n LitElement,\n html,\n CSSResultArray,\n css,\n property,\n TemplateResult,\n customElement,\n PropertyValues,\n} from \"lit-element\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"@polymer/paper-input/paper-input\";\nimport memoizeOne from \"memoize-one\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\nimport \"../components/hassio-card-content\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioAddonRepository } from \"../../../src/data/hassio/addon\";\nimport { PolymerChangedEvent } from \"../../../src/polymer-types\";\nimport { repeat } from \"lit-html/directives/repeat\";\n\n@customElement(\"hassio-repositories-editor\")\nclass HassioRepositoriesEditor extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public repos!: HassioAddonRepository[];\n @property() private _repoUrl = \"\";\n\n private _sortedRepos = memoizeOne((repos: HassioAddonRepository[]) =>\n repos\n .filter((repo) => repo.slug !== \"core\" && repo.slug !== \"local\")\n .sort((a, b) => (a.name < b.name ? -1 : 1))\n );\n\n protected render(): TemplateResult {\n const repos = this._sortedRepos(this.repos);\n return html`\n
    \n
    \n Repositories\n
    \n Configure which add-on repositories to fetch data from:\n
    \n
    \n ${// Use repeat so that the fade-out from call-service-api-button\n // stays with the correct repo after we add/delete one.\n repeat(\n repos,\n (repo) => repo.slug,\n (repo) => html`\n \n
    \n \n
    \n
    \n \n Remove\n \n
    \n
    \n `\n )}\n\n \n
    \n \n \n
    \n
    \n \n Add\n \n
    \n
    \n
    \n `;\n }\n\n protected updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has(\"repos\")) {\n this._repoUrl = \"\";\n }\n }\n\n private _urlChanged(ev: PolymerChangedEvent) {\n this._repoUrl = ev.detail.value;\n }\n\n private computeRemoveRepoData(repoList, url) {\n const list = repoList\n .filter((repo) => repo.url !== url)\n .map((repo) => repo.source);\n return { addons_repositories: list };\n }\n\n private computeAddRepoData(repoList, url) {\n const list = repoList ? repoList.map((repo) => repo.source) : [];\n list.push(url);\n return { addons_repositories: list };\n }\n\n static get styles(): CSSResultArray {\n return [\n hassioStyle,\n css`\n .add {\n padding: 12px 16px;\n }\n iron-icon {\n color: var(--secondary-text-color);\n margin-right: 16px;\n display: inline-block;\n }\n paper-input {\n width: calc(100% - 49px);\n display: inline-block;\n margin-top: -4px;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-repositories-editor\": HassioRepositoriesEditor;\n }\n}\n","import \"@polymer/paper-spinner/paper-spinner-lite\";\nimport {\n LitElement,\n TemplateResult,\n html,\n css,\n customElement,\n CSSResult,\n} from \"lit-element\";\n\n@customElement(\"loading-screen\")\nclass LoadingScreen extends LitElement {\n protected render(): TemplateResult {\n return html`\n \n `;\n }\n\n static get styles(): CSSResult {\n return css`\n :host {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"loading-screen\": LoadingScreen;\n }\n}\n","import { TemplateResult, html } from \"lit-html\";\nimport {\n css,\n CSSResult,\n customElement,\n LitElement,\n property,\n} from \"lit-element\";\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-input/paper-input\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@material/mwc-button\";\n\n@customElement(\"hassio-search-input\")\nclass HassioSearchInput extends LitElement {\n @property() private filter?: string;\n\n protected render(): TemplateResult {\n return html`\n
    \n \n \n ${this.filter &&\n html`\n \n `}\n \n
    \n `;\n }\n\n private async _filterChanged(value: string) {\n fireEvent(this, \"value-changed\", { value: String(value) });\n }\n\n private async _filterInputChanged(e) {\n this._filterChanged(e.target.value);\n }\n\n private async _clearSearch() {\n this._filterChanged(\"\");\n }\n\n static get styles(): CSSResult {\n return css`\n paper-input {\n flex: 1 1 auto;\n margin: 0 16px;\n }\n .search-container {\n display: inline-flex;\n width: 100%;\n align-items: center;\n }\n .prefix {\n margin: 8px;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-search-input\": HassioSearchInput;\n }\n}\n","import \"./hassio-addon-repository\";\nimport \"./hassio-repositories-editor\";\nimport { TemplateResult, html } from \"lit-html\";\nimport {\n LitElement,\n CSSResult,\n css,\n property,\n PropertyValues,\n} from \"lit-element\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonRepository,\n HassioAddonInfo,\n fetchHassioAddonsInfo,\n reloadHassioAddons,\n} from \"../../../src/data/hassio/addon\";\nimport \"../../../src/layouts/loading-screen\";\nimport \"../components/hassio-search-input\";\n\nconst sortRepos = (a: HassioAddonRepository, b: HassioAddonRepository) => {\n if (a.slug === \"local\") {\n return -1;\n }\n if (b.slug === \"local\") {\n return 1;\n }\n if (a.slug === \"core\") {\n return -1;\n }\n if (b.slug === \"core\") {\n return 1;\n }\n return a.name.toUpperCase() < b.name.toUpperCase() ? -1 : 1;\n};\n\nclass HassioAddonStore extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() private _addons?: HassioAddonInfo[];\n @property() private _repos?: HassioAddonRepository[];\n @property() private _filter?: string;\n\n public async refreshData() {\n this._repos = undefined;\n this._addons = undefined;\n this._filter = undefined;\n await reloadHassioAddons(this.hass);\n await this._loadData();\n }\n\n protected render(): TemplateResult {\n if (!this._addons || !this._repos) {\n return html`\n \n `;\n }\n const repos: TemplateResult[] = [];\n\n for (const repo of this._repos) {\n const addons = this._addons!.filter(\n (addon) => addon.repository === repo.slug\n );\n\n if (addons.length === 0) {\n continue;\n }\n\n repos.push(html`\n \n `);\n }\n\n return html`\n \n\n \n\n ${repos}\n `;\n }\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n this.addEventListener(\"hass-api-called\", (ev) => this.apiCalled(ev));\n this._loadData();\n }\n\n private apiCalled(ev) {\n if (ev.detail.success) {\n this._loadData();\n }\n }\n\n private async _loadData() {\n try {\n const addonsInfo = await fetchHassioAddonsInfo(this.hass);\n this._repos = addonsInfo.repositories;\n this._repos.sort(sortRepos);\n this._addons = addonsInfo.addons;\n } catch (err) {\n alert(\"Failed to fetch add-on info\");\n }\n }\n\n private async _filterChanged(e) {\n this._filter = e.detail.value;\n }\n\n static get styles(): CSSResult {\n return css`\n hassio-addon-repository {\n margin-top: 24px;\n }\n `;\n }\n}\n\ncustomElements.define(\"hassio-addon-store\", HassioAddonStore);\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport {\n HassioHostInfo as HassioHostInfoType,\n HassioHassOSInfo,\n} from \"../../../src/data/hassio/host\";\nimport { fetchHassioHardwareInfo } from \"../../../src/data/hassio/hardware\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { showHassioMarkdownDialog } from \"../dialogs/markdown/show-dialog-hassio-markdown\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\n\n@customElement(\"hassio-host-info\")\nclass HassioHostInfo extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public hostInfo!: HassioHostInfoType;\n @property() public hassOsInfo!: HassioHassOSInfo;\n @property() private _errors?: string;\n\n public render(): TemplateResult | void {\n return html`\n \n
    \n

    Host system

    \n \n \n \n \n \n \n \n \n \n \n ${this.hostInfo.deployment\n ? html`\n \n \n \n \n `\n : \"\"}\n \n
    Hostname${this.hostInfo.hostname}
    System${this.hostInfo.operating_system}
    Deployment${this.hostInfo.deployment}
    \n \n Hardware\n \n ${this.hostInfo.features.includes(\"hostname\")\n ? html`\n \n Change hostname\n \n `\n : \"\"}\n ${this._errors\n ? html`\n
    Error: ${this._errors}
    \n `\n : \"\"}\n
    \n
    \n ${this.hostInfo.features.includes(\"reboot\")\n ? html`\n Reboot\n `\n : \"\"}\n ${this.hostInfo.features.includes(\"shutdown\")\n ? html`\n Shutdown\n `\n : \"\"}\n ${this.hostInfo.features.includes(\"hassos\")\n ? html`\n Import from USB\n `\n : \"\"}\n ${this.hostInfo.version !== this.hostInfo.version_latest\n ? html`\n Update\n `\n : \"\"}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-card {\n display: inline-block;\n width: 400px;\n margin-left: 8px;\n }\n .card-content {\n height: 200px;\n color: var(--primary-text-color);\n }\n @media screen and (max-width: 830px) {\n paper-card {\n margin-top: 8px;\n margin-left: 0;\n width: 100%;\n }\n .card-content {\n height: auto;\n }\n }\n .info {\n width: 100%;\n }\n .info td:nth-child(2) {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n mwc-button.info {\n max-width: calc(50% - 12px);\n }\n table.info {\n margin-bottom: 10px;\n }\n .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n `,\n ];\n }\n\n protected firstUpdated(): void {\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n }\n\n private _apiCalled(ev): void {\n if (ev.detail.success) {\n this._errors = undefined;\n return;\n }\n\n const response = ev.detail.response;\n\n this._errors =\n typeof response.body === \"object\"\n ? response.body.message || \"Unknown error\"\n : response.body;\n }\n\n private async _showHardware(): Promise {\n try {\n const content = this._objectToMarkdown(\n await fetchHassioHardwareInfo(this.hass)\n );\n showHassioMarkdownDialog(this, {\n title: \"Hardware\",\n content,\n });\n } catch (err) {\n showHassioMarkdownDialog(this, {\n title: \"Hardware\",\n content: \"Error getting hardware info\",\n });\n }\n }\n\n private _objectToMarkdown(obj, indent = \"\"): string {\n let data = \"\";\n Object.keys(obj).forEach((key) => {\n if (typeof obj[key] !== \"object\") {\n data += `${indent}- ${key}: ${obj[key]}\\n`;\n } else {\n data += `${indent}- ${key}:\\n`;\n if (Array.isArray(obj[key])) {\n if (obj[key].length) {\n data +=\n `${indent} - ` + obj[key].join(`\\n${indent} - `) + \"\\n\";\n }\n } else {\n data += this._objectToMarkdown(obj[key], ` ${indent}`);\n }\n }\n });\n\n return data;\n }\n\n private _changeHostnameClicked(): void {\n const curHostname = this.hostInfo.hostname;\n const hostname = prompt(\"Please enter a new hostname:\", curHostname);\n if (hostname && hostname !== curHostname) {\n this.hass.callApi(\"POST\", \"hassio/host/options\", { hostname });\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-host-info\": HassioHostInfo;\n }\n}\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\nimport {\n HassioSupervisorInfo as HassioSupervisorInfoType,\n setSupervisorOption,\n SupervisorOptions,\n} from \"../../../src/data/hassio/supervisor\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\n\n@customElement(\"hassio-supervisor-info\")\nclass HassioSupervisorInfo extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfoType;\n @property() private _errors?: string;\n\n public render(): TemplateResult | void {\n return html`\n \n
    \n

    Hass.io supervisor

    \n \n \n \n \n \n \n \n \n \n \n ${this.supervisorInfo.channel !== \"stable\"\n ? html`\n \n \n \n \n `\n : \"\"}\n \n
    Version${this.supervisorInfo.version}
    Latest version${this.supervisorInfo.last_version}
    Channel${this.supervisorInfo.channel}
    \n ${this._errors\n ? html`\n
    Error: ${this._errors}
    \n `\n : \"\"}\n
    \n
    \n Reload\n ${this.supervisorInfo.version !== this.supervisorInfo.last_version\n ? html`\n Update\n `\n : \"\"}\n ${this.supervisorInfo.channel === \"beta\"\n ? html`\n Leave beta channel\n `\n : \"\"}\n ${this.supervisorInfo.channel === \"stable\"\n ? html`\n Join beta channel\n `\n : \"\"}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-card {\n display: inline-block;\n width: 400px;\n }\n .card-content {\n height: 200px;\n color: var(--primary-text-color);\n }\n @media screen and (max-width: 830px) {\n paper-card {\n width: 100%;\n }\n .card-content {\n height: auto;\n }\n }\n .info {\n width: 100%;\n }\n .info td:nth-child(2) {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n `,\n ];\n }\n\n protected firstUpdated(): void {\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n }\n\n private _apiCalled(ev): void {\n if (ev.detail.success) {\n this._errors = undefined;\n return;\n }\n\n const response = ev.detail.response;\n\n this._errors =\n typeof response.body === \"object\"\n ? response.body.message || \"Unknown error\"\n : response.body;\n }\n\n private async _joinBeta() {\n if (\n !confirm(`WARNING:\nBeta releases are for testers and early adopters and can contain unstable code changes. Make sure you have backups of your data before you activate this feature.\n\nThis inludes beta releases for:\n- Home Assistant (Release Candidates)\n- Hass.io supervisor\n- Host system`)\n ) {\n return;\n }\n try {\n const data: SupervisorOptions = { channel: \"beta\" };\n await setSupervisorOption(this.hass, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._errors = `Error joining beta channel, ${err.body?.message || err}`;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-supervisor-info\": HassioSupervisorInfo;\n }\n}\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n query,\n} from \"lit-element\";\n\nimport { ANSI_HTML_STYLE, parseTextToColoredPre } from \"../ansi-to-html\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { fetchSupervisorLogs } from \"../../../src/data/hassio/supervisor\";\n\n@customElement(\"hassio-supervisor-log\")\nclass HassioSupervisorLog extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() private _error?: string;\n @query(\"#content\") private _logContent!: HTMLDivElement;\n\n public async connectedCallback(): Promise {\n super.connectedCallback();\n await this._loadData();\n }\n\n public render(): TemplateResult | void {\n return html`\n \n ${this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"}\n
    \n
    \n Refresh\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n ANSI_HTML_STYLE,\n css`\n pre {\n white-space: pre-wrap;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n `,\n ];\n }\n\n private async _loadData(): Promise {\n this._error = undefined;\n try {\n const content = await fetchSupervisorLogs(this.hass);\n while (this._logContent.lastChild) {\n this._logContent.removeChild(this._logContent.lastChild as Node);\n }\n this._logContent.appendChild(parseTextToColoredPre(content));\n } catch (err) {\n this._error = `Failed to get supervisor logs, ${err.body?.message ||\n err}`;\n }\n }\n\n private async _refresh(): Promise {\n await this._loadData();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-supervisor-log\": HassioSupervisorLog;\n }\n}\n","import \"@polymer/paper-menu-button/paper-menu-button\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport {\n HassioHostInfo,\n HassioHassOSInfo,\n} from \"../../../src/data/hassio/host\";\nimport { HassioSupervisorInfo } from \"../../../src/data/hassio/supervisor\";\nimport { HomeAssistant } from \"../../../src/types\";\n\nimport \"./hassio-host-info\";\nimport \"./hassio-supervisor-info\";\nimport \"./hassio-supervisor-log\";\n\n@customElement(\"hassio-system\")\nclass HassioSystem extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() public hostInfo!: HassioHostInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n public render(): TemplateResult | void {\n return html`\n
    \n
    Information
    \n \n \n
    System log
    \n \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n .content {\n margin: 4px;\n color: var(--primary-text-color);\n }\n .title {\n margin-top: 24px;\n color: var(--primary-text-color);\n font-size: 2em;\n padding-left: 8px;\n margin-bottom: 8px;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-system\": HassioSystem;\n }\n}\n","import {\n HassRouterPage,\n RouterOptions,\n} from \"../../src/layouts/hass-router-page\";\nimport { customElement, property } from \"lit-element\";\nimport { PolymerElement } from \"@polymer/polymer\";\nimport { HomeAssistant } from \"../../src/types\";\n// Don't codesplit it, that way the dashboard always loads fast.\nimport \"./dashboard/hassio-dashboard\";\n// Don't codesplit the others, because it breaks the UI when pushed to a Pi\nimport \"./snapshots/hassio-snapshots\";\nimport \"./addon-store/hassio-addon-store\";\nimport \"./system/hassio-system\";\nimport { HassioHostInfo, HassioHassOSInfo } from \"../../src/data/hassio/host\";\nimport {\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n} from \"../../src/data/hassio/supervisor\";\n\n@customElement(\"hassio-tabs-router\")\nclass HassioTabsRouter extends HassRouterPage {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo: HassioSupervisorInfo;\n @property() public hostInfo: HassioHostInfo;\n @property() public hassInfo: HassioHomeAssistantInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n protected routerOptions: RouterOptions = {\n routes: {\n dashboard: {\n tag: \"hassio-dashboard\",\n },\n snapshots: {\n tag: \"hassio-snapshots\",\n },\n store: {\n tag: \"hassio-addon-store\",\n },\n system: {\n tag: \"hassio-system\",\n },\n },\n };\n\n protected updatePageEl(el) {\n if (\"setProperties\" in el) {\n // As long as we have Polymer pages\n (el as PolymerElement).setProperties({\n hass: this.hass,\n supervisorInfo: this.supervisorInfo,\n hostInfo: this.hostInfo,\n hassInfo: this.hassInfo,\n hassOsInfo: this.hassOsInfo,\n });\n } else {\n el.hass = this.hass;\n el.supervisorInfo = this.supervisorInfo;\n el.hostInfo = this.hostInfo;\n el.hassInfo = this.hassInfo;\n el.hassOsInfo = this.hassOsInfo;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-tabs-router\": HassioTabsRouter;\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResultArray,\n css,\n customElement,\n property,\n} from \"lit-element\";\nimport \"@polymer/app-layout/app-header-layout/app-header-layout\";\nimport \"@polymer/app-layout/app-header/app-header\";\nimport \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@polymer/paper-tabs/paper-tab\";\nimport \"@polymer/paper-tabs/paper-tabs\";\n\nimport \"../../src/components/ha-menu-button\";\nimport \"../../src/resources/ha-style\";\nimport \"./hassio-tabs-router\";\n\nimport scrollToTarget from \"../../src/common/dom/scroll-to-target\";\n\nimport { haStyle } from \"../../src/resources/styles\";\nimport { HomeAssistant, Route } from \"../../src/types\";\nimport { navigate } from \"../../src/common/navigate\";\nimport { HassioHostInfo, HassioHassOSInfo } from \"../../src/data/hassio/host\";\nimport {\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n} from \"../../src/data/hassio/supervisor\";\n\nconst HAS_REFRESH_BUTTON = [\"store\", \"snapshots\"];\n\n@customElement(\"hassio-pages-with-tabs\")\nclass HassioPagesWithTabs extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public narrow!: boolean;\n @property() public route!: Route;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() public hostInfo!: HassioHostInfo;\n @property() public hassInfo!: HassioHomeAssistantInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n protected render(): TemplateResult {\n const page = this._page;\n return html`\n \n \n \n \n
    Hass.io
    \n ${HAS_REFRESH_BUTTON.includes(page)\n ? html`\n \n `\n : undefined}\n
    \n \n Dashboard\n Snapshots\n Add-on store\n System\n \n
    \n \n
    \n `;\n }\n\n private handlePageSelected(ev) {\n const newPage = ev.detail.item.getAttribute(\"page-name\");\n if (newPage !== this._page) {\n navigate(this, `/hassio/${newPage}`);\n }\n\n scrollToTarget(\n this,\n // @ts-ignore\n this.shadowRoot!.querySelector(\"app-header-layout\").header.scrollTarget\n );\n }\n\n private refreshClicked() {\n if (this._page === \"snapshots\") {\n // @ts-ignore\n this.shadowRoot.querySelector(\"hassio-snapshots\").refreshData();\n } else {\n // @ts-ignore\n this.shadowRoot.querySelector(\"hassio-addon-store\").refreshData();\n }\n }\n\n private get _page() {\n return this.route.path.substr(1);\n }\n\n static get styles(): CSSResultArray {\n return [\n haStyle,\n css`\n :host {\n color: var(--primary-text-color);\n --paper-card-header-color: var(--primary-text-color);\n }\n paper-tabs {\n margin-left: 12px;\n --paper-tabs-selection-bar-color: #fff;\n text-transform: uppercase;\n }\n app-header,\n app-toolbar {\n background-color: var(--primary-color);\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-pages-with-tabs\": HassioPagesWithTabs;\n }\n}\n","/**\n * Scroll to a specific y coordinate.\n *\n * Copied from paper-scroll-header-panel.\n *\n * @method scroll\n * @param {number} top The coordinate to scroll to, along the y-axis.\n * @param {boolean} smooth true if the scroll position should be smoothly adjusted.\n */\nexport default function scrollToTarget(element, target) {\n // the scroll event will trigger _updateScrollState directly,\n // However, _updateScrollState relies on the previous `scrollTop` to update the states.\n // Calling _updateScrollState will ensure that the states are synced correctly.\n const top = 0;\n const scroller = target;\n const easingFn = function easeOutQuad(t, b, c, d) {\n /* eslint-disable no-param-reassign, space-infix-ops, no-mixed-operators */\n t /= d;\n return -c * t * (t - 2) + b;\n /* eslint-enable no-param-reassign, space-infix-ops, no-mixed-operators */\n };\n const animationId = Math.random();\n const duration = 200;\n const startTime = Date.now();\n const currentScrollTop = scroller.scrollTop;\n const deltaScrollTop = top - currentScrollTop;\n element._currentAnimationId = animationId;\n (function updateFrame() {\n const now = Date.now();\n const elapsedTime = now - startTime;\n if (elapsedTime > duration) {\n scroller.scrollTop = top;\n } else if (element._currentAnimationId === animationId) {\n scroller.scrollTop = easingFn(\n elapsedTime,\n currentScrollTop,\n deltaScrollTop,\n duration\n );\n requestAnimationFrame(updateFrame.bind(element));\n }\n }.call(element));\n}\n","import { customElement, PropertyValues, property } from \"lit-element\";\nimport { PolymerElement } from \"@polymer/polymer\";\nimport \"@polymer/paper-icon-button\";\n\nimport \"../../src/resources/ha-style\";\nimport { applyThemesOnElement } from \"../../src/common/dom/apply_themes_on_element\";\nimport { fireEvent } from \"../../src/common/dom/fire_event\";\nimport {\n HassRouterPage,\n RouterOptions,\n} from \"../../src/layouts/hass-router-page\";\nimport { HomeAssistant } from \"../../src/types\";\nimport {\n fetchHassioSupervisorInfo,\n fetchHassioHomeAssistantInfo,\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n createHassioSession,\n HassioPanelInfo,\n} from \"../../src/data/hassio/supervisor\";\nimport {\n fetchHassioHostInfo,\n fetchHassioHassOsInfo,\n HassioHostInfo,\n HassioHassOSInfo,\n} from \"../../src/data/hassio/host\";\nimport { fetchHassioAddonInfo } from \"../../src/data/hassio/addon\";\nimport { makeDialogManager } from \"../../src/dialogs/make-dialog-manager\";\nimport { ProvideHassLitMixin } from \"../../src/mixins/provide-hass-lit-mixin\";\n// Don't codesplit it, that way the dashboard always loads fast.\nimport \"./hassio-pages-with-tabs\";\nimport { navigate } from \"../../src/common/navigate\";\n\n// The register callback of the IronA11yKeysBehavior inside paper-icon-button\n// is not called, causing _keyBindings to be uninitiliazed for paper-icon-button,\n// causing an exception when added to DOM. When transpiled to ES5, this will\n// break the build.\ncustomElements.get(\"paper-icon-button\").prototype._keyBindings = {};\n\n@customElement(\"hassio-main\")\nclass HassioMain extends ProvideHassLitMixin(HassRouterPage) {\n @property() public hass!: HomeAssistant;\n @property() public panel!: HassioPanelInfo;\n @property() public narrow!: boolean;\n\n protected routerOptions: RouterOptions = {\n // Hass.io has a page with tabs, so we route all non-matching routes to it.\n defaultPage: \"dashboard\",\n initialLoad: () => this._fetchData(),\n showLoading: true,\n routes: {\n dashboard: {\n tag: \"hassio-pages-with-tabs\",\n cache: true,\n },\n snapshots: \"dashboard\",\n store: \"dashboard\",\n system: \"dashboard\",\n addon: {\n tag: \"hassio-addon-view\",\n load: () =>\n import(\n /* webpackChunkName: \"hassio-addon-view\" */ \"./addon-view/hassio-addon-view\"\n ),\n },\n ingress: {\n tag: \"hassio-ingress-view\",\n load: () =>\n import(\n /* webpackChunkName: \"hassio-ingress-view\" */ \"./ingress-view/hassio-ingress-view\"\n ),\n },\n },\n };\n\n @property() private _supervisorInfo: HassioSupervisorInfo;\n @property() private _hostInfo: HassioHostInfo;\n @property() private _hassOsInfo?: HassioHassOSInfo;\n @property() private _hassInfo: HassioHomeAssistantInfo;\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n\n applyThemesOnElement(this, this.hass.themes, this.hass.selectedTheme, true);\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n // Paulus - March 17, 2019\n // We went to a single hass-toggle-menu event in HA 0.90. However, the\n // supervisor UI can also run under older versions of Home Assistant.\n // So here we are going to translate toggle events into the appropriate\n // open and close events. These events are a no-op in newer versions of\n // Home Assistant.\n this.addEventListener(\"hass-toggle-menu\", () => {\n fireEvent(\n (window.parent as any).customPanel,\n // @ts-ignore\n this.hass.dockedSidebar ? \"hass-close-menu\" : \"hass-open-menu\"\n );\n });\n // Paulus - March 19, 2019\n // We changed the navigate event to fire directly on the window, as that's\n // where we are listening for it. However, the older panel_custom will\n // listen on this element for navigation events, so we need to forward them.\n window.addEventListener(\"location-changed\", (ev) =>\n // @ts-ignore\n fireEvent(this, ev.type, ev.detail, {\n bubbles: false,\n })\n );\n\n makeDialogManager(this, document.body);\n }\n\n protected updatePageEl(el) {\n // the tabs page does its own routing so needs full route.\n const route =\n el.nodeName === \"HASSIO-PAGES-WITH-TABS\" ? this.route : this.routeTail;\n\n if (\"setProperties\" in el) {\n // As long as we have Polymer pages\n (el as PolymerElement).setProperties({\n hass: this.hass,\n narrow: this.narrow,\n supervisorInfo: this._supervisorInfo,\n hostInfo: this._hostInfo,\n hassInfo: this._hassInfo,\n hassOsInfo: this._hassOsInfo,\n route,\n });\n } else {\n el.hass = this.hass;\n el.narrow = this.narrow;\n el.supervisorInfo = this._supervisorInfo;\n el.hostInfo = this._hostInfo;\n el.hassInfo = this._hassInfo;\n el.hassOsInfo = this._hassOsInfo;\n el.route = route;\n }\n }\n\n private async _fetchData() {\n if (this.panel.config && this.panel.config.ingress) {\n await this._redirectIngress(this.panel.config.ingress);\n return;\n }\n\n const [supervisorInfo, hostInfo, hassInfo] = await Promise.all([\n fetchHassioSupervisorInfo(this.hass),\n fetchHassioHostInfo(this.hass),\n fetchHassioHomeAssistantInfo(this.hass),\n ]);\n this._supervisorInfo = supervisorInfo;\n this._hostInfo = hostInfo;\n this._hassInfo = hassInfo;\n\n if (this._hostInfo.features && this._hostInfo.features.includes(\"hassos\")) {\n this._hassOsInfo = await fetchHassioHassOsInfo(this.hass);\n }\n }\n\n private async _redirectIngress(addonSlug: string) {\n try {\n const [addon] = await Promise.all([\n fetchHassioAddonInfo(this.hass, addonSlug).catch(() => {\n throw new Error(\"Failed to fetch add-on info\");\n }),\n createHassioSession(this.hass).catch(() => {\n throw new Error(\"Failed to create an ingress session\");\n }),\n ]);\n if (!addon.ingress_url) {\n alert(\"Add-on does not support Ingress\");\n return;\n }\n if (addon.state !== \"started\") {\n alert(\"Add-on is not running. Please start it first\");\n navigate(this, `/hassio/addon/${addon.slug}`, true);\n return;\n }\n location.assign(addon.ingress_url);\n // await a promise that doesn't resolve, so we show the loading screen\n // while we load the next page.\n await new Promise(() => undefined);\n } catch (err) {\n alert(\"Unable to open ingress connection\");\n }\n }\n\n private _apiCalled(ev) {\n if (!ev.detail.success) {\n return;\n }\n\n let tries = 1;\n\n const tryUpdate = () => {\n this._fetchData().catch(() => {\n tries += 1;\n setTimeout(tryUpdate, Math.min(tries, 5) * 1000);\n });\n };\n\n tryUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-main\": HassioMain;\n }\n}\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport interface HassioSnapshot {\n slug: string;\n date: string;\n name: string;\n type: \"full\" | \"partial\";\n protected: boolean;\n}\n\nexport interface HassioSnapshotDetail extends HassioSnapshot {\n size: number;\n homeassistant: string;\n addons: Array<{\n slug: \"ADDON_SLUG\";\n name: \"NAME\";\n version: \"INSTALLED_VERSION\";\n size: \"SIZE_IN_MB\";\n }>;\n repositories: string[];\n folders: string[];\n}\n\nexport interface HassioFullSnapshotCreateParams {\n name: string;\n password?: string;\n}\nexport interface HassioPartialSnapshotCreateParams {\n name: string;\n folders: string[];\n addons: string[];\n password?: string;\n}\n\nexport const fetchHassioSnapshots = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/snapshots\"\n )\n ).snapshots;\n};\n\nexport const fetchHassioSnapshotInfo = async (\n hass: HomeAssistant,\n snapshot: string\n) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n `hassio/snapshots/${snapshot}/info`\n )\n );\n};\n\nexport const reloadHassioSnapshots = async (hass: HomeAssistant) => {\n await hass.callApi>(\"POST\", `hassio/snapshots/reload`);\n};\n\nexport const createHassioFullSnapshot = async (\n hass: HomeAssistant,\n data: HassioFullSnapshotCreateParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/snapshots/new/full`,\n data\n );\n};\n\nexport const createHassioPartialSnapshot = async (\n hass: HomeAssistant,\n data: HassioFullSnapshotCreateParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/snapshots/new/partial`,\n data\n );\n};\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport interface HassioHardwareAudioDevice {\n device?: string;\n name: string;\n}\n\ninterface HassioHardwareAudioList {\n audio: { input: any; output: any };\n}\n\nexport interface HassioHardwareInfo {\n serial: string[];\n input: string[];\n disk: string[];\n gpio: string[];\n audio: object;\n}\n\nexport const fetchHassioHardwareAudio = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/hardware/audio\"\n )\n );\n};\n\nexport const fetchHassioHardwareInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/hardware/info\"\n )\n );\n};\n","import { fireEvent } from \"../../../../src/common/dom/fire_event\";\n\nexport interface HassioMarkdownDialogParams {\n title: string;\n content: string;\n}\n\nexport const showHassioMarkdownDialog = (\n element: HTMLElement,\n dialogParams: HassioMarkdownDialogParams\n): void => {\n fireEvent(element, \"show-dialog\", {\n dialogTag: \"dialog-hassio-markdown\",\n dialogImport: () =>\n import(\n /* webpackChunkName: \"dialog-hassio-markdown\" */ \"./dialog-hassio-markdown\"\n ),\n dialogParams,\n });\n};\n","import { css } from \"lit-element\";\n\ninterface State {\n bold: boolean;\n italic: boolean;\n underline: boolean;\n strikethrough: boolean;\n foregroundColor: null | string;\n backgroundColor: null | string;\n}\n\nexport const ANSI_HTML_STYLE = css`\n .bold {\n font-weight: bold;\n }\n .italic {\n font-style: italic;\n }\n .underline {\n text-decoration: underline;\n }\n .strikethrough {\n text-decoration: line-through;\n }\n .underline.strikethrough {\n text-decoration: underline line-through;\n }\n .fg-red {\n color: rgb(222, 56, 43);\n }\n .fg-green {\n color: rgb(57, 181, 74);\n }\n .fg-yellow {\n color: rgb(255, 199, 6);\n }\n .fg-blue {\n color: rgb(0, 111, 184);\n }\n .fg-magenta {\n color: rgb(118, 38, 113);\n }\n .fg-cyan {\n color: rgb(44, 181, 233);\n }\n .fg-white {\n color: rgb(204, 204, 204);\n }\n .bg-black {\n background-color: rgb(0, 0, 0);\n }\n .bg-red {\n background-color: rgb(222, 56, 43);\n }\n .bg-green {\n background-color: rgb(57, 181, 74);\n }\n .bg-yellow {\n background-color: rgb(255, 199, 6);\n }\n .bg-blue {\n background-color: rgb(0, 111, 184);\n }\n .bg-magenta {\n background-color: rgb(118, 38, 113);\n }\n .bg-cyan {\n background-color: rgb(44, 181, 233);\n }\n .bg-white {\n background-color: rgb(204, 204, 204);\n }\n`;\n\nexport function parseTextToColoredPre(text) {\n const pre = document.createElement(\"pre\");\n const re = /\\033(?:\\[(.*?)[@-~]|\\].*?(?:\\007|\\033\\\\))/g;\n let i = 0;\n\n const state: State = {\n bold: false,\n italic: false,\n underline: false,\n strikethrough: false,\n foregroundColor: null,\n backgroundColor: null,\n };\n\n const addSpan = (content) => {\n const span = document.createElement(\"span\");\n if (state.bold) {\n span.classList.add(\"bold\");\n }\n if (state.italic) {\n span.classList.add(\"italic\");\n }\n if (state.underline) {\n span.classList.add(\"underline\");\n }\n if (state.strikethrough) {\n span.classList.add(\"strikethrough\");\n }\n if (state.foregroundColor !== null) {\n span.classList.add(`fg-${state.foregroundColor}`);\n }\n if (state.backgroundColor !== null) {\n span.classList.add(`bg-${state.backgroundColor}`);\n }\n span.appendChild(document.createTextNode(content));\n pre.appendChild(span);\n };\n\n /* eslint-disable no-cond-assign */\n let match;\n // tslint:disable-next-line\n while ((match = re.exec(text)) !== null) {\n const j = match!.index;\n addSpan(text.substring(i, j));\n i = j + match[0].length;\n\n if (match[1] === undefined) {\n continue;\n }\n\n match[1].split(\";\").forEach((colorCode: string) => {\n switch (parseInt(colorCode, 10)) {\n case 0:\n // reset\n state.bold = false;\n state.italic = false;\n state.underline = false;\n state.strikethrough = false;\n state.foregroundColor = null;\n state.backgroundColor = null;\n break;\n case 1:\n state.bold = true;\n break;\n case 3:\n state.italic = true;\n break;\n case 4:\n state.underline = true;\n break;\n case 9:\n state.strikethrough = true;\n break;\n case 22:\n state.bold = false;\n break;\n case 23:\n state.italic = false;\n break;\n case 24:\n state.underline = false;\n break;\n case 29:\n state.strikethrough = false;\n break;\n case 30:\n // foreground black\n state.foregroundColor = null;\n break;\n case 31:\n state.foregroundColor = \"red\";\n break;\n case 32:\n state.foregroundColor = \"green\";\n break;\n case 33:\n state.foregroundColor = \"yellow\";\n break;\n case 34:\n state.foregroundColor = \"blue\";\n break;\n case 35:\n state.foregroundColor = \"magenta\";\n break;\n case 36:\n state.foregroundColor = \"cyan\";\n break;\n case 37:\n state.foregroundColor = \"white\";\n break;\n case 39:\n // foreground reset\n state.foregroundColor = null;\n break;\n case 40:\n state.backgroundColor = \"black\";\n break;\n case 41:\n state.backgroundColor = \"red\";\n break;\n case 42:\n state.backgroundColor = \"green\";\n break;\n case 43:\n state.backgroundColor = \"yellow\";\n break;\n case 44:\n state.backgroundColor = \"blue\";\n break;\n case 45:\n state.backgroundColor = \"magenta\";\n break;\n case 46:\n state.backgroundColor = \"cyan\";\n break;\n case 47:\n state.backgroundColor = \"white\";\n break;\n case 49:\n // background reset\n state.backgroundColor = null;\n break;\n }\n });\n }\n addSpan(text.substring(i));\n\n return pre;\n}\n","import { css } from \"lit-element\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\n\nexport const hassioStyle = css`\n .card-group {\n margin-top: 24px;\n }\n .card-group .title {\n color: var(--primary-text-color);\n font-size: 2em;\n padding-left: 8px;\n margin-bottom: 8px;\n }\n .card-group .description {\n font-size: 0.5em;\n font-weight: 500;\n margin-top: 4px;\n }\n .card-group paper-card {\n --card-group-columns: 4;\n width: calc(\n (100% - 12px * var(--card-group-columns)) / var(--card-group-columns)\n );\n margin: 4px;\n vertical-align: top;\n }\n @media screen and (max-width: 1200px) and (min-width: 901px) {\n .card-group paper-card {\n --card-group-columns: 3;\n }\n }\n @media screen and (max-width: 900px) and (min-width: 601px) {\n .card-group paper-card {\n --card-group-columns: 2;\n }\n }\n @media screen and (max-width: 600px) and (min-width: 0) {\n .card-group paper-card {\n width: 100%;\n margin: 4px 0;\n }\n .content {\n padding: 0;\n }\n }\n ha-call-api-button {\n font-weight: 500;\n color: var(--primary-color);\n }\n .error {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n`;\n\ndocumentContainer.innerHTML = `\n \n`;\n\ndocument.head.appendChild(documentContainer.content);\n","// Polymer legacy event helpers used courtesy of the Polymer project.\n//\n// Copyright (c) 2017 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndeclare global {\n // tslint:disable-next-line\n interface HASSDomEvents {}\n}\n\nexport type ValidHassDomEvent = keyof HASSDomEvents;\n\nexport interface HASSDomEvent extends Event {\n detail: T;\n}\n\n/**\n * Dispatches a custom event with an optional detail value.\n *\n * @param {string} type Name of event type.\n * @param {*=} detail Detail value containing event-specific\n * payload.\n * @param {{ bubbles: (boolean|undefined),\n * cancelable: (boolean|undefined),\n * composed: (boolean|undefined) }=}\n * options Object specifying options. These may include:\n * `bubbles` (boolean, defaults to `true`),\n * `cancelable` (boolean, defaults to false), and\n * `node` on which to fire the event (HTMLElement, defaults to `this`).\n * @return {Event} The new event that was fired.\n */\nexport const fireEvent = (\n node: HTMLElement | Window,\n type: HassEvent,\n detail?: HASSDomEvents[HassEvent],\n options?: {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n }\n) => {\n options = options || {};\n // @ts-ignore\n detail = detail === null || detail === undefined ? {} : detail;\n const event = new Event(type, {\n bubbles: options.bubbles === undefined ? true : options.bubbles,\n cancelable: Boolean(options.cancelable),\n composed: options.composed === undefined ? true : options.composed,\n });\n (event as any).detail = detail;\n node.dispatchEvent(event);\n return event;\n};\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport interface HassioAddonInfo {\n name: string;\n slug: string;\n description: string;\n repository: \"core\" | \"local\" | string;\n version: string;\n state: \"none\" | \"started\" | \"stopped\";\n installed: string | undefined;\n detached: boolean;\n available: boolean;\n build: boolean;\n url: string | null;\n icon: boolean;\n logo: boolean;\n}\n\nexport interface HassioAddonDetails extends HassioAddonInfo {\n name: string;\n slug: string;\n description: string;\n long_description: null | string;\n auto_update: boolean;\n url: null | string;\n detached: boolean;\n available: boolean;\n arch: \"armhf\" | \"aarch64\" | \"i386\" | \"amd64\";\n machine: any;\n homeassistant: string;\n last_version: string;\n boot: \"auto\" | \"manual\";\n build: boolean;\n options: object;\n network: null | object;\n network_description: null | object;\n host_network: boolean;\n host_pid: boolean;\n host_ipc: boolean;\n host_dbus: boolean;\n privileged: any;\n apparmor: \"disable\" | \"default\" | \"profile\";\n devices: string[];\n auto_uart: boolean;\n icon: boolean;\n logo: boolean;\n changelog: boolean;\n hassio_api: boolean;\n hassio_role: \"default\" | \"homeassistant\" | \"manager\" | \"admin\";\n homeassistant_api: boolean;\n auth_api: boolean;\n full_access: boolean;\n protected: boolean;\n rating: \"1-6\";\n stdin: boolean;\n webui: null | string;\n gpio: boolean;\n kernel_modules: boolean;\n devicetree: boolean;\n docker_api: boolean;\n audio: boolean;\n audio_input: null | string;\n audio_output: null | string;\n services_role: string[];\n discovery: string[];\n ip_address: string;\n ingress: boolean;\n ingress_panel: boolean;\n ingress_entry: null | string;\n ingress_url: null | string;\n}\n\nexport interface HassioAddonsInfo {\n addons: HassioAddonInfo[];\n repositories: HassioAddonRepository[];\n}\n\nexport interface HassioAddonSetSecurityParams {\n protected?: boolean;\n}\n\nexport interface HassioAddonRepository {\n slug: string;\n name: string;\n source: string;\n url: string;\n maintainer: string;\n}\n\nexport interface HassioAddonSetOptionParams {\n audio_input?: string | null;\n audio_output?: string | null;\n options?: object | null;\n boot?: \"auto\" | \"manual\";\n auto_update?: boolean;\n ingress_panel?: boolean;\n network?: object | null;\n}\n\nexport const reloadHassioAddons = async (hass: HomeAssistant) => {\n await hass.callApi>(\"POST\", `hassio/addons/reload`);\n};\n\nexport const fetchHassioAddonsInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\"GET\", `hassio/addons`)\n );\n};\n\nexport const fetchHassioAddonInfo = async (\n hass: HomeAssistant,\n slug: string\n) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n `hassio/addons/${slug}/info`\n )\n );\n};\n\nexport const fetchHassioAddonChangelog = async (\n hass: HomeAssistant,\n slug: string\n) => {\n return hass.callApi(\"GET\", `hassio/addons/${slug}/changelog`);\n};\n\nexport const fetchHassioAddonLogs = async (\n hass: HomeAssistant,\n slug: string\n) => {\n return hass.callApi(\"GET\", `hassio/addons/${slug}/logs`);\n};\n\nexport const setHassioAddonOption = async (\n hass: HomeAssistant,\n slug: string,\n data: HassioAddonSetOptionParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/options`,\n data\n );\n};\n\nexport const setHassioAddonSecurity = async (\n hass: HomeAssistant,\n slug: string,\n data: HassioAddonSetSecurityParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/security`,\n data\n );\n};\n\nexport const installHassioAddon = async (hass: HomeAssistant, slug: string) => {\n return hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/install`\n );\n};\n\nexport const uninstallHassioAddon = async (\n hass: HomeAssistant,\n slug: string\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/uninstall`\n );\n};\n","import { fireEvent } from \"./dom/fire_event\";\n\ndeclare global {\n // for fire event\n interface HASSDomEvents {\n \"location-changed\": {\n replace: boolean;\n };\n }\n}\n\nexport const navigate = (\n _node: any,\n path: string,\n replace: boolean = false\n) => {\n if (__DEMO__) {\n if (replace) {\n history.replaceState(null, \"\", `${location.pathname}#${path}`);\n } else {\n window.location.hash = path;\n }\n } else {\n if (replace) {\n history.replaceState(null, \"\", path);\n } else {\n history.pushState(null, \"\", path);\n }\n }\n fireEvent(window, \"location-changed\", {\n replace,\n });\n};\n","import { LocalizeFunc } from \"../translations/localize\";\n\n/**\n * Calculate a string representing a date object as relative time from now.\n *\n * Example output: 5 minutes ago, in 3 days.\n */\nconst tests = [60, 60, 24, 7];\nconst langKey = [\"second\", \"minute\", \"hour\", \"day\"];\n\nexport default function relativeTime(\n dateObj: Date,\n localize: LocalizeFunc,\n options: {\n compareTime?: Date;\n includeTense?: boolean;\n } = {}\n): string {\n const compareTime = options.compareTime || new Date();\n let delta = (compareTime.getTime() - dateObj.getTime()) / 1000;\n const tense = delta >= 0 ? \"past\" : \"future\";\n delta = Math.abs(delta);\n\n let timeDesc;\n\n for (let i = 0; i < tests.length; i++) {\n if (delta < tests[i]) {\n delta = Math.floor(delta);\n timeDesc = localize(\n `ui.components.relative_time.duration.${langKey[i]}`,\n \"count\",\n delta\n );\n break;\n }\n\n delta /= tests[i];\n }\n\n if (timeDesc === undefined) {\n delta = Math.floor(delta);\n timeDesc = localize(\n \"ui.components.relative_time.duration.week\",\n \"count\",\n delta\n );\n }\n\n return options.includeTense === false\n ? timeDesc\n : localize(`ui.components.relative_time.${tense}`, \"time\", timeDesc);\n}\n","import { dedupingMixin } from \"@polymer/polymer/lib/utils/mixin\";\n/**\n * Polymer Mixin to enable a localize function powered by language/resources from hass object.\n *\n * @polymerMixin\n */\nexport default dedupingMixin(\n (superClass) =>\n class extends superClass {\n static get properties() {\n return {\n hass: Object,\n\n /**\n * Translates a string to the current `language`. Any parameters to the\n * string should be passed in order, as follows:\n * `localize(stringKey, param1Name, param1Value, param2Name, param2Value)`\n */\n localize: {\n type: Function,\n computed: \"__computeLocalize(hass.localize)\",\n },\n };\n }\n\n __computeLocalize(localize) {\n return localize;\n }\n }\n);\n","import { dom } from \"@polymer/polymer/lib/legacy/polymer.dom\";\nimport { PolymerElement } from \"@polymer/polymer/polymer-element\";\n\nimport relativeTime from \"../common/datetime/relative_time\";\n\nimport LocalizeMixin from \"../mixins/localize-mixin\";\n\n/*\n * @appliesMixin LocalizeMixin\n */\nclass HaRelativeTime extends LocalizeMixin(PolymerElement) {\n static get properties() {\n return {\n hass: Object,\n datetime: {\n type: String,\n observer: \"datetimeChanged\",\n },\n\n datetimeObj: {\n type: Object,\n observer: \"datetimeObjChanged\",\n },\n\n parsedDateTime: Object,\n };\n }\n\n constructor() {\n super();\n this.updateRelative = this.updateRelative.bind(this);\n }\n\n connectedCallback() {\n super.connectedCallback();\n // update every 60 seconds\n this.updateInterval = setInterval(this.updateRelative, 60000);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n clearInterval(this.updateInterval);\n }\n\n datetimeChanged(newVal) {\n this.parsedDateTime = newVal ? new Date(newVal) : null;\n\n this.updateRelative();\n }\n\n datetimeObjChanged(newVal) {\n this.parsedDateTime = newVal;\n\n this.updateRelative();\n }\n\n updateRelative() {\n const root = dom(this);\n if (!this.parsedDateTime) {\n root.innerHTML = this.localize(\"ui.components.relative_time.never\");\n } else {\n root.innerHTML = relativeTime(this.parsedDateTime, this.localize);\n }\n }\n}\n\ncustomElements.define(\"ha-relative-time\", HaRelativeTime);\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResult,\n css,\n property,\n customElement,\n} from \"lit-element\";\nimport \"@polymer/iron-icon/iron-icon\";\n\nimport \"../../../src/components/ha-relative-time\";\nimport { HomeAssistant } from \"../../../src/types\";\n\n@customElement(\"hassio-card-content\")\nclass HassioCardContent extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public title!: string;\n @property() public description?: string;\n @property({ type: Boolean }) public available?: boolean;\n @property() public datetime?: string;\n @property() public iconTitle?: string;\n @property() public iconClass?: string;\n @property() public icon = \"hass:help-circle\";\n\n protected render(): TemplateResult {\n return html`\n \n
    \n
    ${this.title}
    \n
    \n ${this.description}\n ${/* treat as available when undefined */\n this.available === false ? \" (Not available)\" : \"\"}\n ${this.datetime\n ? html`\n \n `\n : undefined}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult {\n return css`\n iron-icon {\n margin-right: 16px;\n margin-top: 16px;\n float: left;\n color: var(--secondary-text-color);\n }\n iron-icon.update {\n color: var(--paper-orange-400);\n }\n iron-icon.running,\n iron-icon.installed {\n color: var(--paper-green-400);\n }\n iron-icon.hassupdate,\n iron-icon.snapshot {\n color: var(--paper-item-icon-color);\n }\n iron-icon.not_available {\n color: var(--google-red-500);\n }\n .title {\n color: var(--primary-text-color);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n .addition {\n color: var(--secondary-text-color);\n overflow: hidden;\n position: relative;\n height: 2.4em;\n line-height: 1.2em;\n }\n ha-relative-time {\n display: block;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-card-content\": HassioCardContent;\n }\n}\n","export interface HassioResponse {\n data: T;\n result: \"ok\";\n}\n\nexport const hassioApiResultExtractor = (response: HassioResponse) =>\n response.data;\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-spinner/paper-spinner\";\nimport { html } from \"@polymer/polymer/lib/utils/html-tag\";\nimport { PolymerElement } from \"@polymer/polymer/polymer-element\";\n\nclass HaProgressButton extends PolymerElement {\n static get template() {\n return html`\n \n
    \n \n \n \n \n
    \n `;\n }\n\n static get properties() {\n return {\n hass: {\n type: Object,\n },\n\n progress: {\n type: Boolean,\n value: false,\n },\n\n disabled: {\n type: Boolean,\n value: false,\n },\n };\n }\n\n tempClass(className) {\n var classList = this.$.container.classList;\n classList.add(className);\n setTimeout(() => {\n classList.remove(className);\n }, 1000);\n }\n\n ready() {\n super.ready();\n this.addEventListener(\"click\", (ev) => this.buttonTapped(ev));\n }\n\n buttonTapped(ev) {\n if (this.progress) ev.stopPropagation();\n }\n\n actionSuccess() {\n this.tempClass(\"success\");\n }\n\n actionError() {\n this.tempClass(\"error\");\n }\n\n computeDisabled(disabled, progress) {\n return disabled || progress;\n }\n}\n\ncustomElements.define(\"ha-progress-button\", HaProgressButton);\n","import { LitElement, html } from \"lit-element\";\n\nimport \"./ha-progress-button\";\nimport { fireEvent } from \"../../common/dom/fire_event\";\n\nclass HaCallApiButton extends LitElement {\n render() {\n return html`\n \n `;\n }\n\n constructor() {\n super();\n this.method = \"POST\";\n this.data = {};\n this.disabled = false;\n this.progress = false;\n }\n\n static get properties() {\n return {\n hass: {},\n progress: Boolean,\n path: String,\n method: String,\n data: {},\n disabled: Boolean,\n };\n }\n\n get progressButton() {\n return this.renderRoot.querySelector(\"ha-progress-button\");\n }\n\n async _buttonTapped() {\n this.progress = true;\n const eventData = {\n method: this.method,\n path: this.path,\n data: this.data,\n };\n\n try {\n const resp = await this.hass.callApi(this.method, this.path, this.data);\n this.progress = false;\n this.progressButton.actionSuccess();\n eventData.success = true;\n eventData.response = resp;\n } catch (err) {\n this.progress = false;\n this.progressButton.actionError();\n eventData.success = false;\n eventData.response = err;\n }\n\n fireEvent(this, \"hass-api-called\", eventData);\n }\n}\n\ncustomElements.define(\"ha-call-api-button\", HaCallApiButton);\n","import { HomeAssistant, PanelInfo } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport type HassioHomeAssistantInfo = any;\nexport type HassioSupervisorInfo = any;\n\nexport type HassioPanelInfo = PanelInfo<\n | undefined\n | {\n ingress?: string;\n }\n>;\n\nexport interface CreateSessionResponse {\n session: string;\n}\n\nexport interface SupervisorOptions {\n channel: \"beta\" | \"dev\" | \"stable\";\n}\n\nexport const fetchHassioHomeAssistantInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/homeassistant/info\"\n )\n );\n};\n\nexport const fetchHassioSupervisorInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/supervisor/info\"\n )\n );\n};\n\nexport const fetchSupervisorLogs = async (hass: HomeAssistant) => {\n return hass.callApi(\"GET\", \"hassio/supervisor/logs\");\n};\n\nexport const createHassioSession = async (hass: HomeAssistant) => {\n const response = await hass.callApi>(\n \"POST\",\n \"hassio/ingress/session\"\n );\n document.cookie = `ingress_session=${response.data.session};path=/api/hassio_ingress/`;\n};\n\nexport const setSupervisorOption = async (\n hass: HomeAssistant,\n data: SupervisorOptions\n) => {\n await hass.callApi>(\n \"POST\",\n \"hassio/supervisor/options\",\n data\n );\n};\n","import {\n createCollection,\n Connection,\n HassEntity,\n} from \"home-assistant-js-websocket\";\n\nexport interface PersitentNotificationEntity extends HassEntity {\n notification_id?: string;\n created_at?: string;\n title?: string;\n message?: string;\n}\n\nexport interface PersistentNotification {\n created_at: string;\n message: string;\n notification_id: string;\n title: string;\n status: \"read\" | \"unread\";\n}\n\nconst fetchNotifications = (conn) =>\n conn.sendMessagePromise({\n type: \"persistent_notification/get\",\n });\n\nconst subscribeUpdates = (conn, store) =>\n conn.subscribeEvents(\n () => fetchNotifications(conn).then((ntf) => store.setState(ntf, true)),\n \"persistent_notifications_updated\"\n );\n\nexport const subscribeNotifications = (\n conn: Connection,\n onChange: (notifications: PersistentNotification[]) => void\n) =>\n createCollection(\n \"_ntf\",\n fetchNotifications,\n subscribeUpdates,\n conn,\n onChange\n );\n","import \"@polymer/paper-icon-button/paper-icon-button\";\nimport {\n property,\n TemplateResult,\n LitElement,\n html,\n customElement,\n CSSResult,\n css,\n} from \"lit-element\";\n\nimport { fireEvent } from \"../common/dom/fire_event\";\nimport { HomeAssistant } from \"../types\";\nimport { UnsubscribeFunc } from \"home-assistant-js-websocket\";\nimport { subscribeNotifications } from \"../data/persistent_notification\";\nimport { computeDomain } from \"../common/entity/compute_domain\";\n\n@customElement(\"ha-menu-button\")\nclass HaMenuButton extends LitElement {\n @property({ type: Boolean }) public hassio = false;\n @property() public narrow!: boolean;\n @property() public hass!: HomeAssistant;\n @property() private _hasNotifications = false;\n private _alwaysVisible = false;\n private _attachNotifOnConnect = false;\n private _unsubNotifications?: UnsubscribeFunc;\n\n public connectedCallback() {\n super.connectedCallback();\n if (this._attachNotifOnConnect) {\n this._attachNotifOnConnect = false;\n this._subscribeNotifications();\n }\n }\n\n public disconnectedCallback() {\n super.disconnectedCallback();\n if (this._unsubNotifications) {\n this._attachNotifOnConnect = true;\n this._unsubNotifications();\n this._unsubNotifications = undefined;\n }\n }\n\n protected render(): TemplateResult {\n const hasNotifications =\n (this.narrow || this.hass.dockedSidebar === \"always_hidden\") &&\n (this._hasNotifications ||\n Object.keys(this.hass.states).some(\n (entityId) => computeDomain(entityId) === \"configurator\"\n ));\n return html`\n \n ${hasNotifications\n ? html`\n
    \n `\n : \"\"}\n `;\n }\n\n protected firstUpdated(changedProps) {\n super.firstUpdated(changedProps);\n if (!this.hassio) {\n return;\n }\n // This component is used on Hass.io too, but Hass.io might run the UI\n // on older frontends too, that don't have an always visible menu button\n // in the sidebar.\n this._alwaysVisible =\n (Number((window.parent as any).frontendVersion) || 0) < 20190710;\n }\n\n protected updated(changedProps) {\n super.updated(changedProps);\n\n if (!changedProps.has(\"narrow\") && !changedProps.has(\"hass\")) {\n return;\n }\n\n const oldHass = changedProps.get(\"hass\") as HomeAssistant | undefined;\n const oldNarrow =\n changedProps.get(\"narrow\") ||\n (oldHass && oldHass.dockedSidebar === \"always_hidden\");\n const newNarrow =\n this.narrow || this.hass.dockedSidebar === \"always_hidden\";\n\n if (oldNarrow === newNarrow) {\n return;\n }\n\n this.style.visibility =\n newNarrow || this._alwaysVisible ? \"initial\" : \"hidden\";\n\n if (!newNarrow) {\n this._hasNotifications = false;\n if (this._unsubNotifications) {\n this._unsubNotifications();\n this._unsubNotifications = undefined;\n }\n return;\n }\n\n this._subscribeNotifications();\n }\n\n private _subscribeNotifications() {\n this._unsubNotifications = subscribeNotifications(\n this.hass.connection,\n (notifications) => {\n this._hasNotifications = notifications.length > 0;\n }\n );\n }\n\n private _toggleMenu(): void {\n fireEvent(this, \"hass-toggle-menu\");\n }\n\n static get styles(): CSSResult {\n return css`\n :host {\n position: relative;\n }\n .dot {\n pointer-events: none;\n position: absolute;\n background-color: var(--accent-color);\n width: 12px;\n height: 12px;\n top: 5px;\n right: 2px;\n border-radius: 50%;\n border: 2px solid var(--primary-color);\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-menu-button\": HaMenuButton;\n }\n}\n","export const computeDomain = (entityId: string): string => {\n return entityId.substr(0, entityId.indexOf(\".\"));\n};\n","import { css } from \"lit-element\";\n\nexport const haStyle = css`\n :host {\n @apply --paper-font-body1;\n }\n\n app-header-layout,\n ha-app-layout {\n background-color: var(--primary-background-color);\n }\n\n app-header,\n app-toolbar {\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n }\n\n app-toolbar ha-menu-button + [main-title],\n app-toolbar ha-paper-icon-button-arrow-prev + [main-title],\n app-toolbar paper-icon-button + [main-title] {\n margin-left: 24px;\n }\n\n h1 {\n @apply --paper-font-title;\n }\n\n button.link {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n text-align: left;\n text-decoration: underline;\n cursor: pointer;\n }\n\n .card-actions a {\n text-decoration: none;\n }\n\n .card-actions .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n`;\n\nexport const haStyleDialog = css`\n /* prevent clipping of positioned elements */\n paper-dialog-scrollable {\n --paper-dialog-scrollable: {\n -webkit-overflow-scrolling: auto;\n }\n }\n\n /* force smooth scrolling for iOS 10 */\n paper-dialog-scrollable.can-scroll {\n --paper-dialog-scrollable: {\n -webkit-overflow-scrolling: touch;\n }\n }\n\n .paper-dialog-buttons {\n align-items: flex-end;\n padding: 8px;\n }\n\n .paper-dialog-buttons .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n\n @media all and (max-width: 450px), all and (max-height: 500px) {\n paper-dialog,\n ha-paper-dialog {\n margin: 0;\n width: 100% !important;\n max-height: calc(100% - 64px);\n\n position: fixed !important;\n bottom: 0px;\n left: 0px;\n right: 0px;\n overflow: scroll;\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n }\n`;\n","import {\n LitElement,\n property,\n TemplateResult,\n html,\n customElement,\n css,\n CSSResult,\n} from \"lit-element\";\nimport \"../components/ha-menu-button\";\nimport \"../components/ha-paper-icon-button-arrow-prev\";\nimport { classMap } from \"lit-html/directives/class-map\";\n\n@customElement(\"hass-subpage\")\nclass HassSubpage extends LitElement {\n @property()\n public header?: string;\n @property({ type: Boolean })\n public showBackButton = true;\n @property({ type: Boolean })\n public hassio = false;\n\n protected render(): TemplateResult {\n return html`\n
    \n \n\n
    ${this.header}
    \n \n
    \n
    \n `;\n }\n\n private _backTapped(): void {\n history.back();\n }\n\n static get styles(): CSSResult {\n return css`\n :host {\n display: block;\n height: 100%;\n background-color: var(--primary-background-color);\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n font-size: 20px;\n height: 64px;\n padding: 0 16px;\n pointer-events: none;\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n }\n\n ha-menu-button,\n ha-paper-icon-button-arrow-prev,\n ::slotted([slot=\"toolbar-icon\"]) {\n pointer-events: auto;\n }\n\n ha-paper-icon-button-arrow-prev.hidden {\n visibility: hidden;\n }\n\n [main-title] {\n margin: 0 0 0 24px;\n line-height: 20px;\n flex-grow: 1;\n }\n\n .content {\n position: relative;\n width: 100%;\n height: calc(100% - 64px);\n overflow-y: auto;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hass-subpage\": HassSubpage;\n }\n}\n","import \"@polymer/paper-icon-button/paper-icon-button\";\nimport { Constructor } from \"../types\";\n// Not duplicate, this is for typing.\n// tslint:disable-next-line\nimport { PaperIconButtonElement } from \"@polymer/paper-icon-button/paper-icon-button\";\n\nconst paperIconButtonClass = customElements.get(\n \"paper-icon-button\"\n) as Constructor;\n\nexport class HaPaperIconButtonArrowPrev extends paperIconButtonClass {\n public hassio?: boolean;\n\n public connectedCallback() {\n super.connectedCallback();\n\n // wait to check for direction since otherwise direction is wrong even though top level is RTL\n setTimeout(() => {\n this.icon =\n window.getComputedStyle(this).direction === \"ltr\"\n ? this.hassio\n ? \"hassio:arrow-left\"\n : \"hass:arrow-left\"\n : this.hassio\n ? \"hassio:arrow-right\"\n : \"hass:arrow-right\";\n }, 100);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-paper-icon-button-arrow-prev\": HaPaperIconButtonArrowPrev;\n }\n}\n\ncustomElements.define(\n \"ha-paper-icon-button-arrow-prev\",\n HaPaperIconButtonArrowPrev\n);\n","import \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/paper-spinner/paper-spinner-lite\";\nimport {\n LitElement,\n TemplateResult,\n html,\n CSSResultArray,\n css,\n customElement,\n property,\n} from \"lit-element\";\nimport \"../components/ha-menu-button\";\nimport \"../components/ha-paper-icon-button-arrow-prev\";\nimport { haStyle } from \"../resources/styles\";\nimport { HomeAssistant } from \"../types\";\n\n@customElement(\"hass-loading-screen\")\nclass HassLoadingScreen extends LitElement {\n @property({ type: Boolean }) public rootnav? = false;\n @property() public hass?: HomeAssistant;\n @property() public narrow?: boolean;\n\n protected render(): TemplateResult {\n return html`\n \n ${this.rootnav\n ? html`\n \n `\n : html`\n \n `}\n \n
    \n \n
    \n `;\n }\n\n private _handleBack() {\n history.back();\n }\n\n static get styles(): CSSResultArray {\n return [\n haStyle,\n css`\n .content {\n height: calc(100% - 64px);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hass-loading-screen\": HassLoadingScreen;\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.a9c5cc5386711b03c031.js b/hassio/api/panel/chunk.a9c5cc5386711b03c031.js new file mode 100644 index 000000000..8987d2577 --- /dev/null +++ b/hassio/api/panel/chunk.a9c5cc5386711b03c031.js @@ -0,0 +1,2 @@ +(self.webpackJsonp=self.webpackJsonp||[]).push([[10],{10:function(e,t,r){"use strict";r.d(t,"a",function(){return s}),r.d(t,"b",function(){return c});var n=r(5);function i(){var e=a(["\n /* prevent clipping of positioned elements */\n paper-dialog-scrollable {\n --paper-dialog-scrollable: {\n -webkit-overflow-scrolling: auto;\n }\n }\n\n /* force smooth scrolling for iOS 10 */\n paper-dialog-scrollable.can-scroll {\n --paper-dialog-scrollable: {\n -webkit-overflow-scrolling: touch;\n }\n }\n\n .paper-dialog-buttons {\n align-items: flex-end;\n padding: 8px;\n }\n\n .paper-dialog-buttons .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n\n @media all and (max-width: 450px), all and (max-height: 500px) {\n paper-dialog,\n ha-paper-dialog {\n margin: 0;\n width: 100% !important;\n max-height: calc(100% - 64px);\n\n position: fixed !important;\n bottom: 0px;\n left: 0px;\n right: 0px;\n overflow: scroll;\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n }\n"]);return i=function(){return e},e}function o(){var e=a(["\n :host {\n @apply --paper-font-body1;\n }\n\n app-header-layout,\n ha-app-layout {\n background-color: var(--primary-background-color);\n }\n\n app-header,\n app-toolbar {\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n }\n\n app-toolbar ha-menu-button + [main-title],\n app-toolbar ha-paper-icon-button-arrow-prev + [main-title],\n app-toolbar paper-icon-button + [main-title] {\n margin-left: 24px;\n }\n\n h1 {\n @apply --paper-font-title;\n }\n\n button.link {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n text-align: left;\n text-decoration: underline;\n cursor: pointer;\n }\n\n .card-actions a {\n text-decoration: none;\n }\n\n .card-actions .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n"]);return o=function(){return e},e}function a(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var s=Object(n.c)(o()),c=Object(n.c)(i())},101:function(e,t){},104:function(e,t,r){"use strict";var n=r(5),i=(r(91),r(105),r(47));function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(){var e=c(['\n :host {\n display: block;\n height: 100%;\n background-color: var(--primary-background-color);\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n font-size: 20px;\n height: 65px;\n padding: 0 16px;\n pointer-events: none;\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n border-bottom: var(--app-header-border-bottom, none);\n box-sizing: border-box;\n }\n\n ha-menu-button,\n ha-paper-icon-button-arrow-prev,\n ::slotted([slot="toolbar-icon"]) {\n pointer-events: auto;\n }\n\n ha-paper-icon-button-arrow-prev.hidden {\n visibility: hidden;\n }\n\n [main-title] {\n margin: 0 0 0 24px;\n line-height: 20px;\n flex-grow: 1;\n }\n\n .content {\n position: relative;\n width: 100%;\n height: calc(100% - 65px);\n overflow-y: auto;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n ']);return a=function(){return e},e}function s(){var e=c(['\n
    \n \n \n
    \n
    \n ']);return s=function(){return e},e}function c(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){var t,r=v(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function p(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function h(e){return e.decorators&&e.decorators.length}function m(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function y(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function v(e){var t=function(e,t){if("object"!==o(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===o(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!h(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n "]);return s=function(){return e},e}function c(){var e=u(["\n \n "]);return c=function(){return e},e}function l(){var e=u(["\n \n ",'\n \n
    \n \n
    \n ']);return l=function(){return e},e}function u(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t,r=g(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function m(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function y(e){return e.decorators&&e.decorators.length}function v(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function b(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function g(e){var t=function(e,t){if("object"!==o(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===o(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!y(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n .container {\n position: relative;\n display: inline-block;\n }\n\n mwc-button {\n transition: all 1s;\n }\n\n .success mwc-button {\n --mdc-theme-primary: white;\n background-color: var(--google-green-500);\n transition: none;\n }\n\n .error mwc-button {\n --mdc-theme-primary: white;\n background-color: var(--google-red-500);\n transition: none;\n }\n\n .progress {\n @apply --layout;\n @apply --layout-center-center;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n \n
    \n \n \n \n \n
    \n ']);return a=function(){return e},e}function s(e,t){for(var r=0;r\n \n"),document.head.appendChild(o.content)},2:function(e,t,r){"use strict";r.r(t);var n=r(5),i=(r(24),r(129),r(126),r(10)),o=document.createElement("template");o.setAttribute("style","display: none;"),o.innerHTML='\n \n\n \n\n \n\n \n"),document.head.appendChild(o.content);var a=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e._themes||(e._themes={});var i=t.default_theme;("default"===r||r&&t.themes[r])&&(i=r);var o=Object.assign({},e._themes);if("default"!==i){var a=t.themes[i];Object.keys(a).forEach(function(t){var r="--".concat(t);if(e._themes[r]="",o[r]=a[t],!t.startsWith("rgb")){var n="rgb-".concat(t);if(void 0===a[n]){var i="--".concat(n);e._themes[i]="";var s,c,l,u=(s=a[t],c=s.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,t,r,n){return t+t+r+r+n+n}),(l=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c))?"".concat(parseInt(l[1],16),", ").concat(parseInt(l[2],16),", ").concat(parseInt(l[3],16)):null);null!==u&&(o[i]=u)}}})}if(e.updateStyles?e.updateStyles(o):window.ShadyCSS&&window.ShadyCSS.styleSubtree(e,o),n){var s=document.querySelector("meta[name=theme-color]");if(s){s.hasAttribute("default-content")||s.setAttribute("default-content",s.getAttribute("content"));var c=o["--primary-color"]||s.getAttribute("default-content");s.setAttribute("content",c)}}},s=r(11);r(18),r(104);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(){var e=d(["\n .content {\n height: calc(100% - 64px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n }\n "]);return l=function(){return e},e}function u(){var e=d(['\n \n
    \n

    ',"

    \n \n go back\n \n
    \n
    \n "]);return u=function(){return e},e}function d(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t,r=w(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function y(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function v(e){return e.decorators&&e.decorators.length}function b(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function g(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function w(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}(function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!v(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n
    \n You don\'t have any add-ons installed yet. Head over to\n \n

    Add-ons

    \n
    \n ',"\n
    \n
    \n "]);return ee=function(){return e},e}function te(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function re(e,t){return pe(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(c){i=!0,o=c}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(e,t)||fe()}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ie(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function oe(e,t){return(oe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ae(e){var t,r=de(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function se(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function ce(e){return e.decorators&&e.decorators.length}function le(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function ue(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function de(e){var t=function(e,t){if("object"!==K(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===K(t)?t:String(t)}function fe(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function pe(e){if(Array.isArray(e))return e}(function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!ce(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a0||"0"===r&&Number(i)>=105;return Object(n.e)(ee(),this.addons?this.addons.sort(function(e,t){return e.name>t.name?1:-1}).map(function(t){return Object(n.e)(X(),t,e._addonTapped,e.hass,t.name,t.description,t.installed!==t.version,t.installed!==t.version?"hassio:arrow-up-bold-circle":"hassio:puzzle","started"!==t.state?"Add-on is stopped":t.installed!==t.version?"New version available":"Add-on is running",t.installed&&t.installed!==t.version?"started"===t.state?"update":"update stopped":t.installed&&"started"===t.state?"running":"stopped",o&&t.icon?"/api/hassio/addons/".concat(t.slug,"/icon"):void 0)}):Object(n.e)(Z(),this._openStore))}},{kind:"get",static:!0,key:"styles",value:function(){return[i.a,$.a,Object(n.c)(Q())]}},{kind:"method",key:"_addonTapped",value:function(e){Object(k.a)(this,"/hassio/addon/".concat(e.currentTarget.addon.slug))}},{kind:"method",key:"_openStore",value:function(){Object(k.a)(this,"/hassio/store")}}]}},n.a),r(22),r(50);function he(){var e=Ee(["\n .icon {\n --iron-icon-height: 48px;\n --iron-icon-width: 48px;\n float: right;\n margin: 0 0 2px 10px;\n }\n .update-heading {\n font-size: var(--paper-font-subhead_-_font-size);\n font-weight: 500;\n margin-bottom: 0.5em;\n }\n .warning {\n color: var(--secondary-text-color);\n }\n .card-content {\n height: calc(100% - 47px);\n box-sizing: border-box;\n }\n .card-actions {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n padding: 16px;\n }\n a {\n text-decoration: none;\n }\n "]);return he=function(){return e},e}function me(e){return(me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ye(){var e=Ee(['\n
    \n \n
    \n ']);return ye=function(){return e},e}function ve(){var e=Ee(['\n \n
    \n ','\n
    '," ",'
    \n
    \n You are currently running version ','\n
    \n
    \n
    \n "]);return ge=function(){return e},e}function we(){var e=Ee(['\n
    \n ',"\n

    \n ",'\n

    \n
    \n ',"\n ","\n ","\n
    \n
    \n "]);return we=function(){return e},e}function ke(){var e=Ee([""]);return ke=function(){return e},e}function Ee(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Oe(e){return(Oe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function je(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Pe(e,t){return(Pe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function xe(e){var t,r=Te(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function _e(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Se(e){return e.decorators&&e.decorators.length}function Ce(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function De(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Te(e){var t=function(e,t){if("object"!==me(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==me(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===me(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Se(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a1?"Updates Available 🎉":"Update Available 🎉",this._renderUpdateCard("Home Assistant",this.hassInfo.version,this.hassInfo.last_version,"hassio/homeassistant/update","https://".concat(this.hassInfo.last_version.includes("b")?"rc":"www",".home-assistant.io/latest-release-notes/"),"hassio:home-assistant"),this._renderUpdateCard("Hass.io Supervisor",this.supervisorInfo.version,this.supervisorInfo.last_version,"hassio/supervisor/update","https://github.com//home-assistant/hassio/releases/tag/".concat(this.supervisorInfo.last_version)),this.hassOsInfo?this._renderUpdateCard("HassOS",this.hassOsInfo.version,this.hassOsInfo.version_latest,"hassio/hassos/update","https://github.com//home-assistant/hassos/releases/tag/".concat(this.hassOsInfo.version_latest)):""):Object(n.e)(ke())}},{kind:"method",key:"_renderUpdateCard",value:function(e,t,r,i,o,a){return r===t?Object(n.e)(be()):Object(n.e)(ve(),a?Object(n.e)(ye(),a):"",e,r,t,o,this.hass,i,this._apiCalled)}},{kind:"method",key:"_apiCalled",value:function(e){if(e.detail.success)this._error="";else{var t=e.detail.response;"object"===me(t.body)?this._error=t.body.message||"Unknown error":this._error=t.body}}},{kind:"get",static:!0,key:"styles",value:function(){return[i.a,$.a,Object(n.c)(he())]}}]}},n.a);function Ae(e){return(Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ze(){var e=Ie(["\n .content {\n margin: 0 auto;\n }\n "]);return ze=function(){return e},e}function Re(){var e=Ie(['\n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n
    \n \n
    \n \n ']);return Ye=function(){return e},e}function $e(){var e=rt(['\n \n
    \n You don\'t have any snapshots yet.\n
    \n
    \n ']);return $e=function(){return e},e}function Ke(){var e=rt(['\n

    ',"

    \n "]);return Ke=function(){return e},e}function Qe(){var e=rt(['\n \n

    \n Create snapshot\n

    \n

    \n Snapshots allow you to easily backup and restore all data of your\n Hass.io instance.\n

    \n
    \n \n
    \n \n Type:\n \n \n Full snapshot\n \n \n Partial snapshot\n \n \n ','\n Security:\n \n
    \n \n Create\n \n
    \n \n
    \n\n

    Available snapshots

    \n
    \n ',"\n
    \n
    \n "]);return tt=function(){return e},e}function rt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function nt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function it(e,t){return(it=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ot(e){var t,r=ut(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function at(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function st(e){return e.decorators&&e.decorators.length}function ct(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function lt(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function ut(e){var t=function(e,t){if("object"!==We(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==We(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===We(t)?t:String(t)}function dt(e,t,r){return(dt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=ft(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function ft(e){return(ft=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!st(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n

    \n ','\n

    \n

    \n Maintained by ','
    \n ','\n

    \n
    \n ',"\n
    \n
    \n "]);return bt=function(){return e},e}function gt(){var e=wt(['\n
    \n

    \n No results found in "','"\n

    \n
    \n ']);return gt=function(){return e},e}function wt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function kt(e){return(kt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Et(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ot(e,t){return(Ot=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function jt(e){var t,r=Ct(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function Pt(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function xt(e){return e.decorators&&e.decorators.length}function _t(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function St(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Ct(e){var t=function(e,t){if("object"!==ht(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ht(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ht(t)?t:String(t)}function Dt(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function Tt(e){if(Array.isArray(e))return e}var At=function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!xt(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a0||"0"===t&&Number(r)>=105}},{kind:"get",static:!0,key:"styles",value:function(){return[$.a,Object(n.c)(mt())]}}]}},n.a);customElements.define("hassio-addon-repository",At);var zt=r(135);function Rt(e){return(Rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function It(){var e=Nt(["\n .add {\n padding: 12px 16px;\n }\n iron-icon {\n color: var(--secondary-text-color);\n margin-right: 16px;\n display: inline-block;\n }\n paper-input {\n width: calc(100% - 49px);\n display: inline-block;\n margin-top: -4px;\n }\n "]);return It=function(){return e},e}function Ft(){var e=Nt(['\n \n
    \n \n
    \n
    \n \n Remove\n \n
    \n
    \n ']);return Ft=function(){return e},e}function Lt(){var e=Nt(['\n
    \n

    \n Repositories\n

    \n

    \n Configure which add-on repositories to fetch data from:\n

    \n
    \n ','\n\n \n
    \n \n \n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n "]);return Xt=function(){return e},e}function Zt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function er(e){return(er=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rr(e,t){return(rr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function nr(e){var t,r=cr(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function ir(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function or(e){return e.decorators&&e.decorators.length}function ar(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function sr(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function cr(e){var t=function(e,t){if("object"!==Kt(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Kt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Kt(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!or(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n ']);return dr=function(){return e},e}function fr(){var e=pr(['\n
    \n \n \n ',"\n \n
    \n "]);return fr=function(){return e},e}function pr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function hr(e){return(hr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function mr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function yr(e,t){return(yr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function vr(e){var t,r=Er(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function br(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function gr(e){return e.decorators&&e.decorators.length}function wr(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function kr(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Er(e){var t=function(e,t){if("object"!==lr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==lr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===lr(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!gr(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n "]);return Pr=function(){return e},e}function xr(){var e=Sr(["\n \n\n \n\n ","\n "]);return xr=function(){return e},e}function _r(){var e=Sr(["\n \n "]);return _r=function(){return e},e}function Sr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Cr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Dr(e,t){return(Dr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Tr(e){var t,r=Fr(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function Ar(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function zr(e){return e.decorators&&e.decorators.length}function Rr(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function Ir(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Fr(e){var t=function(e,t){if("object"!==Or(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Or(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Or(t)?t:String(t)}function Lr(e,t,r){return(Lr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Nr(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function Nr(e){return(Nr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Hr=function(e,t){return"local"===e.slug?-1:"local"===t.slug?1:"core"===e.slug?-1:"core"===t.slug?1:e.name.toUpperCase()=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;aUpdate
    \n ']);return qr=function(){return e},e}function Wr(){var e=Zr(['\n Import from USB\n ']);return Wr=function(){return e},e}function Jr(){var e=Zr(['\n Shutdown\n ']);return Jr=function(){return e},e}function Yr(){var e=Zr(['\n Reboot\n ']);return Yr=function(){return e},e}function $r(){var e=Zr(['\n
    Error: ',"
    \n "]);return $r=function(){return e},e}function Kr(){var e=Zr(["\n \n Change hostname\n \n ']);return Kr=function(){return e},e}function Qr(){var e=Zr(["\n \n Deployment\n ","\n \n "]);return Qr=function(){return e},e}function Xr(){var e=Zr(['\n \n
    \n

    Host system

    \n \n \n \n \n \n \n \n \n \n \n ","\n \n
    Hostname',"
    System","
    \n \n Hardware\n \n ',"\n ",'\n
    \n
    \n ',"\n ","\n ","\n ","\n
    \n
    \n "]);return Xr=function(){return e},e}function Zr(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function en(e){return(en=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rn(e,t){return(rn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function nn(e){var t,r=ln(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function on(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function an(e){return e.decorators&&e.decorators.length}function sn(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function cn(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function ln(e){var t=function(e,t){if("object"!==Gr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Gr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Gr(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!an(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"",n="";return Object.keys(e).forEach(function(i){"object"!==Gr(e[i])?n+="".concat(r,"- ").concat(i,": ").concat(e[i],"\n"):(n+="".concat(r,"- ").concat(i,":\n"),Array.isArray(e[i])?e[i].length&&(n+="".concat(r," - ")+e[i].join("\n".concat(r," - "))+"\n"):n+=t._objectToMarkdown(e[i]," ".concat(r)))}),n}},{kind:"method",key:"_changeHostnameClicked",value:function(){var e=this.hostInfo.hostname,t=prompt("Please enter a new hostname:",e);t&&t!==e&&this.hass.callApi("POST","hassio/host/options",{hostname:t})}}]}},n.a);function un(e){return(un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function dn(){var e=bn(["\n paper-card {\n height: 100%;\n width: 100%;\n }\n .card-content {\n color: var(--primary-text-color);\n box-sizing: border-box;\n height: calc(100% - 47px);\n }\n .info {\n width: 100%;\n }\n .info td:nth-child(2) {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n "]);return dn=function(){return e},e}function fn(){var e=bn(["\n Join beta channel\n ']);return fn=function(){return e},e}function pn(){var e=bn(["\n Update\n ']);return hn=function(){return e},e}function mn(){var e=bn(['\n
    Error: ',"
    \n "]);return mn=function(){return e},e}function yn(){var e=bn(["\n \n Channel\n ","\n \n "]);return yn=function(){return e},e}function vn(){var e=bn(['\n \n
    \n

    Hass.io supervisor

    \n \n \n \n \n \n \n \n \n \n \n ","\n \n
    Version',"
    Latest version","
    \n ",'\n
    \n
    \n Reload\n ',"\n ","\n ","\n
    \n
    \n "]);return vn=function(){return e},e}function bn(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function gn(e){return(gn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function wn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kn(e,t){return(kn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function En(e){var t,r=_n(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function On(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function jn(e){return e.decorators&&e.decorators.length}function Pn(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function xn(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function _n(e){var t=function(e,t){if("object"!==un(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==un(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===un(t)?t:String(t)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!jn(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a',"
    \n "]);return Tn=function(){return e},e}function An(){var e=zn(["\n \n ",'\n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n

    Information

    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n \n \n \n Dashboard\n Snapshots\n Add-on store\n System\n \n \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a200?n.scrollTop=0:t._currentAnimationId===i&&(n.scrollTop=(r=c,-s*(r/=200)*(r-2)+a),requestAnimationFrame(e.bind(t)))}.call(t)}},{kind:"method",key:"refreshClicked",value:function(){"snapshots"===this._page?this.shadowRoot.querySelector("hassio-snapshots").refreshData():this.shadowRoot.querySelector("hassio-addon-store").refreshData()}},{kind:"get",key:"_page",value:function(){return this.route.path.substr(1)}},{kind:"get",static:!0,key:"styles",value:function(){return[i.a,Object(n.c)(hi())]}}]}},n.a),r(119));function Ci(e){return(Ci="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Di(e,t){return Ui(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(c){i=!0,o=c}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(e,t)||Hi()}function Ti(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ai(e,t){return(Ai=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function zi(e){var t,r=Ni(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function Ri(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Ii(e){return e.decorators&&e.decorators.length}function Fi(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function Li(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Ni(e){var t=function(e,t){if("object"!==Ci(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ci(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ci(t)?t:String(t)}function Hi(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function Ui(e){if(Array.isArray(e))return e}function Bi(e,t,r){return(Bi="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Mi(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function Mi(e){return(Mi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}customElements.get("paper-icon-button").prototype._keyBindings={};var Gi;!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Ii(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a2&&void 0!==arguments[2]&&arguments[2];r?history.replaceState(null,"",t):history.pushState(null,"",t),Object(n.a)(window,"location-changed",{replace:r})}},41:function(e,t,r){"use strict";var n=r(5),i=(r(22),r(8)),o=r(34),a=[60,60,24,7],s=["second","minute","hour","day"];var c=r(17);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{},i=((n.compareTime||new Date).getTime()-e.getTime())/1e3,o=i>=0?"past":"future";i=Math.abs(i);for(var c=0;c\n \n
    \n
    \n ']);return _=function(){return e},e}function S(){var e=D(['\n
    \n ']);return S=function(){return e},e}function C(){var e=D(["\n ","\n ",'\n
    \n
    \n ','\n
    \n
    \n ',"\n ","\n ","\n
    \n
    \n "]);return C=function(){return e},e}function D(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function T(e){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e,t){return(z=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function R(e){var t,r=H(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function I(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function F(e){return e.decorators&&e.decorators.length}function L(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function N(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function H(e){var t=function(e,t){if("object"!==O(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==O(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===O(t)?t:String(t)}customElements.define("ha-relative-time",E);!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!F(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n ']);return a=function(){return e},e}function s(e,t){return!t||"object"!==o(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){for(var r=0;r
    \n ']);return u=function(){return e},e}function d(){var e=f(["\n \n ","\n "]);return d=function(){return e},e}function f(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t,r=w(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function y(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function v(e){return e.decorators&&e.decorators.length}function b(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function g(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function w(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}function k(e,t,r){return(k="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=E(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!v(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a0},Object(o.a)("_ntf",a,s,e,t))}},{kind:"method",key:"_toggleMenu",value:function(){Object(i.a)(this,"hass-toggle-menu")}},{kind:"get",static:!0,key:"styles",value:function(){return Object(n.c)(l())}}]}},n.a)}}]); +//# sourceMappingURL=chunk.a9c5cc5386711b03c031.js.map \ No newline at end of file diff --git a/hassio/api/panel/chunk.a9c5cc5386711b03c031.js.gz b/hassio/api/panel/chunk.a9c5cc5386711b03c031.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..63073e732b90eb92daa17ed9ef7c22b65812cc1f GIT binary patch literal 31206 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 L`#reQz<~ZAvTE\n \n\n
    ${this.header}
    \n \n
    \n
    \n `;\n }\n\n private _backTapped(): void {\n history.back();\n }\n\n static get styles(): CSSResult {\n return css`\n :host {\n display: block;\n height: 100%;\n background-color: var(--primary-background-color);\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n font-size: 20px;\n height: 65px;\n padding: 0 16px;\n pointer-events: none;\n background-color: var(--app-header-background-color);\n font-weight: 400;\n color: var(--app-header-text-color, white);\n border-bottom: var(--app-header-border-bottom, none);\n box-sizing: border-box;\n }\n\n ha-menu-button,\n ha-paper-icon-button-arrow-prev,\n ::slotted([slot=\"toolbar-icon\"]) {\n pointer-events: auto;\n }\n\n ha-paper-icon-button-arrow-prev.hidden {\n visibility: hidden;\n }\n\n [main-title] {\n margin: 0 0 0 24px;\n line-height: 20px;\n flex-grow: 1;\n }\n\n .content {\n position: relative;\n width: 100%;\n height: calc(100% - 65px);\n overflow-y: auto;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hass-subpage\": HassSubpage;\n }\n}\n","import \"@polymer/paper-icon-button/paper-icon-button\";\nimport { Constructor } from \"../types\";\n// Not duplicate, this is for typing.\n// tslint:disable-next-line\nimport { PaperIconButtonElement } from \"@polymer/paper-icon-button/paper-icon-button\";\n\nconst paperIconButtonClass = customElements.get(\n \"paper-icon-button\"\n) as Constructor;\n\nexport class HaPaperIconButtonArrowPrev extends paperIconButtonClass {\n public hassio?: boolean;\n\n public connectedCallback() {\n super.connectedCallback();\n\n // wait to check for direction since otherwise direction is wrong even though top level is RTL\n setTimeout(() => {\n this.icon =\n window.getComputedStyle(this).direction === \"ltr\"\n ? this.hassio\n ? \"hassio:arrow-left\"\n : \"hass:arrow-left\"\n : this.hassio\n ? \"hassio:arrow-right\"\n : \"hass:arrow-right\";\n }, 100);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-paper-icon-button-arrow-prev\": HaPaperIconButtonArrowPrev;\n }\n}\n\ncustomElements.define(\n \"ha-paper-icon-button-arrow-prev\",\n HaPaperIconButtonArrowPrev\n);\n","import \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/paper-spinner/paper-spinner-lite\";\nimport {\n LitElement,\n TemplateResult,\n html,\n CSSResultArray,\n css,\n customElement,\n property,\n} from \"lit-element\";\nimport \"../components/ha-menu-button\";\nimport \"../components/ha-paper-icon-button-arrow-prev\";\nimport { haStyle } from \"../resources/styles\";\nimport { HomeAssistant } from \"../types\";\n\n@customElement(\"hass-loading-screen\")\nclass HassLoadingScreen extends LitElement {\n @property({ type: Boolean }) public rootnav? = false;\n @property() public hass?: HomeAssistant;\n @property() public narrow?: boolean;\n\n protected render(): TemplateResult {\n return html`\n \n ${this.rootnav\n ? html`\n \n `\n : html`\n \n `}\n \n
    \n \n
    \n `;\n }\n\n private _handleBack() {\n history.back();\n }\n\n static get styles(): CSSResultArray {\n return [\n haStyle,\n css`\n :host {\n display: block;\n height: 100%;\n background-color: var(--primary-background-color);\n }\n .content {\n height: calc(100% - 64px);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hass-loading-screen\": HassLoadingScreen;\n }\n}\n","// Polymer legacy event helpers used courtesy of the Polymer project.\n//\n// Copyright (c) 2017 The Polymer Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndeclare global {\n // tslint:disable-next-line\n interface HASSDomEvents {}\n}\n\nexport type ValidHassDomEvent = keyof HASSDomEvents;\n\nexport interface HASSDomEvent extends Event {\n detail: T;\n}\n\n/**\n * Dispatches a custom event with an optional detail value.\n *\n * @param {string} type Name of event type.\n * @param {*=} detail Detail value containing event-specific\n * payload.\n * @param {{ bubbles: (boolean|undefined),\n * cancelable: (boolean|undefined),\n * composed: (boolean|undefined) }=}\n * options Object specifying options. These may include:\n * `bubbles` (boolean, defaults to `true`),\n * `cancelable` (boolean, defaults to false), and\n * `node` on which to fire the event (HTMLElement, defaults to `this`).\n * @return {Event} The new event that was fired.\n */\nexport const fireEvent = (\n node: HTMLElement | Window,\n type: HassEvent,\n detail?: HASSDomEvents[HassEvent],\n options?: {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n }\n) => {\n options = options || {};\n // @ts-ignore\n detail = detail === null || detail === undefined ? {} : detail;\n const event = new Event(type, {\n bubbles: options.bubbles === undefined ? true : options.bubbles,\n cancelable: Boolean(options.cancelable),\n composed: options.composed === undefined ? true : options.composed,\n });\n (event as any).detail = detail;\n node.dispatchEvent(event);\n return event;\n};\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-spinner/paper-spinner\";\nimport { html } from \"@polymer/polymer/lib/utils/html-tag\";\nimport { PolymerElement } from \"@polymer/polymer/polymer-element\";\n\nclass HaProgressButton extends PolymerElement {\n static get template() {\n return html`\n \n
    \n \n \n \n \n
    \n `;\n }\n\n static get properties() {\n return {\n hass: {\n type: Object,\n },\n\n progress: {\n type: Boolean,\n value: false,\n },\n\n disabled: {\n type: Boolean,\n value: false,\n },\n };\n }\n\n tempClass(className) {\n var classList = this.$.container.classList;\n classList.add(className);\n setTimeout(() => {\n classList.remove(className);\n }, 1000);\n }\n\n ready() {\n super.ready();\n this.addEventListener(\"click\", (ev) => this.buttonTapped(ev));\n }\n\n buttonTapped(ev) {\n if (this.progress) ev.stopPropagation();\n }\n\n actionSuccess() {\n this.tempClass(\"success\");\n }\n\n actionError() {\n this.tempClass(\"error\");\n }\n\n computeDisabled(disabled, progress) {\n return disabled || progress;\n }\n}\n\ncustomElements.define(\"ha-progress-button\", HaProgressButton);\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport interface HassioSnapshot {\n slug: string;\n date: string;\n name: string;\n type: \"full\" | \"partial\";\n protected: boolean;\n}\n\nexport interface HassioSnapshotDetail extends HassioSnapshot {\n size: number;\n homeassistant: string;\n addons: Array<{\n slug: \"ADDON_SLUG\";\n name: \"NAME\";\n version: \"INSTALLED_VERSION\";\n size: \"SIZE_IN_MB\";\n }>;\n repositories: string[];\n folders: string[];\n}\n\nexport interface HassioFullSnapshotCreateParams {\n name: string;\n password?: string;\n}\nexport interface HassioPartialSnapshotCreateParams {\n name: string;\n folders: string[];\n addons: string[];\n password?: string;\n}\n\nexport const fetchHassioSnapshots = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/snapshots\"\n )\n ).snapshots;\n};\n\nexport const fetchHassioSnapshotInfo = async (\n hass: HomeAssistant,\n snapshot: string\n) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n `hassio/snapshots/${snapshot}/info`\n )\n );\n};\n\nexport const reloadHassioSnapshots = async (hass: HomeAssistant) => {\n await hass.callApi>(\"POST\", `hassio/snapshots/reload`);\n};\n\nexport const createHassioFullSnapshot = async (\n hass: HomeAssistant,\n data: HassioFullSnapshotCreateParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/snapshots/new/full`,\n data\n );\n};\n\nexport const createHassioPartialSnapshot = async (\n hass: HomeAssistant,\n data: HassioFullSnapshotCreateParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/snapshots/new/partial`,\n data\n );\n};\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport interface HassioHardwareAudioDevice {\n device?: string;\n name: string;\n}\n\ninterface HassioHardwareAudioList {\n audio: { input: any; output: any };\n}\n\nexport interface HassioHardwareInfo {\n serial: string[];\n input: string[];\n disk: string[];\n gpio: string[];\n audio: object;\n}\n\nexport const fetchHassioHardwareAudio = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/hardware/audio\"\n )\n );\n};\n\nexport const fetchHassioHardwareInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/hardware/info\"\n )\n );\n};\n","import { fireEvent } from \"../../../../src/common/dom/fire_event\";\n\nexport interface HassioMarkdownDialogParams {\n title: string;\n content: string;\n}\n\nexport const showHassioMarkdownDialog = (\n element: HTMLElement,\n dialogParams: HassioMarkdownDialogParams\n): void => {\n fireEvent(element, \"show-dialog\", {\n dialogTag: \"dialog-hassio-markdown\",\n dialogImport: () =>\n import(\n /* webpackChunkName: \"dialog-hassio-markdown\" */ \"./dialog-hassio-markdown\"\n ),\n dialogParams,\n });\n};\n","import { css } from \"lit-element\";\n\ninterface State {\n bold: boolean;\n italic: boolean;\n underline: boolean;\n strikethrough: boolean;\n foregroundColor: null | string;\n backgroundColor: null | string;\n}\n\nexport const ANSI_HTML_STYLE = css`\n .bold {\n font-weight: bold;\n }\n .italic {\n font-style: italic;\n }\n .underline {\n text-decoration: underline;\n }\n .strikethrough {\n text-decoration: line-through;\n }\n .underline.strikethrough {\n text-decoration: underline line-through;\n }\n .fg-red {\n color: rgb(222, 56, 43);\n }\n .fg-green {\n color: rgb(57, 181, 74);\n }\n .fg-yellow {\n color: rgb(255, 199, 6);\n }\n .fg-blue {\n color: rgb(0, 111, 184);\n }\n .fg-magenta {\n color: rgb(118, 38, 113);\n }\n .fg-cyan {\n color: rgb(44, 181, 233);\n }\n .fg-white {\n color: rgb(204, 204, 204);\n }\n .bg-black {\n background-color: rgb(0, 0, 0);\n }\n .bg-red {\n background-color: rgb(222, 56, 43);\n }\n .bg-green {\n background-color: rgb(57, 181, 74);\n }\n .bg-yellow {\n background-color: rgb(255, 199, 6);\n }\n .bg-blue {\n background-color: rgb(0, 111, 184);\n }\n .bg-magenta {\n background-color: rgb(118, 38, 113);\n }\n .bg-cyan {\n background-color: rgb(44, 181, 233);\n }\n .bg-white {\n background-color: rgb(204, 204, 204);\n }\n`;\n\nexport function parseTextToColoredPre(text) {\n const pre = document.createElement(\"pre\");\n const re = /\\033(?:\\[(.*?)[@-~]|\\].*?(?:\\007|\\033\\\\))/g;\n let i = 0;\n\n const state: State = {\n bold: false,\n italic: false,\n underline: false,\n strikethrough: false,\n foregroundColor: null,\n backgroundColor: null,\n };\n\n const addSpan = (content) => {\n const span = document.createElement(\"span\");\n if (state.bold) {\n span.classList.add(\"bold\");\n }\n if (state.italic) {\n span.classList.add(\"italic\");\n }\n if (state.underline) {\n span.classList.add(\"underline\");\n }\n if (state.strikethrough) {\n span.classList.add(\"strikethrough\");\n }\n if (state.foregroundColor !== null) {\n span.classList.add(`fg-${state.foregroundColor}`);\n }\n if (state.backgroundColor !== null) {\n span.classList.add(`bg-${state.backgroundColor}`);\n }\n span.appendChild(document.createTextNode(content));\n pre.appendChild(span);\n };\n\n /* eslint-disable no-cond-assign */\n let match;\n // tslint:disable-next-line\n while ((match = re.exec(text)) !== null) {\n const j = match!.index;\n addSpan(text.substring(i, j));\n i = j + match[0].length;\n\n if (match[1] === undefined) {\n continue;\n }\n\n match[1].split(\";\").forEach((colorCode: string) => {\n switch (parseInt(colorCode, 10)) {\n case 0:\n // reset\n state.bold = false;\n state.italic = false;\n state.underline = false;\n state.strikethrough = false;\n state.foregroundColor = null;\n state.backgroundColor = null;\n break;\n case 1:\n state.bold = true;\n break;\n case 3:\n state.italic = true;\n break;\n case 4:\n state.underline = true;\n break;\n case 9:\n state.strikethrough = true;\n break;\n case 22:\n state.bold = false;\n break;\n case 23:\n state.italic = false;\n break;\n case 24:\n state.underline = false;\n break;\n case 29:\n state.strikethrough = false;\n break;\n case 30:\n // foreground black\n state.foregroundColor = null;\n break;\n case 31:\n state.foregroundColor = \"red\";\n break;\n case 32:\n state.foregroundColor = \"green\";\n break;\n case 33:\n state.foregroundColor = \"yellow\";\n break;\n case 34:\n state.foregroundColor = \"blue\";\n break;\n case 35:\n state.foregroundColor = \"magenta\";\n break;\n case 36:\n state.foregroundColor = \"cyan\";\n break;\n case 37:\n state.foregroundColor = \"white\";\n break;\n case 39:\n // foreground reset\n state.foregroundColor = null;\n break;\n case 40:\n state.backgroundColor = \"black\";\n break;\n case 41:\n state.backgroundColor = \"red\";\n break;\n case 42:\n state.backgroundColor = \"green\";\n break;\n case 43:\n state.backgroundColor = \"yellow\";\n break;\n case 44:\n state.backgroundColor = \"blue\";\n break;\n case 45:\n state.backgroundColor = \"magenta\";\n break;\n case 46:\n state.backgroundColor = \"cyan\";\n break;\n case 47:\n state.backgroundColor = \"white\";\n break;\n case 49:\n // background reset\n state.backgroundColor = null;\n break;\n }\n });\n }\n addSpan(text.substring(i));\n\n return pre;\n}\n","import { fireEvent } from \"../../common/dom/fire_event\";\n\ninterface BaseDialogParams {\n confirmText?: string;\n text?: string;\n title?: string;\n}\n\nexport interface AlertDialogParams extends BaseDialogParams {\n confirm?: () => void;\n}\n\nexport interface ConfirmationDialogParams extends BaseDialogParams {\n dismissText?: string;\n confirm?: () => void;\n cancel?: () => void;\n}\n\nexport interface PromptDialogParams extends BaseDialogParams {\n inputLabel?: string;\n inputType?: string;\n defaultValue?: string;\n confirm?: (out?: string) => void;\n}\n\nexport interface DialogParams\n extends ConfirmationDialogParams,\n PromptDialogParams {\n confirm?: (out?: string) => void;\n confirmation?: boolean;\n prompt?: boolean;\n}\n\nexport const loadGenericDialog = () =>\n import(/* webpackChunkName: \"confirmation\" */ \"./dialog-box\");\n\nconst showDialogHelper = (\n element: HTMLElement,\n dialogParams: DialogParams,\n extra?: {\n confirmation?: DialogParams[\"confirmation\"];\n prompt?: DialogParams[\"prompt\"];\n }\n) =>\n new Promise((resolve) => {\n const origCancel = dialogParams.cancel;\n const origConfirm = dialogParams.confirm;\n\n fireEvent(element, \"show-dialog\", {\n dialogTag: \"dialog-box\",\n dialogImport: loadGenericDialog,\n dialogParams: {\n ...dialogParams,\n ...extra,\n cancel: () => {\n resolve(extra?.prompt ? null : false);\n if (origCancel) {\n origCancel();\n }\n },\n confirm: (out) => {\n resolve(extra?.prompt ? out : true);\n if (origConfirm) {\n origConfirm(out);\n }\n },\n },\n });\n });\n\nexport const showAlertDialog = (\n element: HTMLElement,\n dialogParams: AlertDialogParams\n) => showDialogHelper(element, dialogParams);\n\nexport const showConfirmationDialog = (\n element: HTMLElement,\n dialogParams: ConfirmationDialogParams\n) =>\n showDialogHelper(element, dialogParams, { confirmation: true }) as Promise<\n boolean\n >;\n\nexport const showPromptDialog = (\n element: HTMLElement,\n dialogParams: PromptDialogParams\n) =>\n showDialogHelper(element, dialogParams, { prompt: true }) as Promise<\n null | string\n >;\n","import { css } from \"lit-element\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\n\nexport const hassioStyle = css`\n .content {\n margin: 8px;\n }\n h1 {\n color: var(--primary-text-color);\n font-size: 2em;\n margin-bottom: 8px;\n font-family: var(--paper-font-headline_-_font-family);\n -webkit-font-smoothing: var(--paper-font-headline_-_-webkit-font-smoothing);\n font-size: var(--paper-font-headline_-_font-size);\n font-weight: var(--paper-font-headline_-_font-weight);\n letter-spacing: var(--paper-font-headline_-_letter-spacing);\n line-height: var(--paper-font-headline_-_line-height);\n padding-left: 8px;\n }\n .description {\n margin-top: 4px;\n padding-left: 8px;\n }\n .card-group {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n grid-gap: 8px;\n }\n @media screen and (min-width: 640px) {\n .card-group {\n grid-template-columns: repeat(auto-fit, minmax(300px, 0.5fr));\n }\n }\n @media screen and (min-width: 1020px) {\n .card-group {\n grid-template-columns: repeat(auto-fit, minmax(300px, 0.333fr));\n }\n }\n @media screen and (min-width: 1300px) {\n .card-group {\n grid-template-columns: repeat(auto-fit, minmax(300px, 0.25fr));\n }\n }\n ha-call-api-button {\n font-weight: 500;\n color: var(--primary-color);\n }\n .error {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n`;\n\ndocumentContainer.innerHTML = `\n \n`;\n\ndocument.head.appendChild(documentContainer.content);\n","import \"@polymer/paper-styles/paper-styles\";\nimport \"@polymer/polymer/lib/elements/custom-style\";\nimport { haStyle, haStyleDialog } from \"./styles\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\n\ndocumentContainer.innerHTML = `\n \n\n \n\n \n\n \n`;\n\ndocument.head.appendChild(documentContainer.content);\n","const hexToRgb = (hex: string): string | null => {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const checkHex = hex.replace(shorthandRegex, (_m, r, g, b) => {\n return r + r + g + g + b + b;\n });\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(checkHex);\n return result\n ? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(\n result[3],\n 16\n )}`\n : null;\n};\n\n/**\n * Apply a theme to an element by setting the CSS variables on it.\n *\n * element: Element to apply theme on.\n * themes: HASS Theme information\n * localTheme: selected theme.\n * updateMeta: boolean if we should update the theme-color meta element.\n */\nexport const applyThemesOnElement = (\n element,\n themes,\n localTheme,\n updateMeta = false\n) => {\n if (!element._themes) {\n element._themes = {};\n }\n let themeName = themes.default_theme;\n if (localTheme === \"default\" || (localTheme && themes.themes[localTheme])) {\n themeName = localTheme;\n }\n const styles = { ...element._themes };\n if (themeName !== \"default\") {\n const theme = themes.themes[themeName];\n Object.keys(theme).forEach((key) => {\n const prefixedKey = `--${key}`;\n element._themes[prefixedKey] = \"\";\n styles[prefixedKey] = theme[key];\n if (key.startsWith(\"rgb\")) {\n return;\n }\n const rgbKey = `rgb-${key}`;\n if (theme[rgbKey] !== undefined) {\n return;\n }\n const prefixedRgbKey = `--${rgbKey}`;\n element._themes[prefixedRgbKey] = \"\";\n const rgbValue = hexToRgb(theme[key]);\n if (rgbValue !== null) {\n styles[prefixedRgbKey] = rgbValue;\n }\n });\n }\n if (element.updateStyles) {\n element.updateStyles(styles);\n } else if (window.ShadyCSS) {\n // implement updateStyles() method of Polymer elements\n window.ShadyCSS.styleSubtree(/** @type {!HTMLElement} */ element, styles);\n }\n\n if (!updateMeta) {\n return;\n }\n\n const meta = document.querySelector(\"meta[name=theme-color]\");\n if (meta) {\n if (!meta.hasAttribute(\"default-content\")) {\n meta.setAttribute(\"default-content\", meta.getAttribute(\"content\")!);\n }\n const themeColor =\n styles[\"--primary-color\"] || meta.getAttribute(\"default-content\");\n meta.setAttribute(\"content\", themeColor);\n }\n};\n","import {\n LitElement,\n CSSResultArray,\n css,\n TemplateResult,\n html,\n property,\n customElement,\n} from \"lit-element\";\nimport \"@material/mwc-button\";\nimport \"./hass-subpage\";\n\n@customElement(\"hass-error-screen\")\nclass HassErrorScreen extends LitElement {\n @property()\n public error?: string;\n\n protected render(): TemplateResult {\n return html`\n \n
    \n

    ${this.error}

    \n \n go back\n \n
    \n
    \n `;\n }\n\n private _backTapped(): void {\n history.back();\n }\n\n static get styles(): CSSResultArray {\n return [\n css`\n .content {\n height: calc(100% - 64px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hass-error-screen\": HassErrorScreen;\n }\n}\n","import { UpdatingElement, property, PropertyValues } from \"lit-element\";\nimport \"./hass-error-screen\";\nimport \"./hass-loading-screen\";\nimport { Route } from \"../types\";\nimport { navigate } from \"../common/navigate\";\nimport memoizeOne from \"memoize-one\";\n\nconst extractPage = (path: string, defaultPage: string) => {\n if (path === \"\") {\n return defaultPage;\n }\n const subpathStart = path.indexOf(\"/\", 1);\n return subpathStart === -1\n ? path.substr(1)\n : path.substr(1, subpathStart - 1);\n};\n\nexport interface RouteOptions {\n // HTML tag of the route page.\n tag: string;\n // Function to load the page.\n load?: () => Promise;\n cache?: boolean;\n}\n\nexport interface RouterOptions {\n // The default route to show if path does not define a page.\n defaultPage?: string;\n // If all routes should be preloaded\n preloadAll?: boolean;\n // If a route has been shown, should we keep the element in memory\n cacheAll?: boolean;\n // Should we show a loading spinner while we load the element for the route\n showLoading?: boolean;\n // Promise that resolves when the initial data is loaded which is needed to show any route.\n initialLoad?: () => Promise;\n // Hook that is called before rendering a new route. Allowing redirects.\n // If string returned, that page will be rendered instead.\n beforeRender?: (page: string) => string | undefined;\n routes: {\n // If it's a string, it is another route whose options should be adopted.\n [route: string]: RouteOptions | string;\n };\n}\n\n// Time to wait for code to load before we show loading screen.\nconst LOADING_SCREEN_THRESHOLD = 400; // ms\n\nexport class HassRouterPage extends UpdatingElement {\n @property() public route?: Route;\n\n protected routerOptions!: RouterOptions;\n\n protected _currentPage = \"\";\n private _currentLoadProm?: Promise;\n private _cache = {};\n private _initialLoadDone = false;\n private _computeTail = memoizeOne((route: Route) => {\n const dividerPos = route.path.indexOf(\"/\", 1);\n return dividerPos === -1\n ? {\n prefix: route.prefix + route.path,\n path: \"\",\n }\n : {\n prefix: route.prefix + route.path.substr(0, dividerPos),\n path: route.path.substr(dividerPos),\n };\n });\n\n protected update(changedProps: PropertyValues) {\n super.update(changedProps);\n\n const routerOptions = this.routerOptions || { routes: {} };\n\n if (routerOptions && routerOptions.initialLoad && !this._initialLoadDone) {\n return;\n }\n\n if (!changedProps.has(\"route\")) {\n // Do not update if we have a currentLoadProm, because that means\n // that there is still an old panel shown and we're moving to a new one.\n if (this.lastChild && !this._currentLoadProm) {\n this.updatePageEl(this.lastChild, changedProps);\n }\n return;\n }\n\n const route = this.route;\n const defaultPage = routerOptions.defaultPage;\n\n if (route && route.path === \"\" && defaultPage !== undefined) {\n navigate(this, `${route.prefix}/${defaultPage}`, true);\n }\n\n let newPage = route\n ? extractPage(route.path, defaultPage || \"\")\n : \"not_found\";\n let routeOptions = routerOptions.routes[newPage];\n\n // Handle redirects\n while (typeof routeOptions === \"string\") {\n newPage = routeOptions;\n routeOptions = routerOptions.routes[newPage];\n }\n\n if (routerOptions.beforeRender) {\n const result = routerOptions.beforeRender(newPage);\n if (result !== undefined) {\n newPage = result;\n routeOptions = routerOptions.routes[newPage];\n\n // Handle redirects\n while (typeof routeOptions === \"string\") {\n newPage = routeOptions;\n routeOptions = routerOptions.routes[newPage];\n }\n\n // Update the url if we know where we're mounted.\n if (route) {\n navigate(this, `${route.prefix}/${result}`, true);\n }\n }\n }\n\n if (this._currentPage === newPage) {\n if (this.lastChild) {\n this.updatePageEl(this.lastChild, changedProps);\n }\n return;\n }\n\n if (!routeOptions) {\n this._currentPage = \"\";\n if (this.lastChild) {\n this.removeChild(this.lastChild);\n }\n return;\n }\n\n this._currentPage = newPage;\n const loadProm = routeOptions.load\n ? routeOptions.load()\n : Promise.resolve();\n\n // Check when loading the page source failed.\n loadProm.catch((err) => {\n // tslint:disable-next-line\n console.error(\"Error loading page\", newPage, err);\n\n // Verify that we're still trying to show the same page.\n if (this._currentPage !== newPage) {\n return;\n }\n\n // Removes either loading screen or the panel\n this.removeChild(this.lastChild!);\n\n // Show error screen\n const errorEl = document.createElement(\"hass-error-screen\");\n errorEl.error = `Error while loading page ${newPage}.`;\n this.appendChild(errorEl);\n });\n\n // If we don't show loading screen, just show the panel.\n // It will be automatically upgraded when loading done.\n if (!routerOptions.showLoading) {\n this._createPanel(routerOptions, newPage, routeOptions);\n return;\n }\n\n // We are only going to show the loading screen after some time.\n // That way we won't have a double fast flash on fast connections.\n let created = false;\n\n setTimeout(() => {\n if (created || this._currentPage !== newPage) {\n return;\n }\n\n // Show a loading screen.\n if (this.lastChild) {\n this.removeChild(this.lastChild);\n }\n this.appendChild(this.createLoadingScreen());\n }, LOADING_SCREEN_THRESHOLD);\n\n this._currentLoadProm = loadProm.then(\n () => {\n this._currentLoadProm = undefined;\n // Check if we're still trying to show the same page.\n if (this._currentPage !== newPage) {\n return;\n }\n\n created = true;\n this._createPanel(\n routerOptions,\n newPage,\n // @ts-ignore TS forgot this is not a string.\n routeOptions\n );\n },\n () => {\n this._currentLoadProm = undefined;\n }\n );\n }\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n\n const options = this.routerOptions;\n\n if (!options) {\n return;\n }\n\n if (options.preloadAll) {\n Object.values(options.routes).forEach(\n (route) => typeof route === \"object\" && route.load && route.load()\n );\n }\n\n if (options.initialLoad) {\n setTimeout(() => {\n if (!this._initialLoadDone) {\n this.appendChild(this.createLoadingScreen());\n }\n }, LOADING_SCREEN_THRESHOLD);\n\n options.initialLoad().then(() => {\n this._initialLoadDone = true;\n this.requestUpdate(\"route\");\n });\n }\n }\n\n protected createLoadingScreen() {\n return document.createElement(\"hass-loading-screen\");\n }\n\n /**\n * Rebuild the current panel.\n *\n * Promise will resolve when rebuilding is done and DOM updated.\n */\n protected async rebuild(): Promise {\n const oldRoute = this.route;\n\n if (oldRoute === undefined) {\n return;\n }\n\n this.route = undefined;\n await this.updateComplete;\n // Make sure that the parent didn't override this in the meanwhile.\n if (this.route === undefined) {\n this.route = oldRoute;\n }\n }\n\n /**\n * Promise that resolves when the page has rendered.\n */\n protected get pageRendered(): Promise {\n return this.updateComplete.then(() => this._currentLoadProm);\n }\n\n protected createElement(tag: string) {\n return document.createElement(tag);\n }\n\n protected updatePageEl(_pageEl, _changedProps?: PropertyValues) {\n // default we do nothing\n }\n\n protected get routeTail(): Route {\n return this._computeTail(this.route!);\n }\n\n private _createPanel(\n routerOptions: RouterOptions,\n page: string,\n routeOptions: RouteOptions\n ) {\n if (this.lastChild) {\n this.removeChild(this.lastChild);\n }\n\n const panelEl = this._cache[page] || this.createElement(routeOptions.tag);\n this.updatePageEl(panelEl);\n this.appendChild(panelEl);\n\n if (routerOptions.cacheAll || routeOptions.cache) {\n this._cache[page] = panelEl;\n }\n }\n}\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport type HassioHostInfo = any;\n\nexport interface HassioHassOSInfo {\n version: string;\n version_cli: string;\n version_latest: string;\n version_cli_latest: string;\n board: \"ova\" | \"rpi\";\n}\n\nexport const fetchHassioHostInfo = async (hass: HomeAssistant) => {\n const response = await hass.callApi>(\n \"GET\",\n \"hassio/host/info\"\n );\n return hassioApiResultExtractor(response);\n};\n\nexport const fetchHassioHassOsInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/hassos/info\"\n )\n );\n};\n","import { HASSDomEvent, ValidHassDomEvent } from \"../common/dom/fire_event\";\nimport { ProvideHassElement } from \"../mixins/provide-hass-lit-mixin\";\n\ndeclare global {\n // for fire event\n interface HASSDomEvents {\n \"show-dialog\": ShowDialogParams;\n \"close-dialog\": undefined;\n }\n // for add event listener\n interface HTMLElementEventMap {\n \"show-dialog\": HASSDomEvent>;\n }\n}\n\ninterface HassDialog extends HTMLElement {\n showDialog(params: T);\n}\n\ninterface ShowDialogParams {\n dialogTag: keyof HTMLElementTagNameMap;\n dialogImport: () => Promise;\n dialogParams: T;\n}\n\nconst LOADED = {};\n\nexport const showDialog = async (\n element: HTMLElement & ProvideHassElement,\n root: ShadowRoot | HTMLElement,\n dialogImport: () => Promise,\n dialogTag: string,\n dialogParams: unknown\n) => {\n if (!(dialogTag in LOADED)) {\n LOADED[dialogTag] = dialogImport().then(() => {\n const dialogEl = document.createElement(dialogTag) as HassDialog;\n element.provideHass(dialogEl);\n root.appendChild(dialogEl);\n return dialogEl;\n });\n }\n const dialogElement = await LOADED[dialogTag];\n dialogElement.showDialog(dialogParams);\n};\n\nexport const makeDialogManager = (\n element: HTMLElement & ProvideHassElement,\n root: ShadowRoot | HTMLElement\n) => {\n element.addEventListener(\n \"show-dialog\",\n async (e: HASSDomEvent>) => {\n const { dialogTag, dialogImport, dialogParams } = e.detail;\n showDialog(element, root, dialogImport, dialogTag, dialogParams);\n }\n );\n};\n","import { UpdatingElement, PropertyValues } from \"lit-element\";\nimport { HomeAssistant, Constructor } from \"../types\";\n\nexport interface ProvideHassElement {\n provideHass(element: HTMLElement);\n}\n\n/* tslint:disable-next-line:variable-name */\nexport const ProvideHassLitMixin = >(\n superClass: T\n) =>\n class extends superClass {\n protected hass!: HomeAssistant;\n /* tslint:disable-next-line:variable-name */\n private __provideHass: HTMLElement[] = [];\n\n public provideHass(el) {\n this.__provideHass.push(el);\n el.hass = this.hass;\n }\n\n protected updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has(\"hass\")) {\n this.__provideHass.forEach((el) => {\n (el as any).hass = this.hass;\n });\n }\n }\n };\n","import \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioAddonInfo } from \"../../../src/data/hassio/addon\";\nimport { navigate } from \"../../../src/common/navigate\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport \"../components/hassio-card-content\";\n\n@customElement(\"hassio-addons\")\nclass HassioAddons extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public addons?: HassioAddonInfo[];\n\n protected render(): TemplateResult {\n const [major, minor] = this.hass.config.version.split(\".\", 2);\n const ha105pluss =\n Number(major) > 0 || (major === \"0\" && Number(minor) >= 105);\n return html`\n
    \n

    Add-ons

    \n
    \n ${!this.addons\n ? html`\n \n
    \n You don't have any add-ons installed yet. Head over to\n the add-on store\n to get started!\n
    \n
    \n `\n : this.addons\n .sort((a, b) => (a.name > b.name ? 1 : -1))\n .map(\n (addon) => html`\n \n
    \n \n
    \n
    \n `\n )}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-card {\n cursor: pointer;\n }\n `,\n ];\n }\n\n private _addonTapped(ev: any): void {\n navigate(this, `/hassio/addon/${ev.currentTarget.addon.slug}`);\n }\n\n private _openStore(): void {\n navigate(this, \"/hassio/store\");\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addons\": HassioAddons;\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResult,\n css,\n property,\n customElement,\n} from \"lit-element\";\nimport \"@polymer/iron-icon/iron-icon\";\n\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioHassOSInfo } from \"../../../src/data/hassio/host\";\nimport {\n HassioHomeAssistantInfo,\n HassioSupervisorInfo,\n} from \"../../../src/data/hassio/supervisor\";\n\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"../../../src/components/buttons/ha-call-api-button\";\nimport \"../components/hassio-card-content\";\n\n@customElement(\"hassio-update\")\nexport class HassioUpdate extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public hassInfo: HassioHomeAssistantInfo;\n @property() public hassOsInfo?: HassioHassOSInfo;\n @property() public supervisorInfo: HassioSupervisorInfo;\n @property() private _error?: string;\n\n protected render(): TemplateResult {\n const updatesAvailable: number = [\n this.hassInfo,\n this.supervisorInfo,\n this.hassOsInfo,\n ].filter((value) => {\n return (\n !!value &&\n (value.last_version\n ? value.version !== value.last_version\n : value.version !== value.version_latest)\n );\n }).length;\n\n if (!updatesAvailable) {\n return html``;\n }\n\n return html`\n
    \n ${this._error\n ? html`\n
    Error: ${this._error}
    \n `\n : \"\"}\n

    \n ${updatesAvailable > 1\n ? \"Updates Available 🎉\"\n : \"Update Available 🎉\"}\n

    \n
    \n ${this._renderUpdateCard(\n \"Home Assistant\",\n this.hassInfo.version,\n this.hassInfo.last_version,\n \"hassio/homeassistant/update\",\n `https://${\n this.hassInfo.last_version.includes(\"b\") ? \"rc\" : \"www\"\n }.home-assistant.io/latest-release-notes/`,\n \"hassio:home-assistant\"\n )}\n ${this._renderUpdateCard(\n \"Hass.io Supervisor\",\n this.supervisorInfo.version,\n this.supervisorInfo.last_version,\n \"hassio/supervisor/update\",\n `https://github.com//home-assistant/hassio/releases/tag/${this.supervisorInfo.last_version}`\n )}\n ${this.hassOsInfo\n ? this._renderUpdateCard(\n \"HassOS\",\n this.hassOsInfo.version,\n this.hassOsInfo.version_latest,\n \"hassio/hassos/update\",\n `https://github.com//home-assistant/hassos/releases/tag/${this.hassOsInfo.version_latest}`\n )\n : \"\"}\n
    \n
    \n `;\n }\n\n private _renderUpdateCard(\n name: string,\n curVersion: string,\n lastVersion: string,\n apiPath: string,\n releaseNotesUrl: string,\n icon?: string\n ): TemplateResult {\n if (lastVersion === curVersion) {\n return html``;\n }\n return html`\n \n
    \n ${icon\n ? html`\n
    \n \n
    \n `\n : \"\"}\n
    ${name} ${lastVersion}
    \n
    \n You are currently running version ${curVersion}\n
    \n
    \n
    \n \n Release notes\n \n \n Update\n \n
    \n
    \n `;\n }\n\n private _apiCalled(ev) {\n if (ev.detail.success) {\n this._error = \"\";\n return;\n }\n\n const response = ev.detail.response;\n\n typeof response.body === \"object\"\n ? (this._error = response.body.message || \"Unknown error\")\n : (this._error = response.body);\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n .icon {\n --iron-icon-height: 48px;\n --iron-icon-width: 48px;\n float: right;\n margin: 0 0 2px 10px;\n }\n .update-heading {\n font-size: var(--paper-font-subhead_-_font-size);\n font-weight: 500;\n margin-bottom: 0.5em;\n }\n .warning {\n color: var(--secondary-text-color);\n }\n .card-content {\n height: calc(100% - 47px);\n box-sizing: border-box;\n }\n .card-actions {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n padding: 16px;\n }\n a {\n text-decoration: none;\n }\n `,\n ];\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResult,\n css,\n property,\n customElement,\n} from \"lit-element\";\nimport \"./hassio-addons\";\nimport \"./hassio-update\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioHassOSInfo } from \"../../../src/data/hassio/host\";\nimport {\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n} from \"../../../src/data/hassio/supervisor\";\n\n@customElement(\"hassio-dashboard\")\nclass HassioDashboard extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() public hassInfo!: HassioHomeAssistantInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n protected render(): TemplateResult {\n return html`\n
    \n \n \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n css`\n .content {\n margin: 0 auto;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-dashboard\": HassioDashboard;\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResultArray,\n css,\n property,\n PropertyValues,\n customElement,\n} from \"lit-element\";\nimport \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"@polymer/paper-checkbox/paper-checkbox\";\nimport \"@polymer/paper-input/paper-input\";\nimport \"@polymer/paper-radio-button/paper-radio-button\";\nimport \"@polymer/paper-radio-group/paper-radio-group\";\n\nimport \"../components/hassio-card-content\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport { showHassioSnapshotDialog } from \"../dialogs/snapshot/show-dialog-hassio-snapshot\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioSnapshot,\n fetchHassioSnapshots,\n reloadHassioSnapshots,\n HassioFullSnapshotCreateParams,\n HassioPartialSnapshotCreateParams,\n createHassioFullSnapshot,\n createHassioPartialSnapshot,\n} from \"../../../src/data/hassio/snapshot\";\nimport { HassioSupervisorInfo } from \"../../../src/data/hassio/supervisor\";\nimport { PolymerChangedEvent } from \"../../../src/polymer-types\";\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\n\n// Not duplicate, used for typing\n// tslint:disable-next-line\nimport { PaperInputElement } from \"@polymer/paper-input/paper-input\";\n// tslint:disable-next-line\nimport { PaperRadioGroupElement } from \"@polymer/paper-radio-group/paper-radio-group\";\n// tslint:disable-next-line\nimport { PaperCheckboxElement } from \"@polymer/paper-checkbox/paper-checkbox\";\n\ninterface CheckboxItem {\n slug: string;\n name: string;\n checked: boolean;\n}\n\n@customElement(\"hassio-snapshots\")\nclass HassioSnapshots extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() private _snapshotName = \"\";\n @property() private _snapshotPassword = \"\";\n @property() private _snapshotHasPassword = false;\n @property() private _snapshotType: HassioSnapshot[\"type\"] = \"full\";\n @property() private _snapshots?: HassioSnapshot[] = [];\n @property() private _addonList: CheckboxItem[] = [];\n @property() private _folderList: CheckboxItem[] = [\n {\n slug: \"homeassistant\",\n name: \"Home Assistant configuration\",\n checked: true,\n },\n { slug: \"ssl\", name: \"SSL\", checked: true },\n { slug: \"share\", name: \"Share\", checked: true },\n { slug: \"addons/local\", name: \"Local add-ons\", checked: true },\n ];\n @property() private _creatingSnapshot = false;\n @property() private _error = \"\";\n\n public async refreshData() {\n await reloadHassioSnapshots(this.hass);\n await this._updateSnapshots();\n }\n\n protected render(): TemplateResult {\n return html`\n
    \n

    \n Create snapshot\n

    \n

    \n Snapshots allow you to easily backup and restore all data of your\n Hass.io instance.\n

    \n
    \n \n
    \n \n Type:\n \n \n Full snapshot\n \n \n Partial snapshot\n \n \n ${this._snapshotType === \"full\"\n ? undefined\n : html`\n Folders:\n ${this._folderList.map(\n (folder, idx) => html`\n \n ${folder.name}\n \n `\n )}\n Add-ons:\n ${this._addonList.map(\n (addon, idx) => html`\n \n ${addon.name}\n \n `\n )}\n `}\n Security:\n \n Password protection\n \n ${this._snapshotHasPassword\n ? html`\n \n `\n : undefined}\n ${this._error !== \"\"\n ? html`\n

    ${this._error}

    \n `\n : undefined}\n
    \n
    \n \n Create\n \n
    \n
    \n
    \n\n

    Available snapshots

    \n
    \n ${this._snapshots === undefined\n ? undefined\n : this._snapshots.length === 0\n ? html`\n \n
    \n You don't have any snapshots yet.\n
    \n
    \n `\n : this._snapshots.map(\n (snapshot) => html`\n \n
    \n \n
    \n \n `\n )}\n
    \n
    \n `;\n }\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n this._updateSnapshots();\n }\n\n protected updated(changedProps: PropertyValues) {\n if (changedProps.has(\"supervisorInfo\")) {\n this._addonList = this.supervisorInfo.addons\n .map((addon) => ({\n slug: addon.slug,\n name: addon.name,\n checked: true,\n }))\n .sort((a, b) => (a.name < b.name ? -1 : 1));\n }\n }\n\n private _handleTextValueChanged(ev: PolymerChangedEvent) {\n const input = ev.currentTarget as PaperInputElement;\n this[`_${input.name}`] = ev.detail.value;\n }\n\n private _handleCheckboxValueChanged(ev) {\n const input = ev.currentTarget as PaperCheckboxElement;\n this[`_${input.name}`] = input.checked;\n }\n\n private _handleRadioValueChanged(ev: PolymerChangedEvent) {\n const input = ev.currentTarget as PaperRadioGroupElement;\n this[`_${input.getAttribute(\"name\")}`] = ev.detail.value;\n }\n\n private _folderChecked(ev) {\n const { idx, checked } = ev.currentTarget!;\n this._folderList = this._folderList.map((folder, curIdx) =>\n curIdx === idx ? { ...folder, checked } : folder\n );\n }\n\n private _addonChecked(ev) {\n const { idx, checked } = ev.currentTarget!;\n this._addonList = this._addonList.map((addon, curIdx) =>\n curIdx === idx ? { ...addon, checked } : addon\n );\n }\n\n private async _updateSnapshots() {\n try {\n this._snapshots = await fetchHassioSnapshots(this.hass);\n this._snapshots.sort((a, b) => (a.date < b.date ? 1 : -1));\n } catch (err) {\n this._error = err.message;\n }\n }\n\n private async _createSnapshot() {\n this._error = \"\";\n if (this._snapshotHasPassword && !this._snapshotPassword.length) {\n this._error = \"Please enter a password.\";\n return;\n }\n this._creatingSnapshot = true;\n await this.updateComplete;\n\n const name =\n this._snapshotName ||\n new Date().toLocaleDateString(navigator.language, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n\n try {\n if (this._snapshotType === \"full\") {\n const data: HassioFullSnapshotCreateParams = { name };\n if (this._snapshotHasPassword) {\n data.password = this._snapshotPassword;\n }\n await createHassioFullSnapshot(this.hass, data);\n } else {\n const addons = this._addonList\n .filter((addon) => addon.checked)\n .map((addon) => addon.slug);\n const folders = this._folderList\n .filter((folder) => folder.checked)\n .map((folder) => folder.slug);\n\n const data: HassioPartialSnapshotCreateParams = {\n name,\n folders,\n addons,\n };\n if (this._snapshotHasPassword) {\n data.password = this._snapshotPassword;\n }\n await createHassioPartialSnapshot(this.hass, data);\n }\n this._updateSnapshots();\n fireEvent(this, \"hass-api-called\", { success: true, response: null });\n } catch (err) {\n this._error = err.message;\n } finally {\n this._creatingSnapshot = false;\n }\n }\n\n private _computeDetails(snapshot: HassioSnapshot) {\n const type =\n snapshot.type === \"full\" ? \"Full snapshot\" : \"Partial snapshot\";\n return snapshot.protected ? `${type}, password protected` : type;\n }\n\n private _snapshotClicked(ev) {\n showHassioSnapshotDialog(this, {\n slug: ev.currentTarget!.snapshot.slug,\n onDelete: () => this._updateSnapshots(),\n });\n }\n\n static get styles(): CSSResultArray {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-radio-group {\n display: block;\n }\n paper-radio-button {\n padding: 0 0 2px 2px;\n }\n paper-radio-button,\n paper-checkbox,\n paper-input[type=\"password\"] {\n display: block;\n margin: 4px 0 4px 48px;\n }\n .pointer {\n cursor: pointer;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-snapshots\": HassioSnapshots;\n }\n}\n","import { fireEvent } from \"../../../../src/common/dom/fire_event\";\n\nexport interface HassioSnapshotDialogParams {\n slug: string;\n onDelete: () => void;\n}\n\nexport const showHassioSnapshotDialog = (\n element: HTMLElement,\n dialogParams: HassioSnapshotDialogParams\n): void => {\n fireEvent(element, \"show-dialog\", {\n dialogTag: \"dialog-hassio-snapshot\",\n dialogImport: () =>\n import(\n /* webpackChunkName: \"dialog-hassio-snapshot\" */ \"./dialog-hassio-snapshot\"\n ),\n dialogParams,\n });\n};\n","import {\n css,\n TemplateResult,\n html,\n LitElement,\n property,\n CSSResultArray,\n} from \"lit-element\";\nimport \"@polymer/paper-card/paper-card\";\nimport memoizeOne from \"memoize-one\";\n\nimport \"../components/hassio-card-content\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonInfo,\n HassioAddonRepository,\n} from \"../../../src/data/hassio/addon\";\nimport { navigate } from \"../../../src/common/navigate\";\nimport { filterAndSort } from \"../components/hassio-filter-addons\";\n\nclass HassioAddonRepositoryEl extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public repo!: HassioAddonRepository;\n @property() public addons!: HassioAddonInfo[];\n @property() public filter!: string;\n\n private _getAddons = memoizeOne(\n (addons: HassioAddonInfo[], filter?: string) => {\n if (filter) {\n return filterAndSort(addons, filter);\n }\n return addons.sort((a, b) =>\n a.name.toUpperCase() < b.name.toUpperCase() ? -1 : 1\n );\n }\n );\n\n protected render(): TemplateResult {\n const repo = this.repo;\n const addons = this._getAddons(this.addons, this.filter);\n const ha105pluss = this._computeHA105plus;\n\n if (this.filter && addons.length < 1) {\n return html`\n
    \n

    \n No results found in \"${repo.name}\"\n

    \n
    \n `;\n }\n return html`\n
    \n

    \n ${repo.name}\n

    \n

    \n Maintained by ${repo.maintainer}
    \n ${repo.url}\n

    \n
    \n ${addons.map(\n (addon) => html`\n \n
    \n \n
    \n \n `\n )}\n
    \n
    \n `;\n }\n\n private _addonTapped(ev) {\n navigate(this, `/hassio/addon/${ev.currentTarget.addon.slug}`);\n }\n\n private get _computeHA105plus(): boolean {\n const [major, minor] = this.hass.config.version.split(\".\", 2);\n return Number(major) > 0 || (major === \"0\" && Number(minor) >= 105);\n }\n\n static get styles(): CSSResultArray {\n return [\n hassioStyle,\n css`\n paper-card {\n cursor: pointer;\n }\n .not_available {\n opacity: 0.6;\n }\n a.repo {\n color: var(--primary-text-color);\n }\n `,\n ];\n }\n}\n\ncustomElements.define(\"hassio-addon-repository\", HassioAddonRepositoryEl);\n","import { HassioAddonInfo } from \"../../../src/data/hassio/addon\";\nimport * as Fuse from \"fuse.js\";\n\nexport function filterAndSort(addons: HassioAddonInfo[], filter: string) {\n const options: Fuse.FuseOptions = {\n keys: [\"name\", \"description\", \"slug\"],\n caseSensitive: false,\n minMatchCharLength: 2,\n threshold: 0.2,\n };\n const fuse = new Fuse(addons, options);\n return fuse.search(filter);\n}\n","import {\n LitElement,\n html,\n CSSResultArray,\n css,\n property,\n TemplateResult,\n customElement,\n PropertyValues,\n} from \"lit-element\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"@polymer/paper-input/paper-input\";\nimport memoizeOne from \"memoize-one\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\nimport \"../components/hassio-card-content\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { HassioAddonRepository } from \"../../../src/data/hassio/addon\";\nimport { PolymerChangedEvent } from \"../../../src/polymer-types\";\nimport { repeat } from \"lit-html/directives/repeat\";\n\n@customElement(\"hassio-repositories-editor\")\nclass HassioRepositoriesEditor extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public repos!: HassioAddonRepository[];\n @property() private _repoUrl = \"\";\n\n private _sortedRepos = memoizeOne((repos: HassioAddonRepository[]) =>\n repos\n .filter((repo) => repo.slug !== \"core\" && repo.slug !== \"local\")\n .sort((a, b) => (a.name < b.name ? -1 : 1))\n );\n\n protected render(): TemplateResult {\n const repos = this._sortedRepos(this.repos);\n return html`\n
    \n

    \n Repositories\n

    \n

    \n Configure which add-on repositories to fetch data from:\n

    \n
    \n ${// Use repeat so that the fade-out from call-service-api-button\n // stays with the correct repo after we add/delete one.\n repeat(\n repos,\n (repo) => repo.slug,\n (repo) => html`\n \n
    \n \n
    \n
    \n \n Remove\n \n
    \n
    \n `\n )}\n\n \n
    \n \n \n
    \n
    \n \n Add\n \n
    \n
    \n
    \n
    \n `;\n }\n\n protected updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has(\"repos\")) {\n this._repoUrl = \"\";\n }\n }\n\n private _urlChanged(ev: PolymerChangedEvent) {\n this._repoUrl = ev.detail.value;\n }\n\n private computeRemoveRepoData(repoList, url) {\n const list = repoList\n .filter((repo) => repo.url !== url)\n .map((repo) => repo.source);\n return { addons_repositories: list };\n }\n\n private computeAddRepoData(repoList, url) {\n const list = repoList ? repoList.map((repo) => repo.source) : [];\n list.push(url);\n return { addons_repositories: list };\n }\n\n static get styles(): CSSResultArray {\n return [\n hassioStyle,\n css`\n .add {\n padding: 12px 16px;\n }\n iron-icon {\n color: var(--secondary-text-color);\n margin-right: 16px;\n display: inline-block;\n }\n paper-input {\n width: calc(100% - 49px);\n display: inline-block;\n margin-top: -4px;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-repositories-editor\": HassioRepositoriesEditor;\n }\n}\n","import \"@polymer/paper-spinner/paper-spinner-lite\";\nimport {\n LitElement,\n TemplateResult,\n html,\n css,\n customElement,\n CSSResult,\n} from \"lit-element\";\n\n@customElement(\"loading-screen\")\nclass LoadingScreen extends LitElement {\n protected render(): TemplateResult {\n return html`\n \n `;\n }\n\n static get styles(): CSSResult {\n return css`\n :host {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"loading-screen\": LoadingScreen;\n }\n}\n","import { TemplateResult, html } from \"lit-html\";\nimport {\n css,\n CSSResult,\n customElement,\n LitElement,\n property,\n} from \"lit-element\";\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-input/paper-input\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@material/mwc-button\";\n\n@customElement(\"hassio-search-input\")\nclass HassioSearchInput extends LitElement {\n @property() private filter?: string;\n\n protected render(): TemplateResult {\n return html`\n
    \n \n \n ${this.filter &&\n html`\n \n `}\n \n
    \n `;\n }\n\n private async _filterChanged(value: string) {\n fireEvent(this, \"value-changed\", { value: String(value) });\n }\n\n private async _filterInputChanged(e) {\n this._filterChanged(e.target.value);\n }\n\n private async _clearSearch() {\n this._filterChanged(\"\");\n }\n\n static get styles(): CSSResult {\n return css`\n paper-input {\n flex: 1 1 auto;\n margin: 0 16px;\n }\n .search-container {\n display: inline-flex;\n width: 100%;\n align-items: center;\n }\n .prefix {\n margin: 8px;\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-search-input\": HassioSearchInput;\n }\n}\n","import \"./hassio-addon-repository\";\nimport \"./hassio-repositories-editor\";\nimport { TemplateResult, html } from \"lit-html\";\nimport {\n LitElement,\n CSSResult,\n css,\n property,\n PropertyValues,\n} from \"lit-element\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonRepository,\n HassioAddonInfo,\n fetchHassioAddonsInfo,\n reloadHassioAddons,\n} from \"../../../src/data/hassio/addon\";\nimport \"../../../src/layouts/loading-screen\";\nimport \"../components/hassio-search-input\";\n\nconst sortRepos = (a: HassioAddonRepository, b: HassioAddonRepository) => {\n if (a.slug === \"local\") {\n return -1;\n }\n if (b.slug === \"local\") {\n return 1;\n }\n if (a.slug === \"core\") {\n return -1;\n }\n if (b.slug === \"core\") {\n return 1;\n }\n return a.name.toUpperCase() < b.name.toUpperCase() ? -1 : 1;\n};\n\nclass HassioAddonStore extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() private _addons?: HassioAddonInfo[];\n @property() private _repos?: HassioAddonRepository[];\n @property() private _filter?: string;\n\n public async refreshData() {\n this._repos = undefined;\n this._addons = undefined;\n this._filter = undefined;\n await reloadHassioAddons(this.hass);\n await this._loadData();\n }\n\n protected render(): TemplateResult {\n if (!this._addons || !this._repos) {\n return html`\n \n `;\n }\n const repos: TemplateResult[] = [];\n\n for (const repo of this._repos) {\n const addons = this._addons!.filter(\n (addon) => addon.repository === repo.slug\n );\n\n if (addons.length === 0) {\n continue;\n }\n\n repos.push(html`\n \n `);\n }\n\n return html`\n \n\n \n\n ${repos}\n `;\n }\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n this.addEventListener(\"hass-api-called\", (ev) => this.apiCalled(ev));\n this._loadData();\n }\n\n private apiCalled(ev) {\n if (ev.detail.success) {\n this._loadData();\n }\n }\n\n private async _loadData() {\n try {\n const addonsInfo = await fetchHassioAddonsInfo(this.hass);\n this._repos = addonsInfo.repositories;\n this._repos.sort(sortRepos);\n this._addons = addonsInfo.addons;\n } catch (err) {\n alert(\"Failed to fetch add-on info\");\n }\n }\n\n private async _filterChanged(e) {\n this._filter = e.detail.value;\n }\n\n static get styles(): CSSResult {\n return css`\n hassio-addon-repository {\n margin-top: 24px;\n }\n `;\n }\n}\n\ncustomElements.define(\"hassio-addon-store\", HassioAddonStore);\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport {\n HassioHostInfo as HassioHostInfoType,\n HassioHassOSInfo,\n} from \"../../../src/data/hassio/host\";\nimport { fetchHassioHardwareInfo } from \"../../../src/data/hassio/hardware\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { showHassioMarkdownDialog } from \"../dialogs/markdown/show-dialog-hassio-markdown\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\n\n@customElement(\"hassio-host-info\")\nclass HassioHostInfo extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public hostInfo!: HassioHostInfoType;\n @property() public hassOsInfo!: HassioHassOSInfo;\n @property() private _errors?: string;\n\n public render(): TemplateResult | void {\n return html`\n \n
    \n

    Host system

    \n \n \n \n \n \n \n \n \n \n \n ${this.hostInfo.deployment\n ? html`\n \n \n \n \n `\n : \"\"}\n \n
    Hostname${this.hostInfo.hostname}
    System${this.hostInfo.operating_system}
    Deployment${this.hostInfo.deployment}
    \n \n Hardware\n \n ${this.hostInfo.features.includes(\"hostname\")\n ? html`\n \n Change hostname\n \n `\n : \"\"}\n ${this._errors\n ? html`\n
    Error: ${this._errors}
    \n `\n : \"\"}\n
    \n
    \n ${this.hostInfo.features.includes(\"reboot\")\n ? html`\n Reboot\n `\n : \"\"}\n ${this.hostInfo.features.includes(\"shutdown\")\n ? html`\n Shutdown\n `\n : \"\"}\n ${this.hostInfo.features.includes(\"hassos\")\n ? html`\n Import from USB\n `\n : \"\"}\n ${this.hostInfo.version !== this.hostInfo.version_latest\n ? html`\n Update\n `\n : \"\"}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-card {\n height: 100%;\n width: 100%;\n }\n .card-content {\n color: var(--primary-text-color);\n box-sizing: border-box;\n height: calc(100% - 47px);\n }\n .info {\n width: 100%;\n }\n .info td:nth-child(2) {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n mwc-button.info {\n max-width: calc(50% - 12px);\n }\n table.info {\n margin-bottom: 10px;\n }\n .warning {\n --mdc-theme-primary: var(--google-red-500);\n }\n `,\n ];\n }\n\n protected firstUpdated(): void {\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n }\n\n private _apiCalled(ev): void {\n if (ev.detail.success) {\n this._errors = undefined;\n return;\n }\n\n const response = ev.detail.response;\n\n this._errors =\n typeof response.body === \"object\"\n ? response.body.message || \"Unknown error\"\n : response.body;\n }\n\n private async _showHardware(): Promise {\n try {\n const content = this._objectToMarkdown(\n await fetchHassioHardwareInfo(this.hass)\n );\n showHassioMarkdownDialog(this, {\n title: \"Hardware\",\n content,\n });\n } catch (err) {\n showHassioMarkdownDialog(this, {\n title: \"Hardware\",\n content: \"Error getting hardware info\",\n });\n }\n }\n\n private _objectToMarkdown(obj, indent = \"\"): string {\n let data = \"\";\n Object.keys(obj).forEach((key) => {\n if (typeof obj[key] !== \"object\") {\n data += `${indent}- ${key}: ${obj[key]}\\n`;\n } else {\n data += `${indent}- ${key}:\\n`;\n if (Array.isArray(obj[key])) {\n if (obj[key].length) {\n data +=\n `${indent} - ` + obj[key].join(`\\n${indent} - `) + \"\\n\";\n }\n } else {\n data += this._objectToMarkdown(obj[key], ` ${indent}`);\n }\n }\n });\n\n return data;\n }\n\n private _changeHostnameClicked(): void {\n const curHostname = this.hostInfo.hostname;\n const hostname = prompt(\"Please enter a new hostname:\", curHostname);\n if (hostname && hostname !== curHostname) {\n this.hass.callApi(\"POST\", \"hassio/host/options\", { hostname });\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-host-info\": HassioHostInfo;\n }\n}\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\nimport {\n HassioSupervisorInfo as HassioSupervisorInfoType,\n setSupervisorOption,\n SupervisorOptions,\n} from \"../../../src/data/hassio/supervisor\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\n\n@customElement(\"hassio-supervisor-info\")\nclass HassioSupervisorInfo extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfoType;\n @property() private _errors?: string;\n\n public render(): TemplateResult | void {\n return html`\n \n
    \n

    Hass.io supervisor

    \n \n \n \n \n \n \n \n \n \n \n ${this.supervisorInfo.channel !== \"stable\"\n ? html`\n \n \n \n \n `\n : \"\"}\n \n
    Version${this.supervisorInfo.version}
    Latest version${this.supervisorInfo.last_version}
    Channel${this.supervisorInfo.channel}
    \n ${this._errors\n ? html`\n
    Error: ${this._errors}
    \n `\n : \"\"}\n
    \n
    \n Reload\n ${this.supervisorInfo.version !== this.supervisorInfo.last_version\n ? html`\n Update\n `\n : \"\"}\n ${this.supervisorInfo.channel === \"beta\"\n ? html`\n Leave beta channel\n `\n : \"\"}\n ${this.supervisorInfo.channel === \"stable\"\n ? html`\n Join beta channel\n `\n : \"\"}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n paper-card {\n height: 100%;\n width: 100%;\n }\n .card-content {\n color: var(--primary-text-color);\n box-sizing: border-box;\n height: calc(100% - 47px);\n }\n .info {\n width: 100%;\n }\n .info td:nth-child(2) {\n text-align: right;\n }\n .errors {\n color: var(--google-red-500);\n margin-top: 16px;\n }\n `,\n ];\n }\n\n protected firstUpdated(): void {\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n }\n\n private _apiCalled(ev): void {\n if (ev.detail.success) {\n this._errors = undefined;\n return;\n }\n\n const response = ev.detail.response;\n\n this._errors =\n typeof response.body === \"object\"\n ? response.body.message || \"Unknown error\"\n : response.body;\n }\n\n private async _joinBeta() {\n if (\n !confirm(`WARNING:\nBeta releases are for testers and early adopters and can contain unstable code changes. Make sure you have backups of your data before you activate this feature.\n\nThis inludes beta releases for:\n- Home Assistant (Release Candidates)\n- Hass.io supervisor\n- Host system`)\n ) {\n return;\n }\n try {\n const data: SupervisorOptions = { channel: \"beta\" };\n await setSupervisorOption(this.hass, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._errors = `Error joining beta channel, ${err.body?.message || err}`;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-supervisor-info\": HassioSupervisorInfo;\n }\n}\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n query,\n} from \"lit-element\";\n\nimport { ANSI_HTML_STYLE, parseTextToColoredPre } from \"../ansi-to-html\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { fetchSupervisorLogs } from \"../../../src/data/hassio/supervisor\";\n\n@customElement(\"hassio-supervisor-log\")\nclass HassioSupervisorLog extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() private _error?: string;\n @query(\"#content\") private _logContent!: HTMLDivElement;\n\n public async connectedCallback(): Promise {\n super.connectedCallback();\n await this._loadData();\n }\n\n public render(): TemplateResult | void {\n return html`\n \n ${this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"}\n
    \n
    \n Refresh\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n ANSI_HTML_STYLE,\n css`\n paper-card {\n width: 100%;\n }\n pre {\n white-space: pre-wrap;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n `,\n ];\n }\n\n private async _loadData(): Promise {\n this._error = undefined;\n try {\n const content = await fetchSupervisorLogs(this.hass);\n while (this._logContent.lastChild) {\n this._logContent.removeChild(this._logContent.lastChild as Node);\n }\n this._logContent.appendChild(parseTextToColoredPre(content));\n } catch (err) {\n this._error = `Failed to get supervisor logs, ${err.body?.message ||\n err}`;\n }\n }\n\n private async _refresh(): Promise {\n await this._loadData();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-supervisor-log\": HassioSupervisorLog;\n }\n}\n","import \"@polymer/paper-menu-button/paper-menu-button\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport {\n HassioHostInfo,\n HassioHassOSInfo,\n} from \"../../../src/data/hassio/host\";\nimport { HassioSupervisorInfo } from \"../../../src/data/hassio/supervisor\";\nimport { HomeAssistant } from \"../../../src/types\";\n\nimport \"./hassio-host-info\";\nimport \"./hassio-supervisor-info\";\nimport \"./hassio-supervisor-log\";\n\n@customElement(\"hassio-system\")\nclass HassioSystem extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() public hostInfo!: HassioHostInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n public render(): TemplateResult | void {\n return html`\n
    \n

    Information

    \n
    \n \n \n
    \n

    System log

    \n \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n .content {\n margin: 8px;\n color: var(--primary-text-color);\n }\n .title {\n margin-top: 24px;\n color: var(--primary-text-color);\n font-size: 2em;\n padding-left: 8px;\n margin-bottom: 8px;\n }\n .side-by-side {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));\n grid-gap: 8px;\n }\n hassio-supervisor-log {\n width: 100%;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-system\": HassioSystem;\n }\n}\n","import {\n HassRouterPage,\n RouterOptions,\n} from \"../../src/layouts/hass-router-page\";\nimport { customElement, property } from \"lit-element\";\nimport { PolymerElement } from \"@polymer/polymer\";\nimport { HomeAssistant } from \"../../src/types\";\n// Don't codesplit it, that way the dashboard always loads fast.\nimport \"./dashboard/hassio-dashboard\";\n// Don't codesplit the others, because it breaks the UI when pushed to a Pi\nimport \"./snapshots/hassio-snapshots\";\nimport \"./addon-store/hassio-addon-store\";\nimport \"./system/hassio-system\";\nimport { HassioHostInfo, HassioHassOSInfo } from \"../../src/data/hassio/host\";\nimport {\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n} from \"../../src/data/hassio/supervisor\";\n\n@customElement(\"hassio-tabs-router\")\nclass HassioTabsRouter extends HassRouterPage {\n @property() public hass!: HomeAssistant;\n @property() public supervisorInfo: HassioSupervisorInfo;\n @property() public hostInfo: HassioHostInfo;\n @property() public hassInfo: HassioHomeAssistantInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n protected routerOptions: RouterOptions = {\n routes: {\n dashboard: {\n tag: \"hassio-dashboard\",\n },\n snapshots: {\n tag: \"hassio-snapshots\",\n },\n store: {\n tag: \"hassio-addon-store\",\n },\n system: {\n tag: \"hassio-system\",\n },\n },\n };\n\n protected updatePageEl(el) {\n if (\"setProperties\" in el) {\n // As long as we have Polymer pages\n (el as PolymerElement).setProperties({\n hass: this.hass,\n supervisorInfo: this.supervisorInfo,\n hostInfo: this.hostInfo,\n hassInfo: this.hassInfo,\n hassOsInfo: this.hassOsInfo,\n });\n } else {\n el.hass = this.hass;\n el.supervisorInfo = this.supervisorInfo;\n el.hostInfo = this.hostInfo;\n el.hassInfo = this.hassInfo;\n el.hassOsInfo = this.hassOsInfo;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-tabs-router\": HassioTabsRouter;\n }\n}\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResultArray,\n css,\n customElement,\n property,\n} from \"lit-element\";\nimport \"@polymer/app-layout/app-header-layout/app-header-layout\";\nimport \"@polymer/app-layout/app-header/app-header\";\nimport \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@polymer/paper-tabs/paper-tab\";\nimport \"@polymer/paper-tabs/paper-tabs\";\n\nimport \"../../src/components/ha-menu-button\";\nimport \"../../src/resources/ha-style\";\nimport \"./hassio-tabs-router\";\n\nimport scrollToTarget from \"../../src/common/dom/scroll-to-target\";\n\nimport { haStyle } from \"../../src/resources/styles\";\nimport { HomeAssistant, Route } from \"../../src/types\";\nimport { navigate } from \"../../src/common/navigate\";\nimport { HassioHostInfo, HassioHassOSInfo } from \"../../src/data/hassio/host\";\nimport {\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n} from \"../../src/data/hassio/supervisor\";\n\nconst HAS_REFRESH_BUTTON = [\"store\", \"snapshots\"];\n\n@customElement(\"hassio-pages-with-tabs\")\nclass HassioPagesWithTabs extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public narrow!: boolean;\n @property() public route!: Route;\n @property() public supervisorInfo!: HassioSupervisorInfo;\n @property() public hostInfo!: HassioHostInfo;\n @property() public hassInfo!: HassioHomeAssistantInfo;\n @property() public hassOsInfo!: HassioHassOSInfo;\n\n protected render(): TemplateResult {\n const page = this._page;\n return html`\n \n \n \n \n
    Hass.io
    \n ${HAS_REFRESH_BUTTON.includes(page)\n ? html`\n \n `\n : undefined}\n
    \n \n Dashboard\n Snapshots\n Add-on store\n System\n \n
    \n \n
    \n `;\n }\n\n private handlePageSelected(ev) {\n const newPage = ev.detail.item.getAttribute(\"page-name\");\n if (newPage !== this._page) {\n navigate(this, `/hassio/${newPage}`);\n }\n\n scrollToTarget(\n this,\n // @ts-ignore\n this.shadowRoot!.querySelector(\"app-header-layout\").header.scrollTarget\n );\n }\n\n private refreshClicked() {\n if (this._page === \"snapshots\") {\n // @ts-ignore\n this.shadowRoot.querySelector(\"hassio-snapshots\").refreshData();\n } else {\n // @ts-ignore\n this.shadowRoot.querySelector(\"hassio-addon-store\").refreshData();\n }\n }\n\n private get _page() {\n return this.route.path.substr(1);\n }\n\n static get styles(): CSSResultArray {\n return [\n haStyle,\n css`\n :host {\n color: var(--primary-text-color);\n --paper-card-header-color: var(--primary-text-color);\n }\n paper-tabs {\n margin-left: 12px;\n --paper-tabs-selection-bar-color: var(--text-primary-color, #fff);\n text-transform: uppercase;\n }\n app-header,\n app-toolbar {\n background-color: var(--primary-color);\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-pages-with-tabs\": HassioPagesWithTabs;\n }\n}\n","/**\n * Scroll to a specific y coordinate.\n *\n * Copied from paper-scroll-header-panel.\n *\n * @method scroll\n * @param {number} top The coordinate to scroll to, along the y-axis.\n * @param {boolean} smooth true if the scroll position should be smoothly adjusted.\n */\nexport default function scrollToTarget(element, target) {\n // the scroll event will trigger _updateScrollState directly,\n // However, _updateScrollState relies on the previous `scrollTop` to update the states.\n // Calling _updateScrollState will ensure that the states are synced correctly.\n const top = 0;\n const scroller = target;\n const easingFn = function easeOutQuad(t, b, c, d) {\n /* eslint-disable no-param-reassign, space-infix-ops, no-mixed-operators */\n t /= d;\n return -c * t * (t - 2) + b;\n /* eslint-enable no-param-reassign, space-infix-ops, no-mixed-operators */\n };\n const animationId = Math.random();\n const duration = 200;\n const startTime = Date.now();\n const currentScrollTop = scroller.scrollTop;\n const deltaScrollTop = top - currentScrollTop;\n element._currentAnimationId = animationId;\n (function updateFrame() {\n const now = Date.now();\n const elapsedTime = now - startTime;\n if (elapsedTime > duration) {\n scroller.scrollTop = top;\n } else if (element._currentAnimationId === animationId) {\n scroller.scrollTop = easingFn(\n elapsedTime,\n currentScrollTop,\n deltaScrollTop,\n duration\n );\n requestAnimationFrame(updateFrame.bind(element));\n }\n }.call(element));\n}\n","import { customElement, PropertyValues, property } from \"lit-element\";\nimport { PolymerElement } from \"@polymer/polymer\";\nimport \"@polymer/paper-icon-button\";\n\nimport \"../../src/resources/ha-style\";\nimport { applyThemesOnElement } from \"../../src/common/dom/apply_themes_on_element\";\nimport { fireEvent } from \"../../src/common/dom/fire_event\";\nimport {\n HassRouterPage,\n RouterOptions,\n} from \"../../src/layouts/hass-router-page\";\nimport { HomeAssistant } from \"../../src/types\";\nimport {\n fetchHassioSupervisorInfo,\n fetchHassioHomeAssistantInfo,\n HassioSupervisorInfo,\n HassioHomeAssistantInfo,\n createHassioSession,\n HassioPanelInfo,\n} from \"../../src/data/hassio/supervisor\";\nimport {\n fetchHassioHostInfo,\n fetchHassioHassOsInfo,\n HassioHostInfo,\n HassioHassOSInfo,\n} from \"../../src/data/hassio/host\";\nimport { fetchHassioAddonInfo } from \"../../src/data/hassio/addon\";\nimport { makeDialogManager } from \"../../src/dialogs/make-dialog-manager\";\nimport { ProvideHassLitMixin } from \"../../src/mixins/provide-hass-lit-mixin\";\n// Don't codesplit it, that way the dashboard always loads fast.\nimport \"./hassio-pages-with-tabs\";\nimport { navigate } from \"../../src/common/navigate\";\nimport {\n showAlertDialog,\n AlertDialogParams,\n} from \"../../src/dialogs/generic/show-dialog-box\";\n\n// The register callback of the IronA11yKeysBehavior inside paper-icon-button\n// is not called, causing _keyBindings to be uninitiliazed for paper-icon-button,\n// causing an exception when added to DOM. When transpiled to ES5, this will\n// break the build.\ncustomElements.get(\"paper-icon-button\").prototype._keyBindings = {};\n\n@customElement(\"hassio-main\")\nclass HassioMain extends ProvideHassLitMixin(HassRouterPage) {\n @property() public hass!: HomeAssistant;\n @property() public panel!: HassioPanelInfo;\n @property() public narrow!: boolean;\n\n protected routerOptions: RouterOptions = {\n // Hass.io has a page with tabs, so we route all non-matching routes to it.\n defaultPage: \"dashboard\",\n initialLoad: () => this._fetchData(),\n showLoading: true,\n routes: {\n dashboard: {\n tag: \"hassio-pages-with-tabs\",\n cache: true,\n },\n snapshots: \"dashboard\",\n store: \"dashboard\",\n system: \"dashboard\",\n addon: {\n tag: \"hassio-addon-view\",\n load: () =>\n import(\n /* webpackChunkName: \"hassio-addon-view\" */ \"./addon-view/hassio-addon-view\"\n ),\n },\n ingress: {\n tag: \"hassio-ingress-view\",\n load: () =>\n import(\n /* webpackChunkName: \"hassio-ingress-view\" */ \"./ingress-view/hassio-ingress-view\"\n ),\n },\n },\n };\n @property() private _supervisorInfo: HassioSupervisorInfo;\n @property() private _hostInfo: HassioHostInfo;\n @property() private _hassOsInfo?: HassioHassOSInfo;\n @property() private _hassInfo: HassioHomeAssistantInfo;\n\n protected firstUpdated(changedProps: PropertyValues) {\n super.firstUpdated(changedProps);\n\n applyThemesOnElement(this, this.hass.themes, this.hass.selectedTheme, true);\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n // Paulus - March 17, 2019\n // We went to a single hass-toggle-menu event in HA 0.90. However, the\n // supervisor UI can also run under older versions of Home Assistant.\n // So here we are going to translate toggle events into the appropriate\n // open and close events. These events are a no-op in newer versions of\n // Home Assistant.\n this.addEventListener(\"hass-toggle-menu\", () => {\n fireEvent(\n (window.parent as any).customPanel,\n // @ts-ignore\n this.hass.dockedSidebar ? \"hass-close-menu\" : \"hass-open-menu\"\n );\n });\n // Paulus - March 19, 2019\n // We changed the navigate event to fire directly on the window, as that's\n // where we are listening for it. However, the older panel_custom will\n // listen on this element for navigation events, so we need to forward them.\n window.addEventListener(\"location-changed\", (ev) =>\n // @ts-ignore\n fireEvent(this, ev.type, ev.detail, {\n bubbles: false,\n })\n );\n\n // Forward haptic events to parent window.\n window.addEventListener(\"haptic\", (ev) => {\n // @ts-ignore\n fireEvent(window.parent, ev.type, ev.detail, {\n bubbles: false,\n });\n });\n\n makeDialogManager(this, document.body);\n }\n\n protected updatePageEl(el) {\n // the tabs page does its own routing so needs full route.\n const route =\n el.nodeName === \"HASSIO-PAGES-WITH-TABS\" ? this.route : this.routeTail;\n\n if (\"setProperties\" in el) {\n // As long as we have Polymer pages\n (el as PolymerElement).setProperties({\n hass: this.hass,\n narrow: this.narrow,\n supervisorInfo: this._supervisorInfo,\n hostInfo: this._hostInfo,\n hassInfo: this._hassInfo,\n hassOsInfo: this._hassOsInfo,\n route,\n });\n } else {\n el.hass = this.hass;\n el.narrow = this.narrow;\n el.supervisorInfo = this._supervisorInfo;\n el.hostInfo = this._hostInfo;\n el.hassInfo = this._hassInfo;\n el.hassOsInfo = this._hassOsInfo;\n el.route = route;\n }\n }\n\n private async _fetchData() {\n if (this.panel.config && this.panel.config.ingress) {\n await this._redirectIngress(this.panel.config.ingress);\n return;\n }\n\n const [supervisorInfo, hostInfo, hassInfo] = await Promise.all([\n fetchHassioSupervisorInfo(this.hass),\n fetchHassioHostInfo(this.hass),\n fetchHassioHomeAssistantInfo(this.hass),\n ]);\n this._supervisorInfo = supervisorInfo;\n this._hostInfo = hostInfo;\n this._hassInfo = hassInfo;\n\n if (this._hostInfo.features && this._hostInfo.features.includes(\"hassos\")) {\n this._hassOsInfo = await fetchHassioHassOsInfo(this.hass);\n }\n }\n\n private async _redirectIngress(addonSlug: string) {\n // When we trigger a navigation, we sleep to make sure we don't\n // show the hassio dashboard before navigating away.\n const awaitAlert = async (\n alertParams: AlertDialogParams,\n action: () => void\n ) => {\n await new Promise((resolve) => {\n alertParams.confirm = resolve;\n showAlertDialog(this, alertParams);\n });\n action();\n await new Promise((resolve) => setTimeout(resolve, 1000));\n };\n\n const createSessionPromise = createHassioSession(this.hass).then(\n () => true,\n () => false\n );\n\n let addon;\n\n try {\n addon = await fetchHassioAddonInfo(this.hass, addonSlug);\n } catch (err) {\n await awaitAlert(\n {\n text: \"Unable to fetch add-on info to start Ingress\",\n title: \"Hass.io\",\n },\n () => history.back()\n );\n\n return;\n }\n\n if (!addon.ingress_url) {\n await awaitAlert(\n {\n text: \"Add-on does not support Ingress\",\n title: addon.name,\n },\n () => history.back()\n );\n\n return;\n }\n\n if (addon.state !== \"started\") {\n await awaitAlert(\n {\n text: \"Add-on is not running. Please start it first\",\n title: addon.name,\n },\n () => navigate(this, `/hassio/addon/${addon.slug}`, true)\n );\n\n return;\n }\n\n if (!(await createSessionPromise)) {\n await awaitAlert(\n {\n text: \"Unable to create an Ingress session\",\n title: addon.name,\n },\n () => history.back()\n );\n\n return;\n }\n\n location.assign(addon.ingress_url);\n // await a promise that doesn't resolve, so we show the loading screen\n // while we load the next page.\n await new Promise(() => undefined);\n }\n\n private _apiCalled(ev) {\n if (!ev.detail.success) {\n return;\n }\n\n let tries = 1;\n\n const tryUpdate = () => {\n this._fetchData().catch(() => {\n tries += 1;\n setTimeout(tryUpdate, Math.min(tries, 5) * 1000);\n });\n };\n\n tryUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-main\": HassioMain;\n }\n}\n","import { HomeAssistant } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport interface HassioAddonInfo {\n name: string;\n slug: string;\n description: string;\n repository: \"core\" | \"local\" | string;\n version: string;\n state: \"none\" | \"started\" | \"stopped\";\n installed: string | undefined;\n detached: boolean;\n available: boolean;\n build: boolean;\n url: string | null;\n icon: boolean;\n logo: boolean;\n}\n\nexport interface HassioAddonDetails extends HassioAddonInfo {\n name: string;\n slug: string;\n description: string;\n long_description: null | string;\n auto_update: boolean;\n url: null | string;\n detached: boolean;\n available: boolean;\n arch: \"armhf\" | \"aarch64\" | \"i386\" | \"amd64\";\n machine: any;\n homeassistant: string;\n last_version: string;\n boot: \"auto\" | \"manual\";\n build: boolean;\n options: object;\n network: null | object;\n network_description: null | object;\n host_network: boolean;\n host_pid: boolean;\n host_ipc: boolean;\n host_dbus: boolean;\n privileged: any;\n apparmor: \"disable\" | \"default\" | \"profile\";\n devices: string[];\n auto_uart: boolean;\n icon: boolean;\n logo: boolean;\n changelog: boolean;\n hassio_api: boolean;\n hassio_role: \"default\" | \"homeassistant\" | \"manager\" | \"admin\";\n homeassistant_api: boolean;\n auth_api: boolean;\n full_access: boolean;\n protected: boolean;\n rating: \"1-6\";\n stdin: boolean;\n webui: null | string;\n gpio: boolean;\n kernel_modules: boolean;\n devicetree: boolean;\n docker_api: boolean;\n audio: boolean;\n audio_input: null | string;\n audio_output: null | string;\n services_role: string[];\n discovery: string[];\n ip_address: string;\n ingress: boolean;\n ingress_panel: boolean;\n ingress_entry: null | string;\n ingress_url: null | string;\n}\n\nexport interface HassioAddonsInfo {\n addons: HassioAddonInfo[];\n repositories: HassioAddonRepository[];\n}\n\nexport interface HassioAddonSetSecurityParams {\n protected?: boolean;\n}\n\nexport interface HassioAddonRepository {\n slug: string;\n name: string;\n source: string;\n url: string;\n maintainer: string;\n}\n\nexport interface HassioAddonSetOptionParams {\n audio_input?: string | null;\n audio_output?: string | null;\n options?: object | null;\n boot?: \"auto\" | \"manual\";\n auto_update?: boolean;\n ingress_panel?: boolean;\n network?: object | null;\n}\n\nexport const reloadHassioAddons = async (hass: HomeAssistant) => {\n await hass.callApi>(\"POST\", `hassio/addons/reload`);\n};\n\nexport const fetchHassioAddonsInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\"GET\", `hassio/addons`)\n );\n};\n\nexport const fetchHassioAddonInfo = async (\n hass: HomeAssistant,\n slug: string\n) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n `hassio/addons/${slug}/info`\n )\n );\n};\n\nexport const fetchHassioAddonChangelog = async (\n hass: HomeAssistant,\n slug: string\n) => {\n return hass.callApi(\"GET\", `hassio/addons/${slug}/changelog`);\n};\n\nexport const fetchHassioAddonLogs = async (\n hass: HomeAssistant,\n slug: string\n) => {\n return hass.callApi(\"GET\", `hassio/addons/${slug}/logs`);\n};\n\nexport const setHassioAddonOption = async (\n hass: HomeAssistant,\n slug: string,\n data: HassioAddonSetOptionParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/options`,\n data\n );\n};\n\nexport const setHassioAddonSecurity = async (\n hass: HomeAssistant,\n slug: string,\n data: HassioAddonSetSecurityParams\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/security`,\n data\n );\n};\n\nexport const installHassioAddon = async (hass: HomeAssistant, slug: string) => {\n return hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/install`\n );\n};\n\nexport const uninstallHassioAddon = async (\n hass: HomeAssistant,\n slug: string\n) => {\n await hass.callApi>(\n \"POST\",\n `hassio/addons/${slug}/uninstall`\n );\n};\n","import { fireEvent } from \"./dom/fire_event\";\n\ndeclare global {\n // for fire event\n interface HASSDomEvents {\n \"location-changed\": {\n replace: boolean;\n };\n }\n}\n\nexport const navigate = (\n _node: any,\n path: string,\n replace: boolean = false\n) => {\n if (__DEMO__) {\n if (replace) {\n history.replaceState(null, \"\", `${location.pathname}#${path}`);\n } else {\n window.location.hash = path;\n }\n } else {\n if (replace) {\n history.replaceState(null, \"\", path);\n } else {\n history.pushState(null, \"\", path);\n }\n }\n fireEvent(window, \"location-changed\", {\n replace,\n });\n};\n","import { LocalizeFunc } from \"../translations/localize\";\n\n/**\n * Calculate a string representing a date object as relative time from now.\n *\n * Example output: 5 minutes ago, in 3 days.\n */\nconst tests = [60, 60, 24, 7];\nconst langKey = [\"second\", \"minute\", \"hour\", \"day\"];\n\nexport default function relativeTime(\n dateObj: Date,\n localize: LocalizeFunc,\n options: {\n compareTime?: Date;\n includeTense?: boolean;\n } = {}\n): string {\n const compareTime = options.compareTime || new Date();\n let delta = (compareTime.getTime() - dateObj.getTime()) / 1000;\n const tense = delta >= 0 ? \"past\" : \"future\";\n delta = Math.abs(delta);\n\n let timeDesc;\n\n for (let i = 0; i < tests.length; i++) {\n if (delta < tests[i]) {\n delta = Math.floor(delta);\n timeDesc = localize(\n `ui.components.relative_time.duration.${langKey[i]}`,\n \"count\",\n delta\n );\n break;\n }\n\n delta /= tests[i];\n }\n\n if (timeDesc === undefined) {\n delta = Math.floor(delta);\n timeDesc = localize(\n \"ui.components.relative_time.duration.week\",\n \"count\",\n delta\n );\n }\n\n return options.includeTense === false\n ? timeDesc\n : localize(`ui.components.relative_time.${tense}`, \"time\", timeDesc);\n}\n","import { dedupingMixin } from \"@polymer/polymer/lib/utils/mixin\";\n/**\n * Polymer Mixin to enable a localize function powered by language/resources from hass object.\n *\n * @polymerMixin\n */\nexport default dedupingMixin(\n (superClass) =>\n class extends superClass {\n static get properties() {\n return {\n hass: Object,\n\n /**\n * Translates a string to the current `language`. Any parameters to the\n * string should be passed in order, as follows:\n * `localize(stringKey, param1Name, param1Value, param2Name, param2Value)`\n */\n localize: {\n type: Function,\n computed: \"__computeLocalize(hass.localize)\",\n },\n };\n }\n\n __computeLocalize(localize) {\n return localize;\n }\n }\n);\n","import { dom } from \"@polymer/polymer/lib/legacy/polymer.dom\";\nimport { PolymerElement } from \"@polymer/polymer/polymer-element\";\n\nimport relativeTime from \"../common/datetime/relative_time\";\n\nimport LocalizeMixin from \"../mixins/localize-mixin\";\n\n/*\n * @appliesMixin LocalizeMixin\n */\nclass HaRelativeTime extends LocalizeMixin(PolymerElement) {\n static get properties() {\n return {\n hass: Object,\n datetime: {\n type: String,\n observer: \"datetimeChanged\",\n },\n\n datetimeObj: {\n type: Object,\n observer: \"datetimeObjChanged\",\n },\n\n parsedDateTime: Object,\n };\n }\n\n constructor() {\n super();\n this.updateRelative = this.updateRelative.bind(this);\n }\n\n connectedCallback() {\n super.connectedCallback();\n // update every 60 seconds\n this.updateInterval = setInterval(this.updateRelative, 60000);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n clearInterval(this.updateInterval);\n }\n\n datetimeChanged(newVal) {\n this.parsedDateTime = newVal ? new Date(newVal) : null;\n\n this.updateRelative();\n }\n\n datetimeObjChanged(newVal) {\n this.parsedDateTime = newVal;\n\n this.updateRelative();\n }\n\n updateRelative() {\n const root = dom(this);\n if (!this.parsedDateTime) {\n root.innerHTML = this.localize(\"ui.components.relative_time.never\");\n } else {\n root.innerHTML = relativeTime(this.parsedDateTime, this.localize);\n }\n }\n}\n\ncustomElements.define(\"ha-relative-time\", HaRelativeTime);\n","import {\n LitElement,\n TemplateResult,\n html,\n CSSResult,\n css,\n property,\n customElement,\n} from \"lit-element\";\nimport { classMap } from \"lit-html/directives/class-map\";\nimport \"@polymer/iron-icon/iron-icon\";\n\nimport \"../../../src/components/ha-relative-time\";\nimport { HomeAssistant } from \"../../../src/types\";\n\n@customElement(\"hassio-card-content\")\nclass HassioCardContent extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public title!: string;\n @property() public description?: string;\n @property({ type: Boolean }) public available: boolean = true;\n @property({ type: Boolean }) public showTopbar: boolean = false;\n @property() public topbarClass?: string;\n @property() public datetime?: string;\n @property() public iconTitle?: string;\n @property() public iconClass?: string;\n @property() public icon = \"hass:help-circle\";\n @property() public iconImage?: string;\n\n protected render(): TemplateResult {\n return html`\n ${this.showTopbar\n ? html`\n
    \n `\n : \"\"}\n ${this.iconImage\n ? html`\n
    \n \n
    \n
    \n `\n : html`\n \n `}\n
    \n
    \n ${this.title}\n
    \n
    \n ${this.description}\n ${/* treat as available when undefined */\n this.available === false ? \" (Not available)\" : \"\"}\n ${this.datetime\n ? html`\n \n `\n : undefined}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult {\n return css`\n iron-icon {\n margin-right: 24px;\n margin-left: 8px;\n margin-top: 12px;\n float: left;\n color: var(--secondary-text-color);\n }\n iron-icon.update {\n color: var(--paper-orange-400);\n }\n iron-icon.running,\n iron-icon.installed {\n color: var(--paper-green-400);\n }\n iron-icon.hassupdate,\n iron-icon.snapshot {\n color: var(--paper-item-icon-color);\n }\n iron-icon.not_available {\n color: var(--google-red-500);\n }\n .title {\n color: var(--primary-text-color);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n .addition {\n color: var(--secondary-text-color);\n overflow: hidden;\n position: relative;\n height: 2.4em;\n line-height: 1.2em;\n }\n ha-relative-time {\n display: block;\n }\n .icon_image img {\n max-height: 40px;\n max-width: 40px;\n margin-top: 4px;\n margin-right: 16px;\n float: left;\n }\n .icon_image.stopped,\n .icon_image.not_available {\n filter: grayscale(1);\n }\n .dot {\n position: absolute;\n background-color: var(--paper-orange-400);\n width: 12px;\n height: 12px;\n top: 8px;\n right: 8px;\n border-radius: 50%;\n }\n .topbar {\n position: absolute;\n width: 100%;\n height: 2px;\n top: 0;\n left: 0;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n }\n .topbar.installed {\n background-color: var(--primary-color);\n }\n .topbar.update {\n background-color: var(--accent-color);\n }\n .topbar.unavailable {\n background-color: var(--error-color);\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-card-content\": HassioCardContent;\n }\n}\n","export interface HassioResponse {\n data: T;\n result: \"ok\";\n}\n\nexport const hassioApiResultExtractor = (response: HassioResponse) =>\n response.data;\n","import { LitElement, html } from \"lit-element\";\n\nimport \"./ha-progress-button\";\nimport { fireEvent } from \"../../common/dom/fire_event\";\n\nclass HaCallApiButton extends LitElement {\n render() {\n return html`\n \n `;\n }\n\n constructor() {\n super();\n this.method = \"POST\";\n this.data = {};\n this.disabled = false;\n this.progress = false;\n }\n\n static get properties() {\n return {\n hass: {},\n progress: Boolean,\n path: String,\n method: String,\n data: {},\n disabled: Boolean,\n };\n }\n\n get progressButton() {\n return this.renderRoot.querySelector(\"ha-progress-button\");\n }\n\n async _buttonTapped() {\n this.progress = true;\n const eventData = {\n method: this.method,\n path: this.path,\n data: this.data,\n };\n\n try {\n const resp = await this.hass.callApi(this.method, this.path, this.data);\n this.progress = false;\n this.progressButton.actionSuccess();\n eventData.success = true;\n eventData.response = resp;\n } catch (err) {\n this.progress = false;\n this.progressButton.actionError();\n eventData.success = false;\n eventData.response = err;\n }\n\n fireEvent(this, \"hass-api-called\", eventData);\n }\n}\n\ncustomElements.define(\"ha-call-api-button\", HaCallApiButton);\n","import { HomeAssistant, PanelInfo } from \"../../types\";\nimport { HassioResponse, hassioApiResultExtractor } from \"./common\";\n\nexport type HassioHomeAssistantInfo = any;\nexport type HassioSupervisorInfo = any;\n\nexport type HassioPanelInfo = PanelInfo<\n | undefined\n | {\n ingress?: string;\n }\n>;\n\nexport interface CreateSessionResponse {\n session: string;\n}\n\nexport interface SupervisorOptions {\n channel: \"beta\" | \"dev\" | \"stable\";\n}\n\nexport const fetchHassioHomeAssistantInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/homeassistant/info\"\n )\n );\n};\n\nexport const fetchHassioSupervisorInfo = async (hass: HomeAssistant) => {\n return hassioApiResultExtractor(\n await hass.callApi>(\n \"GET\",\n \"hassio/supervisor/info\"\n )\n );\n};\n\nexport const fetchSupervisorLogs = async (hass: HomeAssistant) => {\n return hass.callApi(\"GET\", \"hassio/supervisor/logs\");\n};\n\nexport const createHassioSession = async (hass: HomeAssistant) => {\n const response = await hass.callApi>(\n \"POST\",\n \"hassio/ingress/session\"\n );\n document.cookie = `ingress_session=${response.data.session};path=/api/hassio_ingress/`;\n};\n\nexport const setSupervisorOption = async (\n hass: HomeAssistant,\n data: SupervisorOptions\n) => {\n await hass.callApi>(\n \"POST\",\n \"hassio/supervisor/options\",\n data\n );\n};\n","import {\n createCollection,\n Connection,\n HassEntity,\n} from \"home-assistant-js-websocket\";\n\nexport interface PersitentNotificationEntity extends HassEntity {\n notification_id?: string;\n created_at?: string;\n title?: string;\n message?: string;\n}\n\nexport interface PersistentNotification {\n created_at: string;\n message: string;\n notification_id: string;\n title: string;\n status: \"read\" | \"unread\";\n}\n\nconst fetchNotifications = (conn) =>\n conn.sendMessagePromise({\n type: \"persistent_notification/get\",\n });\n\nconst subscribeUpdates = (conn, store) =>\n conn.subscribeEvents(\n () => fetchNotifications(conn).then((ntf) => store.setState(ntf, true)),\n \"persistent_notifications_updated\"\n );\n\nexport const subscribeNotifications = (\n conn: Connection,\n onChange: (notifications: PersistentNotification[]) => void\n) =>\n createCollection(\n \"_ntf\",\n fetchNotifications,\n subscribeUpdates,\n conn,\n onChange\n );\n","import \"@polymer/paper-icon-button/paper-icon-button\";\nimport {\n property,\n TemplateResult,\n LitElement,\n html,\n customElement,\n CSSResult,\n css,\n} from \"lit-element\";\n\nimport { fireEvent } from \"../common/dom/fire_event\";\nimport { HomeAssistant } from \"../types\";\nimport { UnsubscribeFunc } from \"home-assistant-js-websocket\";\nimport { subscribeNotifications } from \"../data/persistent_notification\";\nimport { computeDomain } from \"../common/entity/compute_domain\";\n\n@customElement(\"ha-menu-button\")\nclass HaMenuButton extends LitElement {\n @property({ type: Boolean }) public hassio = false;\n @property() public narrow!: boolean;\n @property() public hass!: HomeAssistant;\n @property() private _hasNotifications = false;\n private _alwaysVisible = false;\n private _attachNotifOnConnect = false;\n private _unsubNotifications?: UnsubscribeFunc;\n\n public connectedCallback() {\n super.connectedCallback();\n if (this._attachNotifOnConnect) {\n this._attachNotifOnConnect = false;\n this._subscribeNotifications();\n }\n }\n\n public disconnectedCallback() {\n super.disconnectedCallback();\n if (this._unsubNotifications) {\n this._attachNotifOnConnect = true;\n this._unsubNotifications();\n this._unsubNotifications = undefined;\n }\n }\n\n protected render(): TemplateResult {\n const hasNotifications =\n (this.narrow || this.hass.dockedSidebar === \"always_hidden\") &&\n (this._hasNotifications ||\n Object.keys(this.hass.states).some(\n (entityId) => computeDomain(entityId) === \"configurator\"\n ));\n return html`\n \n ${hasNotifications\n ? html`\n
    \n `\n : \"\"}\n `;\n }\n\n protected firstUpdated(changedProps) {\n super.firstUpdated(changedProps);\n if (!this.hassio) {\n return;\n }\n // This component is used on Hass.io too, but Hass.io might run the UI\n // on older frontends too, that don't have an always visible menu button\n // in the sidebar.\n this._alwaysVisible =\n (Number((window.parent as any).frontendVersion) || 0) < 20190710;\n }\n\n protected updated(changedProps) {\n super.updated(changedProps);\n\n if (!changedProps.has(\"narrow\") && !changedProps.has(\"hass\")) {\n return;\n }\n\n const oldHass = changedProps.get(\"hass\") as HomeAssistant | undefined;\n const oldNarrow =\n changedProps.get(\"narrow\") ||\n (oldHass && oldHass.dockedSidebar === \"always_hidden\");\n const newNarrow =\n this.narrow || this.hass.dockedSidebar === \"always_hidden\";\n\n if (oldNarrow === newNarrow) {\n return;\n }\n\n this.style.visibility =\n newNarrow || this._alwaysVisible ? \"initial\" : \"hidden\";\n\n if (!newNarrow) {\n this._hasNotifications = false;\n if (this._unsubNotifications) {\n this._unsubNotifications();\n this._unsubNotifications = undefined;\n }\n return;\n }\n\n this._subscribeNotifications();\n }\n\n private _subscribeNotifications() {\n this._unsubNotifications = subscribeNotifications(\n this.hass.connection,\n (notifications) => {\n this._hasNotifications = notifications.length > 0;\n }\n );\n }\n\n private _toggleMenu(): void {\n fireEvent(this, \"hass-toggle-menu\");\n }\n\n static get styles(): CSSResult {\n return css`\n :host {\n position: relative;\n }\n .dot {\n pointer-events: none;\n position: absolute;\n background-color: var(--accent-color);\n width: 12px;\n height: 12px;\n top: 5px;\n right: 2px;\n border-radius: 50%;\n border: 2px solid var(--app-header-background-color);\n }\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-menu-button\": HaMenuButton;\n }\n}\n","export const computeDomain = (entityId: string): string => {\n return entityId.substr(0, entityId.indexOf(\".\"));\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.b21a4609308c9b8ef180.js b/hassio/api/panel/chunk.b21a4609308c9b8ef180.js deleted file mode 100644 index 851f96bf3..000000000 --- a/hassio/api/panel/chunk.b21a4609308c9b8ef180.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackJsonp=self.webpackJsonp||[]).push([[4],{131:function(e,t,r){"use strict";r.r(t);r(96),r(109),r(41),r(22),r(67);var n=r(4),i=r(25),o=r(12),a=r(9),s=(r(121),r(16),r(17),r(127),r(128),r(122),r(102));function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(){var e=h(["\n :host,\n paper-card,\n paper-dropdown-menu {\n display: block;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n paper-item {\n width: 450px;\n }\n .card-actions {\n text-align: right;\n }\n "]);return l=function(){return e},e}function d(){var e=h(["\n ","\n "]);return d=function(){return e},e}function u(){var e=h(["\n ","\n "]);return u=function(){return e},e}function p(){var e=h(['\n
    ',"
    \n "]);return p=function(){return e},e}function f(){var e=h(['\n \n
    \n ','\n\n \n \n \n \n \n \n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a',"
    \n "]);return D=function(){return e},e}function A(){var e=T(['\n \n
    \n ',"\n \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a bit more top margin */\n font-weight: 500;\n overflow: hidden;\n text-transform: uppercase;\n text-overflow: ellipsis;\n transition: background-color 0.3s ease-in-out;\n text-transform: var(--ha-label-badge-label-text-transform, uppercase);\n }\n .label-badge .label.big span {\n font-size: 90%;\n padding: 10% 12% 7% 12%; /* push smaller text a bit down to center vertically */\n }\n .badge-container .title {\n margin-top: 1em;\n font-size: var(--ha-label-badge-title-font-size, 0.9em);\n width: var(--ha-label-badge-title-width, 5em);\n font-weight: var(--ha-label-badge-title-font-weight, 400);\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: normal;\n }\n "]);return Z=function(){return e},e}function $(){var e=ie(['\n
    ',"
    \n "]);return $=function(){return e},e}function ee(){var e=ie(['\n \n ',"\n
    \n "]);return ee=function(){return e},e}function te(){var e=ie(["\n ","\n "]);return te=function(){return e},e}function re(){var e=ie(['\n \n ']);return re=function(){return e},e}function ne(){var e=ie(['\n
    \n
    \n \n ',"\n ","\n
    \n ","\n
    \n ","\n
    \n "]);return ne=function(){return e},e}function ie(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function oe(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ae(e,t){return(ae=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function se(e){var t,r=pe(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function ce(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function le(e){return e.decorators&&e.decorators.length}function de(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function ue(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function pe(e){var t=function(e,t){if("object"!==X(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==X(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===X(t)?t:String(t)}function fe(e,t,r){return(fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=he(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function he(e){return(he=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}customElements.define("ha-icon",Q);var me=function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!le(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a4)}),!this.icon||this.value||this.image?"":Object(n.e)(re(),this.icon),this.value&&!this.image?Object(n.e)(te(),this.value):"",this.label?Object(n.e)(ee(),Object(q.a)({label:!0,big:this.label.length>5}),this.label):"",this.description?Object(n.e)($(),this.description):"")}},{kind:"get",static:!0,key:"styles",value:function(){return[Object(n.c)(Z())]}},{kind:"method",key:"updated",value:function(e){fe(he(r.prototype),"updated",this).call(this,e),e.has("image")&&(this.shadowRoot.getElementById("badge").style.backgroundImage=this.image?"url(".concat(this.image,")"):"")}}]}},n.a);customElements.define("ha-label-badge",me);r(72),r(126);var ve=r(105);function ye(e){return(ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function be(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n :host {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n .mdc-switch.mdc-switch--checked .mdc-switch__thumb {\n background-color: var(--switch-checked-button-color);\n border-color: var(--switch-checked-button-color);\n }\n .mdc-switch.mdc-switch--checked .mdc-switch__track {\n background-color: var(--switch-checked-track-color);\n border-color: var(--switch-checked-track-color);\n }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {\n background-color: var(--switch-unchecked-button-color);\n border-color: var(--switch-unchecked-button-color);\n }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {\n background-color: var(--switch-unchecked-track-color);\n border-color: var(--switch-unchecked-track-color);\n }\n :host(.slotted) .mdc-switch {\n margin-right: 24px;\n }\n "]);return be=function(){return e},e}function ge(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function we(e,t){return(we=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ke(e){var t,r=Pe(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function Ee(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function Oe(e){return e.decorators&&e.decorators.length}function je(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function _e(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Pe(e){var t=function(e,t){if("object"!==ye(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ye(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ye(t)?t:String(t)}function xe(e,t,r){return(xe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=De(e)););return e}(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(r):i.value}})(e,t,r||e)}function De(e){return(De=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Ae=customElements.get("mwc-switch"),Te=(function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!Oe(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n
    \n \n This add-on is not available on your system.\n

    \n ']);return Ie=function(){return e},e}function Ne(){var e=ht(["\n ","\n \n \n Open web UI\n \n \n ']);return Ue=function(){return e},e}function Me(){var e=ht(["\n \n Start\n \n ']);return Me=function(){return e},e}function qe(){var e=ht(['\n \n Restart\n \n \n Stop\n \n ']);return qe=function(){return e},e}function We(){var e=ht(['\n \n Rebuild\n \n ']);return We=function(){return e},e}function Be(){var e=ht(['\n ',"
    \n "]);return Le=function(){return e},e}function Je(){var e=ht(['\n
    \n
    \n Protection mode\n \n \n \n Grant the add-on elevated system access.\n \n \n
    \n \n
    Show in sidebar
    \n \n
    Start on boot
    \n \n
    \n
    \n
    Auto update
    \n \n ']);return Ke=function(){return e},e}function Qe(){var e=ht(["\n \n ']);return Qe=function(){return e},e}function Xe(){var e=ht(["\n \n ']);return Xe=function(){return e},e}function Ze(){var e=ht(["\n \n ']);return Ze=function(){return e},e}function $e(){var e=ht(["\n \n ']);return $e=function(){return e},e}function et(){var e=ht(["\n \n ']);return tt=function(){return e},e}function rt(){var e=ht(["\n \n ']);return rt=function(){return e},e}function nt(){var e=ht(["\n \n ']);return nt=function(){return e},e}function it(){var e=ht(['\n \n ']);return it=function(){return e},e}function ot(){var e=ht(["\n ","\n "]);return ot=function(){return e},e}function at(){var e=ht(['\n \n ']);return at=function(){return e},e}function st(){var e=ht(['\n \n ']);return st=function(){return e},e}function ct(){var e=ht(["\n ","\n ","\n "]);return ct=function(){return e},e}function lt(){var e=ht(['\n \n
    \n Protection mode on this add-on is disabled! This gives the add-on full access to the entire system, which adds security risks, and could damage your system when used incorrectly. Only disable the protection mode if you know, need AND trust the source of this add-on.\n
    \n
    \n \n
    \n \n ','\n
    \n
    \n \n Update\n \n ',"\n
    \n \n "]);return pt=function(){return e},e}function ft(){var e=ht(["\n ","\n\n ",'\n\n \n
    \n
    \n ','\n
    \n ','\n
    \n
    \n
    \n ',".
    \n Visit \n '," page\n for details.\n
    \n ",'\n
    \n \n ',"\n\n ","\n\n ","\n\n ","\n\n ","\n\n ","\n\n ","\n\n ","\n\n ","\n
    \n\n ","\n ",'\n
    \n
    \n ',"\n
    \n
    \n\n ","\n "]);return ft=function(){return e},e}function ht(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function mt(e){return(mt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function vt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function yt(e,t){return(yt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function bt(e){var t,r=Ot(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function gt(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function wt(e){return e.decorators&&e.decorators.length}function kt(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function Et(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function Ot(e){var t=function(e,t){if("object"!==Ce(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ce(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ce(t)?t:String(t)}function jt(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _t(e){if(Array.isArray(e))return e}var Pt={rating:{title:"Add-on Security Rating",description:"Hass.io provides a security rating to each of the add-ons, which indicates the risks involved when using this add-on. The more access an add-on requires on your system, the lower the score, thus raising the possible security risks.\n\nA score is on a scale from 1 to 6. Where 1 is the lowest score (considered the most insecure and highest risk) and a score of 6 is the highest score (considered the most secure and lowest risk)."},host_network:{title:"Host Network",description:"Add-ons usually run in their own isolated network layer, which prevents them from accessing the network of the host operating system. In some cases, this network isolation can limit add-ons in providing their services and therefore, the isolation can be lifted by the add-on author, giving the add-on full access to the network capabilities of the host machine. This gives the add-on more networking capabilities but lowers the security, hence, the security rating of the add-on will be lowered when this option is used by the add-on."},homeassistant_api:{title:"Home Assistant API Access",description:"This add-on is allowed to access your running Home Assistant instance directly via the Home Assistant API. This mode handles authentication for the add-on as well, which enables an add-on to interact with Home Assistant without the need for additional authentication tokens."},full_access:{title:"Full Hardware Access",description:"This add-on is given full access to the hardware of your system, by request of the add-on author. Access is comparable to the privileged mode in Docker. Since this opens up possible security risks, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on."},hassio_api:{title:"Hass.io API Access",description:"The add-on was given access to the Hass.io API, by request of the add-on author. By default, the add-on can access general version information of your system. When the add-on requests 'manager' or 'admin' level access to the API, it will gain access to control multiple parts of your Hass.io system. This permission is indicated by this badge and will impact the security score of the addon negatively."},docker_api:{title:"Full Docker Access",description:"The add-on author has requested the add-on to have management access to the Docker instance running on your system. This mode gives the add-on full access and control to your entire Hass.io system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on."},host_pid:{title:"Host Processes Namespace",description:"Usually, the processes the add-on runs, are isolated from all other system processes. The add-on author has requested the add-on to have access to the system processes running on the host system instance, and allow the add-on to spawn processes on the host system as well. This mode gives the add-on full access and control to your entire Hass.io system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on."},apparmor:{title:"AppArmor",description:"AppArmor ('Application Armor') is a Linux kernel security module that restricts add-ons capabilities like network access, raw socket access, and permission to read, write, or execute specific files.\n\nAdd-on authors can provide their security profiles, optimized for the add-on, or request it to be disabled. If AppArmor is disabled, it will raise security risks and therefore, has a negative impact on the security score of the add-on."},auth_api:{title:"Home Assistant Authentication",description:"An add-on can authenticate users against Home Assistant, allowing add-ons to give users the possibility to log into applications running inside add-ons, using their Home Assistant username/password. This badge indicates if the add-on author requests this capability."},ingress:{title:"Ingress",description:"This add-on is using Ingress to embed its interface securely into Home Assistant."}},xt=(function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!wt(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a0||"0"===t&&Number(r)>=92}},{kind:"method",key:"_startOnBootToggled",value:function(){var e,t,r;return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return this._error=void 0,e={boot:"auto"===this.addon.boot?"manual":"auto"},n.prev=2,n.next=5,regeneratorRuntime.awrap(Object(i.g)(this.hass,this.addon.slug,e));case 5:t={success:!0,response:void 0,path:"option"},Object(_.a)(this,"hass-api-called",t),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),this._error="Failed to set addon option, ".concat((null===(r=n.t0.body)||void 0===r?void 0:r.message)||n.t0);case 12:case"end":return n.stop()}},null,this,[[2,9]])}},{kind:"method",key:"_autoUpdateToggled",value:function(){var e,t,r;return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return this._error=void 0,e={auto_update:!this.addon.auto_update},n.prev=2,n.next=5,regeneratorRuntime.awrap(Object(i.g)(this.hass,this.addon.slug,e));case 5:t={success:!0,response:void 0,path:"option"},Object(_.a)(this,"hass-api-called",t),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),this._error="Failed to set addon option, ".concat((null===(r=n.t0.body)||void 0===r?void 0:r.message)||n.t0);case 12:case"end":return n.stop()}},null,this,[[2,9]])}},{kind:"method",key:"_protectionToggled",value:function(){var e,t,r;return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return this._error=void 0,e={protected:!this.addon.protected},n.prev=2,n.next=5,regeneratorRuntime.awrap(Object(i.h)(this.hass,this.addon.slug,e));case 5:t={success:!0,response:void 0,path:"security"},Object(_.a)(this,"hass-api-called",t),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),this._error="Failed to set addon security option, ".concat((null===(r=n.t0.body)||void 0===r?void 0:r.message)||n.t0);case 12:case"end":return n.stop()}},null,this,[[2,9]])}},{kind:"method",key:"_panelToggled",value:function(){var e,t,r;return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return this._error=void 0,e={ingress_panel:!this.addon.ingress_panel},n.prev=2,n.next=5,regeneratorRuntime.awrap(Object(i.g)(this.hass,this.addon.slug,e));case 5:t={success:!0,response:void 0,path:"option"},Object(_.a)(this,"hass-api-called",t),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),this._error="Failed to set addon option, ".concat((null===(r=n.t0.body)||void 0===r?void 0:r.message)||n.t0);case 12:case"end":return n.stop()}},null,this,[[2,9]])}},{kind:"method",key:"_openChangelog",value:function(){var e,t;return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return this._error=void 0,r.prev=1,r.next=4,regeneratorRuntime.awrap(Object(i.a)(this.hass,this.addon.slug));case 4:e=r.sent,Object(Se.a)(this,{title:"Changelog",content:e}),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(1),this._error="Failed to get addon changelog, ".concat((null===(t=r.t0.body)||void 0===t?void 0:t.message)||r.t0);case 11:case"end":return r.stop()}},null,this,[[1,8]])}},{kind:"method",key:"_installClicked",value:function(){var e,t;return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return this._error=void 0,r.prev=1,r.next=4,regeneratorRuntime.awrap(Object(i.e)(this.hass,this.addon.slug));case 4:e={success:!0,response:void 0,path:"install"},Object(_.a)(this,"hass-api-called",e),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(1),this._error="Failed to install addon, ".concat((null===(t=r.t0.body)||void 0===t?void 0:t.message)||r.t0);case 11:case"end":return r.stop()}},null,this,[[1,8]])}},{kind:"method",key:"_uninstallClicked",value:function(){var e,t;return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:if(confirm("Are you sure you want to uninstall this add-on?")){r.next=2;break}return r.abrupt("return");case 2:return this._error=void 0,r.prev=3,r.next=6,regeneratorRuntime.awrap(Object(i.i)(this.hass,this.addon.slug));case 6:e={success:!0,response:void 0,path:"uninstall"},Object(_.a)(this,"hass-api-called",e),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(3),this._error="Failed to uninstall addon, ".concat((null===(t=r.t0.body)||void 0===t?void 0:t.message)||r.t0);case 13:case"end":return r.stop()}},null,this,[[3,10]])}}]}},n.a),r(104));function Dt(e){return(Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function At(){var e=Ct(["\n :host,\n paper-card {\n display: block;\n }\n pre {\n overflow-x: auto;\n white-space: pre-wrap;\n overflow-wrap: break-word;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n "]);return At=function(){return e},e}function Tt(){var e=Ct(['\n
    ',"
    \n "]);return Tt=function(){return e},e}function St(){var e=Ct(['\n \n ','\n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n ","\n \n ',"
    \n "]);return Gt=function(){return e},e}function Vt(){var e=Kt(['\n \n
    \n ',"\n\n \n \n \n \n \n \n \n ",'\n \n
    ContainerHostDescription
    \n
    \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;at.container?1:-1})}},{kind:"method",key:"_configChanged",value:function(e){var t;return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:t=e.target,this._config.forEach(function(e){e.container===t.container&&e.host!==parseInt(String(t.value),10)&&(e.host=t.value?parseInt(String(t.value),10):null)});case 2:case"end":return r.stop()}},null,this)}},{kind:"method",key:"_resetTapped",value:function(){var e,t,r;return regeneratorRuntime.async(function(n){for(;;)switch(n.prev=n.next){case 0:return e={network:null},n.prev=1,n.next=4,regeneratorRuntime.awrap(Object(i.g)(this.hass,this.addon.slug,e));case 4:t={success:!0,response:void 0,path:"option"},Object(_.a)(this,"hass-api-called",t),n.next=11;break;case 8:n.prev=8,n.t0=n.catch(1),this._error="Failed to set addon network configuration, ".concat((null===(r=n.t0.body)||void 0===r?void 0:r.message)||n.t0);case 11:case"end":return n.stop()}},null,this,[[1,8]])}},{kind:"method",key:"_saveTapped",value:function(){var e,t,r,n;return regeneratorRuntime.async(function(o){for(;;)switch(o.prev=o.next){case 0:return this._error=void 0,e={},this._config.forEach(function(t){e[t.container]=parseInt(String(t.host),10)}),t={network:e},o.prev=4,o.next=7,regeneratorRuntime.awrap(Object(i.g)(this.hass,this.addon.slug,t));case 7:r={success:!0,response:void 0,path:"option"},Object(_.a)(this,"hass-api-called",r),o.next=14;break;case 11:o.prev=11,o.t0=o.catch(4),this._error="Failed to set addon network configuration, ".concat((null===(n=o.t0.body)||void 0===n?void 0:n.message)||o.t0);case 14:case"end":return o.stop()}},null,this,[[4,11]])}}]}},n.a);function ar(e){return(ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sr(){var e=fr(["\n :host {\n color: var(--primary-text-color);\n --paper-card-header-color: var(--primary-text-color);\n }\n .content {\n padding: 24px 0 32px;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n hassio-addon-info,\n hassio-addon-network,\n hassio-addon-audio,\n hassio-addon-config {\n margin-bottom: 24px;\n width: 600px;\n }\n hassio-addon-logs {\n max-width: calc(100% - 8px);\n min-width: 600px;\n }\n @media only screen and (max-width: 600px) {\n hassio-addon-info,\n hassio-addon-network,\n hassio-addon-audio,\n hassio-addon-config,\n hassio-addon-logs {\n max-width: 100%;\n min-width: 100%;\n }\n }\n "]);return sr=function(){return e},e}function cr(){var e=fr(["\n \n "]);return cr=function(){return e},e}function lr(){var e=fr(["\n \n "]);return lr=function(){return e},e}function dr(){var e=fr(["\n \n\n ","\n ","\n\n \n "]);return dr=function(){return e},e}function ur(){var e=fr(['\n \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;aQZQHhO+qP{R({@kW-P5*h+s3qUxB1QUyl=CQ?WpmqGA*GB&Tl2q(u|snOES~hLM&}EAOIUr@>*_iK`VPd z!&GCAAYcy=zaMjH+LqT^BpL;@P-xmXGj9-^lvEfivZRq9?y~prKEp^CP0JR~SxehcV&^iKc6dqB@$Ccfh@zO6LDzm^zP2jX5Pvw))GSvx&Aya2KXw-@ zBXL|Qu{lphk1m)>!wF5CU09}WrRTMWG$&+&ez$^n$NKg}y6sTwM-^imMF|j6Y8MrV~uFW zj~MDL$IM|l5#0Qka{#!hNDL&dr@{kVEXG4N<{LX40Wu6^v_;{`Es5W0lT6cG8>K`e zMa7}{KI0p?LO+bnsUUMaC~_gANl?qbPr zI1&p&6N{$EMP!=j_n8bh&)D+vb`DsRDZ?I?@R4fGQV?j8CLAL{i(v_waPc=;i3iSO zWcej_W!l}6eu`FDEA)LSt16@S^7CR(`DzJjSgcc%6A?9RoPqDc(V7oj20 zh<|@ap4=P10Y_q{HY4MnonZrU@f>SmgS7L!+PK#tA{Oj)Mi0iqhTg#h7y48|w`WnP zR>>^9bF}22L&4oiXWqp0p>c|>hB%;MhV!_c0Ig>S*H7beB?we zP9PX#Oz-dF#IxV9`m-q|g|<4ZEDRe-E^HC+{PH3((zPkZHK!vup*NOoff@5yXb?Jo zd((E3nZlhGXEo?aTIqAX3ULu8U}ewu$b%;m*PFGH!*8DlS9v!|uCh1Yj zI2SMC;&M|VClGP6MuvJVb?s`rZ55K7j1L4oZH%y2RJ7Y_rP%jMlIK6DbyfQ06kaPh zfOHv-79W&Jx_m8C=Ho9#f~>Z$4yre`gY(9-w*1F75>F~q07yGkYdmGK<51)AA>7^Zh16QH)R|EZ73uCO7cQ2fW&C|TooMW6* z*bynm-GX1x(=d)(au1UKPnwn?J*-iH&nbxGSv5D-ZANylYAiY2^jLjbcl=PE>b83#~HD%dPA3pDG z2$-S`DHhYW<8$lB)YS@gTf_Qx)3%%!_V>JI3WLe~mWK+1E>w8r5xY~-OT0NfqntVC zD2t!bk}9`dcc7Tw&Ca8B!dc;zKD8$rBuE_1A#Ly`3cqv?0-;on)0~fe1c=h6Zd#gv zMer2TK?|)K%^^u5Zae(N%TFGy^+$g$qa!>n=P@?h>dSSLL~K8U5aRIh`2%*;aglxV z?#pyE6Q3B@T5drL|8~dJORhjG9#MiOG~Y2bXO^587s67zq)1_@%fa#>CC2tQuPA%} zC2|B0+dhoxH+Clu4JiQ|3b&0gaHh+}40F%axeYwlFGTtmjT&$`o`Fl?bsRsuW+bVS zwf$I$PxU1(=kL=MSgVQ*UIIZFra7W74`+jQTmchWe07}pylA6&H2EEcG+s;b_1WVU zizNXIkfBLkavGtTLvRS#&FYgFs10S$GCc6#x0oQFTQD9>k9Pw6g5k8ya$?N)P=pD0 zBcUki2wqfes?}J8x-LMfOVN`AH=9l&NYhV2lu6r4bBGa4q1YB3+RY zZEd@V%^7+O*|3e%GQ(~gO0qRIQFaitv{=Lrnk1Kw89f%460{Nn>=aOf1fr1$2Af>aGnIKR-Q*IK&rGM8 zzQI)qfoVX85Hp)XOMRYf{sCGxJ~ld@>!7HDI>I8aWFlWGsgM+(U$(BtbNEDG641}>Y=7xX4bxX~Uk+3fa?j;M6+vw}`Z_EReU{6G zn$L?*rQAXE!-aE`T6XoWj0Gd~W4U_YFCKst_^fG}bh5*`5?IH)I_}5qe&17;@jZWlOKtH0B>#YeuS^0{u#kDFEM;)RrQbGHclvSXfEFWE5Z3bA%n0;M9$^t z^@|tdtRVK6^kT+U@%V^&_HtSPgswUwSmNm^K@aPzUdGG9No5!J)8IkpRFAO%m!2mf zdFU)_vDF37-Z!{Z!22^2REBV10dbhQG+_6)0%B&l$oaEE>d?pHfG7@|a4r2|E#(Ef z7+)Mh<~ahho5nP4o(aN(8K7N;)ly$kNY?de(F}wb%+~`up;0h(qAP9`RYG+tZfFu^ znB%#Y`)Y*FpwgH528X#^5=z0qB%UJ&OA}kwh3F3%LL23w_v4Pfq>%aX3Rx~Wyng02 zP31+l6!ezeFep7a%tKAhD)Gi>m@f_gW3puEkpC#Nc*MF`hXjtdpi*SbByLJF0rH?2 zD39|REN)=@HSCff63BMm-(EO#)-~3KZei`tkn2>%sOz`W^ zDd>ar>wdnf^14hO+_q;2KyaO$iHkrOC)%S^a%pv}5sB7_JM6y(S$j-t8NCMdSfi1! zJZ~#wix)Hn0=gh@>9{C1bUqL<43z?ye8Ynk;+SavhZk9fheU^ zx-xEen+@@`zA`*rjWWp>4df3c$rkDc#t4DD+w7B@aD{Kidgoj6s?;d^;1oBFYgtgt zP{w_0NcP2zGobYr2Ggu(d*iYbaDk0|lT-81Fz*`7MC5D+I(}6}e^L(74s|(9L`r$$ zsja?Lm4S25oJYD5k+k`4p72!jzrnOoEb7#L)>*{Y$m)(st3#cgUt+_llXkvDYiVQ?>cW^u$qTL#_1kDztK|~$f%R)yd;+-6K+SEhQ;g*=A!?3(7T}`Y zm|O9aD!jndb4ah|2ONnmt!*S8Nzk@qREyF+nWkf#n(M$n7zq=Wl>KkHEuaJAEVZiW zF6+JYXycM75Q_|HClIXpPQtnj5sMZOL;7RqR z{VIo)prlMM(Y%Fw+FNbvuM7kAxugvO;dz(Qp+KKQul-hHm(1U3wfL-2MpD3opN6Gi zIyo1vXoMG)FGj5!GY$1H-&x6Pq+@5vN)B;R;oPLnejROG(fWNo`2}n`7Xx`uX6^1p zFE^l4(-N+Dl0Y(IB(bWf+>riIOX$sfx5AF)slx3{-|`ws4#3)3Q}y|j|5@_G-r)JQ zt=_stPO=vHBI5A9AXYUg}EKv9go5tlY>y z+;HSQ+1}_QOhU#ij|>C#l-T~W_lAB$yDP~>g;W9*gS6gA*RsQ9d3%i!U8qDA_t{Hh zjoKxVBgG6517Bny+ttR|m^IOCx~ScScZkjV2F+_z9(~=InthDy$K2G^60AduTB>GD zdvev;FWseY47gDB!k7?l?Z)tkC;ng>EyuY$o70{wI?zT)zx6psgLkS<*nl3L(D0T( zMvt_XkVwsK4k8Mpl1R%fo}Hat(;*k#&0R&3FUsWf5kVozHn&2^H^$;YkFVOJfE7Gn zj!6%!(3!>Y=0g0#zNc!_dgnwCReVk(hG%F>q4r`PjZCr{5dwXfL5+!>mn^u3O|rLL z!Ql7D4JPXqYyk|Zfu=_U^8sF=;Wdo@zPs{$vwv{DYB4tDiS7dA#{1*GC|l+b=tb1O z5rSZxzuLcNiwp7i`q_&Jk&R$HwB_u0Uz-==0RxJE*0{@ik)CQrR848z%B>! zp`8HnctygSsE&ag@i;9B@}YMa)H{&cn`o|W2GqM2FFB8wAnGWXi(q`^G?>qY4`~e4 z`Tv$TlYg(*-2WH(pByZ+DEI%`*ttx|LocFVkPju(px!D2px$I&LoC@nJ?-KtQqaPpg(Jl(fs33iJBvh<%KU11*<6 zOT^zA!ePfAXJ9J3v3hvrg0=#ZWG51_s! zl!6j7$W(Tt3p<-_Q)H=vJjukQDt-N$AAX^4DUJT>3JkiS4VBg>=a4&~ON&G(y&nKzZzgu8g5L~P z+44upyBBYHHIe}!mNoMq{1GFa-V>QDOSN@G2FuG7+W(CYyBi2gp<%4sQKU|aDryyD z71L5#0x}> zCT#dy#LzRI0ztx+81{C#_3oG2?2Upw>@654cgcyvytWbV)s0zhU3q&gqe((P-~R|Ln|dZ90~-@+=4>Hz5qA45HeXo zV3(K@)#CweWLoYE!T`;G3J^`w{W^aEZg(R@%D4p$a1dL00bcN&YtQmHn7!5pWdH+| z_67TV6IXDLT!CjB^ck0TvlfxuOYea*u6)OG6odctqeZ z>(lo&owo?sNM^w>d`@`(d34kg8E;IA{rfjisZ!m z{39l;wp2XV|Bb|ep=UI!jdY3 z6DS8ETEf^m;Z&1BzB4V$xFmus1nZN?*cXl0w(f%{J?f>1Q_1?6ZKzw?7XLcpd39aq zcrA8I>5gHEWa>976|Su`!t|1MvzyWFLK;{yd*%Zbbcrit%`Db>x}IIetm%1QBjkBe zM;F(3Vhm)!9rGID5&5L^AM3)QHmJ}7KW1Z!N`8%A>jr0hX{HuDZE=~jlY9NvXC!tq zSS*zYEk-79BD2G;rY(nVRLO}5DT#nQZeQMuD-z2tTgK2_HMlTNJ=92T9*^6w*GIwY z353JN^!ezBd!{n_jy{pJR`%uGxju_VZrkn`Jy9f5-4 zTYplp2yF;Li0XP=OB)RdZ;yyX;gD=(1qQmbiIfHO)SHGi_Zo9XPlh^NcL=A0`oRs zlRC7c5jHI`nE5^(bbMT;eXly0)Qr#(q7>|(>Pe#)Q2|U*+g&Q4LMJ6e*pCE?ZPHZHiVJ z!wQS~dl|I?W%WPm^e!8m_hhWAV;;owS`vBrde%$XI)EOuyjw~&Tof3`)Kx@6oD~`e zab6S=k5<1~LEUfWvQ6K$_OQu0^K-)Y*)7WtF=j0O6A4auQN4E=_Th{N))g$r4_QKPNem4(S9m4GY z-wvViwjs>^33a`!57C8mE^1e$oAb+%K3C(xL3O=A2OJ_@6Z8n^mQ-*FM#>OnTX5tSm-Y8{y6AP zN1rBtS#w{w>NP;v{d^cIN-AbW5m{_yPGQ@<=z@=U76u1M2UZLIWe@2G-4%Oe$2 zw3faXSrW_cwg%{VvpR&}V=A7B)ACoS_d5r`LKCe?cIGJU$bGhE=R^}b#NChJ%R{-( z;menpq9vzrhDABHxx{w_K9ku=;b}L~Z!YE)d*%y4^S4Y{vN@p9oxR2OJH8jth6ni> zeWTPIu7^NF$UI!{#8vyzZYATJLd~}pKcvnrD{fl8%9`^%ojD2nJ8KK|o!IVe3OPMz zI+gX?-4&oqpdpeSMdw=G2K$lKDo|Q02(#?BP#zSdbtou(+qFQL@^K9ozJK2(#&ef| zi8TX2&A1z}uvKYfRiG~n$pMoy1$uwevWZ9l(kuQoL8 z=P&$0QU2`mK5w6uB5&>kfQ@U&yvS{Z9zs1{%F8k2{PqxL@a>T)eT$CF6jx(Y_!pfT z>+lqws}9Zj_UIIzPhz+>1lJ-{__ui!p4H`ZudsKil%C-XWlFBFIYi7Ar<699rl8aO z+ubX!M4$BTol=yvt#X8}^AB0vT~z?h{i;RqdNzaK-$3S+1@e3qA7*?tmy8psWHY~o z_ZplwVO853pmyM+BZf710PSYd{UBFj8mZCx{L+BEqtv@b-Iih2l#Qag@~WDbL|IF| zB@62jj8$2+Fk_2xUUg9JiO>QEKc*zY>m?#qz?HXt->y$(bCUFqLxl)G1XEq7mk1>l ztmtoPE>-HW9mziT09i>`9+32W?Jeywak^xwmWKIF)lm5GdWvKK&pD zaBP(=&{OS@RqW81nH!Si&q6zloMlMSc7A5^%nmsMEIhY9cYSS6NYVbUt77=kk zo5pA;*NY@Mc=_Sq)KKP0V zsrJ}~4Xvl!#!)ACGSnQ7*AGnOM<@aZ`d)&i*UAGiW1W%Ztpnj6n>x|7&kBy1MFoi% zukR?$EYo)RA05f`98H$(+Z;(l-jPu3`1Oq{)~q`dKsvuXr^6V3UIku ziSn;S-QGVC`rbbFe9|ygxye#Ye$#khze9k2tH_y*__PKtO{#jCo>B8Hwspkrew=-9 z929L|Z4o9zVO~4o8(vEoV(-0wh$OHCB6k1LECFf*h-15d-3_UV(z4m}H`-oCi|e}n zInhb_P%cCo`so3EfP@*ss3VdQPegT#E7F?o5V|5|y(qP$9!hB~M6)tB2;IQ`LG=YS z#8TvkXnSdVe_K={2ls;sUJc_HtXR%cORxW){Pok;o>##UI~fsM{mfO{nAlM>1;Wu? zPkY%gfiu0ipj*Xe8|~knYqJ0N*z=;;EcPsco&CJN+x()zn}|-@w0+GyBKp_a6(!;w z1Zf?hiyx@X0&|7@Q%_iYJf1u6AQ|4H>iYr}n&CnaZp8EY= zCZ^2GT)l7L{9>~AF(!Cv*9JnW?6Re=@9OylU}+clrHvL@y^%lOX<+_ir}^yP)HoyC zx?JSG5RflMd(A(*YV!xNMf|5%pMI{!X2J7wu15?MNo^wu^Pw7xsyy4`}(?0Tg>@_p91x2=V%nF9~L4B!INL) z5)G3yqH@Dvn!{*i3DJZ9>rwhFvdz>5giv9LYS>?lu^}3R@}fn%NsE8g=t^*d_g>SN za8phkcalwzLuaeb z!`4^F*5*s1uQe@Nu1)C_v;m3-o1C;?2b;a}8oZJBAlB=C(aCfsCtOtSj4 zTvd!RY<0ap@^X(H{Pg5-mQ*lHxsAMDy-b-&rQx z(4D2eWCzHGm_d*ENQK#}(Pr&xJU>n2&mFlZ#(}%I1&l5%*XrTq5yfy;8`)?&4YoF2 zk!Su!@=;S95;yrcY|{p(^Z=Kv8O_4--hfnxQZxJ}%f4L!g0SXe0YRWE4b2M#l`qDP z<$NP)@*HyV5S=3Zl6=-c>B6SxhMlb@d9G3l7r9<*p1Rf38aCMm+@edtLsKq~uwNI= zM9;WNh(R(NWDmLd+ucx_X&Q7wpGdn|@}Eo$>uMUwZIk?4<6o8USXZ%HD< z?oN>jOqHUn$WQ6uh%oOegBXp20X|<0_#Ux-m&%nWdgFsS4Hj~s*Uryinq~{I1093V zV6xeLdQ=8fe;SZ6z68CclrW@y564w6$+5TQ*jN!VoLamMJlK9g9%`^s6t4*LoKS>6 zQ_Ng&TEAtmVF5k(aDqbkFdtkOZii8-4wL*YW}0KcHg!R; z?>_zd`FRQaiR?pAqn3N6XD2V|VwxAdLh8z(u_L z(ivS06!s3>MWtI?V3j9f~lAWB!*!=^i7#vZ9Udh*jxKL<}g7OjjmT-AD6!+MgFfyVh zvXzVpRVg=WKAwq)9xiRkIMS(d&VEw7s*|wyU8absASNhoJ$!oB5Ob6{U4TAf-{?mb zA)0oFifj^5#MNR4<0W5)ae|9q(ea(7ce;ALu-8{dVZJ*UL+bOGg|l!(?uyJ`YbBO|y!B5|TXn<|NLyQ@2=NlbY5E(4R5+F~b2m%|Qcn;MEdzq?5P3Es?1uD&Wb8iF>sWxWnc=t}% zlpKdIO`Jr}^?#UUmORAvZO*t39r;SOb)(^km?c6RBqJu(wXzM}#ign6N=olox-Jgq zeo6bq4Sj0B$|%?6^ErX@5Tl)WT2mp{sijuT^23RpGjk6t)@=lxMMO5G#$r$4)N_(s z;{?+@O|@~@@!ptsbW5TAdSx6&4Kb9j1C8%qc@7{j%_{(vet1`*Xkv#T19qcO>dH#Y z?~6fEM#jkSHSNubd{i=5# z4Z?uFGS=Np%=Ra+%-|5DGiDyh!Lv~7=&5$K7dX2p08O&qdl`rKK$KL*Y0JqJP9qN! zq{aH=(UPvoI;pgNqaXLkjA%=ZAbykTQGtZP+3;7KUq3UrJHGH*hB{D0^WBI+0|k7( z|LqFuZQi`}M6=AY@c{v9P3AF8*uCzy$ayJ->TgVm4gEGxJYwQQlP8t7!(QL%F8aJw<}$yt8Q9!v)S=ST+qZ!I zMdvQ_rWAD#6)7^obVUGzq`c*eD@-XJJIItIC!bP-w;~J$@CjHn`n!k`eDFwR?e1W%e`#MUW{Wp{=W z9xxwLCGmZuA`RIB1e1)>>8IJANxv1Df;4WJi#|t!fH{g#$H?E&qEzJ}p__bf7eS1Q zI>-ttk1$j@Wj#GATD78N{+Kj1)#4i7r&`zWBIL5Qf!iZ@G=-w$&MS9)A7c06MrwyJ zk`{L-L@DVjd5eCi!<_;6?9yl+>npfp@zRGbR{QigIv998S$!Q%*X(^xs^!2JUeI2_(zU)@9 z0uRB=kE<-mXhi~UQ)vw5JQa5t>!pJAT=+d*CnjB^!>%rJhBQ-yV7xT@giv!`><^Q% zd*?W!f>R|Z)*|lcf_F>W*I6gwiC>*g&SM1VUD|rk<8<5px+GOeWBM{>QE~bjyKDrM zr~x~^N*AGNC`WDcv@<_|CnVt=3JTIFmcQ%=3sA(2865Hau+Dn=9&S99L7Mx_6`6Tl z;2US}w<~dtbE2w{wxZyjO>?D%7Jn68|y+lz_gsX=#B1|k!rBETj$$Tv{&wrnuC!AsnJ1j(-)~4{N^f0 z^*G=vM@%2)=C|<9T{87BKg`W*aLHZD9*~cmksw$_t64%?X|{kKtQV|}5{0v=Mb%3? zBpY7F`dFfs8JmHqM>E$_2^yZkn*E#p;<9_~X>(zngrk=HMV`GHf#`T~i&c81WKyzx zhMu6LoObKEvKch`N5k_ENs5Lw&YZ->t?;bC8V>So4xCkQNYU=qyTGR=y>Nj2n6Y-N zm%;dF>?bcWE{9zZK=SVFDHIV%30VU<-|X*1bT&%hDKjiau7$oH0>XjG-I=2 z-E#%2W$_2ef|iW4X-o;CLv!+%_D~s8^j-HZmo{Lc!q`OU!8ecD9Q!q{x-8VIf4P|jUkk$858~@nYr;Ggm<#_ z#Tqi_fEO0X?wQk1zR+DM7cNvs`-dMkOp_QCJlj(1jmDSG&L;beFxl>z&%iBJE07?> z7ZZfFjApd*x`(XK(#&1Ajlkj4jcylis+CY``VA~G7bU~h^U)6gUlU*02&hr;rASm1 zzRqZVgSGZ-`6iF-grTggwnnecB;cg+Z%EM4OTP2Z7pi>XOBHzovm#S01}?C7DSPUJ z;OHg@BdRcTX9c4f&!xmMwAO0l^;qGqu1@7X^Qn@y7P~Ux!RX>J(W9h zC(C-5MlF@SF*cJUDSE@%x)(HuE{!Vv}%D^ zPLIiFRVDp5LdhB8n;dhBYjJP$L2XnS@fb`xB^`m*b}t**OiM6&_+9a7?li44f3mLq zO+yT;IDXEdo{7Eb{A1GHEsGZ;A?_*vjKP=w-c`(H8-{yCFbHkQbI?4mzh3L!MVh@N! zTsZ@K)7zuOHCs4lp8?~)`%GfoMOn*8pbmC3f$zJ9?2>;)JX&kzbyAKCyhZcWdP}N$ zyGF=A_593xJ!Z&XJZY@PE+wRI94ugH`7Kve%!5~e=1&XEE7FlXCD*)y_D7x7% z$O<2|>X$$ubiLCKQGD~qL~?l(qnJ|Vui!sl-muG&z)cVn-{savRW zVVQcqqRH52!NtHuSln&Tx?IFb|HdA+(|)>+NxzP<&?$DmmMOah)Bd#^ z0Iw@7Ye(Le`o(Z6QWC_&k=O1oj{X*no6qU0%!9u|bmLZ9;Ryl*AzUi#76-vh180)B zrfQB_BUx=1a>6lymQxTT?}lL?qOm1L*>2hzy%@i0X^Ylgro3K`SefVpfHcVI7`I_f z>4=M9k!`i0S*R!8ScCr|7zu&;J$p<@Nrl|JEh3Nx^!0mgfV(mB7%b3$3i#>VZW1Tp zxjzGDt3~(JVE4SuM$1BNh{bWGaay~v%KoOZbz@^9zNx8L_bhLL$8v(QX|8AUxdYS9 zBP{qEn9*wrbo1}kl`A>MT|s2k%VJ~==UCgLi=Qk+;mLfK+Gk;pk~Geqx)*C2^}Tm# zwW>i`2hX-f5WODb2*CDj&lPFfv%_wuNMuL!qNii-9J2H1gJBy19IzJ?_!@Ys$WK(I zXzI55^v;Zphd*ujo7S6pl{Lv!E|Qts`nN}T6Bv08BmyCp1GFQq{`h8yv6E63{;nIp zaWXxTlcwe#hDPQE3DnDienMN%g3bRqC+%ojTBgY%;)zMt$Y+wE(64i~^{LWq+Q0nB z+abK=mA~Ep71)w_?K5(Fh2E!MvwrpSgN=Q@8&kJ-$HK5JkI68mc^6~%D{>$y5v}}a z1PICFXM$Y5r^WVS;8dUDr$;<+#L?~FSiP)!O**Z6eN%tZy!u2J+^Fe0#H4+v4d@mK z9Jy_~seAR74;(?E+B>eHIbC*Q~=#OQ%!b&rGmq)q=6 zU2l148@L`I`8wIx$?Agb`pKY_p5>-~+@|Yah2Q?r=E~+$D)UYPdo<(<&FY%hj8XM+ ziatCgMuA8A$x)Ze*`aC*=nXQDf4viCf6rgJ2F&HSeFt7Yc=tK)I_AFMo_(E$&wRuK z0*<=(xNbRT|JNQ%|54^^y(W{a3+!2t6HuMwodwLgo_UXX?>gssYTS1NcD;8e(vAOH z@&4iV{ZBdf?DrUKo+p8(_pW!+ztMm{$E(zpdZgmB>#ec|m@S_1-Ho20(tqqunZef_ zyPloH^y~s8X6@X3>bLK_eO$EfcsK2PoE13ji}leV@;$Ri_~m}lj?JT$-VZzr2~-~} zM_MWlj~zm8(|uSunUx`J-lw(4)eU3cA!-UcAMjEWqPRJr&lJeuH5ks;Y95b;!kM>Q zLWo*a3}zPG5t~#b4H3{51h#{`LkbG4{vZQY#3|tIGN+(Mie?*UtPalznv;io^Fx67 zi+;d_`?pqH3Dc`_jHeAfH64YsSb$Z23~fAryby1lO$)QU}%;Z+b!{i@Qw&*;n-?&u_YJ@|vQ9iEtZ z2e=x7!tyteD+Fw@6zT z%%!m*Xg|&BFvSpFOWcP#pott*n~Xh82G(nSr)YG5^XEls{Io(?>7~fJbwEI3T0+vp z^M#!t5a>XH@!TiJU41Q8_P)wLIYn;Bzsc5D->- zeNaw%>=bfziW$+AhF+0#pEwoY6nYn6e5dCbwH5mNW7almC<`b~{?PQjDbE>u>Dwjg z{lUcF`t`#~Rh32f2!6D+Gf_`uf3?ag1bKl(t`LEH-rY5(Su!7zrT#${vrF7eR4M;4QM=3z@86|8LU2&ur8GsS6gH`w14KzXr&G_YyAs+5af~Pm4C{_NR)W_or><=)>Gi z1oEEpaqu5!Bun&N2OITsSq*ysGa~$1JvF}E!k`o=h8tEJ)SGcn#GKOq2U4U;!hXK{ z`w3oV>4wIP_6aF*s{c_CYv8ew>gyp)eefv|EqvNJ1bEifQejK<8%61l4o+EwOpc^S zDNu?JWYjH_CI-*w1}MK05mAbOFj}wWl+d?!cSbmfbBpl!vNsem{d1 zCM;wOL`EaP4d7ATmD<6uLjLOcyUYMzkl&T*XbW1}%y8xU z2IgL%gW&`P^>3$!QAPErJ7Uv&>8AVJHATa%m^J)UR}kKmKun2{N8RxL6dn|=W07rL zHss+ogjJkvL=k0m`~a03qM~U?zBH-ya-w{XUUny3yu#aI^kfN^$!ocxBV39yh$Atb zCR=@&;rv)x_<0SZ%j^erl!1DTAn{Lo@fgGTa+E$v%K_}T z?=IOjyWHk1*^Ld&I8-!W$oT6WcQr2XNM;-J94NMd`SeLTL~kcAcgyN`?h&_$PHJ6JA$0RDCjmO0>?nc z|A$62nCfEXr$_E-M|+<9<{vN)<4Yd4G~g)+%9ND;%U*!N?x_l6tXZc&V1b^Krq|tO zE47APA<3q{7I%LA<`SbL^M@=Z*!gdI6tlXH&fsOp@f5ZG#sleM=DD7F3(mN%Oc&&{ z#~5vkuG@EnF8xJw8+U6PcXR7o4vcPu+H=HaP6fL{T}Yb)GxeOKmsJYx=sIN@4vm(? zFzmHI^U}Kr@nQ6rD$k|j0+jDY%o>20BaoLwAA4#tbpNk%?z@WvbK*2jhxZJnz0&}{|JtM$N%yFE&Q)k-QqV*GFRg@ z*`QmjB$;ZMPt}`ha9gY_oK64FL>_G;jo)g_)e_iEHqH1J=>Ki1Pge>2nW*6@#7M~p=dw6a+$DGQ0x*|ZtI?3vC`;+?*EZWVQ0ofYEpjvJoCfo|j==s-V=K)MOG{lO zuPHGWQ++l_j33m|W9IG6OS^xf8w&onrvHo-@}L*7T3E?nvxJc)@2jXohj%Q>EA3Pk zs)hzA9Y(X20#d#a&?KPV)@;(X`q(=Iv#gvFG;vX2l}RBpd!a{w#N;?Xw#W}(U1R*a z8;3c(;Z049#LyM5?63^_*rA_#sRROS848WG70+qeYoFDNYD%6IK3GX74KP$`Sq)3-Eles0G@ zzV@Cjr@VX1ZY3dMxXk?Egpdl!U{aA+!M2xdV2}?7BrXmo^=sP4*x-;;U6O(Cxod(*pLm%?`txZ?Zp4CFwLMsA{k z8V@3Y9@M|*U)ruid+X@t{Lg}S56JKp9&C=tA`R)}76-`i|6h4nFC@d4Su7;e6p~gL zhC2~TMj$&EN=})>B0XnHMj+*85G5N!hngq^l0s+;P6+!C5Q~h@{RjG2uD_0*8CgTp zALt@U;w$7nGE2b53_K4MI2nr?aZ({N%0?d(iHi}0*eEvvOD~Jl_?_w3v?L9M^7{Zw z$f2L1N${2UH)-wQ|Io2#|9(q4y}lpU8fuvh_YcTte}Cc+pxnMyTNH)gJsn)@=-15t z?Z^1?O;AJVo}OVD4j{jlYdv$}nP^>ZL=6oDetPF2?KkdFg$Yw zB9fxngX5%2oDD1Dd5Gu`2L40XlXB1DV-r;EnND}QlyZv zqv5-}uWMcIFzjLhmM>wQ2FI(xtN=L4(sNH7)i48X{LsH+wv zd~rGu*yVg=Xdq+Z7L;Fn&L$&qyT^A4KiYI$v9otw@TJS^`QmW{ck_I^Z+te3zzC~x Q@dE\n
    \n ${this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"}\n\n \n \n ${this._inputDevices &&\n this._inputDevices.map((item) => {\n return html`\n ${item.name}\n `;\n })}\n \n \n \n \n ${this._outputDevices &&\n this._outputDevices.map((item) => {\n return html`\n ${item.name}\n `;\n })}\n \n \n
    \n
    \n Save\n
    \n \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n :host,\n paper-card,\n paper-dropdown-menu {\n display: block;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n paper-item {\n width: 450px;\n }\n .card-actions {\n text-align: right;\n }\n `,\n ];\n }\n\n protected update(changedProperties: PropertyValues): void {\n super.update(changedProperties);\n if (changedProperties.has(\"addon\")) {\n this._addonChanged();\n }\n }\n\n private _setInputDevice(ev): void {\n const device = ev.detail.device;\n if (device) {\n this._selectedInput = device;\n }\n }\n\n private _setOutputDevice(ev): void {\n const device = ev.detail.device;\n if (device) {\n this._selectedOutput = device;\n }\n }\n\n private async _addonChanged(): Promise {\n this._selectedInput = this.addon.audio_input;\n this._selectedOutput = this.addon.audio_output;\n if (this._outputDevices) {\n return;\n }\n\n const noDevice: HassioHardwareAudioDevice[] = [\n { device: undefined, name: \"-\" },\n ];\n\n try {\n const { audio } = await fetchHassioHardwareAudio(this.hass);\n const inupt = Object.keys(audio.input).map((key) => ({\n device: key,\n name: audio.input[key],\n }));\n const output = Object.keys(audio.output).map((key) => ({\n device: key,\n name: audio.output[key],\n }));\n\n this._inputDevices = noDevice.concat(inupt);\n this._outputDevices = noDevice.concat(output);\n } catch {\n this._error = \"Failed to fetch audio hardware\";\n this._inputDevices = noDevice;\n this._outputDevices = noDevice;\n }\n }\n\n private async _saveSettings(): Promise {\n this._error = undefined;\n const data: HassioAddonSetOptionParams = {\n audio_input: this._selectedInput || null,\n audio_output: this._selectedOutput || null,\n };\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n } catch {\n this._error = \"Failed to set addon audio device\";\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addon-audio\": HassioAddonAudio;\n }\n}\n","import \"@polymer/iron-autogrow-textarea/iron-autogrow-textarea\";\nimport \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n PropertyValues,\n TemplateResult,\n} from \"lit-element\";\n\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonDetails,\n setHassioAddonOption,\n HassioAddonSetOptionParams,\n} from \"../../../src/data/hassio/addon\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { PolymerChangedEvent } from \"../../../src/polymer-types\";\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\n\n@customElement(\"hassio-addon-config\")\nclass HassioAddonConfig extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public addon!: HassioAddonDetails;\n @property() private _error?: string;\n @property() private _config!: string;\n @property({ type: Boolean }) private _configHasChanged = false;\n\n protected render(): TemplateResult {\n return html`\n \n
    \n ${this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"}\n \n
    \n
    \n \n Reset to defaults\n \n \n Save\n \n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n :host {\n display: block;\n }\n paper-card {\n display: block;\n }\n .card-actions {\n display: flex;\n justify-content: space-between;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n iron-autogrow-textarea {\n width: 100%;\n font-family: monospace;\n }\n .syntaxerror {\n color: var(--google-red-500);\n }\n `,\n ];\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has(\"addon\")) {\n this._config = JSON.stringify(this.addon.options, null, 2);\n }\n }\n\n private _configChanged(ev: PolymerChangedEvent): void {\n this._config =\n ev.detail.value || JSON.stringify(this.addon.options, null, 2);\n this._configHasChanged =\n this._config !== JSON.stringify(this.addon.options, null, 2);\n }\n\n private async _resetTapped(): Promise {\n this._error = undefined;\n const data: HassioAddonSetOptionParams = {\n options: null,\n };\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n this._configHasChanged = false;\n const eventdata = {\n success: true,\n response: undefined,\n path: \"options\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to reset addon configuration, ${err.body?.message ||\n err}`;\n }\n }\n\n private async _saveTapped(): Promise {\n let data: HassioAddonSetOptionParams;\n this._error = undefined;\n try {\n data = {\n options: JSON.parse(this._config),\n };\n } catch (err) {\n this._error = err;\n return;\n }\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n this._configHasChanged = false;\n const eventdata = {\n success: true,\n response: undefined,\n path: \"options\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to save addon configuration, ${err.body?.message ||\n err}`;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addon-config\": HassioAddonConfig;\n }\n}\n","import { Constructor } from \"../types\";\n\nimport \"@polymer/iron-icon/iron-icon\";\n// Not duplicate, this is for typing.\n// tslint:disable-next-line\nimport { IronIconElement } from \"@polymer/iron-icon/iron-icon\";\n\nconst ironIconClass = customElements.get(\"iron-icon\") as Constructor<\n IronIconElement\n>;\n\nlet loaded = false;\n\nexport class HaIcon extends ironIconClass {\n private _iconsetName?: string;\n\n public listen(\n node: EventTarget | null,\n eventName: string,\n methodName: string\n ): void {\n super.listen(node, eventName, methodName);\n\n if (!loaded && this._iconsetName === \"mdi\") {\n loaded = true;\n import(/* webpackChunkName: \"mdi-icons\" */ \"../resources/mdi-icons\");\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-icon\": HaIcon;\n }\n}\n\ncustomElements.define(\"ha-icon\", HaIcon);\n","import {\n html,\n LitElement,\n PropertyValues,\n TemplateResult,\n CSSResult,\n css,\n property,\n} from \"lit-element\";\nimport { classMap } from \"lit-html/directives/class-map\";\nimport \"./ha-icon\";\n\nclass HaLabelBadge extends LitElement {\n @property() public value?: string;\n @property() public icon?: string;\n @property() public label?: string;\n @property() public description?: string;\n @property() public image?: string;\n\n protected render(): TemplateResult {\n return html`\n
    \n
    \n 4),\n })}\"\n >\n ${this.icon && !this.value && !this.image\n ? html`\n \n `\n : \"\"}\n ${this.value && !this.image\n ? html`\n ${this.value}\n `\n : \"\"}\n
    \n ${this.label\n ? html`\n 5,\n })}\"\n >\n ${this.label}\n
    \n `\n : \"\"}\n
    \n ${this.description\n ? html`\n
    ${this.description}
    \n `\n : \"\"}\n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n css`\n .badge-container {\n display: inline-block;\n text-align: center;\n vertical-align: top;\n }\n .label-badge {\n position: relative;\n display: block;\n margin: 0 auto;\n width: var(--ha-label-badge-size, 2.5em);\n text-align: center;\n height: var(--ha-label-badge-size, 2.5em);\n line-height: var(--ha-label-badge-size, 2.5em);\n font-size: var(--ha-label-badge-font-size, 1.5em);\n border-radius: 50%;\n border: 0.1em solid var(--ha-label-badge-color, var(--primary-color));\n color: var(--label-badge-text-color, rgb(76, 76, 76));\n\n white-space: nowrap;\n background-color: var(--label-badge-background-color, white);\n background-size: cover;\n transition: border 0.3s ease-in-out;\n }\n .label-badge .value {\n font-size: 90%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .label-badge .value.big {\n font-size: 70%;\n }\n .label-badge .label {\n position: absolute;\n bottom: -1em;\n /* Make the label as wide as container+border. (parent_borderwidth / font-size) */\n left: -0.2em;\n right: -0.2em;\n line-height: 1em;\n font-size: 0.5em;\n }\n .label-badge .label span {\n box-sizing: border-box;\n max-width: 100%;\n display: inline-block;\n background-color: var(--ha-label-badge-color, var(--primary-color));\n color: var(--ha-label-badge-label-color, white);\n border-radius: 1em;\n padding: 9% 16% 8% 16%; /* mostly apitalized text, not much descenders => bit more top margin */\n font-weight: 500;\n overflow: hidden;\n text-transform: uppercase;\n text-overflow: ellipsis;\n transition: background-color 0.3s ease-in-out;\n text-transform: var(--ha-label-badge-label-text-transform, uppercase);\n }\n .label-badge .label.big span {\n font-size: 90%;\n padding: 10% 12% 7% 12%; /* push smaller text a bit down to center vertically */\n }\n .badge-container .title {\n margin-top: 1em;\n font-size: var(--ha-label-badge-title-font-size, 0.9em);\n width: var(--ha-label-badge-title-width, 5em);\n font-weight: var(--ha-label-badge-title-font-weight, 400);\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: normal;\n }\n `,\n ];\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has(\"image\")) {\n this.shadowRoot!.getElementById(\"badge\")!.style.backgroundImage = this\n .image\n ? `url(${this.image})`\n : \"\";\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-label-badge\": HaLabelBadge;\n }\n}\n\ncustomElements.define(\"ha-label-badge\", HaLabelBadge);\n","import { customElement, CSSResult, css, query } from \"lit-element\";\nimport \"@material/mwc-switch\";\nimport { style } from \"@material/mwc-switch/mwc-switch-css\";\n// tslint:disable-next-line\nimport { Switch } from \"@material/mwc-switch\";\nimport { Constructor } from \"../types\";\n// tslint:disable-next-line\nconst MwcSwitch = customElements.get(\"mwc-switch\") as Constructor;\n\n@customElement(\"ha-switch\")\nexport class HaSwitch extends MwcSwitch {\n @query(\"slot\") private _slot!: HTMLSlotElement;\n\n protected firstUpdated() {\n super.firstUpdated();\n this.style.setProperty(\n \"--mdc-theme-secondary\",\n \"var(--switch-checked-color)\"\n );\n this.classList.toggle(\n \"slotted\",\n Boolean(this._slot.assignedNodes().length)\n );\n this._slot.addEventListener(\"click\", () => (this.checked = !this.checked));\n }\n\n protected static get styles(): CSSResult[] {\n return [\n style,\n css`\n :host {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n .mdc-switch.mdc-switch--checked .mdc-switch__thumb {\n background-color: var(--switch-checked-button-color);\n border-color: var(--switch-checked-button-color);\n }\n .mdc-switch.mdc-switch--checked .mdc-switch__track {\n background-color: var(--switch-checked-track-color);\n border-color: var(--switch-checked-track-color);\n }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {\n background-color: var(--switch-unchecked-button-color);\n border-color: var(--switch-unchecked-button-color);\n }\n .mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {\n background-color: var(--switch-unchecked-track-color);\n border-color: var(--switch-unchecked-track-color);\n }\n :host(.slotted) .mdc-switch {\n margin-right: 24px;\n }\n `,\n ];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-switch\": HaSwitch;\n }\n}\n","import \"@material/mwc-button\";\nimport \"@polymer/iron-icon/iron-icon\";\nimport \"@polymer/paper-card/paper-card\";\nimport \"@polymer/paper-tooltip/paper-tooltip\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\nimport { classMap } from \"lit-html/directives/class-map\";\n\nimport \"../../../src/components/buttons/ha-call-api-button\";\nimport \"../../../src/components/ha-label-badge\";\nimport \"../../../src/components/ha-markdown\";\nimport \"../../../src/components/ha-switch\";\nimport \"../components/hassio-card-content\";\n\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\nimport {\n HassioAddonDetails,\n HassioAddonSetOptionParams,\n HassioAddonSetSecurityParams,\n setHassioAddonOption,\n setHassioAddonSecurity,\n uninstallHassioAddon,\n installHassioAddon,\n fetchHassioAddonChangelog,\n} from \"../../../src/data/hassio/addon\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport { navigate } from \"../../../src/common/navigate\";\nimport { showHassioMarkdownDialog } from \"../dialogs/markdown/show-dialog-hassio-markdown\";\n\nconst PERMIS_DESC = {\n rating: {\n title: \"Add-on Security Rating\",\n description:\n \"Hass.io provides a security rating to each of the add-ons, which indicates the risks involved when using this add-on. The more access an add-on requires on your system, the lower the score, thus raising the possible security risks.\\n\\nA score is on a scale from 1 to 6. Where 1 is the lowest score (considered the most insecure and highest risk) and a score of 6 is the highest score (considered the most secure and lowest risk).\",\n },\n host_network: {\n title: \"Host Network\",\n description:\n \"Add-ons usually run in their own isolated network layer, which prevents them from accessing the network of the host operating system. In some cases, this network isolation can limit add-ons in providing their services and therefore, the isolation can be lifted by the add-on author, giving the add-on full access to the network capabilities of the host machine. This gives the add-on more networking capabilities but lowers the security, hence, the security rating of the add-on will be lowered when this option is used by the add-on.\",\n },\n homeassistant_api: {\n title: \"Home Assistant API Access\",\n description:\n \"This add-on is allowed to access your running Home Assistant instance directly via the Home Assistant API. This mode handles authentication for the add-on as well, which enables an add-on to interact with Home Assistant without the need for additional authentication tokens.\",\n },\n full_access: {\n title: \"Full Hardware Access\",\n description:\n \"This add-on is given full access to the hardware of your system, by request of the add-on author. Access is comparable to the privileged mode in Docker. Since this opens up possible security risks, this feature impacts the add-on security score negatively.\\n\\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on.\",\n },\n hassio_api: {\n title: \"Hass.io API Access\",\n description:\n \"The add-on was given access to the Hass.io API, by request of the add-on author. By default, the add-on can access general version information of your system. When the add-on requests 'manager' or 'admin' level access to the API, it will gain access to control multiple parts of your Hass.io system. This permission is indicated by this badge and will impact the security score of the addon negatively.\",\n },\n docker_api: {\n title: \"Full Docker Access\",\n description:\n \"The add-on author has requested the add-on to have management access to the Docker instance running on your system. This mode gives the add-on full access and control to your entire Hass.io system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\\n\\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on.\",\n },\n host_pid: {\n title: \"Host Processes Namespace\",\n description:\n \"Usually, the processes the add-on runs, are isolated from all other system processes. The add-on author has requested the add-on to have access to the system processes running on the host system instance, and allow the add-on to spawn processes on the host system as well. This mode gives the add-on full access and control to your entire Hass.io system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\\n\\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on.\",\n },\n apparmor: {\n title: \"AppArmor\",\n description:\n \"AppArmor ('Application Armor') is a Linux kernel security module that restricts add-ons capabilities like network access, raw socket access, and permission to read, write, or execute specific files.\\n\\nAdd-on authors can provide their security profiles, optimized for the add-on, or request it to be disabled. If AppArmor is disabled, it will raise security risks and therefore, has a negative impact on the security score of the add-on.\",\n },\n auth_api: {\n title: \"Home Assistant Authentication\",\n description:\n \"An add-on can authenticate users against Home Assistant, allowing add-ons to give users the possibility to log into applications running inside add-ons, using their Home Assistant username/password. This badge indicates if the add-on author requests this capability.\",\n },\n ingress: {\n title: \"Ingress\",\n description:\n \"This add-on is using Ingress to embed its interface securely into Home Assistant.\",\n },\n};\n\n@customElement(\"hassio-addon-info\")\nclass HassioAddonInfo extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public addon!: HassioAddonDetails;\n @property() private _error?: string;\n\n protected render(): TemplateResult {\n return html`\n ${\n this._computeUpdateAvailable\n ? html`\n \n
    \n \n ${!this.addon.available\n ? html`\n

    \n This update is no longer compatible with your system.\n

    \n `\n : \"\"}\n
    \n
    \n \n Update\n \n ${this.addon.changelog\n ? html`\n \n Changelog\n \n `\n : \"\"}\n
    \n
    \n `\n : \"\"\n }\n\n ${\n !this.addon.protected\n ? html`\n \n
    \n Protection mode on this add-on is disabled! This gives the add-on full access to the entire system, which adds security risks, and could damage your system when used incorrectly. Only disable the protection mode if you know, need AND trust the source of this add-on.\n
    \n
    \n Enable Protection mode\n
    \n
    \n
    \n `\n : \"\"\n }\n\n \n
    \n
    \n ${this.addon.name}\n
    \n ${\n this.addon.version\n ? html`\n ${this.addon.version}\n ${this._computeIsRunning\n ? html`\n \n `\n : html`\n \n `}\n `\n : html`\n ${this.addon.last_version}\n `\n }\n
    \n
    \n
    \n ${this.addon.description}.
    \n Visit \n ${this.addon.name} page\n for details.\n
    \n ${\n this.addon.logo\n ? html`\n \n \n \n `\n : \"\"\n }\n
    \n \n ${\n this.addon.host_network\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.full_access\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.homeassistant_api\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this._computeHassioApi\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.docker_api\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.host_pid\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.apparmor\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.auth_api\n ? html`\n \n `\n : \"\"\n }\n\n ${\n this.addon.ingress\n ? html`\n \n `\n : \"\"\n }\n
    \n\n ${\n this.addon.version\n ? html`\n
    \n
    Start on boot
    \n \n
    \n
    \n
    Auto update
    \n \n
    \n ${this.addon.ingress\n ? html`\n
    \n
    Show in sidebar
    \n \n ${this._computeCannotIngressSidebar\n ? html`\n \n This option requires Home Assistant 0.92 or\n later.\n \n `\n : \"\"}\n
    \n `\n : \"\"}\n ${this._computeUsesProtectedOptions\n ? html`\n
    \n
    \n Protection mode\n \n \n \n Grant the add-on elevated system access.\n \n \n
    \n \n
    \n `\n : \"\"}\n `\n : \"\"\n }\n ${\n this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"\n }\n
    \n
    \n ${\n this.addon.version\n ? html`\n \n Uninstall\n \n ${this.addon.build\n ? html`\n \n Rebuild\n \n `\n : \"\"}\n ${this._computeIsRunning\n ? html`\n \n Restart\n \n \n Stop\n \n `\n : html`\n \n Start\n \n `}\n ${this._computeShowWebUI\n ? html`\n \n \n Open web UI\n \n \n `\n : \"\"}\n ${this._computeShowIngressUI\n ? html`\n \n Open web UI\n \n `\n : \"\"}\n `\n : html`\n ${!this.addon.available\n ? html`\n

    \n This add-on is not available on your system.\n

    \n `\n : \"\"}\n \n Install\n \n `\n }\n
    \n
    \n\n ${\n this.addon.long_description\n ? html`\n \n
    \n \n
    \n
    \n `\n : \"\"\n }\n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n :host {\n display: block;\n }\n paper-card {\n display: block;\n margin-bottom: 16px;\n }\n paper-card.warning {\n background-color: var(--google-red-500);\n color: white;\n --paper-card-header-color: white;\n }\n paper-card.warning mwc-button {\n --mdc-theme-primary: white !important;\n }\n .warning {\n color: var(--google-red-500);\n --mdc-theme-primary: var(--google-red-500);\n }\n .light-color {\n color: var(--secondary-text-color);\n }\n .addon-version {\n float: right;\n font-size: 15px;\n vertical-align: middle;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n .description {\n margin-bottom: 16px;\n }\n .logo img {\n max-height: 60px;\n margin: 16px 0;\n display: block;\n }\n .state {\n display: flex;\n margin: 8px 0;\n }\n .state div {\n width: 180px;\n display: inline-block;\n }\n .state iron-icon {\n width: 16px;\n color: var(--secondary-text-color);\n }\n ha-switch {\n display: inline;\n }\n iron-icon.running {\n color: var(--paper-green-400);\n }\n iron-icon.stopped {\n color: var(--google-red-300);\n }\n ha-call-api-button {\n font-weight: 500;\n color: var(--primary-color);\n }\n .right {\n float: right;\n }\n ha-markdown img {\n max-width: 100%;\n }\n protection-enable mwc-button {\n --mdc-theme-primary: white;\n }\n .description a,\n ha-markdown a {\n color: var(--primary-color);\n }\n .red {\n --ha-label-badge-color: var(--label-badge-red, #df4c1e);\n }\n .blue {\n --ha-label-badge-color: var(--label-badge-blue, #039be5);\n }\n .green {\n --ha-label-badge-color: var(--label-badge-green, #0da035);\n }\n .yellow {\n --ha-label-badge-color: var(--label-badge-yellow, #f4b400);\n }\n .security {\n margin-bottom: 16px;\n }\n .card-actions {\n display: flow-root;\n }\n .security h3 {\n margin-bottom: 8px;\n font-weight: normal;\n }\n .security ha-label-badge {\n cursor: pointer;\n margin-right: 4px;\n --iron-icon-height: 45px;\n }\n `,\n ];\n }\n\n private get _computeHassioApi(): boolean {\n return (\n this.addon.hassio_api &&\n (this.addon.hassio_role === \"manager\" ||\n this.addon.hassio_role === \"admin\")\n );\n }\n\n private get _computeApparmorClassName(): string {\n if (this.addon.apparmor === \"profile\") {\n return \"green\";\n }\n if (this.addon.apparmor === \"disable\") {\n return \"red\";\n }\n return \"\";\n }\n\n private _showMoreInfo(ev): void {\n const id = ev.target.getAttribute(\"id\");\n showHassioMarkdownDialog(this, {\n title: PERMIS_DESC[id].title,\n content: PERMIS_DESC[id].description,\n });\n }\n\n private get _computeIsRunning(): boolean {\n return this.addon?.state === \"started\";\n }\n\n private get _computeUpdateAvailable(): boolean | \"\" {\n return (\n this.addon &&\n !this.addon.detached &&\n this.addon.version &&\n this.addon.version !== this.addon.last_version\n );\n }\n\n private get _pathWebui(): string | null {\n return (\n this.addon.webui &&\n this.addon.webui.replace(\"[HOST]\", document.location.hostname)\n );\n }\n\n private get _computeShowWebUI(): boolean | \"\" | null {\n return !this.addon.ingress && this.addon.webui && this._computeIsRunning;\n }\n\n private _openIngress(): void {\n navigate(this, `/hassio/ingress/${this.addon.slug}`);\n }\n\n private get _computeShowIngressUI(): boolean {\n return this.addon.ingress && this._computeIsRunning;\n }\n\n private get _computeCannotIngressSidebar(): boolean {\n return !this.addon.ingress || !this._computeHA92plus;\n }\n\n private get _computeUsesProtectedOptions(): boolean {\n return (\n this.addon.docker_api || this.addon.full_access || this.addon.host_pid\n );\n }\n\n private get _computeHA92plus(): boolean {\n const [major, minor] = this.hass.config.version.split(\".\", 2);\n return Number(major) > 0 || (major === \"0\" && Number(minor) >= 92);\n }\n\n private async _startOnBootToggled(): Promise {\n this._error = undefined;\n const data: HassioAddonSetOptionParams = {\n boot: this.addon.boot === \"auto\" ? \"manual\" : \"auto\",\n };\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to set addon option, ${err.body?.message || err}`;\n }\n }\n\n private async _autoUpdateToggled(): Promise {\n this._error = undefined;\n const data: HassioAddonSetOptionParams = {\n auto_update: !this.addon.auto_update,\n };\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to set addon option, ${err.body?.message || err}`;\n }\n }\n\n private async _protectionToggled(): Promise {\n this._error = undefined;\n const data: HassioAddonSetSecurityParams = {\n protected: !this.addon.protected,\n };\n try {\n await setHassioAddonSecurity(this.hass, this.addon.slug, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"security\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to set addon security option, ${err.body?.message ||\n err}`;\n }\n }\n\n private async _panelToggled(): Promise {\n this._error = undefined;\n const data: HassioAddonSetOptionParams = {\n ingress_panel: !this.addon.ingress_panel,\n };\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to set addon option, ${err.body?.message || err}`;\n }\n }\n\n private async _openChangelog(): Promise {\n this._error = undefined;\n try {\n const content = await fetchHassioAddonChangelog(\n this.hass,\n this.addon.slug\n );\n showHassioMarkdownDialog(this, {\n title: \"Changelog\",\n content,\n });\n } catch (err) {\n this._error = `Failed to get addon changelog, ${err.body?.message ||\n err}`;\n }\n }\n\n private async _installClicked(): Promise {\n this._error = undefined;\n try {\n await installHassioAddon(this.hass, this.addon.slug);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"install\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to install addon, ${err.body?.message || err}`;\n }\n }\n\n private async _uninstallClicked(): Promise {\n if (!confirm(\"Are you sure you want to uninstall this add-on?\")) {\n return;\n }\n this._error = undefined;\n try {\n await uninstallHassioAddon(this.hass, this.addon.slug);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"uninstall\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to uninstall addon, ${err.body?.message || err}`;\n }\n }\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addon-info\": HassioAddonInfo;\n }\n}\n","import \"@material/mwc-button\";\nimport \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n query,\n} from \"lit-element\";\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonDetails,\n fetchHassioAddonLogs,\n} from \"../../../src/data/hassio/addon\";\nimport { ANSI_HTML_STYLE, parseTextToColoredPre } from \"../ansi-to-html\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\n@customElement(\"hassio-addon-logs\")\nclass HassioAddonLogs extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public addon!: HassioAddonDetails;\n @property() private _error?: string;\n @query(\"#content\") private _logContent!: any;\n\n public async connectedCallback(): Promise {\n super.connectedCallback();\n await this._loadData();\n }\n\n protected render(): TemplateResult {\n return html`\n \n ${this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"}\n
    \n
    \n Refresh\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n ANSI_HTML_STYLE,\n css`\n :host,\n paper-card {\n display: block;\n }\n pre {\n overflow-x: auto;\n white-space: pre-wrap;\n overflow-wrap: break-word;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n `,\n ];\n }\n\n private async _loadData(): Promise {\n this._error = undefined;\n try {\n const content = await fetchHassioAddonLogs(this.hass, this.addon.slug);\n while (this._logContent.lastChild) {\n this._logContent.removeChild(this._logContent.lastChild as Node);\n }\n this._logContent.appendChild(parseTextToColoredPre(content));\n } catch (err) {\n this._error = `Failed to get addon logs, ${err.body?.message || err}`;\n }\n }\n\n private async _refresh(): Promise {\n await this._loadData();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addon-logs\": HassioAddonLogs;\n }\n}\n","import \"@polymer/paper-card/paper-card\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n PropertyValues,\n TemplateResult,\n} from \"lit-element\";\n\nimport { PaperInputElement } from \"@polymer/paper-input/paper-input\";\n\nimport { HomeAssistant } from \"../../../src/types\";\nimport {\n HassioAddonDetails,\n HassioAddonSetOptionParams,\n setHassioAddonOption,\n} from \"../../../src/data/hassio/addon\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\nimport { fireEvent } from \"../../../src/common/dom/fire_event\";\n\ninterface NetworkItem {\n description: string;\n container: string;\n host: number | null;\n}\n\ninterface NetworkItemInput extends PaperInputElement {\n container: string;\n}\n\n@customElement(\"hassio-addon-network\")\nclass HassioAddonNetwork extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public addon!: HassioAddonDetails;\n @property() private _error?: string;\n @property() private _config?: NetworkItem[];\n\n public connectedCallback(): void {\n super.connectedCallback();\n this._setNetworkConfig();\n }\n\n protected render(): TemplateResult {\n if (!this._config) {\n return html``;\n }\n\n return html`\n \n
    \n ${this._error\n ? html`\n
    ${this._error}
    \n `\n : \"\"}\n\n \n \n \n \n \n \n \n ${this._config!.map((item) => {\n return html`\n \n \n \n \n \n `;\n })}\n \n
    ContainerHostDescription
    ${item.container}\n \n ${item.description}
    \n
    \n
    \n \n Reset to defaults\n \n Save\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n :host {\n display: block;\n }\n paper-card {\n display: block;\n }\n .errors {\n color: var(--google-red-500);\n margin-bottom: 16px;\n }\n .card-actions {\n display: flex;\n justify-content: space-between;\n }\n `,\n ];\n }\n\n protected update(changedProperties: PropertyValues): void {\n super.update(changedProperties);\n if (changedProperties.has(\"addon\")) {\n this._setNetworkConfig();\n }\n }\n\n private _setNetworkConfig(): void {\n const network = this.addon.network || {};\n const description = this.addon.network_description || {};\n const items: NetworkItem[] = Object.keys(network).map((key) => {\n return {\n container: key,\n host: network[key],\n description: description[key],\n };\n });\n this._config = items.sort((a, b) => (a.container > b.container ? 1 : -1));\n }\n\n private async _configChanged(ev: Event): Promise {\n const target = ev.target as NetworkItemInput;\n this._config!.forEach((item) => {\n if (\n item.container === target.container &&\n item.host !== parseInt(String(target.value), 10)\n ) {\n item.host = target.value ? parseInt(String(target.value), 10) : null;\n }\n });\n }\n\n private async _resetTapped(): Promise {\n const data: HassioAddonSetOptionParams = {\n network: null,\n };\n\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to set addon network configuration, ${err.body\n ?.message || err}`;\n }\n }\n\n private async _saveTapped(): Promise {\n this._error = undefined;\n const networkconfiguration = {};\n this._config!.forEach((item) => {\n networkconfiguration[item.container] = parseInt(String(item.host), 10);\n });\n\n const data: HassioAddonSetOptionParams = {\n network: networkconfiguration,\n };\n\n try {\n await setHassioAddonOption(this.hass, this.addon.slug, data);\n const eventdata = {\n success: true,\n response: undefined,\n path: \"option\",\n };\n fireEvent(this, \"hass-api-called\", eventdata);\n } catch (err) {\n this._error = `Failed to set addon network configuration, ${err.body\n ?.message || err}`;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addon-network\": HassioAddonNetwork;\n }\n}\n","import \"@polymer/app-layout/app-header-layout/app-header-layout\";\nimport \"@polymer/app-layout/app-header/app-header\";\nimport \"@polymer/app-layout/app-toolbar/app-toolbar\";\nimport \"@polymer/paper-icon-button/paper-icon-button\";\nimport \"@polymer/paper-spinner/paper-spinner-lite\";\nimport {\n css,\n CSSResult,\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from \"lit-element\";\n\nimport { HomeAssistant, Route } from \"../../../src/types\";\nimport {\n HassioAddonDetails,\n fetchHassioAddonInfo,\n} from \"../../../src/data/hassio/addon\";\nimport { hassioStyle } from \"../resources/hassio-style\";\nimport { haStyle } from \"../../../src/resources/styles\";\n\nimport \"./hassio-addon-audio\";\nimport \"./hassio-addon-config\";\nimport \"./hassio-addon-info\";\nimport \"./hassio-addon-logs\";\nimport \"./hassio-addon-network\";\n\n@customElement(\"hassio-addon-view\")\nclass HassioAddonView extends LitElement {\n @property() public hass!: HomeAssistant;\n @property() public route!: Route;\n @property() public addon?: HassioAddonDetails;\n\n protected render(): TemplateResult {\n if (!this.addon) {\n return html`\n \n `;\n }\n return html`\n \n
    \n \n\n ${this.addon && this.addon.version\n ? html`\n \n\n ${this.addon.audio\n ? html`\n \n `\n : \"\"}\n ${this.addon.network\n ? html`\n \n `\n : \"\"}\n\n \n `\n : \"\"}\n
    \n
    \n `;\n }\n\n static get styles(): CSSResult[] {\n return [\n haStyle,\n hassioStyle,\n css`\n :host {\n color: var(--primary-text-color);\n --paper-card-header-color: var(--primary-text-color);\n }\n .content {\n padding: 24px 0 32px;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n hassio-addon-info,\n hassio-addon-network,\n hassio-addon-audio,\n hassio-addon-config {\n margin-bottom: 24px;\n width: 600px;\n }\n hassio-addon-logs {\n max-width: calc(100% - 8px);\n min-width: 600px;\n }\n @media only screen and (max-width: 600px) {\n hassio-addon-info,\n hassio-addon-network,\n hassio-addon-audio,\n hassio-addon-config,\n hassio-addon-logs {\n max-width: 100%;\n min-width: 100%;\n }\n }\n `,\n ];\n }\n\n protected async firstUpdated(): Promise {\n await this._routeDataChanged(this.route);\n this.addEventListener(\"hass-api-called\", (ev) => this._apiCalled(ev));\n }\n\n private async _apiCalled(ev): Promise {\n const path: string = ev.detail.path;\n\n if (!path) {\n return;\n }\n\n if (path === \"uninstall\") {\n history.back();\n } else {\n await this._routeDataChanged(this.route);\n }\n }\n\n private async _routeDataChanged(routeData: Route): Promise {\n const addon = routeData.path.substr(1);\n try {\n const addoninfo = await fetchHassioAddonInfo(this.hass, addon);\n this.addon = addoninfo;\n } catch {\n this.addon = undefined;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"hassio-addon-view\": HassioAddonView;\n }\n}\n","import { UpdatingElement, property, customElement } from \"lit-element\";\n// eslint-disable-next-line import/no-webpack-loader-syntax\n// @ts-ignore\n// tslint:disable-next-line: no-implicit-dependencies\nimport markdownWorker from \"workerize-loader!../resources/markdown_worker\";\nimport { fireEvent } from \"../common/dom/fire_event\";\n\nlet worker: any | undefined;\n\n@customElement(\"ha-markdown\")\nclass HaMarkdown extends UpdatingElement {\n @property() public content = \"\";\n @property({ type: Boolean }) public allowSvg = false;\n\n protected update(changedProps) {\n super.update(changedProps);\n\n if (!worker) {\n worker = markdownWorker();\n }\n\n this._render();\n }\n\n private async _render() {\n this.innerHTML = await worker.renderMarkdown(\n this.content,\n {\n breaks: true,\n gfm: true,\n tables: true,\n },\n {\n allowSvg: this.allowSvg,\n }\n );\n\n this._resize();\n\n const walker = document.createTreeWalker(\n this,\n 1 /* SHOW_ELEMENT */,\n null,\n false\n );\n\n while (walker.nextNode()) {\n const node = walker.currentNode;\n\n // Open external links in a new window\n if (\n node instanceof HTMLAnchorElement &&\n node.host !== document.location.host\n ) {\n node.target = \"_blank\";\n\n // protect referrer on external links and deny window.opener access for security reasons\n // (see https://mathiasbynens.github.io/rel-noopener/)\n node.rel = \"noreferrer noopener\";\n\n // Fire a resize event when images loaded to notify content resized\n } else if (node) {\n node.addEventListener(\"load\", this._resize);\n }\n }\n }\n\n private _resize = () => fireEvent(this, \"iron-resize\");\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ha-markdown\": HaMarkdown;\n }\n}\n","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"renderMarkdown\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(__webpack_public_path__ + \"201359fd5a526afe13ef.worker.js\", { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.b2dce600432c76a53d8c.js b/hassio/api/panel/chunk.b2dce600432c76a53d8c.js new file mode 100644 index 000000000..7fe182d04 --- /dev/null +++ b/hassio/api/panel/chunk.b2dce600432c76a53d8c.js @@ -0,0 +1,2 @@ +(self.webpackJsonp=self.webpackJsonp||[]).push([[12],[,function(o,t){var n=document.createElement("template");n.setAttribute("style","display: none;"),n.innerHTML='',document.head.appendChild(n.content)}]]); +//# sourceMappingURL=chunk.b2dce600432c76a53d8c.js.map \ No newline at end of file diff --git a/hassio/api/panel/chunk.b2dce600432c76a53d8c.js.gz b/hassio/api/panel/chunk.b2dce600432c76a53d8c.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..25ee480f913c7eeb7e5cfd4b8cc03d6636b26f96 GIT binary patch literal 526 zcmV+p0`dJHiwFP!000021GSddlAJIQMc@4u)JCXc#W?4jbAH*Z5zQcvXi-RP-ha2C z+7V32_VTE{w;7!}lR^V3WBV{IxtPB&8q3?A$;rvaR>aEMwa1~Mze99%d2X}(CpMttlVPY(|QY6jOO;WX;@K-k~)M$_-EdA0&8gxsu|KJQRCV(ZWBo$#(t!*{0OGcR|6}3HyE{!H^Kov!Q#q(F5E{*2tHKejG zdZ{S#qN1`V&gHQr5e~T;pz<}=S@9k literal 0 HcmV?d00001 diff --git a/hassio/api/panel/chunk.b2dce600432c76a53d8c.js.map b/hassio/api/panel/chunk.b2dce600432c76a53d8c.js.map new file mode 100644 index 000000000..b5bfe02f6 --- /dev/null +++ b/hassio/api/panel/chunk.b2dce600432c76a53d8c.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/resources/roboto.js"],"names":["documentContainer","document","createElement","setAttribute","innerHTML","head","appendChild","content"],"mappings":"qEAAA,IAAMA,EAAoBC,SAASC,cAAc,YACjDF,EAAkBG,aAAa,QAAS,kBAExCH,EAAkBI,UAAlB,6gFA+GAH,SAASI,KAAKC,YAAYN,EAAkBO","file":"chunk.b2dce600432c76a53d8c.js","sourcesContent":["const documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\n\ndocumentContainer.innerHTML = ``;\n\ndocument.head.appendChild(documentContainer.content);\n\n/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n/*\n FIXME(polymer-modulizer): the above comments were extracted\n from HTML and may be out of place here. Review them and\n then delete this comment!\n*/\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.b60200a57d6f63941b30.js b/hassio/api/panel/chunk.b60200a57d6f63941b30.js new file mode 100644 index 000000000..ab55315ee --- /dev/null +++ b/hassio/api/panel/chunk.b60200a57d6f63941b30.js @@ -0,0 +1,2 @@ +(self.webpackJsonp=self.webpackJsonp||[]).push([[11],{179:function(H,V,C){"use strict";C.r(V);var L=document.createElement("template");L.setAttribute("style","display: none;"),L.innerHTML='',document.head.appendChild(L.content)}}]); +//# sourceMappingURL=chunk.b60200a57d6f63941b30.js.map \ No newline at end of file diff --git a/hassio/api/panel/chunk.b60200a57d6f63941b30.js.gz b/hassio/api/panel/chunk.b60200a57d6f63941b30.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..00327a3529475b07103a127b9da78a02b3a1af77 GIT binary patch literal 483936 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%0DRCl`$8+JDvHimw~EzRy3x2}BV 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
    KR|f8cwVKL=5)eL$K=j-?ZD z(vTP|SvmdhziHn^$uAvP`|3;YZROw7d!LmyU0AHU^xsyt{TGzUq^!PqO%fJX$2bt9Kwb_dTK-a# z%ai_`AHcDxd?uG859-Uphy{ojp`Qf?y<86gOmpo)`pO$6RDDdo74?=wQ7y5hzo*Ks zs={#UwzvQ-2<9mGtlW=eR%R}z6Kmedy7$w7yqGvqR%}&zDNW5ZxW|1-7)k z)xA5f7Zvfpe|r1j+CpC(N;$^s0_*;=umcRyL5A|_98EE7awcX&(wTbB^z#}x zCE59rig;*E>_a~Fu%YQiBl!52ci+CSDh^rIEH{mb1!oMT&jLBLT*GRtaSDe% z^lP9^W{mU^yl;b1olM|UBV{q94ur&91L^!CkAON+AJOTRW`A~-=oh)z1<8}TBL)@f zWT;~`B|-8t(!wEubi`8#SUez|6&f`!q@uh0f*COeAKb9ORDRQFtuj_=xax}wpU(F#lin6+kK-6t4gl`$8!9Q$#kc?gL#CWbcJAt}vJ zu%1;-m+n$lcnok$eB!*+tvN7&)FiAU^@uxDLZX5r8c?XW(l@GyxxP^t5+|m`Ei>m1 zmbBuQwD4pAk%2;6(6=8n`ASZA5A?-(Kk9go7G&mqy7GR|vA2kQRHTWHiB{GUpBhKc z8lIcD2osx*eYKK62C-w@hyEEB#B(`K^oh1}c?3a0^)YF5$V1+)Do&*>1SQ!utf-2S z^VzWW<;ZsZX5^w-Ba8y)RySna1PbMbjOnHS%k!k4zJ2rV;|ojYnlGN}vo!4$^p_rzezau@2L-^qR+mfM z4}EzGrH>_^{0OGR=>Ji!d%s0nc)?0qxA9D1vO?bFuq@(aR}vVcqgiP(amitSXnf;; z42>jM6_JL<8pmu$5>8guK^tt(}j>c?Y$mjo3VA|_^Rkzn_FVQF>rvL-ie_z6~NCUbh)HGZCDr_m3n zZT^pmaRuqrmbm&Titjaop8^SdMQL?i2w1{m%4;V^0IK*Op;FQnU#Z352xuxkVfV04 zlm$r9pUCf5q!XF~fE1~{+zmXOmYzr12Aqck$)LotXRt54C)?`RIH zmOcWh<3rq`n38s|Azt*VKUcjJLS}jxkFM(chy)${G^8Bdo(^#+{hXun;C+ahly?^9 zSaLubb}nYou3|y7>T7P`HVj~kV~fk-T+(CARK0|ZGzzF+DCS|cqa?+jLNcsqQ;|}_ zYW?lOX^bw`JcIqe}0p&@MtS|-Q;8?axb{GJ$0HmWZL?WY?&HTfgm&T2_ z)ofaS@3|5$Jkeji1$C3AthK#k-BT1Wdq+MLB-X`4r!$NRxFTYW2E{pYy_-m`D_}s* z$N3(k{*I>-9p>f__DcQPqot!h(>C^T0or5?o!lmAV!@0iv^i!Xeq~)Z1$fC}YZO#NW z;K|y`*Z28jSD1axu1}O&W}X>w2OQMXb+BP`qC=l>ur_ap0PN=&h&}03$>C1&`lSU& zH5FxztPz?f<4}s|r3}<_s=@)L?;mAzfg*DNUG&-1){zPIUYP?el+1SSN#v)$v)U{M z+_D-}^-u#k=?_9|iEjovKM&JLCs_PEXX3(RDCtbdYI0bVoLF*wgn%euUX_Mc-U#`u z6A1M~dkB)e$lNtHd80Mf8>O&eHzlJp>TnnyM(K2r$ZTVa z4Oy0B*}1+0(kVL?L?R4DAIL*e+ZhoCYMZl0YCFqMf9JfTw$UlCI+X`NtnUd(p?9ul zG_|{)HSp|Q&q-3Su4g}1B$)(r+1nzaG~_s`WZ?-YniCPHVGcP?`W1T0mY~z_hjiToT#t~Fb6*-?G^dy+EoHQ2H3t_R0?*x?^*M#Z8Bt_JC& z7Kq;6H80nk0{ds@tc#$7NDc>`opD|_T4xMn$2wX)rZ?E1blnmmNpIt0ULmh((qyEk zzp{pmvvx$TXFaiVi(nmD^;Pg?^Gj>=!n&wgPL~$T7Llj|=pwSq9?*9q)5k4j9S{Dm zXenikI-`lyb$eT`nn;&Zo4ucM>tJ&{I%?Rfr=o7mnT1j8YE*5@t3NgYFtgOu`?IHw2c0m%G%t{2?w>cS?x)|rW^LG47;#! zF!ivq`Ad|_jMU8wSi&5mx<+0+^S6w#?$VHVoe&O>g=EGdr$qC;*LZ2V)U_i#sH~5l z-d?|6`)|BB`@^q!kDs{+{MF0LV`S)_m!CG2gLG2aJg)1NH~l!rF2ZyqD<=+5sS}20 zEEYzPYHb!!`}P)2)kc$D;YkOskyHF&b34reG7kdmA)H(HwA) z|5``-bNT(>YWe-|>o9+In6Ka7=-&2nYdkGh4nAXMFje7c03w!?Lr%B6%0tmZerDJ_ zuUe@Bhb~^%F5f|Apv5+pOpOc)VC7DduDwjL!)RSg{LaxhiBc&PZ3Gl zcNt4CR+Jh?==BM|LEOulx)L0#*OscM>+9!wZKt}w@XcED6dlwl|CTIN)-fBs_?L}Q z=Ag*uPepDs0mWhBhC)+zg8A9KJcf1Oynn{)PJxEz`w#E_`nRi7GrynJ(8Vnv_YP`y z8oY&~lp(84eWigK4?V-@hvC!LDJ0Xmm%-{CS3TvKCQw*1F;FgvH7$5aP%ecO%g)zz zP3~;MI__P|J`_izAO!slestar_}nSyH-CHc!?p34f}NqJV^EWvB!e~y%787GQlc4U z8iI149T3C9L{*FQQD+v8(lTaKMA+wv_(n3j)%iFn+_f8_+l^a$5N;yXkX(k4Mj=AJ zltL#aQG6O2O`32h-~`?j%A>a#GU$$T7LEwfSRN`ON2TnXyNM{bWh3w%qC>we-NTUO zUVB~E6IaSxe!fZOGTNj$R0nS!G|RyZHG1=6ZT93;wAf5;m}u`IKiu3jY0COs2i$UQ z%*@DHccPuSns?w;zinoI?RkeMD+`u0K@&W0jL>K2OYp9rHd`?ltBkyEaE3w?c14-n z7^FB;B0wPqzq+whT1^3MZd5cWw?yNxE`+g=GI0Wm*aqPQP%QpGcGebVYQ0x;-@p6e z+5n*{c{JX&?QWVbEw|HTqY}MttKrgCUDsAJ8>}yQ`QxUlmgTy zR#b72?o&s!YVt5}Bnvb&CR~DK!#g@0D?&Wl2L_3mX;r(Rx~ta5xzW>d`4olB+h|AB z--(@`Q%h`AmHvXMNU5>8GWenz+kEP_@bVS*x4u^D6SmJ56=Zyxp0xRFFMPwj3i|Q8 z|EUf0qTgsVQej4x*Bb1Hw^#`NpT?2kr-7D8n=pQu{JuyoQDT_~hl$ZLV+x}`a%gJ^ z{Z*XiL>wSwViZD*eD1M!(Iflezw7j+WwwfMmm3(ANvh1Y>ZidgcSYk|Hr!zi)Fr#SEEt(Nnnp? z_uQ$rzHB?61_z(5;dnr8DIu>;Sl9T{99>Zo&bEsKY-t7CWhZ5`p?1}-GiJhmS$1Wl zbdJyVKns{JGr~d>@s%ge2x3Lcg*4`wiRKqr+3vy!A9ggL>Eej9L*C)e*YDqa`1V$q zXg}13biR_lLg2IDndMpdO8SzgKhZ8Y>8mQFmiSdLEii-ywtcp@a3DofBf;y zH`i+msIxg!9?(@rsi$&41emeQ9;oa(@OE}Jm-#TOZ{GZPJxBU|pgLZWd~j1HjDJ`P z_G1nU3X{qB7A*uI#w*!<_x|JUGubF{KJl$#+(=bj)`}1M>U>$oNM7YyNhM#CYCXBu z+fviTl^zz@sq;=X2dcaXH)>q&N$#%jqOUgUJFWGdc5&FFzSV6gaiW*?J;_w6qqx4) zPRTvw%G;0MT=8UApH*t;s>77!BvfsgQ~^962T14YD+JCFEp^MUV$A{tPY0B%zfaxTUoxR9h`99>{U&2)b7H_m{X|7eexj0wExh&r{mQCn4dM(}kRsUO} zYEI7QTFFW$D%rh~<&&(f*|aT=2#XC~aki+R4pZVNG5#=R4^u34YK}Mv0Hzd@z`ttW zMlR;}o|W1wg}LHV+NlL}hD7(ANz|uJ>*4^0HYUeP#pBrJSYKsa{9MMBS9lcQQQYt- z!6WZEy!D|Tu_W$hZ`S#wG7P4a2Q~DV{wwk)#SEC%TjvdT#YyQV`T9jq7!8#he-|LE z9SVQCfoLWAIC_(V9M=R*edfR5m2J@0pBA8JfIp=A(e;^0iSw zzit${K5*wR4+>c0UL4>;ser@_^~dGOzmWGUsdcc^C3u}@(=W_}7VnHkRZ~Tjyt`DV z&t>hagq6=HZ2Bz-vs5Tw$w2^&H6GgWuWF9udEH7L7o`4@g1{n4{JXhPtOM?kGiaZm z!7bHt>6ZpRnS@82;FW}+TX5npHxo4Si$fay!27xTEd1?z(rcCbn0x)Rxp!}H7_4$p zU40@-k6-)&|~N&>c&-GD%hW`I%s=JXyACE{=)D6b}7i`O6~tI4S2MM?E`@D#@`95+@tn zZAzmn$btf49^HA>qT*D@1Stf`?8SI;FoGw72i!SYAZAj` zyOrq2&TU(X`kTgSZhh7VJGpyp;(9NIjqKKiE%A~P#EPS*y708A zI#lrK*!bA&w*2XKFJ}6?&|$=Xe|LQ=sf!t767whfIFhr&W&@X3mx2pP4wsG#jhibJ zOCLX8Fn@Ua>8B4r+#E}o64gmR@4(wrky4Vl0J`yc13sNM;LK?cbNaYQ3cUN_uOI)L z9D)26t>#$KvUG}BkJF>_;p$QjA>cCMQgN9Um!DT5??jQ6E1hj}MGVUnVK_L{s0h1Mxu_!AaETF@c8u<_Au8GZ#XxwBavPU@ z(E~oj#3K%T^BJPPJN^-ei5LkNCB0-KoBBFGi^mCE7p%4Ybl8p5NE5}&FBUzmh@qHJU#0-&IoQLzpQUk_0|Ur zq$!XrpQL21vp>yem~E@lRs#sCW6D$T0lUJ?{8cc&rx2Q&uhEe_TVmnR5XbET-Li*O zgewS75N)KK^jGU{egP6YB z)kKH0>DH>6KeF;i0Z$Yb9n6CPZLsBnl2TXpiLH!(_cOn6dxHNK^qZcSA2bGJs%q4o zE7H}fn<{vu#m&JsAFLY4FM1D^81b<9Cs7&$O4#Wv;6o_#5?_k~qO)d14wDn4O-ZP( zPH+fh@nMls{iK~*O@6D`IV#O^M-#dNvz?J$)oSDx+NH-FcC zj3XBuHTz+|_uOL+CQ-T#-y{&p|JBn~t)WZz& zb&ph0Te1?hok+$aU1ghVES0i#5fDC#EiLl}}uYjIxJvkDPAqQ@7y-SWkxDKtT zF{~zLTzNR4zL`Mu(;_UEz#a8@P55ZOvkM($j~=FOQU3}oRb9^Z9Fgx)>ebq(r5a;s zkS=6~er{;nOGp~(Grf#$Tp3UqW975Xd{62l*}R^rk_cEEuwHDG}f^9U6PR+x651r!0gq?}KqSA3)Zoe%6E?H=c`f>~S!@Iw{y*2hH9isk}nGK{zgSeMDz4K4hD8MTI9n#wi5^+qos40QmK(@ZuG}&n-baDR0Tpqc3BnP zW{uveZ;saG+k;S5ZA*J*@f+>RY{2-iIKsi@6O#0sWG8^%h<@5PhayRGkKg|xx^BHEdLC$-4k0AU(lnKv~axa6JGh}6tD zCQE~J)VBEE9SoGp-uHLzb9}BKUcxrO*NjS${ z1hC+jO8nu4$z7rdPisnWPDd1Vs98|1)dp!zjF}>bGpm|;DOe1T83UdoTZgr>6E6Yj+7*t>-N^^#uczy&)&3Zb_7z94&ZlU8s5=A$kV6M5|fBy;kRS}>T#EC z|3G;c!PYP{3v=bV6v8%$GQMG+^jpJ@->LaGSGlvuQ5~>gGkfJ8b}CKNPgBL~XPWrR zlhUpWO3Jvy0Nl)yGs74bI(bYC4FfYgxL8>@SK)~XD@8>0x^4P;K6TsDU%g`!6mM79 zrV*ekn?7{2CQk#{M#xr7)oc<-luTK;t^$EHB;k%NMRYV;Au?W>z8Hzpg)2!FOZyMA z4U=e4#uk4qgC6Xn3^Iiwo)C#u0h}D`dyRxHJsI}F6*UhtOU`NVaKqb|qqB|?t}ifU zFO6lpG#6n$?M1AgzQ*SDwf!ZP&<~wBh>f!#v?71R(v*R6xM$5CE}+&dj32Z)WJGO_ z8Q)I4!n3C03W zE8M_EI8NYp5H4VJ73Cz{0?i)Yh<2z(S@?!9ahBbK1{`7BGx1#+6nJ02lNn(QBLX;q zEBIM(A&IqoC)sRO!^B{iplnlScXQZKfZSLT_6t{`0<(f$o3M(#+CReC4IsI7HgEzz z3nIOo3z-qc%N9~CI|Ua>UZ*c;sJ=lekfjlY;07SNfP#8;S78$-U%Fw2sTLs+1p+nA z0G|H3x`#!y4$LRo!l9X&8e7+Tsva|kNr*EBH2&8WT$7QMjXMlx}~_0 znwn?+ia9Y3-%V1-7^zXTQlZt5M=RpH9~-mXLB}q8>9WA7D1F@}*?biV5A%Mtongjb zCb~0`W>y}gloXrflXE>(v`!mU7;q9K0CxM71eaHGEx;y7*q)i)JxA=q=mU4?Q?0(O>z|mkZ&maEc?Ya0S!fv)v=u;XNb_i&#V zxrEWpZ-(}&y@oK9#psm5ZV}^Li!fC<2f|Fk(9;}(ym=Dh;3AVlnL8E3&ak_tlwKF*4B=5+(ziKO z1(RUVY8FS1FnbWpobWYV3sU%kk^OQe0R=FFT2O#Q=1r~>um~2QPF(D`8=y>Q6y@0k z<>o3%tgG^9dVX4~TJ3{#O(hS&sj(Udo*i=#bn8dhTQE$1G?p2=+-u9K4|T5tiwV@{ zqVfyoahR@Odf!}d=V3dLIf8gGVrCAgW2}gOl7C3RIxi3;e;TPG5IfIm)F5=kW;{`o zIr5natYwt^1xi^^9cSE%Ukv5ifl8`H!;}7&XD;J48sVB{v8@3`a$HfGK(pVt*{xNf zEM5cxCfU+3N@7qM%cOEXL>5m$St0wFD9g|yz&Rjov>q70y6VWthK2)r{i;wFnu`dh zkr(|zD4%V>!Dexio27t z#O86a>7}g9C9|XKC{{Hq6pYL#LJ7!kS`sf!V3@9E@6VpIYVcYOo7UOIbkS3SY( zLc2;-L6f2dA^A3eco+xile(JHWf&mWQ2lO3`RH|$!Ubc%w?MIcq@ESOA>V1P5m1~V>CfNA1QtiGos_On3$nM0KTakf6Y58ar5^0=u0x2V8~AIFevRG3#%~!P902XK(}C?0E!RUpMZCo?Ehl0ArPN3c}e_Y6S;! z%EEHq{-%ENDV?p2f_K8e>Ny`wxoQGOug{#R@B|DB5=n&x-U$0bFKqwfS z6PPMZ6+9X%cpBpQ?xtld(l;yD+moU1-hBP`S_cScZ>!GVSQnUlV6i~y(w&~SA}Hxr z1ZDCY0T3i87Zb*>Px}Tk2b0h3ZGD+(eB;?=$8OQ;;3Aa_CF!KU#bJ@$H9i-d@Y)5M_6v zaCf0_hg8R8$s?Of$HW1$m}!U}%PYutL#P~_*oIJH2;G^`k?WDo0jE*yK7=r%?>l}_ zUxIvvubtMfEtLlDJ+uby^h4O!YMcymhDEGg%lBp;w`FOq3 zW@9Sj;hY&TU$T+=6(LJ{{l~oWr3y5JNHKm(HkXllpF) zd5|AS4hIuYFcVKq5l_M|$^Q1AU;p&io0qXvO3lhIS&-h(II)tTCod%vc$aa;T70h89v0+*g zAxK9g#8Sv{LCsVk8v|vPn?m-iP_MTSE|Lv>x|~7xkJCBC{Ds% z&j7rtWl`I>(2jklXtZroIc6o5hm&N%9BhFLQUdy%PNb-vYa1D5XRhBn9pU@0ucaL& zSA+ruqz9x;B1xe}J7p>U(J~*qzI!oJw?KkDEwFf3;CI+Ix?pRr5}omJH)|E|+^TRY z+yD&oYX|Lku#OEKL}Qtm-O=d{Mn`~$Eytd2`f&&1o z7dDI}97aR=<#{-{sUNTTg^?kE9K)I=VaQ{8)gA=7#x+;MkTThZcG1a$AT2|hg0O~! zGioCz4Ho8_y>)=A`q_)Id5LDZ-0byZSFKE}9Qh771i9R)rbSEI+i$MaYvo;-otbV) zpnI3}1ZoFGc=a9HNG_D4(ax{K9ZtXXl;$wfuy^1FO#<*c$wDJ%ob>cMD5QC2W0j?{*Fo(Loghg8E4>$zwP_6_#&wctG%z>XGJ)=fauXC#3OJ15#WuVOWq+e;oH8 zx-Q`5uF>(3R%Z>RI4k&F?!N!whqvE+x_(__{-Te>{C$GIu5r9Hq}<^zEyLmTYyLV7 zds~AN4-7W^O~|6RgTyH08k(PTiSth@=NF(f;SykQ{%OPcCpiD~fb;T=4i8v4KhkuV zG1d;wKV5VF9tXdD_wf(G#D6cV5)xs|$~-;f9_wKFv1%tShYkc(Ys?3m#SI?x?Igii z2OMfSs-2u10i8)fpsACboj$L&eti4Gx66y0e|vk6r;zYe1dv%N9mS6>c!e0G{F6?XfA@XHw z*MgnpePUf|DXlO}-{WhoK!OO2u>#ub#({h*N{MKup$r&x{#KqkYFi64e`1Z;xT|ZD z;E(LQQ=EG>c;sa({8^TjhTsj8*79VA% z1!|$_UqtC9!N$(4FR)L7)(a&%mkc@Z#7Gm@6qHR{zlOw_c(&^-xw5x-A_svju}?hn z**{jNAY-3^K}4n^9J_CS!IUmc!oam^AGd`cf4q_IA2E1k5k_NRMd-%h&F5$gl3y3( zl5w;I3!eHcUG2a`&}3Iqj? zI=sBYygY;V%eJl79-bUG1&n(ui(4)3f;|FRTS|D`jz0eF&4=rz6fR9EY?@NoG^KE9 zN@0I)OAA~ZQy-0~jmA_ijVYfSQ@S*!cxg;=G^RKjQ(PNUJU6E7#x$K9Q*mQzZcKe_ z()Vj?5Lo+;J;76sX@)&MH*blbN0voVOgA75aIbO`)Ha9{xA4T_0y@msm1 zkOJ#d;i2ea-U^qJ05Moym9zN@A5iUJw#8trMj}lkSsI3B}cQ2}LqaGyam(Vzc z-~^tP)-kcjl8M^n7a0nq#|Tt*Szt4K7D@XGu7VSR<3XL36rPpV5uq>r^OP;7oN zfTx`>un3kSJSoKF;#wL&I0oTB2umqEApy$RvA_nT^gIS21xsAGkU0uQs9U^6PFf!% z2{wxoYZz1Vtd92G!qND1;+zFzL)H}zH5AL1$V_hsiw6tWNjQ_~(9ndD1tf04#uCH3@2JxR9=FdU zu>J;N_1cMue&*-$^XyeF69kAYpo(j1!dxnd75aE(f35t@T*#&-(C4RU4@23@Wi=P%OqF8 zrup%>`nNY9|9)eagw+pnZI$Z|z9*S^XB8B2)R$&sc^(~-)e@c4QKx4@bE7wAbyNj& zA5J|uIe96<(NEtHjz!I=->p3(0DZ#wnIOE%@ECNUDeEcP8V+Z42R$zHr|-X;Zmw4> zswxV-pc?Wx)T|T;B~9E~aeDec=t^G$eLW~5qab5Uo;yYPmT_#SWULG-ABS-3clv+jA_^?N|i zVzxJ`&BD4ho#(5Ntm(-IJ+pB4lTsdpV_EEy-LcbIG#br?kZnvGk*lLXd3=;+>y=G7 zT5dH62MYozk=D7EBZSgOAPs>%3hwJ{)zrKNxMaP7$B^Nrwu^&pw)()68DY{J!~8Ti zA1_#3jd-zL&`kR%h)nOHy)y0(XJ&&K1buf(>)UNeI0l~YTH1Vr8Pb~YR9G4c_DFgh zj}^AJLXGDoodA*zEJ?RG>7?dnXYc1Ts zbkCODj9th+hIKC$Df=+Qow)$_7~A}?YA6-o;4uMsu^UOmi z6$GU9S8YMR$jLGapm^QcO>-V6v(-YVuF>750GNzod@2)!PT)SSp#8Xmss&G4OE3cE zv!;YN^ssj@PnqF#lA~8{`z8#b+9S)ogEJ8m7$L_-@H*2!SgdglijArbsUjP*>XGV7 zUD&VJQV?!_UL%<2GeR`^5_C_ro~ZE!^MX!|DUyU>au1#b8!-3@#jtyGq2twI^W!%k z-u-wj!|VXG9IK!Jv3?)5QmYnV$b)l37BkRV2CVcT z;G`O(9Kx2VNs~2Z9B3oLiMA63RRH$yYz!_q)p_8!O4JFKELaWMFE(Qa9>L~C(ny4p z2S5JiOp1w&z_kinOkhB-hmHNF!T0~hN-)ocbpP=lnGFI2PF~uwKA?ezgs7;8UG~^L z2$#0vO3Pnyg|b|zq7G#P&q_HNkAq)UkI>L*F6D5k(#Ng%yPvM-{ynCtns+Hf6py0b zIubI*Ti5~xfmOtM799G+ak%m2oeu2Z`VhlYrkV02HH?hx)|zF)5M!;IYfR@jg#yYvjfGf82U?mhj5x}KF8wyyxJAr z3aG&_3P!;$l=H0cf*frt0l$M~ZCq!sEu+U#zX)(UjpLPL738ss12kSc6vJoaiqzFj z!L#T(CJot|N87U|ssjyED@OSzO@6KLEi%*S?{&;3)oMdbZgO9nY`ep<>?pbLSfHsN z^5O!=rdj6@30IzZWjcBj1Wk4BW3N?lH18N2EB4&xu_8=C{1OTxa}s#YI`F-e?`SP6 z^48M7jZ!LcHaeNac_=WBb%(lqVsWu zhwol4nnqetiMrqya)5i2+JPv!whx-al`ivGACeCHcrZ&d2 zkNt!L!~5{{BVH(@t>dm_WnjAsaDigW1ZTD{#?|<24#O@ z{rbY&5mAQEWjk+ARCnNBgljP7>Pbua7pagoYC$BiUS9ZDZvjqB_cQBRIw3Ww^|)dg zqO;NGB7Jz0IVTy#*layj%lIK$Li|2%QuDy3OL$swRLuE|YuyoExDloe{N-Nd)}JwL zSn|&Cjh!x!%}0J4I*veE=uioTs$-rF=r_X;`gVNc;VHq|j(Ba)rYEY zv<9?HSk;iXPN5oF?-dXg3Po*eQqx+~&^DGsk}%B|=)+1Vv11VZ3XsXlDl&c0n78=E z8Cz7zIa$kjUN`X^>k6g~JUDreldN2on$NUy+TwX^mCFz>uU^H6ErvaZOEDf+*tO0= z-pq7eZ2_<<$B(RoJdG#G9L8B=QKrYWlc@7G=0r2~6L>tW96~S+ITB&6HJP7@8PyKP zb)8tkAfMoGV{naV-7+16C?#$x2iYh6Ia&lo%ESC@54dxBJS_w=m&}GkK}%;!&f_I~ z_R&5wUy8ywds(@kgpoK^CZ^O6(jvH&EuJ@+na}y;fjzSuHy=&!`-1Woa?s1zUINNb z$P$qtN|1~w7N~iJmj(kaY!QbF9imwQ{512|F6@p+|KbPfO!qKzOo93$1zi9VZL(8KLrQfCR881n07v z)yi&7Q#Ub_+KPEnhJuX+Sdp)?;?P_(1?nR;ybBQPh!>grJfE_u8MhsQJ3$%tm5iF3 zeu;w)FTL+rwWb!0Vr2pO5R{LPGX$7I6?C`8(GVV4s1v9Ay-0fUizE@i<0JA@BHn0> zI7j$U6gj}oW;Ryywd#&R?jl;*>cmnBCDsb@s5G! zMb%A~m^*fV_t~jF`vDO`GXt{^T*C9gDVGS>$>3kM!5$Zw~bsU7zJdIqaF)J9ASGw%Sf4uw4?XyFl zc-P2~!oz`mBPqccc}A`fE$Wbdw0D?RH0ek8DqXvH7?)oWRGE`NpDVtrQmK6sPTo#B zK-lA&{GL7_2azpmRCSt*zD4rOTC}3VnfsoJ>+v{_#;SWBDOuY^RC8w`gy!H9E+cHd z!W?1+VI8>gI}ExB7l!Kywt_$Js3OoKI`fuDms_M?d1UQRNr$c+Val~zaT6_wtIr(9 zEr_>m*103>(HvL=3s?2U*9tyCw*Ar?y!dCcXYVj7j*a)FnosFodH)7j&=nACeCjgZZ_NyCTMjOJ3YV$apm=KdqT+Fh|MBjJZ{PppYMGmqQ`l5nG^e*N>Ql&) zW<9ctf!1`0a!uQC)aJ%vNn1TZ~o(2DF-U?iu4Q#1Tgt;{(H zwKJ;oiYB>5p)5p4HXXg3%-h5?}&m(<(T*0D>+Ru)3&%jp7S+ zp>Tl~l{D{!%+L$0_yZfRQLvw3#y<&>f#Gz9%v2LQ9tf=Qq^3XP;0|$y6R-&;VsycI zMR*snw1R>l-i8_1D42jrFcKgO23#jWkkU#W|0>vUZGsip1&adU4*@j@W?%#!SoNcz zRHz9C7AR+gTRqULi8BjUrzF@&ALvXKwnP&sNLl1RiUOQmK*8c-pP|E6vq-R+aVsP* z3W#^L(=A{#zVD;rDtcvy9<@Gdb`wC`7&OZ0a9#Z4Spg1HKE*)vOORvK=?!C=trk+K zfWwpz>rrtS*|{mr)*?xGmPq-{{Bufy5_a%#%T96VTRA%wF~HF2Bp4+2g`4+bb`@ zG~9|QSxmRy2%il`9nJa_k!{hMi#IGu8{9N)yIM-i{(XO3+`vaR~4OcFv^9CW#Q5}$`MxjPCgB7nR47) zAd(zu{a>`^1ws*>63c0o&xS^&HG`jIz%L#kxR z&7#g&ZNb+{+_ehL+;`%ZEI~hYqY!8RQbPn&sfyzQEwTn2?=u*ag%>EH1Y%8e%W(>a z+9lE1MnY{CYrNa>2ppAnG|BjlJj?9Idh{?1xp=nE2!XH~;TTeE5wrmjkpx>}hKoLW zV-PUy!3PH5GGq+pOM_3{!3Xr}*4UaE%>o*DimNBGU9sYMT|01lOqvst$pJp<=Z`K2LpzMc$4!)(M-l|cqPQ3gM}*|SAb z%VG-@T`+z#>zW9MCdjNbOT{+0*Q$S9=7Fnrt=ie_IFS|Gez%wYdGk&D<87e*O(OBu z|2mPTG;YG=>m90T?4g=at zk=2lQ*{+i{YxiAymR{O2ocfsG$ZJ3Aw3M7MuEO0;dA8=my1Ir*fe3$OQzE_2Heo_y zS~ZJK9Cf8kAek)X?i4pB3Iygs3N9ZdpXnuzg+=OuiaRT>@D+s)&c8&^SAWhe(uebRd;;&!;vFC1$8jcJ*hEWkULBe7^zX{a z?**^j!o6T5Mmf~}`Pm3?azk|M%I6E${o}B7Up@9ii<~M07V2x*H-1?I|9t!509tw&)mfU=|9}a%JSP35lVz3KIRze-ti1(>kY}Nhn(-lp& z6+E97lm)b^RENyYuu>7iUhhRq!IOk(9i*m9c|v%N)Z0Tz z3v?{$L@};dHQaQ=Hz>p49jr-QT~3_LUsyxU`cS%u|VYmIa z=tO)KK5eU8@w610u4--?cNn~=Y_vcc2_YZz=B^4$#EjYBG$fO!WGm(BW#4m2!+#2+ll-VA|gYhizc46a&w-<(w8rU}UwW6pz zi#lwplsZ<$Us}Ov73civKZ#=bCNoN869HhYNfoiUtb}^R<+~h)w0p(>tTG)h)L-fZ zx3%_eiMy?t2gLsP-F3(2bt7{_MfXM*j`4ZZ+rjw{)8Rk7{r>%bTyr~*yXV#p{C&dZ zU`ui|El9x8m#`yn_anLCNU#wY7gA7|k*pn^odc7;QrOV&hvC%6w{Je&tUxTx+bob$ zCqYgWtiB$gBRc(}>mc|9OiP{+a0`S$M_sUA^xC`PP%Upv+Le<6YcBBqwyVdd&PBkP zl%sR#tL3q-#EC4R+`bw<*%=PfCfwSfrx3o65dFB`JjX-YUAo!MjO*U6&-|vi<2MKY zPI6|;EphQ-VdtFOG3#{HgL>MjyX`1m_YgjOtgPOzOI6WPn8Kh%YEZf7J!Z!NNqZd% zkQXFRhf7|sR`EIn{kB#8XH~Bik#A}meax5I?ckiv5@C~?s_=dc%}(JwbnDam(>Sh0 z0u*Ok7~;*vxg|X6;hz?fjqh%EVf%&J>Za4w7GbAbCk`qDu6r5@MAjq+amLKUO~noo zkFH3q9PlR`9@~;rG=fm#D-Ns?ZVUVN&9~A;_|3bkn_TMw(na^oIRtR$ zSN@SEj~-)5Vj~(8MHLxKSyBZQ|g3T4&CNoJ&AFPH0kpiU^vCf4p_+T6ZC{ES@*i z-w2klz+4q6_Lp4z%gsurVE|h4yW>?lhlkeOG}+>-k}k^7#(jkR=1bH6t}TD&&;=!9 z!Jjz>RQ!qCQpsDEpE*BOeMJ?FpCqRHRLx3r@V~&hK8eBO&;PnpmPMT8rZ2}}u_U&R zsxlTD$qAmU0up?{rzwyWk10yxH_-oel-3TDTqMSHC_?4XeKgt+4eb|RXsVp-S+$17 z*TPYSMSWKSiIH8fBdTiUAPf=U^tg1lyEWdv`{o0k^@EO`=-6H8*q!Ov4LWugI(8R2 zb}Jp=bl4<+Bq%M;YMBp{_1LEjXOy5>wQDeMXXZsVk#mAmA>0ZW*&p1eFywOEmj@78Y0;Lrq%BxGTeKDd@XlV6~NLg$*=qGh)6#Tdw4X4xvRw(%jvZ`ef6T zC5$S#uw*_X-|Be$+~R9iUbu4%b;kpzgi)u}tZf^{rntxOjd?&kK~d$HIE767(P&B8 zxghS1%9rUWjT5=W<>*tj_@$J~`uu39 zh4sT46dpYd3q%So39t60bd9c|^+w>!`c%*Fn;k5M>tqpLRZw(JT>?jGU{vTR)vX)q za20(@sgUI*B|XdAWJ;)e47hF1(67-Md*j@DBsYeJG8GL*mmA8 zRZ|)b!OwqNTh+DuJg^~SG}!MQ9VM{ZtTK9yg+CM9$&5Q1UlB8{zWp8BzrlZQU6>um zMF*D|!mSJYoN$~zg>m|nRorwi!`#wL)38wOXWqysR#L#?Iffto(w9buJwzHG`7@zL z-qtkXy#^a470S6~$QKnO+*Jy&9JVnH2?A_VLe)uQ`n+gB_ zsJCtAO&Tv-;kPduVSFlI=BGRw?-CI)%Yy1+=~50sFeLB${{{QU#%eLFbwe}C+ z3NBzNgLObvq3MCnYLG3D!N%KDWF^+OWy^nAPWFDU{=@To3M4>sNlIcn$$m4WMNHIT z)~s0v)L|Yj7$zJ2vhnb39r^aa5s~ zMBObD!o~r=N-CVQJ!I`vVSD|o$4gSApYSyq?j-=p4}>2m{C?h;u0_0>{Z zU=_bfeOld7kJdS?`?J@}kRURJ~DqV0{2->78a8h4)xA&aG?m`k1`q zS|Z)w)2ezl*{qf`LkNU(|j@ zCV!R(4`%*fv1pnHe|4z%Jzx~WUJ+-v8n@h-9^WwL$}O{RkKrM!*RE1)jA(CGIA@3p@!t2DhPyAq6HftA@9l*tHUFb0Pl98w)%Bv$v0 z5iF#idh|<;`j>a#z5Vdd8_rfmKjZB|t#>5k5xI*?*PnO2PDeK1V6%xIKBu^byAK>+ zNE*^zsIZ)8I&>R%(kRv zn^PU;j@)S)TNF0o6XsxSZZL4oV7ObH^HCa?eOK%!3x3;MeA0ay7Xm7w7*qkoABCTL zzgg(x0w-xs zncdInG)bwrX)#frCl)w-^n#Z-2(%JV6%f)xa{u_t`#;_+rDMMfFtO82yZh2)vQ(Ow zm9-|ruW0n?^5+C_EW;yCb;$=je&?1=}qk1y8h)tf)P zzqLR+*i%E}D$93Rp(~i;(==m4QuF>;to4))T>tI3EbD04?yI?8fES+S?Q zdc6s&+na#jnCD0PaI6YtAWC7jLej)w(q6PK;{tE2u(bh>}){o zm{l{4PLLod>sM(r8_~n83l;@TPNAn5{#jn%ouuU9w_v9aqcR6Ou<6(fI++FYl_UCH zEB@_;9|3F=XfQEjH1nlH^bTTvf7=||$W_R77+TLHc82-FCAdag&}HW_z>E?rk2 z(T#NlgsQTDFZ7LmhdqpXBy_=#E2_^o(a%4<`*^ck58^mCuT;5AYMVsu#{~?>CLqaU zwptO5=QgNI=u$5ffz~dc%mG1Ir&TW831o3LmBHOOs1vITa|o;k$|^NeDh$hOskN8t zuXh_J{ZpxcDz#loZ7OvXG^$jj!MaHnm9bz|sf|)mlcUsjEwxc%!D|&uN%XOF;UzDl5uU zu(7HywCCqL5Xz(+y&2hF_=2PVb(rNBhFP3@+h04wrGp$N>&)H>J-jT^KzPXZ@C>IG zP(Yz$5wBMKyPD7w%HKaI|NdFvk<1jjj zD%qW8+py2%)J`AxqNPoc5>6*AGjKb-PhXV0{z2<4iIni;a;tK&BP?3+^5dA19mF?z z$VTEmm&aa}9yqEdEO%O4P)u>)r=wu|C{ZJkb6YeXFsMh{)?;!NxMhw*y`_r;hr6Ow zifCZrx2-zD!DlGn)TJZ;LNk6&l!+T3Nh=8`Dn>vuK&?u*kvZ7}tmj7$`rb@j+~n>d zqqwJ6!IrT|u9niT>k|b`eM!~3j0Q8iPcdnMps})slGCCEL_!Kf#fdQz+%mK8j*^9$ ze2=x^;yCACV0M8#&B-}JV!{-hief-Brev34!K!j%)ox1^AcnL&57XZ;b&P|}BgU@j zk4Ag$hUrE1g>D=*LCZ+llSv#b zcco4KNV6vKI;#*l| z&mq}q44gexcpmU1FpoXK2#(EEFl(FHd*<3Pd%yhhuz0A9wQI?H8AW%1`O+n>y=3h- z+pcu&VApwPzVt-*%-!rWZ@TfNXSA4-$w?D;a*dVz@S^pBE< z=Wfhi$MR888sKV!>%ia62G{9t-b@|W$%N_Uu?!|6577&GuIrnPKHD8&5R4+gNRlRS zO?~1*n>)3*UL5BI@b!UhEu?z946%7L?zW?m(TSM3>r}Zo)>EC`3kLH7(hT>p%0j6? z5Wc?P9bY_A;HP$K4W1>Ts2pZur9g17aOjob({(7#yAjrh-E|Z)Cbz@1kKD~*zK-y9 z%+Ep2_RY&wvYlTxqxyKIkO6MDtRhtF0^@Jxu zk$U0k&NvbhoW_8L2?NhofhfJ77axX6`cl|JN}f*qdG#@`Pty6sPnMOmbydMND!Eh= z3#}PB=ZWiHA&L|{!myvf4D^@?DNbYH)NP7BSCJ`%eX|=oHM)~VVM}fh@@iuS3WlEd z)IUG7C*b9$Tc1(Vs`v3*Oaw2uZTJmOd(<17QA^D{2Wmpp-nsN?!Ltcp==_ZP#)?RF z5)-=7|NbS9Gw;apB0N9BVN>?yw*Ks*mv1HBlP=qS7D7dZePs`@#!*H@ta=Qvq#IDj zVG}2V%iWs*mE&u&t(+^nVS!izYvz?x7tV2{5atVOuiU=202exJ6SXBmZ?Am)QuWKN zJ{Qp&ySX~t=wo-y6Vh?&2InwR#I2Y+ei%m8yW>B3b-?$M&lPN7=Er1FaZjCbU$}mF zo83Ql>zL?*Z_wyw?(Z5c=XIp%!!Ul$h)EAe%=1^wK7ZGG6IaVcr&@N3HMogcI$lQI zbQyIo54&+Q?2`Ir?{T{kcj=*BYcd9wxTuY>`V3*7SOn22COu2hGtLub)vhdQVfE1G z*v;sH5@le7vG_`XkkYpmtq888;F4clIfl?(RUstH(lN7iT+#^4Hflx^jqPi4K4F!Q zRc7s|&cNESo~CXS@rbcNTwHQ|)q8q%=hq|Wc>?`v$WCE48_5__KOI-oh}C0Z#eTYU zW2P8nQ@IMHjcF-*Y}E_PqUsrIVBhCvwo~ues8nXD?Fp&c`LH!s#b8mTgaQSVoMnT} zTc_qVENxH*+j3*SQP2z4DOxiU7M_**+6(RRS`~eI_`Z2;;M25^7Mhn2`sH+-x@oBK z)apUmHIg}X;Olo8tK;=B9&tP7C_*-4-sAbp1M$%yd@zBGcN56?(gbpHi=n+zb-pd& z9~>2} znCk*%x-3x2=hi3pGRtwExOG>vHMuCT1Y_nlDy!jk0vAdftvUH} zT-}yg#NHNvyp*uZxbpAAc)MRhNhT^uD3%zIyogKt6|B5a4NFDc!n2AiNs61hq#-_D_DE=H(l+!lvUQikZbx9pE*(X*M(_k?&p{E(wm=T)Ze;0)(6t}-TFNE_R(^9O?9$rl2RP8 zia^$Qa5~yHRp-5?{2ad@43K}tD*Su)g%B8Zh_^L6__}%sLDRH6lqlM~QqShJ91ZvU zLM^19J)7=r`=Ve^VD6c(ayVPzoN_yjkbYE+ww!HO*`CcDG*q?Bo!D`EN!A}_=gm64O%y!6RJV9>P2ZUF?XF_ ze=8luY>;f~DI~1i)&6N{efyWs!Gl48r zquu3Sz*J^~4U^=gWtV3RYAzLwd32lS5#Z|!V%1T_E>7qI)wg{#>L1b-9?RU}$O4ih zV&xV{KhIt+m4VdsxORn;3IIlwm-K>bGZvUQQz&c=+z$ufNpNX~xyLQn@VH5TC>>Ah zjvPxG0L9CmV8UWU)N;6X%`Pbr$rRxxh+fOT8MUX@Qcu*le=CLAHq>W9f#q!Z(k(wuoo-BezXD%1nmzP(aL5kzixbYR2fh{R9Epqtb@4Cw`q+3|7I- zm;44{V2>}ZpTIW) z9%sQ&nJfVWT>i!{LSy}rEaY9NNfKDK(C!z_r~g%-gvw!mJ>nh@(_Yu={f%D%8%{*h zsdxh`&^8=mI_lS(#WEAZT-kTr)HM7G^CpX-|97X&c)*G%@YR;+sPO+xrw{v!o$36) z)?@x(?F#ZJ(4Aa|iPItECmf<5B}L~(^3e`a7N?5Q`J!4z!4A=nQz=6E2vL?tUGMF8 z?{*ivOIfIyV^6K7M<)O?&1tRiL@_vzCbo}3s!+0PL}cU(+4slFCd61F5TS{V*# z4wFN=r-TL|WA;dBi>#z=q~6A-w6PjlccvxBr@DDdH*x7DCOo=)-QkjxBa*h* z6KBKw;;{ecQ(4>Xit2zi4n(ShJ$j2T*2tRx>CkN7k&ySXal|rONYDJ9h4Pt5As*}O zgeden3OY2!%kL*aSf`N6AZKa3GBe8iz?Kf{yWn zvdvm*Hmo7z4~NSDLDgQ+pNjQX#WjpS$5Diqxx&(_BPvx5E6h*lf^hUEy2I%hdvycx>Rqbtrl&m`TiW*TZFy_jO6LXlvu=Di zV<>#FE9>=SsL2?wHGFti-SISHi(=Kbdko8-;WWq4V`3C=5TMC)Va~ijBi{@L8`nOf z80a~uw&#Rd9fbhPka$t9T%IMG*j3^MQdvaUCm3z_V8t*pPj2*J%?My`W4z59JM8mO z!OYxcUco|&C@=>PQO8rv%Uf?@r5xsbh$1EfpGEcY|AsI9@kJfXZwY zX`!^5P8e}LZjA#^3?VW{bc!U1sTU@K+Iv9E%EiT1oq8zVsj3;PT$)<-F5znsGsa>s zj%!AU&|O zPRh=Av;d|u*FGW8jj3M;^8%jf*LuJIAbxuL=EHtHhf)WGbNXU|ARF>)K`>@9VHe`P z*}XFbhsrMKadqoab+S`gU|_R9Mo16Gtfz(`2N3aD+``s1@wk?H$F2{rmv!Ht zZ(Z@8wN=+R(a+wO)tmS+Tq1Ab6RO|9-chx+8Qn=zs+6%ppV@xC`cBJDcU17Tu7+ z`;ziOiT`!O!o5jEePCw&CYBP33${VY(k2;Zpf~TJ(G_~T0GU8$zXXaf#9sGK{MF&g zCPZ@M@=wE@Hu1@BLwS{r>I89pA6T zkkO@-O-1vzN`w>}=iOV@rB0h5appN}t7M+3!1xDG@IjEKN>0!WQT{TQpQXhgiM6ghqZrm+ZiwoKTB;#^6^=#zjK|V=G{6(J4D2*O_R4iluU_? z2bysqw6fa73s(Ow9K;{Xo--=1GPe2puK3b-ocgY5(k~dsN_ryUfr-{?qda0P#6ohu zwb>m^`Exlh&zndxNCLB=esJxndGn4o!{)u+MI&#H1$4V1@?kVCHX@TKbF_Uj7eE3RPJtCwb4&(utjk*To0KEXR&2%1F_AGqjdmV$>=Z_93{Zqk z(XeHw28ex$UIF8*-vTwJsT)9=O%T*TmD2hGz_cdPr7tq`VQ>382>NzQ$&Q4tZll{K zdelPK2725+Uu>RlzrI&!SmiM*AG_<96$yw{CFX99uNyZ#e5@pAC*n}hw%lH_EjSZm-AO@dzS7=#4Xd93Gs&y6oL<-e|JOEpKItt#rA{3jH z346j()lz;-Ri-nwo*e-r60BJsd!z~JpnW~|1&5oGL%NF(VA+4G#@)A$RMYl-x{n_p zH~sBx;^Q^oZ?@h%X~p<(-T2juPDJ6#bs>pskdOfb!5G|qVXpZ9etG+|b~pe23+%`N zRQGZc5+EOmCa~IuiG^z;;^Ac#8y~v{Ww?TE?jTdJ50!1Sn*)QVZhsbegns4TKFbY<%o;3m#th@!sh+y&-fl+1K%!!LHO~EY-M*2EYy4T~y zGL(cjYNJmHz?f%95u6evlK9XJn+q4vgeQTq3Eeab7M)S&UYr^#d=%JxY&9946&Zo4 zj#Ed0AUPDJNLetU5io}uaIRm#3U8}!0t+Clx3qPwO4ps54P+5qeEHf8Khs`T#v{P@JbdPxNE25olA1I1bqIPx9Wm%N>$T`L zFR$%sQc`;dQ`&yBti+QNPfD!!yu3@ihvYU1uJj74#t)pJO^cn(nr+V#s=S4dI7 zL}d>SnI2R7&}w2@$c|yVW=^+c#~`wItMOa18L!T`V8bQzslNujrW1;#NMw)apx5#| zQG@YZmbYnngZxpgPU0@VP4b}h!5M;b1Z4^2A>=`o|GYaihmY8jPu9nkiankciBPnJ z$oJL0ZNJI35%%qMu$fTmI-RpXe538VRD4L_%X+kP(iTJuTLGxCU6s)Uh4DFkrDoe4 zgR!6qk*waPIm^rPcJy};D`T*P_j+`aCR=e_vun=A90_m74TcAm`|!)YR>kb6o$)4m zjDfNgfmM(FNXch9d43+@Y=+Ba-yq5r_u?A2J#$pE=Ew9sJ=u8{U#0`dr0w)t_Cj9E3N3|q98EaVZBrm{2u@v`-=vqoU#I4)A2$8AFr`%Wg z$3MUO^vid5Cek*S1P6{06vCk@zZWNCaWSN4afNS?ZQ#fG6p7AN5T1}43vNviK)j1#^7HQL!2sr_y<2%-(>N|9ohxa9fxnd zg<>m*Q};d^S^K3qbxCIIax^T>a8+EEml%3vBymheaO0mH>jME}0;2^d^sINMk#YNO z9V5)lkOk?lA{=16ug)(&-I=U8NZzBL=bDLKUgCi`J<-JK+4vP6 zu!8&cf^HW;x_IlXP-Fc*9bcl_cb_^M0raZdUzH&Ee(C+o4|~a@h){r>eQUH?hUn-^ zcJXdH_7sw=(V705;-G8)q}$RfiW51UfDBJ0Q{sqZ(Q!m(B>3{Q5g${JSHSU#;pEV! zJ5_QR?}Ej|*aNZ!Q=CBdU!oEBBv%wC{q#`bc_Q~((P|;menY&ng2DxsGIGGL1bVLZ6(jF37W=x(Zd> zkBE;4$B6At%bpwry2=&KbDkF{DH%EevT~VFVIDLu6e!FKG$xae@%eGkZg9d|0Gp6# ze}_mW*~U5N-r8>?Ng3IOvJ;m1QZWLnShsLc*sa zc!J_wX2Atm=hp&KT>;b=O6^RF7sg#U31^8{TMyTsbJxlK=TE!OINBE|U#}2u2L#vv zCeWnqyr8La8v$Vt^xpqtgse?LnWa)H6e%TSZuCFOt=JLJ{DkG+K>ye3VlB|0JcyK{1D5}3Oi-Vt-+bI)?xL!3dND6@zE9)YyqzRc0$f>!~l`mUl9vAS6g^8dq%` zmDsh+({QEq6geqM6LpDr8$~8AH3mj{8vFMPbQr-BNcWub0s>i~Jj~Wg!GWvLBU%~- zMue`K>+(#|N<2ZQWjn*8{h0&j&L~16Flk!XGj0-JkwvKk-S9-V(s$bvHF(PhwSq8dn1#%)L#;T>*B+A$^!DFm5W6cc0)y`KzN7TLz@^%N#!Ni(Y-b`^6?E%o9WD1ln(M^A><3Zr~++MEQzyFxP z)wY|k-wlkkX&)qlb#VSQLj`ucJW{^;ir)W^_ET($n|qi#0PBE!-mNJACYwvl63DrhAO`w;XdgJ+nrhSnX#;RZ4c`0iLh zTtnL-m3qseIu1 z_8&I0|FF*f?!E%t{RXQ`*v^x}hV*T6pkEzdfcuosyAf`t{9&E)huxGvT&DbseypZ^ z9y87_@C-t~{kHl!&_{?QVZ1<^9v~>lX){4`f^%%5-+_3#P%4GiN%&u?DuFRF9^VpV$`TLLev#}{bV5Nlb#k>9cZ&JJ;`Q#y+s ztkjdxqT;3V6XH05B0XvfMuX#oj;rG_8WF>dUOmSMmCq1%N#i^{`)H&y_$f+7QZ&!; zTvb8b$Vbt(fLUQ@k?52lBQLm&kXIr|0+hY5pmrkPLz z(r|^TOLAg|Hs^ToeSi1<#+5)usI=*TK0am3=<76SCsY*=cSr1@NfMMSbiID4pHIF} zsJ5=f+j>t{Ro;Z0)q?H;X|F#1a_7CA^8o~6QMs$k5mH)Wva1pBSp!KkeHtCrx>!i) zpc*R72E9xu7PP0~N-{iKD9hn0(PC5ra}kbIPCho*shJH=0(OmF+`D1akt3C}erCV> za0k6KtHA?3U)2xC9#x5&I@AzhDF`C1$9QAoC?*STS#YX^&tW|()F%m5J0AvjW!%C! zQXH)bv6_lOzUE1H2y<5L@j;v{zlj!XgF7M2g)QS`&qkbQ9w0f3dcsv%B}d$ZT1G3i zFF+8A(6z=ePZ!eysism2 zp8E+@Q*4GDnA|3j>90+3cm^&I5RMM#)XWyPIMZCMjaHaR`vdzB*ukX>(a}vpvcc~* zkb)j^?Kh7G<*hw}`jl^M-%sbqgK*lUQa0on+A?KM7BKE-OJ(!6q_D$stwen;waV7u zRd)#vlDEL#_Y2hC>7KNm8;C>+&jF&tmgsaxbbFFGOWTtej9}bVqv7U5)I~4n8>Hti zkoj<#^BB#^)cpN5LGtL9?uT_d#nt@?7Kf_M(z=r%p(V+dw#gTr@3S?CCxcZdfrx$Sn%zt2{zh{+)lBp z-M9}3VN)7S=wcH&-H^3h8WMM*;J9te4Vo7@We)xR6GJ3ri0YZK_snqZnaJ(cZEc*7 zeh_GVfBq+5sej#svhTW<{BpKajNsoZaH!VTN>Uds8aDyTh78=!`e@m_W$?0BJ?Z1D zI(sTWy0E@X>%V8?Bt+uWJlq_7xoLK75;)|TY>?vY3kb;xaQuP!lAM=fmuH&#b9q;? z<q(y+KflmA@d@_4o(snqXsmrO~|F%Jf6 z1(*n*Se_-2P4p$~20+5f*ek2m3J98ATSJeV$|NNo&uY-QH!nzOZ#h;JbeyhTL#3ss z^b+savG%LA!Ew#~#m2}qMx`n3v(qfREx;K7V}AMRQBiSkuDtB>7tf*Xo#h-fH!Fq z<|yD-T|jZ`wow&1p0hZjU8^LF#E~S9XlEyAL8kL}MMG&u_V;G4@Yly?tK!H(M(|$A zYB?nW6wR$=o>vtZSvCuC~mHk*~u5SKArMqdsAgUBb>~47rrswkWFV_JyB-mue zf2ZnN)wTVaW2L8wDS12+^Ke+d zfBWaRKYq9E8~@nH{P;I~yd`z}_22L9Ja%1ooVYI^nRGRMF{hn1i5(qt>eI5CzSwP} zB{rG%(phmQ)RCCE$E=B8Y1pciqoYpM_wnh7)~o#fOAIF-32&lciF7LYR(CSFRhIlq zt4_Co@vLYkRE!gH!hhzZ$tiI{Kvt5n3NTXJ7p9R{tVN_N!J`IV)O~KWRzg(Cx8^T2 z45ob;8`ZmnAwNtB&b^b%!|ErOqbNm1|IQtr9QDW#@5@zrXqzR@7HtOU$m+`eHD4^e zll90?rWV>=VpvL%dha$=EKVH0MBJC%fBr+{J#@<{Ab3oVfUmMYGpvmoLgdo>S;CFWzm+M!SIp32eTn4XjSOAWW_SiAS+p65%n zzu-I`@#Ch;Ma&lJq3cLYOWF)>AUJYsI8O>yKu@96WWBHD{QvIV&!1lZ_-5Av#Ww>ISuFub$MhmF zO@@kUsYw0w8Y!0|XC(vDP_i_tAuaV@%Bcht9A}NbsOuhOm@%hXNrM^4D>PrjLU1Y< zA`NmaY9eWMXV?q4E189{vj9OWmnNqr>z{~vsps#+M6ppqXaZ|QSg!666a0b z+Gq7OXurVdiz!*Xh}a_KE?##lx{-v0U_tW)I3}@P%d0`9>L5*IOg1{xF<9})C_-Ct zAlTmo$A&OJYw98}AqdWfwO6fS5wJ6jYpl-d!~GD{%KbKsZ1q0v^f)beKR1v*{Po8> zCAT_MD|>Bb-0{(rJ2K~P(lg&O#t#;z3f=Gx{`r;XbHu!VyH`u_RWuinB?=S~Ag2KY zPTxARD0uWkg;4DrAxnffq!Lj!c?wo5L0ir!v%| z=ES3#^ISh)v&TytNS>kaA@SetiGR$4;g$!&8|RhmwHm!n531dInAzew2mLyMj5$qG z_UZo#^;#+N8WpbJNdcDL=fpoNW&Sp-frr0|YY(JpZh15h>VLUj1jzc>A5x3yTb78TT2S2Bo7H0J}(Ld(E zOCUTbMIf?50_{Pbb%%-2=SqjxD#mfJ0zpgeI#d-E!k&X($PVaBb#Z))-m>BxHC^$ z|9=Jl9(FLg%FM&lO}tDY^clQi`W>s0m4ljMF%p|&&f@}R5(ui%5OJ3YYP?QgnI|1D z^dP&?rw*O`Il3}*SQ$F33>{!7LQ_L$=#nQ57lsaI=x|}^V1^Db zRD~>b_FjOP7So}g>IEIAl0^T`hO1+|ks*sHR2<2Kl&Zx{w=V*;U745@`ylDtPrnl5 zElp1!N}p2mXNS$L@5j<5VeCNHc6h4bk_D%-b7_bp#%4SHnCZtd^N3r|&mT(g6|#b> z<%H0OEu(#3ZG0%k(`QacWbV_Ubv5gYu1CZ*ECT|dry>TYX}c+1hg zO&W&kcqU}-+h}j9FTK&8oV%|aeZ>V?`AWGH8~+0_!_*%NW9IiU0Y?U;$s%{i3)G2G z#k|v4zjfJ@6o4@CurulCI*VU|Bv=ZUJMz*!`+x_$pKZ(gcKrHtyubBq@L%m%>oa^2 zH*T!%g>f&pv6JJ#R&l@bh{5)xm=~&GQD6f+^_kb%39OpxT$(`?LQ(ai8VTW{UEfJH zZQrN+_-;fyNbFxfm!t|Pc#Q#+CuoMndJ5Ng>RS*)4^na`G^n3D%qmW0Mn!InDMptT zId3V@mi;?-I1{61+2`%pPWBLP+eXuK^A0x0&Rtz!h~wOOT-zgQ6PmgKuLK5hd>Hk# zotb(DoF#d4@k>6EN1scVdMf+I827v``=+S3u^>nrx@1a`^O-Q<8w5WAdNiyKjc4iy z!9*peO*;vY1?7Tv+>upw<<=ch`#6g^P3MiBxf8;<<7yA%bK~Ouzw7oSU~;mH%&Xpl zVQE{(pHl^OEJxIQNr#pW}c1y^p^Zy5_a*?T5(;(H+TCYo>v|twT+8i%{^jA^+ zy1D@K6fa!~^_PP7P<>49H2G*IO4|X~^^<91B=5AhtrJ)Gi zmgJ3`ORa7$2zADZ?bJa?HCQ^P$-m!P9a2jz71~HDPW4@m@Dvp}p@*d1p&m`2As}J# zj4!I7DJ@V@1m0t4e^k0?{vjq1r*E?Zvr=Sly+$XZ#hJO)-U_L6@%Bu$QCsOjQ){U@ z4OBFMIH*bl>gnbs3$3dk%HXHcvXsP$u)@@;P{Z@Hje6^jm9@y|PgeBjCu$;mybcM) z;Q}_Ba#kYKqn%ZFuwR-UZLG?}gzT#dyNPTeEVdgq+gJ&2JuqVZ!HHu)KytcDN9NE2 zqvqnCm|tOVAZVS~#eqQxzr@c+gM?-gvqT@mpme{d%^@oNNGee#-A_?V`Gi1~Q|U+f z2muqRjNQt*|1U1VI`g|7%ink*CM8^gSyNPcAcmS8gi2T;)Q+@!5H^3D((3@_4s<^d zI*jd7PkK=B=nOu_{7h?%V+vLz@ttdUh4G>&|2K@|3-eHSn{i0`*P~+&rr1*LO%C%DOA6TdH#^)wPSRYMqbx{PWw_AK!d`Z^b2gbLCwx zznV<-v>k}4Z&70qoPxO+Bkm@n?bJ%lqP(VN*28~`g$j|&~(pQ?NzfqRzuY2AU_ zNd-02a}IvXyrH$81%!&?#mk-JI+^|5o#cO8ADI;V*@mz_M&SIU!3JMY7v^7m*_>{a}4C1Asyc&iUO_8||GoI-)$DqaJkjGVxY zY?oX2hF|PmBx859h(-jTvYI3zgn$8xQGx=oUoY3yGQ$>}uVA-Zs@`0O4H2i1RyWUD z-dm26&AA6)8+&jFtolim*t|9h*hW9%_kZ0=Rf@Zs0iKf#fJVDWAELFv^u(Sv z9Z?&Nk_OTgTh}gF4#GH4Qebo%J(cB5?m4dLNCy61>LQ@rm_1QF*W#@qUXg6fTO|>E zCJBzJF)|RIiR`I^4miL>lw^u~1_f#|tH+QoU%>@`vV%ViGhDwo9595tC?8V`v1+|gQ& zAMtz-s+o_M@lP)DLWeYI(vxPyyu>q)ml>~+c0~%vzBhLz&=k}=^13UqEO@QM0nsQm zNlM3caTD^adJ3HM#g2mT>q#spfz#--#e3$Vhax42o$)FQh$og`iO=V#Uj@$;zzSuR z!q=q=Z%HvBIh~#o;Sz?9uj9>%RfhxgU5CITSilsIv5PvQB<>FiqX_U&04Znd>(khg z!F(ZB*=8^R_U|}lsNpE}2nA>rh^B7z9h6WF2=;AX>#ct62iMMVymp!S+K;Y%>(b%) zoKD@nn#cq^SjZ#v`dKEX5+F|sPAxc)Jm+n{zV`NcKL)1yVmA$`+vUfo6fNkxJ38zL zpcdA%4Nyn}2@HVKcwD>Ryy=qHetPY^M|Ea(YIW}8ZUn5uVl!5*Bj{*y?@xtZ)REJc z;wTm!3umPqo2r9zlv+7xC2V>^BlY6_2iX^Ugklz(QkR2?m|U>og8}oB>|%d{AD$M+Iml=Q%sd&-I{_b0a0_ULn-E)Caq1QwPj}vPq6#>ratl%53FodT}5jr##fp8pla^kK>zGPRTxwY+}rHb6dgGF0c85oz{1ByQ7S>&hmSxIO)3G- z2^7@vNTwp9^8!jtQ&O6JQE@Hu#0?xUiGosHy@*lXeK^-{F4(Y()(1THvO@>(x!Zc6 z3+ssun}~L)2q2Zi5*h?}@e7E$7?90sIw>FsZfokCro;$=-FznGTKN5t`}B4hYwuru z_x9&^f8Kw>0$$4WJ)UUGw2piGf6>RMq}dUSKfaq;NyvL5fuwcf-UzUN0$3w zt#U5Xu=>(Ndlkmn^Gm`%lWO>sL|vLEZBFbb&#|iN)A+1>GAG3IO#KyY1}3vKiNC3H zj97EA=Q>3a=y&v;j;cr0z{KR~X*P+(4y3$FCp89mGEq)}!mKk!8pQZ|88mr#Qoey` z<#ZnX%pg+40BXx*%`P>V>5irZ=b>C9ipi*{*^6EAmv`H4XjjEp#7^8&VH@|1Nh_PX zjYoZNbPJM>cBb8q5o1+HjOS+zRzFo#h@vKpktI(SNTh^r&)w78!CMTXD`%`)F!I5X zO^9P;MCWM7J)A4Fo|v`du@ihk4!n-eU@QcjwX;!Z6AHbY75so5-@khE;fJ4I|NQg* zLuk>jbF|Gb21Ghu=AFh=?ir!j`2uikL-#sB`W20CI(LV7cvKV~E)q1Agbs{l0puXN z7b%&^Ge~4%L4p!Ut5r??UCh2!G`Ym)T9`;#@-fC^?fwzZTjxkYOZjDy&{PZcx-zi* zsY%a@J42FRMfA3>;WoByUX}L+Ht$%RpX%0lq2`Wp?{B~E9Ps;UE8;SU7~M;Mq%Hg>K+}h{-MY2AG+<3ha&7@@9{sR^`cOlhkGlH8V1`S zT$9UoqfD>Y1$xN8cRzl5`{$3Z-`}YqaxuL?Tz}dOJVI`IVY4t{kzHbrc+Qgol_F%X zAqZ%iy9CsskmFdC;xHG4p~#U1qy?w|b92-7Lp4t0hiT_b5lq=%-1Ie;>Bdc}x=p{g%wP(X|%;E5s&LwYw%PjSFwcvA$f z1Wq9=B~BDLQQqX@CL=S~Xe!M>3z#4Tr_OvqQ@Ng@x#X-_R8La zWO8t19c1XZ_4k9`+lx4U&oQA%Q;z#ZRA?tPjeYeqfj*}3XYS)Z_caOouSxQkBc30A zSJLh)5&~bCcII=k;67jYp1W84-Ub3I_M>&{)irk_AO1==q1$K?q0dQqSd~wEZyb^0 zD5rEH;=^y6`h+cF1ApQB6`=R;r}N{x|K3v>7xJ?Ga}?<&#dG9ZRH&nH#t3*2>U^4> z#??(!5H(HUbS}q+b)XR+grhz2yWO>SK+6$WAOG&HOYP;0RofZ%B*aO(otbBVGV8aZ z=0H4V5B1fX1lJx{m9qAH#3iKzbCzZx&Zn9Z_-t^t&C37f;Q_&gR&x zq*+zufGa#{Qq`h8>)B>)n?wnYH)MJy9Cg&q^R7zN zBub-AzdkJCwK%#cX>m5g82Ykgb-R(l8Fs>wNV8u9~ucn9J!;H*?@J&di3d3 z)l#}|lSOm35u_thK4NI%mahmdnM?=Y3#8n`ER*20DzS7F*RmdP?cEzKHD3Su=2$*S ziEgMRv#Di;OBs2ob6^haCUI4GCaXsW8d{|xLi zKEyQrt7zskrZaRn?ZT}OzY$nUZi1VF1s)z%?9=Oet-OIV9i-Vs`lN@>LTy2UC@X*9 z?Ih?W_qeQtnM}l8jnEAkom6go?MA!^SG?zjv#{g6P0F4(0} zJy`%?^-(!oZI@Vr)*tRlzgacOQf~pc#jqXmC1g6(az>|UxRd9*aIs``j#N9~L-@Uh`Yl%lV6DS$(P zpV+V|_6Ckx-{oLUp;_SAA;djaFvWp%_x!*|;wXzR3|}|Ge3|I$l7y}R1db7S8U$CtQzQ+b4On=oQijXm3+)QG za#G49c&u}WM=!%X&{=+D-^R{LCNNb6H{i@f6eF-Tw*d>I5LneL05gV2+R@Fhb6#_(Q)PoO*fo=_yFt zm`P#yn2gLY98WN;q~b3QBA8pmLB#NUH5bR(YSlrgi~Qo*_?Y@9E$!952Z%yFWop`L zMPRLSrH2-yr!>pg5l!j8}wXA8V%);#V;12biJ;3py{!6m>OXjKxr zBJsY|>rPAs7J;z{oEDf%0Ay@gx_&q)&c6eH}UDWs3kQPp^MS1k0l%AcV}pr)4t z*>Yd~#%AULkAicgDpa-j3=Md?)P+{AFg2)bfD947zoLh&FrdX`{5{uauIke^nHQBBZ9HG4iv#9E1Y`_hLoO`1^2!wbsKV5I5pBJi9#9W9V{29 zrb~Py5Qvny3Z6*NZ-EI2Ep(R7xwzu+$|@ZPmK3**OE^W)^(Sptr*nddZmgZ zpa<#<=zgrdHOv*5CO|fo9UMZx!frs$55y&-6H?TbfRm>@DFbjZUjdo(1WvhwiC*17 zGq`eBNE3{L=t`L|#<&v33z*YvFw&(-N>Nt=PMi`vvG_O0qR{eZtov9i0O}*31hI~u zoD>iQdG26eO2o!z0R%uZE#W|wRh;xn!Aa{Q`@95VGlz%KV)My00L_{Nfiz_bia0`$cg`n|HSx&T}!2%BU*;@^oTLNqAFq4mTX;7xwx*1``V96I?uBWQtY|wdU!*s8~ z$z7C-JXL7|#Tjp?QR0{CMHe8~xkEJ#q@fFwNzgag_1BLn!}F{283I*XfS%_RBeSW_ zXc(!gO#cdn3S2x1UO=kGJc?|(5dhB%oZ>Z{Bqba4Y-`ZCd*Ta*)2O(nuULl;I%kRA z7t?hLV4m~xV^I4cr%e|y)_DcTK}iLbCIr=>dgdjtC+t9caE$oFhmZfW7rVy4FYX@c zH=M6eXD!X?-0U!XXgcaZn4|9n3JWwXK%JEexAG((IZ01;_7{?%QPB1z9YcB(cO!w* z<^((fZxf<@D+DnJ7kVJ8>$}k15r*zu5bCD;8vnTSLY$t8khO)bvb=;~)DW!q!h6$u zd4%iE@VNRH$CcwT2!5_FW_#@UOt%Ugb=soNk)DZPzjjhs!n#uzc93QHbnL+oOS&~i z&Q;10VLB^6y`1YIeWTr);w^my3qs_yRzrY0IrIq{&nB=3KP>9j*Q{ld3yOJK|5Dqr zft8SoOi5R@%vlj@9@;aMYkMa53Yt{!?HrVVCVfcFoo$J5fCSg|z{Smr86O*N5J|LX zF~{_RSAc~?+Ks^QBvzf_+L7Rw820mD_nsSd3~;13*hWWDCv>l9$L^y0MMN){982^( zDN=T^2+>b4#nGtr!O2~)2c8Nn&rThwHH&PpfAtNneAck{Q2kCPufz9@f}&Xgng0Lj~_q$^=`J-g%UpeCk)Z} zX$B3UU1cTO5G^*s6E-eUf7*IZ69cJ?1tRAMydusDvvxJ7ORaO;M zuQdtfQk5@L{m*EHHfR;LA^qB`uEZBt*tMctwU=u1$6wyRfBWg}cmL3QwFyyP$<`vZ z7&Sv?y@oE>5yJA;mY1@;AS8;_A7-afX#d`tGKH?V5)w+ z)FX_#v8$45R&>-fgO=HvGP}OUWUE4uRIYt9VW+?OhF7*8UV}CpNACCUd z4F7R(%?HU4!aEeBry*Q zaod12r1OI42D^)N$>E!z-yR1OR5E+a1-OkR%P9}>8?hC1H;mmzz)+Uwz6L_}kV9$% zOA*g6&h9Tc@Lel4F94@YI=X0=YRR%D!7C5vfOtg`2a_OkatTIZZgBLp@)I>-y~j*E zPxXrI+>TE0_7vl=atgl++|5kyBY!nLZ9~xZE67LXvt<1K!}P1^>y-VPUtS?F zDNmi0$7SDINTcB0iu&`b@p*alMtO>TL2fUu{>X2Z_U3}Xf+N?L>G|iZY28o>a=Vn~ zv~E=dl^03=_~Fe0zWZ@6-R6^lQCZO{ff+F1H0h--@bue$pRSbsb9#TM!;S~TmIuSi zgBOVZ`1YswyE9Vt#oO9HWM3$ofXo`Nd0qGNHjvU@eR})f`z^HBs9w?aC285NNc+N& zfDDD#qJKT&et!Gu)6$4P|Ee>D+=wwUBOCCTPgMbv-m6~2NP znU+yuN2{pU*;YY0kW1tfm?LQxC?cLU%>u&$9!MIv30b0^k#P_qaK2V0nE=NHj5co! z6-f!Bz=CL4wVbDJH>-9pB$}JAD{~o|3bbds;GNI03Q`ILY<>Ny-lqm-lP#!}qlLP_ z7BSNn2Ou+@ST<nuIAOIxBs879Mq5ID9{YoK{H$jjX(wsFzwe< z5FZB*nhuug*vp_9u7gIP2hDIDG{be!4A((3Tn5c>88pLX&!2AfgJxI<&A^}`5rby944PpbG=m3?pv#~cE`w%R z2aTXUXohvr43|OEnNI9w&BhZ6pxDJ}(I%tOLpb=n?XYe?Xej&!)DM7*Fgg;(g4;$GpvJVxDFaX51I?u$i<)mz6_dS zGic1KYj5XJ^!fnDbllBq$zO~Fx*Zz-QBAe>#06;#Il&-$RVn)_9kOyzQr zS56^c7k_!XQ2Y!ruio4pzi>vL!-JZBo@o;jJ%`nz-_-dYF(n@n`fUOTS>WoZnZAfT zR9xqcGOSdb%D_^Ws<0=rmL}Mfh9^CTw(1Mvvg8p9G)>H&3?sK^?)eSxjGa-!C}NSa zOVKd+tliXBxO_{3%d3G|X{zC#_lk#HB)Gg9uw8kkSZu5z!5x#}V8bOEVfGuS%Tgsj zll=dDu_f1!$=}(c?e}QXk-^DesSC(>IlH++6T*p4j9s07vB||DnckFbH`qUsRFfdt zpHCAVQlBx3b+kP<^ob#N!xf)p?El)+*3u6^tb(lx zw(6CR>Z91d>*!NB`XzV3<8u9)<5)P|nfz;?`Q@iAHS49jI>-|vk{T~BJ9fN8=wIG_ z_x8ixt=6#{x^{;u>RQtuP}?rQ)iK(qw;y&EW|tgK=}4pF|02#;7#z!Mq*shhFz&d! zx2Qh(CBo|#K7#fn`$4z^)CJ*Wowq!1V9^?ruL*6(SMaDLzD1{~KQUtdq*y7^0RMrFsJKvrNAGh%Fiv1)ToL9%{Ru2sG2DbVP4O0YH zfl(<&*VYOd4vt&+c)|UkPk;RIylec$yb52`o*=l`QeZ(>Zr> z>5TNRGz~F&K!*7?f|;20_RS+c(knitKBxA2}$-Lby>> zqxP$0MFJ3L#AIcup}T66cV^`l-|M8noLtRb@lyywEx7{_3N42xqeN^KchW$`#Fr3F zU2M6NG^wwcA{1mqcPT5S6SBxqieeufA$x>O?6z0bFSgaIPw!ZFe7?ade4H;$_bWD+ zn+PxgK4RjY_1CsLTf%GKKstWrUVv{_$O04GzT?8XHy=N|`uV%P&9=BRT9RcrElUP+ zH`n(%?zeIJF70hr#piZ{@NkxNXvQJBXp(nQy^eaVdL7UCA$>o6|KU!SGj6S((YwNp z9kjf8pCnZ>?i0jQP_W&)_icPqSNG9@fGKtPZD45*haNxnJR_G)dvEQbY~OuTHN9N1 zN4~b=j?~-QP5a7~+saL6DQ^gnd?cCO8h=WrO;lUXQEF5 zt#nXBo}TD=20#^1P-F~fo`vqx(yDcK+VHTOqXT%v%xgWmS}(WC!xLL`boP@EeJy)3 zuY|iMe#o--TGdVML)dU9b?#W{xF?vL2_R^yYxofBK+Ih=G9iekhxk;AAPz#Ds6(9o zfl2)AAo{T62@xSto-=qIL}4VnfZ?=bFy{RBV~z11H?I@jY9Ak7p4GUL|2H4|w#sxk zdlv8khyuSjAw0Tx#lq#YdS35-Y3+U^-H#{T56Jy4`EhXfOV{pK*6vs6ezrnWHr>w& zrk;tyZ*FF9ZgQ=ya?>O9&D*#5u1Cli%T0W`xek7rOONhLr>FEye#&lf8{`@{0XUos zS}^ILAIZJOQefJ9$Btp|JX@Mad5gG-r}1!P1Yy$a=7Ucc6W&WE@NTJVpl#3fhy?*r zGkf>n4i=Pb)I_4( z%d6}lX;QbIq;1Wxv^A7x9tRy6V97%kHrHx#%usP0SFHrcy_c2X)mH#>K#ad|1c;x4 zM5ty=;DdHPnG`|ubta$sqA*>MKIZa=8~u={)OBg%IWYkX3IxU|T{>@jme_??dXIWj zil`JX7V_%5|M~It^0xcrEEQuvHFhU0v?6L$?aZyzadJ>pn8rHljD9&kUfBQj_1-Ug zej0bjXLYYDs*!VlkXFxi8zQS}S@tNq_1}EPoyyf>a!{IfeZ~Ft_O;!{B0AUAN-a3X z=-gurai1xqJ+6rVr_TY8=gpf`4*W6}VEctD_awvg?PQHH#o!p{ zc|1ntD#uZJX$qZ{hBJY|`Wn6<9lr&mBPc={!lb;E|1zn4W&9bEnd)boahiOctSg_! z_3gJ9V2%T`z=OKd_*^i&#rN+5E=BY)#Ml>9jT8<6SsgX{>0*5fCeM{itsR zXP(S=0|_Z(=w+S4ONEA)N)5f(`v^*UAqRzl62Tm$sY+9O8usU4m<<*?-a-GibD%!r z09mTAHtZ4w7vL;_C(;<6!P}FBo=pI0UaC@^NheCk*{L&3n!EZCx|SbbLZ4o!mvXd6 zJcf^tb5O>EA%8pPb%k@zCuiG1n>h8rft2NlnoY^!(wq*SIGe5LTq9pLVjO0)nU-dw zv25Hm8+w>l57Hl(DeK@Mk$oc>z?A&Q^She2_7Zez=$VqnkSRIT~Ju}MDc70lB zCEdPVUlk1zf&Q@DVPD@BpSSP%KK}54fxq0H1T9te%(K+uVTLBK9?`k|JcUFa8(ypMMU-DfY6YZLcSOB)Nz5 zJ|#1cI^|Dbs|>qKH+)Rmn|B}I&{-b$-P=X#;dTM)<>5_|hiN`n{zL9)HlH!msFucZ zXwWmx`ANY8arXW*6T7^`195t?9PZip6&|quinThytpK~~!y5kh_S0WKeB9sca$LSD z&lRye?VDM0YTJZsEuR27=~)vfJIX|*`| zRt2v?TS68>-IZRh=nIyOBBX53=%`PkH zSH|0d-qIyOa+b8>AVpB}pkmV8)VJ}{DCu|sWZ=OEl?0J2(F*<(uWd~skUTs=;#5$T zP7V8lT;+Aqd&}x5iEP6ir&U5FAFpYbZ0tBn;B*d0Zx$zr1E;>V*cajPlJLGy{r4h% z`^#>z#l*{TA`(*-5Fx1~FlWJ)6saglB1wSzzUC`U@F*~4J^_tQk*)3dHm9s`(&D+p zQOY4sZ$^LyB@&Pe3?Rp>b4{I=NeO}tJjVuRoT3VQE&-@L$y6?im}D(Nia!r6c|R(tX7yO zUy|2k&@^|DlO(5&qORizEc=W)IJ`4(iY7&Hf!wK^P!;wJyD76I!EJ)~8I%((LQySu z*wl1*9Gn>Q@kS!pma#`_-xM5yF{^0+4;yTKy7hg-oP67#xj~ncB=b+R^lzlBj&dCiHfU{t(ErX|AAreqoitC(8Pt7-yC(}V8VI$pz zWZZ9(^*Hv%iSq)bUd-sC{jBY*JNe9qG-{nF{v?@8*CP&`hbAv?JV29nT10yB=+q0? zls!}-(_=*N+*M~6A!Z0lok6uTjf!dLh^Hr=wRrWTJ%xpb={HjlI09E-iwTSZr_e3q zM*-Rlv{@zVy2+@4VdcYH2_$KyWn@$KvP?>_Cc@x7J!nmq}-Tam#z)w(g+q#K`D zOsM&u@n}l#WIVIbVroQI@Hknz>L`;+avGrMs#p>qI~J>JPvqq|pKnvQT&S*!gr-o@ zOM{>?(uoBIAj&`U73Xy#376JtFkFl21L`lm*ZF!n&m%s5-0@Ea#gk;EF9z0&ZJ1MX z%Y$L)A&J1KE?v}`%To_sEFpa&{^G-%nJBLAOTui+x)awpSVH$|fR9VHze~@8^~l^; z&`4zB;G1E4QE3uRJQOQk!zQIJYHQ-wRgEZF=S#ItDklPJuoH=U8z*PE1dby%i$Ofw zn-ir8tRf+J$pu~A@~Ej*aHS5)7yH_djBAC3x^zC!)y*D0n$m)E$xyh=CuO3SBl@G>l(W4asgenOJH5W=@Ca`xD6Y7 zS~tf69{b67#h6+O}Mpvk}R>Kops}kq6qZS`%Y>nrmnG*j44Jmc2vp>l)ZZM z_Wk=ik?d$8+^xfAR%_=Nwn2>@f7%2wRh)OyJm3;W&hQcIknFkjkm7uB)ek24a9j1L zs!ytJ7vU4wUCtp^6FIlU+v>}zN-tL&(Zx@%KmKp6{V4>T+(>$-9PR#PdafFy>gDS2 zk}Fz`c6*nw0Eu`9MiP(~)8(Lik*)9F-Z&}^!?wQR5Q9J=o62x0?1cXJL`ihUO8F77Dn_%87?$di z>IIHIRK=FySJZ;;y13wkOtZ>X07z$B+j)<4V(w1(tTOM_Z4idch48i*7v71;yYI43 zu1$nyG=Vn>oUNO#j!G9sro-fOXJoJiP6}m$rFVCKy9f8~b-s1)jt_6iIiH+k-*IRu zV%xV?`;u(KOZV4dnn2{o!#qZ|6X;;L`H_??ba?fo9aMVeCk&MKo zbZfr6lQd+dGg96YQdWm^+THZyuRJ}!I2do$d{oTCd1Q;$QwY|B%{?s&W3)>c9dV11 zBSwTZxq5c8D~phhNw@#yYo|5zOOMt!vMY@ITojZQqFL*us{Q=tAow?Cdr5-}Qes?KAI{SToWcEu$ z>Y2|XZvE7RxM}i}FFdTr6<1%iMX-P>dpE?OozL|`zcFbIz-L{0Q(hyJL?*qP8988N zAo`d8Y67Hi2npF~3@lAHFTkWoCz*s<3!~Xcs1orMV~dO08FoQ=(S*akPEPt(v=bvB zKrrcCC7yNpC6|$5r@*^x_DOb4n?$0sge7@mt$Eaow z_@=@4hpLwalJ8I*aB%c7=(p}aqc46%p!7I1PrtNqK3T$w};^q5&!0q_Pf5rzGa*manJY?WEMe z5r&B7h-(&t?(Tx(ddgF`9;3eHzC&dOBo?N%GcK=mJUSw->xI5rP&wlHR8WA{O;5lU zf!^I$%CPM_)q)d~5+^}TP&syr`tVB~dm7w{{R|#_b=y%RGQ@S)lQ&&mXDvgP4~YA@ zU_TWs3194wY@_}q7OFa~@B z-hKS})2sjQm*pDZ?d>IYJR<<1Ht;`%J;t(_)(i?qP$I$CY0#~uPhUH-ef7-jmKrxD2;gQBUa8GNX%={AN z1a(mQikTw90n`xW;?^5HpanV8A0`S}bY$RyzJm*?CI8GG5P(YN9zp#sXY4+QMCb;M=eFnX59 z=A;TgE%{I_;I)_=JfGX#`fKexQ`-B6_;@EEmmVDL>NP$%OFle4cYc_bYn}WMe|(rH zKf)iz7t(_NA^8ufpB^HANPMR~N;^&5PLc^ls5?m%XY^fVYeyYh9C^i6=u8^h%;A8Y zJHrFFh%s&#^0|wh<}P-c5Ia?Y_YL;x`(+*X{oB_c@1}$~Bs#8ozKmY#IezOv>n07; zQ1muoqf|+v!fpGp9hr>q?2easJ7{Kn(18OZMr&uCad}k$BpfL1OAkX4{0vQr5D> zf~fGx@=@H^3186pX5(GL{=~pGEk%Q$hb3yT2uizZVC5M>8D0YdAK4n{;I~*7gxO<*P6W0V}AVQ~nw2FeygtjK$?gwQBBBwD@*jzMq+PF)mree$Pg$B=S=Oss4fS{?!znbS53`?1V>{wbU$M%p=UIY9bHtv#KxE;#vd@5^69P6u z`y-xo4%(*3wwaWrlEhC&Abr@Hpt3+&u_0hE04e9RJXDS2C<&LMJ&QVl!jFX_7if~` z2lqvo07MY=hzb%~?#D@Dl#N4c+*DhWbK$f0JE%8NEM!Lb)4e2V2)a6yEq+?q9!YC^(zH%l>$TQC5C)0(lBKj zbfHcwz`5hi!F-t3Y_}1le>9eVx%v9&sP|AMF2z((mImZAm)T37ME*DJX{!;NuJ14$ z4WWDr2~4`z#Jn0<5T-R=$3Ld%)gRyg^7hk* zo)Vw23XepE?KLf6x8rX^bRjBax+ZEU{_&lgq!6u;DV%vfGHdsO9iar2p(Z}Go}!b{ zqwp5JV9+(Nm>VJ%DB*%6S~5L)It7UwPIGV&f)OODSZWXgP=#@$0Hz!4&8sT89(0cn zdHc5-QqkxkY@(~Gyso>CX2nex;P!$ZP-V1h6p~3Bt0&CQ^O0pQx?~rWdP8YOM5XJI4x@(F@6@{+qwx6_=0{u$3nC!jsUTu6c209oHw1Z_fI|1 z#(24BKJu25pDM?#HWwCKZ(5CrCjE1VjNGCiTW3T+)6rffAL%SG831Ci}_Xc9=y+XHXTIm$k=ZQOz z_*r)S9i1*(T(h9i6#MF^sk8lEG^!`|uJ%<8=C&#N#E$xy%1+E&Pz~1Iu^uV71>JgQ z?st!L-lxu!)60!F+e--N=&K=9fh?bGp@mOHskV{I=j!sgEG*%T93`s1z2(n=%GoFx zo#(y<{~}LOKfn9GH=f4BIf{MbGM{m$gk%0FC@iscu1G>JJQA=xxNWFUzMNN>8c{!& zJADPjdgdG|r7zCB`BtQyI(`i!8gDzJmTIHZ*7PDcZ@If?i zC45@Xsw;3ITa0ddlUga-BVq}QX?a{7>=Nu`@^1!(%?TM3mh zo%iam$VmrPY!eIz!$@s$&^4;GkX0PNPlRB=`6)twOu`+i%0XuIzB=#r>w!K#8(!bB z44U+8&xq44?@bR`&QfIFQhloet{u$1Q5`9*hW39R5%NHe1l?-cQbzB|Am^F|coOU* zlB9YIj0+fpZ*bChj8R}(Ky|$-3g!j}IC36H5}gMqV~(Ih$TPSU%k%cqH$%)i23>A=BCo3kjQ)C&Uqa(aQk{XCXn)b}qAx*ba)!LmCz)AIs35r(<1U356{$ zA?q9?^DKH_!WA9ExyfIxwGGsP4li>0v9a`}^p0YJ_``G7)rx)f^s)4t5q~oK-Gsf} z#&&Ht+6p+k4X>>n1dalGH%P*9SbM}wpAqOjGXeI-G;E!?Yj_Gh`IV?sZ_!aLN*i;- zZEF*GZDYiuMHg?W@~;QqfYVS z;A>TyN6{LC)J^Zv(L6m8Z5?{>hK1`#sV1%g`bzT7P;r98(OG&(R+0^pQ`eyLfd>f8 zsveRSU=5M&Z#u!znR>uPk}I0eaqywm?Li18ib%q!Zqnbgh)@E)-73K$Nl6HCo=bDI zo91Zy=4jjI2%l?@aN8g+wTRs#c`v>&8OYg2XVLzPbzighHpzmzgBJwPWL zW9p||bid3gcf|6To&}Xuv}e^3YEmHAN*D*YSc*cgz1c8j@>M5ZAf&&T(F0o8v53n60Ss?gx{bI1vv%w5vntyC|Wu`aciU)Gp12Gi>BIXLJhFf>g^^~;K*vN zT3)NmuEqXdu9VpF(5-;)!|U2^X8AsCdYl%#kH^-}%O&fZ-N|4G_MzgBE??395!Lb~ z4rTU7Sdm%(p2uU=hx>4BL)Ifiy^i|qXP%0VOSs}=Jlo>^#kCh7XVi-=0K@VV`fwmmDcSZqDsg>+zjoWVv*6Eu*E>|%U4X{)?PH2$xYj&1eEcXbBCovHIv7-zrQT2SQ9tyXwfs|OJ(DAaAc4PQB&C>$3C8RA;ipft^R|oSlE$VXF2IO@u!lyslSUgWG6^V;d z3>OMvK52eBR^5+H$F{&Sxpq((Mu_>IX9Y_bxDY-PUXNiSyxi9V$^Lh5Uh5k3=I$fe zEGm~#a!{!IIW77HHZQZg;%7H?sbmXSiBsjSPA3FwX;dcS%P|3tti%yXQDQri&VmXt znEZ(4oIX$Zt)Vq39sm96=~ug1ZEH9y*w~V*g3b%oPAobFCrE}TJ>)(_EZ+*S@rKMKe+s!L`vw3;@ zdbo{km=KHG!0Eil-bIIay1{XSVvpel0r>-ii0e+I5P(tso(*sqfQX)t*$IpC ze7UoD)iv?0oD3chvGJugc{H)Buk;&1dpSnMeYDsG7Di{*Mmnj->rcU0rUV9xO)~eG zgA=3APxfqtD&SY_0W43@iq>XnvQo4;@$91}NscrH_p}#&YmM~x^8JV(JuVX^Fe9iS zPN3`(yIEUdJT{lp+d|V|-Be4q(KoN6Ds12LZFD`gJ%Yn7Mcd~uH<6FV=esvIBIU_i zVOX=j5oVlrq0skYTGmGgwKp>G3h^pLKjJ&2 zsH&$*I;vI=tN!Zsn>X*iTLgs{8#CX1_~no9mvgH3ulJV(Sh2xCvAxTNtNHQ~KkN3( zHcFNiDVc*k6%7~BJ`gnWw@dbV&5b^uQg|I1l{2%d_nyTHH$iDa>0S?Gfvxtdw6~6? z(O@$!D&6$U!Joh+o356z2oc<(X&M(0I&sHt2j<{W5{q$xpQjp2rw${Qczh7x}yKu#{BvF*B^h{wW2IA^`~DxzTTbA z&?t30FPQCxY3#g?<5|!q_A-o~N_4r95WD&GBd!s$9ae!i&R4g*V|rL`5qyXr`K0h?GxG@mIM5g~MM} ziWnV-C|86G7_Nk%QpH8X{@vBr&q7v zf7&^+9*1mA{*lijE>p0*pifq_@0JV@o=KpU7sg(#6lH6L%u{KBHXh!&U z6<}&bkcx_)#=(7?8;q<5Fotqhbf@<-wf*DkpKsL8WL59Bm^zd@-}FxD3?ba-2=Q?i zd@&CBn{jaPVR=fhkgG1!jqT3%O&U_qDAlNM@{s*%#R&VF@t4;Quhi*$dZqnc;Y>WU z9`F%->|;B$TA)5o`eyqPQ1-u}u-TXn?pSkWyMgs2r_?#6dxci|?2 zk(11lDbEq$)Huj_UeTAGz{}n&l(h7F={EAwK8^ivrMhDc#}s zT*=r}j4zC>>lOqwbvCBERR-lCcE-N4MKA|*51ta6_13KnJPA;4%pP_p;Ao8$8$CAc zRmj}o$U4azU{^Ybok{rhuu=onJWK*p6qr~vWgVH4pjL$zfz7&+>JiC3-o9{Z5U5BS z+Q~Y8K~*eto%=)QH;W!stFy?OGdi>pP+3nkIfHAJja#yUPEir9??Og|#>g2IN?ox4 zz*1B~pI!iYg+do%AvxvQlH$NZ6`HUdF0k2WxL!6h@a~1R;*TFb-DuY|V7MRuP+A>uP`sp`pr>BiBV3vz$KD*1n`7*)F}Y%Zv<9=E6ZQs}u8l#ObJzK( zLJFgthLdK9IytEuZBnD@VXYTpFf@LypJ~Up@BaKfW9MIDFq@j?fy$tT86=c%_yX{A(UK2oOPIJJnsnB7S$cFv z_?-~qzd*$!W@Hf)Un1skLrm_(9Bzn-dt!+HmDzYRH{g*h9h1iqTw8$OqO*DEFjh2l z6fXE^3dF%nckJUOd$4@IG7mR9TU>I^=0lDWXntuVE~RFy5tYYPR}hFQz z7zxL3Q9VtU8LVCVRP9|#oSk#;QE8o))uVuvQa@h58t5NJO|UOh`_L9i?v!9K@7ld% zr-gnnPo0?7iD@E+K+^JCObtL)U&~*n z7OP}8pPe?iu-{}lz^+{DCNJ98(Ds0N_p@NQ*7ueRPJ3Ie9eZyn`wUrs{eH0>ecO=Z zc4!^$KP}_w;fIO$&4=qt#XjQ1VPAT?9oH0o-=B7c6aVXVt-n!$%2Ipvx4!uDeZGmg z-t5f_)W4qHW_gab6oGB@#FTe9~zw#?3(Z3>o(c$&)*d7u=%0Y8PPV!W7&Dmpvq8Qrsi%jR%{Lw z5pO;Oc-s~DGLlELGu~zRbaLZ1agf6iMPu}~eBC6C4Mu8;nPrEOFx_>~78Z9*(T8F} zW}(6f41k4czn>9B-$$e@q-^4+D6mDbP6}-Tx$F{%x25h1xky)j5+dPIrVJ2xdO z^p~tw>Gx7>7Zo2CuqB&1_Knif$0sSV`67L_@F;v?{_FyxKKZDT@W%a97EHBbaqzHV z>C0{L!Utd+(tQu(-YehtFpiJpr1(J}<9J26CMt{Y?H%Sxh{NF?v#)WV+XKW@Rk?&& zUEw)!{qwn@bU$;q!9BNkV)XNZpj#|IzJ9mAgwy1sdn;ST;8s-j;l}QHqCQDkj)hUY z$My4#clS9;lxZB|ldaBl+pMc;)~m_Y=^})#fOtt^W3O}U2%KWPczs`J+t|uws%)Eg z#ZQ~}bRUmSpLNuA87#Sr))f`ov;6+^id_dUQu_O(_kyZpI9RKE!fpKOu{G(vK6SQZ z1M8k&pWglD?P5Ol-A|wP{u;Ohvh=4+9Z_XGxts~*a*WF)#sRlybqN>1jgo#OIjO+3 zWR^1-u$~Zl2F;BOF!2~kN6IGf@*r7gM*YZA)%3tX6d4ZCa*GPm#aoaarv<)GRH*g? zb5!|JVXoc-M*nhS$_oZr03q8=67<`ZQY{_U&unni=_()L$VsPu0j>8Bt>YyRP>6U4 z?*fN7Ll%a@T?}SLrf!BFS{_sV>Zi9KZcHFk^Ki$f>5g|w*lxno<8&C;j~Ds@UFYdq z=kY>l_Z(O6O~(3xjO$d$&jwZ5to~b)`!i4wZ9nt?AlYF|W3lT@IY4fxcu7w0$f9pO21l|o2fQ)RL$(%#(;b~|gyk?4CT zf$W5Ql{Z*SKJsjHz)*NmstZ7PCKU(%&V@7D-LV*O2A#D>Z-JzXTS--=QD z&*=TA3HY3|TTb#uvfI6$zg0NskTkDMR)yIn9J|wnyt<{U_f0klAz11@TpXYso z_tm`LuqMNrV%99U#dS3Yg4vDhH#JAX2gX-4$4GNjnxk5dKyWK6AFqX4or-9cblVpH zJKZS1RLhS`HE(?84f2j9DN9-P)US;lu^Qx#f5O`AupxK0^?YRtfYWdxdY){He`7&^ zfOM=DI%ISbfNK@7?M^PIw06;z<0wCIlI+u5!2)z!KgR&|PBB5-^N8_cZ4k4TX7Mz! zoIuK1VUr$`z9*0%74_n9{dtix`SH)ov1ZuMgE3&~MB;H$Njdi!H!biNF)h+eZ}-Mr zwfQ-MG}JAsi+Hp{PgxVW6#Y3q@k-Ku zrbFr+Yx-E*^G#fU$U^Cht#I=Rd`w12tIqX!X$z#uegy)x98avlZR8+njxS#%+a!O! zFFr){*BfbN92E7Vp^QTz4uWhN01J~?x^aStuw>U+Z4>WKpeI_Z&QEL}vV0%OCM8R~ z3Ae76<<459PtTl{jL&-Wey*Z(XkmJ>(rSV_hbE!IP}D=xo6WGpun4L!G7z?UZlaT_ zUeg#kz%K0c^*jk=9 zrCcl>}uTaJ-_&(ykS`nCQVw7z-8Fjqo+xp6Kh*oGHosMjm?>8``6 zC#DFKn^}#V{e69zt@oGbPk44ROUXU4IlHnNIREY3{tvewnYN2VW*WpD-_DZJL2r?; z)re6%O_KeVK)VV&1ztnof_M#?6j1d(eUXxf4%+fid&8?qFgSzd0DiEuS%#z)bkRz+ ztv^^HOnTGrs9&TZir1f5IaCkPKwa0Ps%a0g??k<~uP3{Irv66qV>10$I=$eoax0;i z;vdM5N!Hs?Xd3nP8@nuz=;lIRJg=*-N55i6ns^Yn0j z_2+^s5Bf#h^pv)S92C-CxL5kqPTv%LHF*av^A$u>O<)Betlu?8;2J zgCU@NX&9BW$Oo`b2?yZPX42VOr%N&H%Q(RY6O#K5dGwXHZOaE)x6dLXa2SR~8(~+v zZa`)Bks>#M6q>n_sDO3J9R-a@cngXHV_*JSlmWx>NfwikJeA=*pqa7=<5r)t1ePo? zL-kaF12u!*L>i&3QKCNW3HO&9R$oC$uQGwzwjTC>B&-W>3qYLt?T#e^RjFklqkigq z1-Zlqo}ysS(Bs50uwdFz1!Jvd1I|}asJoK!2n@S524=@_VcJCt$`zV-VOV*u87c(k zFq^oHApctJD|GS!OzE=yQLQn7DiqjZ*k*wp2veNao+pd~AN}(NR(NvVY@ZzyL1@)a zN>K^-HB@U`c;1H7v*C-tm^XYGJ6}@IywJ1-=WQsZTBR6b3VJ1?kgJp{8#dsB5q-NE zl9+{<%OT`s1Jw)MbP8;xBAPcqOs&AtA3yjpZFn;(O)PMa@Q?+U2pj|_`;%ylv2hmc zKEpI%K9$WhP&U&*pKJ_orh&Yf2GZR$P_NTKxlRM=#c4oq*J)t9p9Vtf^FY4L1K~0c zMCJjYC1($+I_u{?4O{kP?&iAN@zMZzTJX(mQKzpE<8cM04bbF29#&)9fb%}oBg^Ak zV4AKYt6auYxI)*dC9YFT-c2pBV&!vU6qSu!(sX$D2GlHgQeKa`7zJ;~McR#v z>sSaIaK3`qVX=r!Y8g(Uzu;aNJZ!pG54=v{{fy zs`WZe=M6Yt!RsfpUO$<9F=Yrp@DZ%~Vvbc{n{0{gcq#1BsI~#9N6X7D3dTvY8#43T zg%GZmtjg2Xl2sIpB`Y16bCA$&YKb0F%t|e=o78F-Nd{VoH#@0_E=*6glE~;pb>i}! zaXoU}hIZ!{%r0GcLU03kDSejZ<$?ybMg->|#Fe5&Nwxo;b6f2dwT+WRRw*g-b+(~T zUtSJGK9O)HlVJRxD!xPmvwlOLt8x%ZMFGTiZrkJjBq54+Dx7fGnxd9&2&!-xJu%mn z2I|^Z3!zHFqu2qo&2P(!p6Iu=tLR&C)JwSHi|et92DR;`aA~pKcjbpJpoM@#9FL7W z`0_`k<;PB--7`PE{^{o0K5TK*A2#pwlI{E9KK^jhp-%`m3_P>%Dc+ARZ^&*Q3vLwB z&CXH@cU5LPizLT2n6_#@6Y7@CZRnqAK*(hjMy1`di}afya6jVC{eY#vZpk=^jONZc z?|Ra;d+iMy!NVE-#XjT&4_Ds^N&HD^g z2`y+z#RxtxaVLvq#qLQUZsw$U+g82(Hq9ADhJlb)KsLd3wfbnDIjfwLihITuMPrJ? zwZE*mE+2Af^(yJ3z4*Hy|9`Ky4S~NV%iB|QL2g%23dj~gVVfl)Auyu%0%(brNOl9N zX;VDQ3MKV(w$mnpDjzFU>GwjNgoU=;t!IDdJ2qb9{ouZnoGFMebb7c#c%zG-}ppGY@pR zNA?O@u2dd#(+8P=rg?`%KyBuMp=c5n5mI@~pdkR%Bm!!Pegs%CC!H{imXazg4NxR#T+Yy3XhE^#p8r7Y50#h|e<s&SGLgL=}!kZ+B>vD!5tSWCOS6G*~qio3#~+ zfGF~3z_5UI0#sw@i_U>FU&UxeS=MH1h;ane1d@ut$i(39Pd&P)*JW;=f@?DpjNV4~yP4JLYJl1u6yVxuF}N?2lFm(jI{dMt)k&L5>tn-2 zc*I0KaYNl^v(Fx3b+pi?4r1+a?r?<7tkH5e>(NcSW41-`g z!4rp=$sl{^Xjnz{m5#tV_5*RjU`)lTRFu>NkI68iua*7J=ny-sC0D(|`xkumWI zdov^%6xC(y!9I&j0YGcYS%6!ytoIc~xl2E%?==$caXqy>z}*g$26(bRoG3_4(Sxt3 z-;2`}fuNK#cJp0uEeg*G^rRU(jKJ@#pV0yS3 zI*!N2dU44*-B*86cU+VM-`|Mvpf=PHiaGFJbTOL=DAJ#jSf0)#Mj!65gVvVs#R49C zMzr_Y5?Ci_d6hYwe`>yA#I6?;MAWz=uv~oDddAGhCM@_@UIL?NwM3wu0|n0a54iug zpPOs352(GdZlF^%JM_1c*zqaZM7BQ90>0j4;B*Yqo*Ew&`tZIQLvk^w^dh<1^K`06 z#UHf+yE%%{R|i3H3m4f1v>t7D3br6P=};*~9O32X-NBFqIYJ6JQX)0;(aImUQHFNa|WFLZjN>5Zm0n%-!7^FnWiiyTqn zI8C~hTJ4I|BBC4Z?i0*Nwa}M*T!&9@|NGPL*#ksT?p;m`5QSB!dc=BRg89X&yW)sY!s;(c@iJrC*+i2dpO zTTno5D52{>AW9CW3W18MikfblSo=JNl~yo>+P&-O$T5*Pmq_aRpfT_ z+Xq9qc1-7H6{=$A(d|r>y_@!gxHZ*}aH5NxxOGfJPc!*50ts`|I|VDv2*|MLB!+AP zL-0G!quX<$c{|?@3#1@1sS$8tse(uz6=vz!m~PC&Doi*+dx@bBdonZj0Y6*z{%|qM zIibD%a?kobI??!~Cj>08dP`3=>D66}Ob_b(?oX@pjW_S5f%$sxM(rE^s)~ zbGvWXdW-a@o#P5kS87_?wO&-{^JyXi$zD_;6w0Be0xsfF(Gwm?3LzD^0Z)SMv@YaR z;&Tno$khpy-b&s<;e(ak_Ueuk{~}P=BQIxvysk*S_oanRrJwS*E|eApmh=6Z^Oyg+ z`Ow=;2;YVvWA}H~O&%LJ$uoPCY{v@h@0#{DBU^5g`^NInRtGm)utvR%JzCHd$ilYL zc)G`Z?bB4wEj^D2BBdHiwb?q4Mg)pJsb}Z`J)KfSu5Kn>R$$ssFdDD|TK0PDq0T&4 zO?NSgE5_TKklv>Sl{&Nz*|k8;gY0OSRfy z_Z&X-yAGWZRxveR4Jgk|yVGn70c|KsX{BKN;s&HIcoo8hh zoMXwzOm(iBgAh68@v_oZ<88`RKLGYyDdUv-xJ+h<_A9#u*b+Gya6WRi> z@$o0Y89w?0xOZM~R~TIV zByEGN*0BvqaylP`47~===F^J=+$f{`nik&wY4v%y0Mq_D@_mZwc5fNZ`h034+g4p) zjh))57f#!dQ5`w$_LBO{NZ9|TrWl3TRZBJ5C91j|t$S{a2++d=mKaL$b#;HNR0X|W zjKuIO*7(cpg(uIqYVSL?1h@aKl*xuIga{ElfgxD0PoL$tDOy-_&8; z_I*OUaNBZ!qU-N#Ug`Iiu|a_6<$BtY!0$Dm{FXQ2H&uGjdcP@)|Fzv9tlSBE34y2D zSF*L6XFR-^@ovV~*I0Qm^rZa1p+A!?761Hsn!4k5hy4k>3**Z)f7Sf@tQodXu6qjr z(7Cq&pxx1yiD^$LY<)!LiOKZ5%Pg(duGW*zpRdJ>Gop`nreCoKXbfC?CB5`T$~@q| z)U$twxhK3h_dpV)YzNK1$((W6*JG%d&1+PJT9iRm)AbyFIyj2bW5U`->^2vO=Gbpg zPA7jAft{pBqnJ*}qKggQ?1Soc+|l(la|xm7w1R{u{p5v$J4> zPJ%K*NfY0)rakRGi-k_G7c1>tdb)Dy2`)WtxI{>E5&`1U%M5sVmK?UTY1&-|Jt^TXjS^s7+zus`N}aEX8yo|dBZ=2 z!m)5=nL^f901%5i6IY(9fK?f?sO`Ml(4Jb1Z z=S}(*z!8>13}=D)U;iT)cb7z7>?97-!`>Nlq5=Wcin<=sr~B<&xZl1_FBX3Lfd#>= z-{^US!z^Lx$NzTaX!ZJe>gQxrKPL;zuXj@exnhgxtEC6qmTvp*y+LXk zO0V%Y6!FIKEBdtif(3RSo&~-{-J=i3gS$VIhf0t&TSrUJ0{HGlH1avUsKNJ>yY)=Y zExiA-%uWj)D!BQ+%n0dPuI`~&-Q#8E-#8G{Kl-J?+SXme>Gg0MTBYs%6?3%b_Rg>e z*9*VPrzm~-Q}oZP{ue$gzt!jL^StUT`d1k6zyAj<`3vwbQ~Tfilebp*#b)1(v@cJD zx1YzCC*hmW>jeDo@jcA9E1uqzjQ)CU;m_=L@}rNIvnJSi;jWPW4t+oWi(G2~$}c=0^_Uenq5FEX9=<)zk((`CKr zErPqCCywyN_2O66^l_*EY9jvq7Omr#7Ok^@a9M|iaNqy`<(8pipTK_QasE3@z2oPn zUJ>%y8RYSD^WSWKF29Q0(`Vb#GEkTPz-Hn_a(7Vgu97gp880eES>@W-}`e@`lS8OnYMn1uTuHE@aC64OMj;z zCwV=2{o9Cg*4y4+kDTSKXII>4yp;DhmEV6%%4fuo>p!psV4gZ66Mi|@J^EwxyBu8C zFHhW$Dg2k5UhB)#>*H4ay{EwXcnW-}$Ndg-R{iXp#nSkQ1Kg?KIneh1CM)Fj`A=*= zBY*jW`|BOZ-+z-2_jnJF@J<|Azw`}%sp7xg4Eb-%s{19uz7M=C?A5-0&99K_-CX_J zFTj2!{Hxv--Yu8gJ=%DWmc%0A<>mG7@Of%~$G&1^|GzD3|0O@IZTo5cUq7w>-s^() zcwO-M>FVE?yTARiroFtZx!*Ct*vlQW-*@xa^pL6HQRPXk@Y|i*uXJ&JyG8uB+3-!b zvv&Qw3g+Vu81_@{?MXF=JvxX8FH-XxE|6|%IK5OC4UTvj9O+SoZh7>0q`p|o7Z)zq zLp9<2nq|u4FW$rl>~Q^n(JjAtz4Q2s`a3Krrbi2k7di8L)cRlWTR*+{t>5Kbw3Ry}L zN$os=C49avw;#NJ;0t&2on)APC2N*m(>A@ic)}=s!YH0F+S4s#ZakToA$`6G%ojp^ zYENbbO!+c99)1~F3%0K1{Cisq8R5s4XSll-SUZDlw9fHxt9ds_7p#;(r@y?+ce#8&!m6k^9maue`CLLF#RTydCcUHgz>u6-0&k7E6R3OkwQeiVOU^1c5U|BFsEzx{T0&yg2< z4fU_^;(8(}cv7&y3C?V%o?8WeYT5mkRhzZ7h1j;qRjfQ#U<}Nx3okKK(O|TVUbKIY zZ~c#N|GZe9{L9-L^D=2z`xz4%D=ilKn2>x)7G`hBu{+iCv)QR0F6v?soa@yA=2&G_ zui;=W2f=oa8^gv3Ur=_v1{ta&jo_S|_lTc5P|is?T~c!CJaw9h{lO}4EF>y2rLLR{ zRN}GY!#N(s*q4-xhLE|FHJDW5sR6l;R193R>q`MKP^6#ZS(Ko?=mc%4Y%<`o+% z+xPqU`k()7Wi>PPcyJ>TZdI zwdw@4~sePs>Y;t>G8j9&P>Ac7;{0prYvf{Gh|`O)#s?@w`%wp~%{8lbK4{ z%w%zir}f$`?H>T`vb8yM0kc9!z(ZAbd>y7V$YX|jLXvHaGS2odHg@k^Qy6$Eb`H2a z8|48-DZ&DzLaw8_0|bWIe#jdBjd4ye4Gx+#KK>Aa>NrG^6Aw#&R0@n^H+y0q6}(ir z^yk#`Mm=M}l7vcVWwoFdsI4xk!Yr2LX6v_)3jClK@Z7P;H>zbK-w@v)v^~YTc%ZDhArtQK>rwCxkxQoW$ zP*kwmryjG6o*t8|aUT`Zo)n8;kL0_B?vJ%#GBl0&t83kOgt!Lru_%0ku_fU6xz4su zsV+hz*!X4`HWc2~<;`N8_Q%)z`gG^{O~hvrBnKEc>u7kxoBp5^l4-WfS@qP~pGo1z zvOFhgJ1(j7U}uwhEz2AuOwEE?x3C}jPr`} z@KIL$ob{WOU$M+LtHU$5JFz_T%&)Ldt{Hgmd-c0rj~*i48C)cOq?%$Rsu5$ zN@s#(O1arlYP11n;L5 zjNe~udCm4yL!0}^0f2??!AA~GVWT0+ryb}}yDeJ5)9OAzUpwVp&DWmBB}bi`O@vHF zHw~6Z?4=PIs_@tDAV9CFM<>&goHv=01?@>$C9s(Xb;Bz}Covzi|92_s)H{&d8nLaLlt z;U-f*N4-Ab7A`(1*^wL$!2>9%^m!pC_NXJc6hz{lkl&tNk-|u7mq8HaI^l)7|MNms zR(AgzR_T=GBz8J3@F>K*hH=SN?e89=4-;NpqcTtSKuienJryC!sWhN+$eKzBl~V-> zl?psgepQ?kn3_92fA`~u|9b!W=bwLk_g}kdG1Tr`wPyRI5{&gJ9JPkk7kf}R4osuJ zWPC^Vz`O!->DEDc%A3e5r>NN&HAk)mmF36f>nrVblfJbPA7qhruLjUTU(!+hQM}F3 zhjR527Vzo_s6~mFK%5*f*)N5|^QHq|9Mh#d0Lei+(E`@p#eAdsZ(ay^pb>PSpK_zO$$g* zoJ58?PT>~6jKnNEplUSYmEVwjZp=UpBmX3v*l|Rj zxTiBXOg$L@IRzLQsa%4eDqOuH3Vky;1m%*VK{0472A7&Z-o-P4Tw_HYbY$XyoB;?d zO4Cty;BK`1=}&Jz-rC?xGkcnl*ubdTQBW3C<^^i9#uXDx;yE5!r0b<`_1(BqO86D0A=AAG&Zzgw zyZv&ZLB>KOq`Fzn?e^k>J`>*j)K-UpWTmxLE!|`P3ormZrY9i+FJ40~9q{qTKP}=TMzKc>}l1 zaAZ_RugW;iN(7F{RD~sp_MG->ScEU*shU*}lh9O|3w_+C0Yi8R3rXJZ50v4UgPt)B_TzCW{6Wuo_5Sq_Kkdf|p69iP@j%!e zf^({SEB`QRJEv9kzBAz%izBtm^){BJ3A);(npD6wNE@x212tUm>`v6$sR%tz*NV1# zDk&3lcp;!Pj`0!_r;w+_5AH4QN`xNMKdGa0cOz9(GS5w8jrv4@xp!5iUd~W$dR_S+KpV3YyAnU#C8EZs}sZk`K9G^QCOT zYvJF9v6mi-f3M|-x)MO`sfW_&H(sy_Ua|2ZjOK^JC&Kw2!niX`oShrS3PDHgzbIPo{kr50K}`c}ie@71c^sz7;Km9!PWOSuQyITyS&X z6q2WIb#tu))KjLJ8D3{h1Czd}34^`_`drM)KMqA@RpfD&ZC>wJz=h=c;o6-SsJ51n`wDPqWDyPw6y^dbR zv`IalFO3SR{{AfBIE!Vf7JCGzff*;Sdq#conChAPef{E3!Y~0U*-58VxQ}AQ>csV% zFz`KDe&s)?u3rZ+Y7^(v!+sDl>IX<2qt2BXYN$5#teAeIJmJ8+TJ9OToreg6^pMF(EuVv_M^zA|U3sn(fVPPSt+DI1QxW$qG$Sx3J@0bmQy zaN0QeI0T9TqUf>Bz)<9k+X$hdyL)pbNOOL0j``!;SHJwUp9}EhsbdVTL?%udc&JZL zKDZ~cpZuQ#tuYb+4>Qkt=5m<)@K@+S&-Mj$0*d>3A%9*Grj9UykS7QQz<~sP(GE&9hH2>VVJoWOsM^>9ArjGQE5YtKPY<()1&or|GE+B-x2Q*C13@3lH8#V)g8T zvuPmC0!}lz)Ut}0WF*wJ9evc+7#Z;Sa)C3u8P)#L(WLUcRx}TAaS{(E-_PVHp&T|$ zz22dj5%`*iGr^1sFfF*YN|s#xj{iX?{_f)pfLznJ1)Tg9O_(Jw)b`Mi+)5NYGK<7u_?xJ6Z2ffX z;?UGLr5kRYRgw*Uxq9rWtPL zN;PS2^qwIjl@i2}CB6telo`;n0?g_|6<^!jR9+jn?Ox!9EP|%SdD0A6yOffS;C-ci zsDQJ2EugrgTI={xU=mO3Gb|HBs{_Q(sQ$=#sE808LBx?`1pTDKOLm(9GFGZXEjTz0 zSKdD8!*{Ong*0njppV8uUPIzR*GJ>!(1HFeDUof+0^$bJ_jfTILBy`*yrAQ_iQ_d+ z(?qP!I+lRrLaiRimzJa2QI*$PR>7Y7k3G93Ozqn?si2Sv34|O72?}WnsCsWCK!(m@ zG$B7=!%xda!Cyao{O(4+KB%`vy~gBtfH=qGtb}!s7N@;T zSlEk?mfD1f}pN+|l{Za6G2$`9*fW&jE zO<2zAWqARY=YcI$R)hJ>y?-!NG@Fx7%N=8Xdj00zr~kRReJSOMt0o;fNN7SMEBCSy zXn@4r=TW9My+eJ~ELv7qr(u>rr{r)rS?+fa;tzm6D2E=%TCXQH4Mw0I8jTk|t1JKt z7XUR*27$c>C*%e!WYOoonl$Zd=HQ}4W1fpF9|_I~zmd)^ha$iEx!kku?T@eC{rKwj zPy0oZ3OSM`*hhCd3+C7xt6#e58_E%mdStez>K?2$vNgDMBgl7@ zLp46Sh`-UZr+H!sAZEvxr3=qcb>WT~YB?23wT}yhH?LrhzA~KV*16DvJ~S0B39KWa zb|NL&JM-vAntDv46ux(SwL<1#QIzS*QO=p!qpTBBST`8c63UG03$bG7@O)p{45z1t zTv&vQVGzKoqY|GIeGwVZ#D%7cXug4@fYuv*?GCvba8EgL^FB^V0UMQaCtctjGna7Ksqd(xI7I%rROV3AQSv~)d3=e|K2A&La6(}w0s2!!sIa8#T zZyueQrCqqr^}@rEsy+wEIYfUj`>hkpeZIkJQ{MnfwL$&GWjtcp$K7$rq(;!~5G8GB&yu}8`VSsxh~ z;WtTx<^T{FoIz`teI)QWTuj6@9lURRh(!ds8-i%~ERLar(dd=?ZxM@_E{NmvOxXrh)= zezx(sM zA8)mCb&Je1CMNB10TW=G7EqUI+V(3%t$@^!#dt0+tO6Bm`yK%etm12)M9Dv|!|2W8Dw@WHE` zB=lf!me(1NK|B|n^8yRFtxI-QcpUWg)LiGg1#OW_ovSw3oPbJ_RG)n~RhFWCiS^_~ zSwLWIF!O2X>6`SFt~Nj7=9N>W?fZBaKixOOKWJQDd#_UR3+q#pkABLV{m3l8XaqV%h%$XXyeypc0%eGX9f+eoEjVjfY4w21Ft^ zb6o34^&B9xscgqUjMK;2C?LAHB6{BM&wu&!-G>h!?__GY%)?<<@aYx^zFa z_lXj_=gxU~lzCE5u3AbAS?F*K+LB(9E-`qPv&ui#;bG0+fB5iUH*#n?`Rj-7TKic6 z1TDmVTp8(k=k?_CTyeIngh+aE-LBpoHORs-a5$^IfO@<(0Ew`8WF=X(|2XL+U#WG9 z*aRIo#+tApZOA8TfI14`)92IeGAKJ>nznnG zTJ^Zppm9shD=v?vH*xH%iX#ChUFjW@L&|_^BC-z>@KDy!gh~MtU|qdAr=iPcpkFfE zE%~4rC0c$~$J%lRZr9peu$)M^1lzfBOw6>ck@r+th*CrFZp4 zF@F`k*A0z!D;(obYmz{#IBVo9YOT5(gDq(v!sN6InMgB--tAZ}f@tUnPj`6l(B5I~ zNLQQ}lpSN>ldzGhVLbGk(q?vUN#xvXL6?Yw2zjCY)xV=7z zOPr7|Mf97ZUQ&4~S57R5xULdZ*lkC^rV)?;)w8=obP2R_I%=$iHKg!4R7xZhnh{tg zt>XryJ+sGv4YrDv06Sr`J74G;gpN?1B<_*Qy zN-UKsbFbmG$`>{qFRYob?1Fi)`)e)>;5TiwX|pSZkNI*Vvhr`$@?Y-9Tq?U6ZC1kz zBf&Hy(JwIO(Z+{G##CmD#xtRD0O<>DO^%Z`XGv?8>WcvBbuck&4(hi zHPZ4?Wj29R(4ML3I5u&AhlpN=-o~6-sm8RxuGumAnkAqA1hN2yF2Bl0`(7!slp+#YXIf1z`}dh`Cn&u_o`n@phm z#{`Od2cDTnUte&b{Gf**tJnj2FG@-?Nr;1U?4kzi$^OP3r7(2c z{=7ekX{!p(M5keyLZB8%?B@!!M1i3lHyO}3T8hPN%ERK`zuuRoeh*%F*MyZImv8(@ zp(^!~_!Lx7prr6}QU9~-a2E?*-|fUIigZYBRH$y{3^6TJHX&J(cX=;(xL~rBjI6?Z zmV`fjSVV_D{#Hbwb^xHuFJW-M46taRcO0z}&!59IF&2H~cF!*l5^77q$gKg~4Y=V<=<-FI*Q_23QaH8b7o7Tiy66>`aS<}0st6rz&t)99hWL7Mf?Vqj6!*+UP$rMYQYN>Mo3JVw> zZ872|wmBakrQqX9Vg;yp~yNhFURbqLc^s2f~imc+qsJI8M^#1Lq8+p?D&}e*l zdSGClw9{?i^iom|0uX1vjbtl$6G+Ot!17YccA6ewZV!@AkMM>^2|-&P@nd{c$MS$1 z?WKglQc2ev`iB?#k3276s%(WqP+%H4a4LdB5Ik}U-vq|gFMPT6xWW(E7!&t!Wn&qS z;lbt`d7y$u3b#xzbf#CYzx&JUAK%<8-L>FGZ|s15qj*w)-X^IF>$`}&Jh4HaaD^nj zP5K6;CA}Wl0%}Woj^D>}b4eVQpgDB8Ppy>0)E{$yD~>Cq-Dd9yU#irDVgHrZCT(#i zB7y(YsH`l6?=&ioj zQjCc9h&;?yc@7?7RSyYKHVZlvmpstWjM3ZZxX~#`=Ogamln3UJi_Qy^Le;}mKfz+f zP0S6FrK}6wh-jp0WKnn_P0@@8&e1rFaTen&#yNtMloO4ux8%6wl!<)A6{Q4qH77zd zD?Ig9o7mQ7 zX#@3#Y+0@>&2)=Qaem*gkgs`9F_K`!4pHSO8JdfZ%tWrDBj*!R%M&O~3!cc%5bHru z7f_|mB8J}f|jWin^Urxq!9c+RzJhI0!vPeK@l5CaOx z6GCZRqV#?sSIJ7mx1lP3;ETioFIa6@G1M2svpk$LoWspjuv z4}F;$&I*15azg54@C#v+2wKA*QFMD>_WQQZ_lpSX|NZder`KDdgWt6yJ)+8;IQ~O zt@PAb_;I7+yREo@wap9YGZk;f^{L%U_lFzl|IigLNR0Zlv!?~IQ6l3`Ik@2v1vg}6 zz0Ig9B@`xI7390AA7Uq7qA4t0Bu~e0>QlXnBgM@tQsvwC={6pVU|rXhjmpS&t$5YX z?ryT23D=0Bu=@>yQQ7OJI>){&S6<%%s=BQz6j?j19Jz~Z$lfE+*I0Fq7u}01AzFn8 zAgh!UJ*iyhIfxu%3Zl~ZgNS#j0Zh<>?14#~RH`X&qQweklkbM<98}weNvV|@Jl?~8`Y7a8Obc=CIm1QSd;V4}ZFL7qa%mU9EVjwMpY0!DP*T z1IN2$M1?h@hs$HED#-Y)+{vS0JU%s5e$wFyN#cPVY62N>^Lyn<30CH$*nrRtP{lI$FMl&Ux3Q-5{|8V4>G z)83*5NYwcW!6c&^%3FKws3m2nzhysja(FF+DTy3xa52HS=tR@Fqyr$Mfs_aV^@f=* zc7ney_vEi$|M=%SH=tSlQDYVf{H((fEMKVUj>$7ZYsZMpCQCrIY-Lo*-b}j8VmR9& zHk3XqR4#pt$5%v0kO!67bps~VPVbkgl5U=OtxIkvp_a~xAW|c%P1A=&If(%r*5WTD znZQo1lR!T?sgx0_rqj{oh=SS0!xNL#PyKC;DyuKk{j0`Dv~5cbi9AE{lh2#FTKVSl zkaU>mBv=e^PQ<&)3_ihaa1o(-dXp`1-YSWeAd{4AqOxPly@dYVa_PiF5SgG7M4}wb zwz75KgBES^S8sm#^ms3%F3C|i(p(mI+r}U-6sO0Al1Z0i2T@2zfZ(-iSyj

    g~JNAd*@Mquo=quJ1EhyAZt_u_;Fx8VV9zTedF_?g?e`L{_MeSy#zV zTa~(nSJyY)CvM)tVIQfEI_`3Zyh{t*n%oUTk=}nps+G%@vm^l2C@Y2^(S8Ann3tNbY4e8 z%qZ+^eDKyKP{iuD=^ap6d16h4gltH_05FF_lmn}Noz~#&r!kV!<+$im9?;mc#7jIC zy;i*zy*9m0dTn~e*m@U`!HL|<4Ypo{|Fary8b$_iUd;mwt1hWVJ*Knk_C%ahwIRDwcF613mP{*&Nr`B6sTsSh}q+d={A%FG*pyF z$`l`8zxn=`z4VmUhI~)Pt~wUA+)_aCYR<-G6GvGX4Cj)#pU#a0rgBtk`!akwHiFY} z>b_}O0QCVu_pEdZ?BBU$Y5SfPbLOBNtxDm7*7L;T?PnMNzLI{D6avCboI2r>#EreA zo-qwZP(U)BO_ncrEyK_hs{!sD2Q0FLqEI#?&LhL5HZCb)cAnkRdV?a2inBQJv1+?G zP^n5RVf#ZOG77nJ)Olesc*IOW!$Q)F?bfHV|ApaN|XGUO;AH z?{`PL&C}r~7xDrtM=D9@yWS3K*40YB`^w2o0?MIvZ2=9lY!vRwhD`-3HcX~s65_t5 z|C`(MU%F>L=xP6T<3>ije6kJm`n=QB z?K1=!?d1+DsZY4Ixk>qkfK~Qn!rx;sSfQJ2NaBkP>;*&$*1Bz$4mxo>_u=& zf)9eJ(YQ)>&?`o-3DHuu_|KFmGa5J?I@Dn*`Gdqyw!Tx37}s!9tbF$Ftxod!A|9YrAB;a&oF@+4Mz?|Sfn!PM^{LecEy^)txS*b&Y0xNu2EH=Ft|AB^HqcULpBz3uDhorH) zUzkY7$HTldFo$9`I|-C1k0=4jiLMa3C5e{ILXBy2#^+(U0Tzg~A7w|+!BRgLij%q} zh}>0ePt!d(Bznqv;hAF(QJOU+y;;b>a|)nxKXXy;ekQ@)%9Odcb%MuU2|6U$>}(mO z6uVP2p45$%3aKv~3Fhn5McWNFQBg;I0J zFbz$uJT9;$Fahz_1E};g$+s1kl8REI*<#GXQk5`hcF9p-j`KvHf+mZlCPrE?{B1}8 zQAq%1TN1KG(IkNICXDoB`(09v1mO3^&o!Xr4%GT>=qCmI8g9=zqLDf?5#k~q00y)E zRD>N*$86QB3_DO47Ir~k8hWDBG}N=)EL9F>@&d^bVm^&SULYwojtgAQb%DzQN15Tl zE90Q+@1x%D`^2YrAEcmptC@)*ET1Wj=NPr#$VY`fPsed7JWQuHNOd_6Mg6pBZ8APL zPPY!6ZgGcC+Xc9od0KHb<4+_LOfxANZEp)1T6)Pn^(4f?D4+hAK=S5I4lLUO68fN0 zAK%_Mf@bTN=70$&7FnoyA68H|6|+IxdLpH-|H%wEhu|PJvJ(P2I}kW+`O{^dWN09U zbKg`fZ};^6^7Gpp^S%K^96WOuUJkTzm>y<+_2%7jvb4uBqFj_Xr$2?Dw@EMIwD*d_ zd>QruN^z6qVVchn^H_;TY=ojS#GR)89`rt)9{Ow9hkT_T(AOy3Y~JJHEt0qSN&Ia>-ovi;eN!8{{JXSCY!tSxE4|TfKDznutPj0{ zO5n>O@vt})ebBqO0r#C6tpRJi)8InI43!ZFm?AP6wt)6s?rQYZ{9nodLLbain| z(;8~806R;>9(7jaI#M{UiEP^1(g4`KgvCh8_N^k0%ws>B=St4F<{?lQK(!kj@BqK;X?orBY_ldSgpLm)^H)Y zjm{fKs2y{SD>IQo+wkGRKzX(JN#5%}XN^g*o-yp30>1OeSs-)P0MVn8%%s5L>u13B zFT~dvdY?i@#)k?P1HdYbtNZm+M2b&lYTz7|>jFb*PDU@ZdOIoT#8f#YzA#IhE?emUx7(r(f$>Zas{%W7LevBZc|GWgpkZ!klSK8p{dq~>P2yf zax5ZJv>?`$NyS8Ne+*9xiLU8niBA{e@X%}3* zy#`c&jX>(ehVWNW1U8KZ>?ODLWTpxfRHVLIfD{%jnCLwXEx0<=Qx~jeR+(0)#-k>3 z!1k=EN;6mRyYG+;UYp^}@7-Ac?oW&2+JE0^;@I_nNP5Pz-fe;vYa@!SXT2eudfr*W zp{MQb-XLwgvwM^8tmhO|(r;}@Ae1yM71So(avkj^UfD#7i46HMmXJ7DG@g)dW66~+ zNLbKn(e31vt3c|kcO`Sk{jTus>o?m?!LPXIV>^+%Lh{5XxvMeLg9Kt^+1(}_dvY$; z0CWd2IdaDCUC*M(*fA-su%DfE6;DUvLgNQJ0TO+L8Pk#Pr0`1b*2)Sy8Nn09kwRKo zWI8MV96G*u0R00I#vF|AisAvcfBa>yNLK9J>YF&wy#~&5d{-*383T>3@PsLQ0;S&0 zPmhYjHf0^^^$l+!Mz$%UQK&HC^wvq0ss%2i76dxl;^$h%UHVS@DWt*vts!4&i(d&) z>`6qleVR}=iHJWb^oohBVT+1*ELBh2RATui74eT*f4fH37wsXd+t;xgadq_5x;LqX zkgUUcew>JJ=c88cC5wG^Tb+E%zIv*te;*@XWH#Yy)^wEMt7cjqDWQ9=ru}Ujz4CD? zhza9Vy>f{ctO8KJwxz$O4Nni-fA`MCNX8)^>olD(Zc~8a<-YLPzL&U1WvFECl?>I_ zn5>pK2F8vC_v1-$t%5UoquuZp@`_O9jrbYBTeZTQmgzv4uk*SKIXzWVU;L5K)D`Ovt~b1dNCC{m zT2#aN5ze!@9jjmy9w)LWz197ArF!FNVAgN$ObSVGPJ&avH#<(G4O+)8AaV8?n*}x; z$=Ypaz?Gc+4RS{Sg;h1rR(?2&34o3J!9snZwNUp2^}X(N(<;hEUf-N8QSP3IU^Kl7 zm`I@Xr-I{nm6g+gX=7}WQ%Ni^blF17&xnpVxNG1Ch^vS6Ox?s#)}J8@x$4OGU-*%e zK_D~G^TvziiV!bWG4SYVuJTbC8?g7i8~~)~ESvziyZI8rTAB9NA=tJY?8}e>QxZt) z(*Njm8+cGN>8DB_WmObbB6FxgGx?>K(((QVOPj!lZ*^ks_eTXll`hjOT$ z`8tE>!WoDF0c!caZ=8Lj^|stM@zn49OJfh3neTTq8{>rG=hBPXEm>a;xS+-v})DP<#2qk6*mW?K!CX!J5Iq`zgn>n@KmE|zTOv_j9ueKfG| z2uWhh^dHYd-l)0Zccbe%uO02)M+YxCiqT~sIpj)DQi(+($oqo))A z{Q?(a`+9(pBr-@-1p|CbIEe$l2Rhmaz}7XB3ncfW_s1Jc@)m3KaR;X)&0aN869km{ z90`^uUvT^;UqrMdW5^-lgj&D-uS|gBdVVXo3bqE7eNyHu1RO@<+p@4lDSRGLR4(Pn z(F{l;2d^9g7NzYHto4YF5GJG*JYiXDntim0(c0D@s-NPHuC)Z{pj^i6cxZ@SIdV$Y z*FM^Riq@^HSp&4EBbv?;W2j2@fYYzue|Ym>H!`^ki&d!Dn|(T0^=LB}MsP>`h9t38 zGo?8j^=@}C=E&S3!XQeS%+8~=NX02c7gT5O`eCUsDoG>z(I=uuJSh4e*DRZOXq%>p zBjk^qWx_Q-Q~~OB$}mg~0=rZ|f-bGOttPGnrzV$RI-llrSR2+j;P6&Q91ENXPue@m z3(iuylm$oC59jYQH7SE)f)Yv|Me7Bt6rN;I zZGkJ{mBJr3>JRUJ+}nYT2e<0Mt?J!w)uZ)6v%qdu0qcOdj2E|RxU{Mv!g{M7F0ER6 ztB!8fFkM=;t*u%vt(x4bl~$!g?8ifI)q`7gKNhF}t(tnP#mxpXeEY-VLhL`ByyGO-no%F+qB&DqA|X0p(&dffk6h070L43zUXR7z3P3}EvN{pR zjfDWCxs>&wh2Fe-|I*6l`f&#uuHXOTbyYBT23;2p*VV)^jG|XR-Tjb$)&+uRtLjOL z#m|Bl_5UJkp*_`OlJAb@r>Aslemkh+;82?N*aE)j(`OqnV#`}Iq%KiYS4LRCkOzZp zy-Hl5(Rw>bG_zTOd2D=JxqxL<{4pd!O^}VwVu))k=*0E&lx4JB7bTs0T=6OE!H&_7 zJ=x2QdG*6D??1i!>HW>HVw5 zBvBARu5%L37(qv>IP~I9U6x)_fgw_nQ2|923HUE*ggO~F40WjRMYBQ!!ts3(+lrvk zcA;8XphGh;7cfV~AHh>NKU)gux|s$mExDF+lCWTudxy9>Z?Kz9oyFNhgXB=Z$nA&1 zWnYQ>pHS;*__^duP^*%K%zX(&(n^>u;-}J7;ymIYF zy&IjiEGI9~_NDPM(;x8~vyXg>u($tP&I!BmdmYs4K%cjx|2ijJCW_-_@|gEC$~w>N z=Y;+E-%Sg?P~~I%@|RhB@d_acVh{oEU75 z^xL=taKckQd9y&Ff!WcxF{*nhF#w&AfDr2fteg7&cTy+^>d#9uF;Jn`#GmEmqyG1| zHPz|M;+|g=7X2r5$X`($_A!5N_x@~fZ`8cK#ob!X@CJ7i;LYtOz#H35K;KQ@pr$wq zO*hUFstfft_$H3@r!eVQC(YjYbB(dQcB4uY%O%gUNlT(+>o@Kw5m77@b0ZEM3P+s= z2gkDTLTeaIv*xeX@$2S=BB4P2!po@XI9?Z9jm6f~7hCywP4$0XZi|OAZP9uh4=q?$ z*Tk!SjhkiS#EWWHjHWAcI1wfm(IQDaP<15qHNgPw3R2%x0=VX?xDsY%RjolqosGIu zV=~5GUstzLTZnZ0zxg2wjq>6-N?)#TSL?8D-MVa6>bV1MjIlRHpear_X9;!XU*byBH({lc`4-clR$ zi3O!vW?~hI)M?~%ZOOyRPB1*N&b%gmnU4><&w93#X|aAHdp*}-a7H!ycx^ioM12)* z1g9_ej<4;8k2+z!?SxvBata65m_$+Jq;7vYupaEye$MAJzn=Ltsg^2KT|Z{pq^t=L=Vlf6u{!^&B}!{(jr`g|{Cu1E3N zFIDgoq1ew_TddpHa2q?GZp|&GeUiLKFy6*K>K^DdK5#~$-EljPe7Y_79FNg~q<9h6 zV>uwc@mz@cW`Zu4mjzi;(>qwHUM@a-srZj?77A{brWpM{vZiYbz-~xIagj12;GQ>r z^2ET)8y#@-8V)zH8SjUyNtemPkKPAWcaW_LXS6E5Vgc%`U!wd=;PN|P z(_}{h)LFko@vA`aOGI1c=>-4@D59NkNmHP>%z@xg{NFGX z=vRq*V1t4-_rT^5!=!IcdC5ik@}L3VefaL(n^&J+|MBLg;whgCHXpP;=OsqH$x=nN z&(5)>T#Q2|Lh9#R^3|IU+s0In)A@f@U*l$Ak`)HJn2lGd zd$fVlMS43=f}lKg5oJXodtRin?V8gfu4sknzvZjDiHXk8}O<;M$Hd z0Wp24a&c2T^}(Gd1ktt$7%#4Oj#M)8cV zvsHPbI|Vv9_bNX{__&Nw+R{_GE8V2^WqJbVEt<*dP>;v<&u>2bbo+U$dpAYX=CwW5 zxmuF0<-r#KgFt-0#e3^kUTcio_xt#94v5Slpo{tV1HzOxfaut#F2<O1?p8DuqVl)%Q^AZ3cl;3m{fByN_VyhO3NH|~&TjwoDdkcxrMC*RysAB~A)h_BUS<`~Xx4@7T zD9_R{EQu6~OWwnCIjT;w+QR$i==$Nq$G3koT|tC}M4^xtp+~ftG*KqPf(ZM1y1sw? z@rT!M{%23mQ=qDSy2+Tu6{ukZh~hD8DV$`{;~U2cVHBNcb;;*?J>qPRyTTYmbg-ET zj9Aq3cu&xW{XzwmZFNpeo1yY(>FLDz&1Ab^z5l3WYkh?_Lj~7Oc8VmhMZq}{ocwuK z^2Dt#;7HHjo8OJ7kLloV8+ed2DQ12`I1t~&=cn{scWAVV%(H%_tZVnT8fLoA)6%}q zU2k}bOBgbn%GB(M>3C(uL$1Ag{eH26|8LB@S=S0V4+&F0U*cc>8~N8Z{9`ypmLU@z zy4ssw)O%ZAUuN*b)wI{ID9JY<)^&msJmbz)BN@fX#;an>5J;8v!;x`RPONqlHVvLO zwJlb|=~$#`VXc}jPpK36qdzUbW$vO4;*=C!c)~IJFdfoR1wZFG>8XD_mv?&*^|ehv zvVd*w$eRK>c;I6=qiE&O-tat6OS#XA7r~-mQZo9hqVG6DeVbL~N{V0~s>6t7OdIOv zKpw^kDlkV-JUXl@6`UeC2-0VV=Q*f(hr8w-zSz8feE-YaPai&f+WTsDhn_cm{Mz&P z17bT+Hsj|ytd5)EHgAXFW^`UV>G3l1=Sye4_U~(-zYK%T#IpCT!131eHY6$DqmOsS z<27D`wm0-P(5yH?LiDj1B6oQKC6mw;#UYHNuRq z8_kd22R_uQkzVPfin;dLb-6QKKG(zLb3Lq|>*4ab9$4;NdBqZWh&tzq+TCXTEJ0Gl z3a-KsAac?VualCJjofIjiDg-kszNs?hSbji)+Q(dF(xVE#Jpp7a~cl z(92pjnd{pYAvc0~mql!ba?o7rZ*Qd!3WjH!w4M>RA#j~m;N9)AiN8(**TCBeV8MWE zVgL4$An7=Eh39XW{7lt#2H1vPM}9u`9#(}nEdam9+eiL*>W!4I4VN#?nc~{Q+eW{3 zg%=w3{bF2uZ%`YL+ZC-Asd{HEzS|&_*t44@)omApQX>ldrZ($Q%0MhmB*~$Ml5ZCq zZ<3>tsmnr%K0%E!Z)i?SL=Vh8nM|OQSw`+AtJUfzr~z{L*QDKBMKrRKquN11F##-1 zkkMu$=~x0CYG zb}FQdG$=Jpt2gnbX(eZhG!FHHs`RoW7+IwVDB=2C4Vj(oneJikfj^T1qlWt0$>nrfyoR zz(^*-YCaz7vDdd1+}JYW(^3K)n?$=3GOcvRCjDGyBttUb-orF?^^}^>+yY0`AVBdYO@|;P$Zp2$>~6Um?m8dN3CN<#ay7H`Eb$@om=;dH`!qxHaYCS!mqNo z%96-dVr;w|nLMv&iqe)*!Ddkdqd=bQ&J3!Xkf#|cGY?zGpzfH!QijYzFdWsfK#Dz_ zu!Jh0+4_&369#lV@x`kYQ8%}b$%Oi%Us!J#)iCRItISgK3 zvGK~J9dR74XP+JgGCcx$dIa+HNXpFgNak{65s3LcuNx60IOtJEo*JS&!{7vb?3^uV zqD;2uQd!hp-Q(e|-IflDqxs7AOniGgu9!j3li~m_UucumGpEZp+VuMyEx3Q9U0H#n zL4Tt!!2;HAbmyOTsmW}mD`dg_GtF$&ztc&uKhy-rXpm++PwR);t;~??j`u#-T^>#a zEJt9}b{oXE$)Vo$_#ZsmgpkU764znVCOUbvwQ&>XZ|%r-H7H&`;HD!E@L-dkq2gK- zk@Z>S_i8n8Qt+tIj_R_&sfnJSHV9b}Q4G8HSO@r_uG0mLBeC_`UMU9+NO2pk#STHnOGU*R+8`Hen%0>4mEb)GxT0fhZ`Ql{Ser zu?+q-9;_@=N_yN~-u<}9-n{>>8*dU^eeGpG>Ur9@7AFmIyxJ>hqhR-fweKv>;|vcM z3`-&wsU*Jp-v8%&|Jio=&nNxg;FCTMjF+w9**Gv>hUC|QG!)v$%h1P*cTSh_GH_(e zcp>pio#V}iA8tIK=BM;4b;w_1Y}U=#tedf!9*)g+8JqQ28ko~Vr;Nbc{F zrt{4`Qhurb?LOqcwh-yBF9i8}%Y)Lp@eoU_y;WT%fFS1To@u#au)I~~am7Cgi5yB7SuA5}{ z6M#!cNfSLK?7PaguiSJNXdj8W=`d_;LOObS#35>kpXGQTfqy^elVMxV6WE&I&|z<~ z4AVHG{{O|M8D(vq;ha34#gHNf^K&E7Al1x9(7?42e#1b)*w&b4;Fc!1wd(+n*AX6e zLwp?iZxh1pC@*L5J?=d!t}*_R$bQ_Ju#58>?v2ZDxR|alFQ(hywwTV37t?aeRL)Hd zEiZHLKcB*XgHK@^)`om(9Q^$A+x=~;uRF>r6LN9qSZtxdA{j^l>5V%Wr|`{8Sp|Uv zA_=4;c0K6JJj*yJg}|w2YwNWEn(qZ^Ab}O>XhFVQGGu8W2WFC48i>rbO9SEfU6Z-M z=nDlER3qX*0!Qh@5*VYQs=Ebj8(JhN<&32F=~(fmj2>)4-B$aNCH3bz-V4?P=;`BM!XMh3KhUH9 zun@HTPJ-TtKZIAy-JKVZukT;=?chRD6xyuVy8MWi zS4tI@_g4yN0s?>eRpi+ep=_dy-{~)}lIo`dR59hrics=092EP9sGvX8zbNHGPgdFW z)e0pk3R|hmb5@1{8QzYGIU-=W4+5fbUW>w~Rspb75WKMjzHMey|Wl85U;ZAZ+QMd!f z18`HkT`eVnY5FZs+a3<;7mdYz@nbcfAAa%b{TGiuF}O>3PCTkJ_6}hON$L)E(nx36 zea6f6GhQC7gdI*d`1RK^QI)1c@U+)Hr;5Q&la6ck7*K!5>Or&aX|qXK_Xu9wkUFbS zWw6lxQDJK@vbq45{rPWOYvo64EkeV(+IrY&)M5Vo;XgN3pS`JC9%sI-n9fO3Tn7Vvp5qZ9g~baLfM|Un zTHkWt%IVfudbhs9X#FR*zS8#Af9kFO)LZ|F*2mAhhr?wwY|f%-eHrH!?ABl265;+x zURwY1-KX_=3r_-hURwXjt$%ZdJU(4o|EahB6Rj`$u=3Sg|EahB6RrO=a+U1Xf4a23 zAh*7tcyyRs|LM~Dg4Fsv&o5m){`C5nn{AqMtVbTxgL}OHh{)C_4G^1yI;YR^_1|Ms z{Ll6MwZDftd`08F|IZQM%SU|W3423H_aB9uj@D0#1f>@_`tLAU{-Xpue712PkC%^c zKmGD??`1PQkz4DI^TN4jZT#)W&EBF!nb)CM+a4Xjj-5nF(y(OW+V!;U#D}I{%sp~d zFHY*kMZFkn{*$_KT)T1njXxKR=;=D5o4^#lVn_$UIc+uyX|quPC6vr%ZD zYmom8xPSct7sK$Ej@E7MwIE8liz;K8J4frD;1;TMXBKxJ%3)JSSE7H8P{XZH2p!f z&I^J+ER0>~(J5!s5od@Lrq}U8EHvpSHfT+zHK@i^?$ug3I1;Bpx6O5tD^; zUODjpN`pRVc*OEvhq%E%sAu3QS+D#oHOQkPq9Tf*@&D>ZCVu}a{$>0=o;fx}J2J@8 ztj1R!kjzITB6E#w8=q+SaF0^y4tWt}$uxgF*|9cH_IS;_)!^2xdH z^Dac!Zeedy7F4I`bGzw@Q{D+*9FugwsthS4%*00&m-IM?Z>FcI%jJ>v|9p-yKYjT4 z>Er8npZ<2f$AbJ}uMW&$ovrK?P6$IW&3c&}3p?9k6Sd^cHwa=jro&{OCX zu6c)T^HR`dbUbeCzkGPNS2IqlY4WXHanN0@OrXof>bQ-_niIld6EtB#SQG2CO}P9( z8OeEi&a+h1%%az^!)|(yWLSB4&=%?U=$v~-*V&dV!CmNp_7wq4<$+6 zzU!`EsM>kFEBe-1w)_p!OMQzm4GGVVc)}pu+L+(I zS1fN+tqsj}`>yZZ`Qn^lfy#YVzW=ay7BT9p7H8coD7(ZT z+6J8M8j_V}*0-;%#%~0MIxir`;+rg`M4`&{3e5|YgdXcH`e4>9uqEY|<;axO7crr- zpczc@sq`;%2*=58R^zCm4jQ5&F!2;kp%8lv%^C3TXU}hKFswSXK?(38?M#|=mc+74 zkC-sX4O1lXM+hO?oYg6e${;0NDLqXbDNU>#0GHbF1q@@C*9uXE0MGh#^JUthU^C%`ZCNM z%o-ud-5vgDPa@+oDLGJ6FaeVfWR)Tw6j2?)!R!Od-~89>|Gsr7SMAnRqAsI4jqIic zy9g4S8lRWrCLxMY8hzESEXx9hEbyQKl171e{HqwbjV!n2P?lMk6RVJPf*pQ;@f{EhV9uC^c3Ee>Bi z*i<&Pe=o_8YybCEl`&X!RiHPKcP!d^6d2b+`2grnt+USeiBpM(XLdyc_8R2$3vl>t$ zCLN-t1%hxT8I33_N@A0VhaCDa2v{Pjp}Yq=sL3K=6*vjhPA)xS@2fW-U+;SYm4V4> zTDTnfB2j;Z!|1WVlLo7Ehg*+d2yf0KA7+#AD2W&zVfgCDrY^xj8=SU0JI^CLzd%JX zqM|q{T#w2wN~72=%!jUUzFi$I1?y9#*EIc0r>Gc$08(i67Wbr3+Zg49K>}=QaY1 zz$U0g?FqCAj_jjRT#z_COP1I!FlDXqREC~7>8gh8hGFp~SU`vr*2u@ErUvk3g{Lfd z1U`&{D+eAGxUnoQBM3*q4dmk}Jk~F;z-TRkb2Tl7MQ=`q`TRkz$~Ejd84i8NT7g4$ zz2Q(h!zZu>bB|UuPYs&W9ZU*L&0D~rXSIho_L-#|D`o3eOeSm_i1L}Z6UoD|3S~Gq ztvqo1FfDME)1jj9(cxL)Bk2jhADX*MF>OR{eP~hocoV3E_b#=@BMCAu&P6C-pIH2AIq}I$C5ndd{n-jDAcE=s|J8;Ff&HHp8T}~n2AQ^8`agY|fsldvRQ0C4-(1z4Syzr(&5fPS z3p8J#F004}8JFyFu9l%lx{axvBXbw6ML(Zx{JtkS*c6xZa4A#r`Y{7?EK4jJ2V`KA zJ{ilBCK)rEN{aJL1r1D;A`4;s0Hqsn-i8*DOGU56KN#w-{_^_cyVrXUs<3&ESXcG= zXdDWX>>M48dO3(PQPR)LVmsDBclAkj4(W{Q$=S9}Gc$VdXK!4#FiO)rPb;(Ps|*#o z8^@Pt4M-h8PgpK*tgI$YvbL!DEr%Ox)Hsk_IYT{zMRTjdi^r)-I{=UBAFP?8W>_gD z%^uIeRU2K!ZwZvMMxBpO_CXrBBp|IaK49se|L4^oU;nr>ZKICJroIe5&vv^G`CA9p zLH%C1$L^k$@v20M2{cJolW4-{L&Mg+t5*1=*+mla7l|ikwJ^K-;xpZk!7BY3)qV?LMt+!~SMI$@+Yl}|T7F~_)x6I8fjFw!lTvd`<-W)%(^sO?D{_` zfG-RtiC{xc9TaPwAV#0Njb$*XQB<75tC%CdPlU|GK9O=zrVhGrr_g7LvIc{!RIb$N zFfkjmr#4Pgl)zHvO3SujtVf?H@p}xJ(*XS*IT16uIjHG47at6AGeQEDG_yc-8|t>v zAjK1Zypr>X!>@N6t_9`I3Gvo%HfyB%ybTz4(dCKFdBoeI48Te0qp2rxiE?hIy1Y($ ztIJCWicCa?2TJZY&eXLK^m2o;de@7O#XzYf;{p-+Uy`1H5-Sdb*;h$E1&W zK6Y)@h&67Vdme=q^*3swvQ$P<5zS}z%5E$Ws=S>t6lsrq*c#3<8Csd6vzKUlv||^B zc#Ghs9Ilol$-+TvQp$~|ULz{BtxtHdI*Hn(g(d0AkyBGP;r@eM=X=+1bl}69xE8-k zEB3PG+?`kq3JXFCO;jxj9uTpdgM56uCqaj#+PWvzHa(BR*`BLbXz3W#MLA|vTqs8^ zC>3&!+SR>S!tM1)eu{UewfVdcVLzL9_X<|;oj=tG0B6~bG!Qohm zJBXn^-kBZ{{ORq-w?BW{?>7!?%tzf$3uvidM8w!v(Bk`{ul6<7?LtVi3s8!A`6*qR ziKCWDk~9>Qba9>RA)eKn_1mixuq!)Gee%qCzJfY1rvnrqsf*?r2u$JNdyX*;><$6v z5PMM6VUUs-q>8ga>dY@@l8fNcwv02!HLP-Bhjn6oCVYYIZOE_}R>~VzSlDKRy4`2L zq$@sd95@%U4lS zKl(Z&eUG~w4#|A6r4Ml6s$Mm9M=F9RF1eyt5+ikwz&|D>wF#e2_`~byTWq^4xRu+F$h8doQZJg+EuKE~HPfvu%a)=LNGw1(J?&MuE?P0GnRD5Z3L$f-NWIbVwyl^$|LoFNJU5_w4G zB)&KjlX$7hj}{-~;j^giK6@e|?>)Ea@S}AfO^wQMmf3|e5N4BBC0i-xzvXucdSZRw z$VPSattPc40ZQL7K5<~OTGTJ%t}>a+oE$@y2zu(9GLJ!?IwbAA0lF?cI0bs{Ql=(8 z3Z>iR(9iE%0;scoaiT&JyTVyBpOznivqG701|^k_seWdm(Mu3w;srL=8{`KIl8I0O z0X|~2oS^E?*C8~$Pz=#MpO!fS`Itjmds1S2`ZolQ{Ka?8`f=Y`S?;^QUbL1Olq(So z=k;srAh>KVxMT=7Yu_R{9SrOpl&mR-z_w2u55mcf!~+6eefRF?Hy?idaq(%tS9;Z) zVYHL5BD=~>$pYl(5GmwxP*;?yaBet$j)L>9h9fmh&kgYKfI;&9|N6gf_CU&#eS2YZ zI7_j02^pWYg+Sa$JC3ZF=(bjt7?tACPZaqbAlTRHe6jb0hqe#Nq?z?36FB^PPy5H$ zpY|K0KXB0=^tBO?w2l!_7odqGKbH6Yg+gBoVCiiYfG@Tabx2Wsu!fFxErZs`}aU2Wn^TY|RCW~=a!r;Fnyc5L&7R)^AWz9U=jD~fui>JMOEUcToT8)U6 zHbT}XLI@;fhH>uL(M9843v#)Bo&?J1ktB#T1drB1Uy2MmyGJZI^RAC2Da2f5Q3z+T zq|r=w4D5ozp?8pypqFyeAhu^F03A^Z5XV?VN5N`JPTD5ler1k91l7S%=ug$WqtqP4 zK7#M{B*?2QK|Xg9#KCco1=6mVSV4)!fQ?I0O$)6ib2M@lN;-vkeg&djUj>`m(VSPN zt{-2>DISdy#lzYZ0o+I<@#=N49uXl&ANr}bVvP1Ux)v6|P3r;-`XHfp6_j3^_}MRf zKcRMcf@MTZ8KYhVRwpZlyq_+|UWfaE_w%O@yOl(J8lR&sqN82OmmBNd;k=*ClBVHF z$EI8?uwv};VQ~R#gywQYQYTDWhnBvypS=Bu2i3YU@y$`MuY!JsdDf3a_}P3)N+}^~ zlqIr!Txh+>S8mBfZojW>d~?Rw-4V{dc9Usx)wXCX0gyI96!wsZ`%|rCQ91gRz(k`> z0!!jZFR_;&Ie*BO#S`0N=xIlRN}B{U`Y)I1ky&kQ1ncCw3gnRgdFldfVJ+xzEk2ke z?wivY_{7)dhH=yOUBhGh9`54xg{at?M}mws)dEeMGc6S}?MrEUBz0fLP3(iyj{p0A zU*E2N$D6iIvwj0RDCPrqfw2D)hqQSI%`yP$T)oYzY7(tzcgVw2-Mmgu(@eT0ITFT8 zei%D*{T+v~3xVcAPSF$-b^OGIb#0CbBNA&c^sct=U;odxvaFyoeh7V_6$Lo-QQq6F zaF~YlJR;?5eF6i>0U@#$mLPmEj{~Bdm{4Z}uX@Ugw}V+Yc-so{4P( zzWQYCGbFsU%{l0}s0-rQ^=|*BD0m<)v*MkJU0&jWI6b+D?AiFeTmt`!l`_ZR7ObZD zvqBzL_s6%N{`%qLtplh1oRl{QrFAc4u1RMTf?<_yl2P4eo1$J$P@ium|5dJO+I;}n zS>|ofc$HQPBel(EcdWyax6jpcZP$O>`c_D=#O8DT>gqqJwifLiq#=2&zS6otbvY{> zi=GKPqEWVNFB^>O2J}@%l*O#CZuvw{U~z zA!~pB>Fv!K;fw1CncDZ-lsts zpG51RifDfaSGn~SxkJYCRs=0LPAXcl#XQUa-og0sagln zb4ogNY=7IV`hHoD+WGxnSRZ9p>mYT-q_Vs>y_S=1bvO^nO0&F&wKJ15!ZMzV-WEIwJfnJw zIxcfxR%p?JUprDZIKFA{!DjKT6bF-etF)%g&gPxIw0)nXtJzc~-FSbV?#JIy`cqQ& zQE%>0i4E)s{UYAecY=Nu)--`{C<`}~g&WF)Yc^jix~+W`5SkcRp6<5Ib^Bg!wpH~$ zzP!i<0XHk>Nv+Q3XwvJryjH!9CyOwTtDrO*0ZE_8s9tsC^)n@Xt|PW557^GzNZ+>D zSo;S%=*PD|eE7@TFHac369(5k93yFeWhrV*9*tHNTLUXnI8Lm?3RRz#Fq%lofhgqW zHL>r!MhAAZJ+X`HNA5=J!0Sj4pC9Qzf7%P`n6AU560+|_nn-9IS81NbW$&c009>*u zI4ZoZA<4-U7h7r$Zgy-cQ~?p_sS@7v#js0!_SQc4guANVv~?gRbUPa z*rGHXHAV;bfXYDaV9_{`8rswk?549Q*Lh>ofYf45!O`xK5mg5s?Yus8!7naj1Rs#9 zOEy?)vj7#Csj=0oJ%-f#ohH#dDr9U*ncBR8xyhS6&$#|vBl$p^lhRNL_u|f?_H&GU zax%dzVC*VJ$3;cOvSQ1Cg^a$r-hiD%Oh&L7vtSCMIbCEtuMwuC9$lAHTD* z;a)&Tje>?tP3}AN+gnkeIdUW?0Uo%CsLzaYYzTuR#kxS?!G zs@hT26;-YqS3Ti?L9ZLQyQo&=2wTwG$Zst zWnXR-;EC{Z^5vlIdmv9O?M3#t_COi=R9D%@V1nd?@ZjT!L6Izn1~ddwiA!+?4|iIY zUz+r^S3?vxGWVi&0fr)UmWnEa-eP9iRJu+x-HFl+}x6qk7ywR@53he_dkS9T@N^@11G?`(Y6kP9}kMV-KUOI zWN%~bZDkz^%@dWjRVRJ1)|G#IE-z#Lg1wRU4;UPI9z`qUaq8ztm%Y zVc{{YkItnfC%MkeK+P=K%-w8_(|#)3oyd0UETsQUO%v65v^S-J6;se-+zFOpg#2+I z_}_Y3%?Vx~1>v$_=#zUlKlP9yA8weybrPFcJI2F;Ef0-!0D<|;hfq~(YX#jq-B|?|LLb-f)A#T8hlMCfseWSQ zp;rx1p#q~q?~pCdsNe1m`gGvNaqAp|?Qe|iG^VnEhbk}vNy03!v(3c;%WM#4K~9OR zCYPls{2;*{^;JQWN&%(tu*UEdkKPC=^^!0Z_C#2hVo%JW?PN9ax$sDX_A`J*AXkz_ zR&|!-df~f+wE+AxTYrKtUs*k!g4CrXv(v<&UZ?z!YZvu9XZ8AX(oU7&)WZIpjuzae}90ejb%T zJU-)>G{XHximLXgfVBHb8_25EBj+$vVXIuklPWO9fpc2HVrn!nbLC+erY0vAeCRli zg=Q6MO?N@yLCsnvXM`=>q(wjpGiJzegIX8<2^y`S(9qb5*At^!3FDB@30XBafmI;c zOF&vXxg3FO>6`lA50CHOyx!|*SnD>9h_mZst(Tb%FTx$Dm(eAnfv&LI1J{Hr8Z9E^ ze!I)$UKG68Th2V`e+shxezst)is2xvDDaS}epF&>(AqY@1yr=9e?6NChf zIz10C$kA%Y+g#SMXv|Z-nsFs-ybuc%Z!1MjIS*edEPliE9vh>}<%vi;=l$?2`Md}aG@Yg{JJK9n5!F75OvDOewM*>}JEaI*xiI-^u0QFBhT+SAA>V_^}e z5F~#~W^5fTRm^)Mg+fBlByx<$s888W-@8XSIZ# ztpi`{bgFvy0!^F!~NO z#NZS>&pxjP2}wrf7;)UFL)1UWGN>fyBydpKLzXiJd6VUN6>Ez?%L5bHvrP~UV2DHI z6wg*o^d7RKd5SwKYBd+t7feY{OxGs)bZnGOk~o;MlT@UeI60n?vlJs&L)OvEZVLpj zFPFNC&x&WK($+Ivy%xnZr5R5Md{!I#i(zf4g92zNUqJTVuW}Yb5+Q+*M9AUlh~=Pw zvJ^*-a^Kkh_4bdice?wx2Nq#}8bOGX>_Z+V5i0b`mWOPJj2fmR(ho2~k^oHt9%z$l zWam}39OI9A!PSZ5xeK$;iz(9+J3?*=`sqwR%OQwE7?Sxagp6VssAl61nFSE#p=&A) z8feiggR+jWB zY)vqb2s7CMrJxrr{~T}g2@MNbh`3ML=)`GCaDiRX%;-WKC?N!!_6SuyT?EWU^5~=* ziWMg@kF)#;oWhyk;}YQGMfMjIWB<6B5_z&=%YfF_>w##x;RNj$tRU^E+S*7*b0gE93Alm$tkWjaF4lP3kQ9Drfz4= zAbQHgH(5hfmMZNOD|n290D8&=8%H-xRia2>S)C=LjxE}iu;nAPV5et>KqQm~6TKkr z!gL@z!6qj@!ad`d%~Yc{uU#Sll1xFgh@a!tSYOT*R)!7QQw+d-qZg*RUO-gU(N%gv zlSb5fx)3^-44ZkRfThPPR*vi<%eLdxp-_*6-gnr=?8%3ByQO5&8E4xYXSls=;$vDi zA^BDXx5${a^4W&=b9qqoyEktaQ$^qX`9?)?(DH3y=iM+mmTmc78|i_eUIa^LTd^8Q zO3g_U?-PmJlD3d^;ZMi2WH>JP=Qs#1%U}C84#KnGp5tl?DEjx?NJw;~(`o9^Z&PGe zoc#IvJBe6=j&s;pN|SkVs4RpCr^Ey*^EZp{u?bE+Pep=&=r|qu`jPaA<_o#=aZ}Xi z82b1cX6QOISl)pmqz!~`80q4?NFM|7&@gF2%GkoNs|Cf%c4g4B&CAcE<0Zw~no?4x zFxUok7mL+5$$k@(fimk?6FW7j_%w*Vz|x^dRzU74veM_CJ9mVFCYPd5Z0ThelT#Mb zipd;JwvtC`qWRXf;|fjIm-zBhbDb%6&X`%Jf2)qju=ywT#{16relKH==paUeB$=yM z-3919pbga(cLO1}S1jOrBydqJr)U2cy!vM1H0hd<+bd7|6YGk>3*;>ecF)NR$RjdQ`Lj z`C-2u4->j;$GYmw9kb+dECgHs)u1>B%mOs#bIP^tY1;TzbYGbYRG_wF(Sjw?zSVMwJEBB@LpW(`=M&a1oUvAx1PPpi?!OPGx~|g-{ozi6&@r?T8{x z3_Vv2t{ox9JoTccUc1S))7<65gZrNF)0+=_Po|tdWS#8mrwf#^>I~fKj7M&{^nUc_ zO08GwAgM|vmf;sQY;kZQ&H6%`h8GMP|3J8&N_BlD9a@Vz|KlYqPP;KBJ(E25cJ*t8D`btVkP$7pTcqO08Xt6gH*Nz)N*LhYB`f41n0Mn^Pp}~Z=%0rKlik^6> z3#VpJ0kpC}9jb))}hv;1(bcjk60O zRu6P}3lyABo5>79-K!ltmivyezZXh_4sz^OdMO%NuF_Yap%G9NFcMG*h)Y1>Jw8JJ zST>7!ch$R;q|o!F;6A5U+o4+uCty@SCSW8WE&-MIhsC~LmT=4O5Bq)OQ#@N>)JJ<* z8Bk}I7a(jcDaM-!9_NsHasg=6J3}b5#{4BqBa0sT`l^h6C#ohXj7>G~tU~l6H)P_q>9XW$IbmxhZ40 zQcTcU9cmDeypg3r!j<^F}P|{Nd-9NQFGdz{joCXgOm$A&F=Wv3`b zKIFsg>N@T8_rKZ{9LsD$19BN%3>C4W_AJ(<(Z}p~tw{E@zP#?A!_JsfCXn%p!A8%xKx$N@= zZhDwS+I>6s6zV-^WXY>OaS8u}ZC3HRV8g%}2BlD!0(V9*T;D9fX|@?SWf8WQ%e`T( zKC8OvZHRfR%W?ICqY`cbIBZ|7=#2`Y$Tqm>EccT$UTO@ zK2sMsB6u|^J%V=}V*m%>iS(6qo$!nbZ<1;PW9o*&^U*bY$o_}khjogPFBZM~^pvmD z(|DbpN}rzEIz5G(>8b9gr!W`NdU`6C>1n)7PkEi52-6;*PfuY#J%#CJdJ3AJ+I4y& z`;~U?#V-O38WS;J43nR#-n!B9_!6t$zkR#gw%ByI8XIp@!EOL5T3^M6VP_61{4rwV zK55mCucT31(qg$t85K&HNmHXG-F=HY_zSS&`m~DtaqLjAX~_u&rxWh^>hoy$!GiuY zi7(XXRzQ~woUv0_>_R4g?}M5-oIa=~BU8 zyzBe+i^zMvi_RxnOUL}(yjeK5)xwYhFVQD8TXM>f9cfz*Oc=`O6i#fjZSA7J@L4W? z_x6^HgSj~H)0bJpmWzY9$T>U7Iu~y@X`O~ zJ#=pe-IfaQCOY4wHs%x3rTsE{(4VQ(q2R0^%`Szbs$_vvfSc4BPB%dvFZ12Q62f?& zDU`?fLwlSSyq|5qx7$&m%HH4H2dq`z1d%e?ad!b?IS4miNbSl#E+Mr0Oir8b(~ghR zg4YAN_oH8aE+?Aw8Smx+>Y2J+#nR<`^2{MiQj)5m}A09&wp zZcOP+=;cAA+(J=q`{u!8Wgo2M(``_CDP{TJJ~aP-`>#Ll)>suvn@rTXon{)%&A0Cd zaW$KFY17`pNlEO!3t*A2cN;goZjl>Ts|Li{Y*$i*Tzvk_3KKxc3bToGLWkwvCCarj za;^OZPW-Y{56VN_Zs7-9U|a*x72bt#>3h!Gkc0a7f(Z-9XccFDOD@`ps1+jTh2#aq z>gBnhT6K*Htw$*M^Oe{wdO6oRSYxaHJ5E}sfX=CP9o>voowD0;hQ>cLI$I&@3pW>UUS}@#>?t zj{Vjl7SthC8IIhDs1?`lY;1$7!LCxY)EQ1RQM;gofc#g3?DT z3)w?F{fsN%2AOsU&JtVMF|i8_NN}!7lC$7s1)3!IFag_p3~9zuurEFV!IGLljwo}H zrf1S6Yr=q>#ew^w0mfdrM=TQQq1SMf)_h_Y^AQp#q#dsexa(GnXOlM{-~DuJbZ2Qz z?YJ=KQ*@7D>)xU3bWL#94%U$3^O-yBz8X1lIQI8QT&#Px2@Kc7VT&ZAePNr+VPn=y z)6@1f$Pzy{F&k^m4Ewrwp2;=MqsqVi@!sN4YtaJTy$vfFpG{5#)C|IX9R_2TXSitK;vC%H0 z17hp;CWiENcK$jTCk_KCWC2%7+1YY=S{Jaf?rSJxwhK7U9YSiCq)5>ZU=WS8j3d-EP<26o1&f$HRSmL_1=#QgDk+yQLvY1TG1U<+Jz z567v*$8#f9_K8bq;n z4n2@crA&kKa*1h_6K<&}371+b9k44h&QM1HB$J4Wko8FYjB$3oT~KH)93Y)9TD9u@ zI{Q9cF0QjB2&duzr#SJwE9$_iYQ%kf!Y5sp=V&77T>{Po>h6$KXL20Z*q3|Hs~i$!1BynfZ~gg_!JLDml=_A6r`K#V4&EFoW6 zk4Lwiy*~Bx^{KyRed=JpGAbz!zF$^m(SgZ|j1`Oet5n=oe$=n(=lfOt2l~}g#HNZ* zy^2rwReXv5yKX00E@VA2RwqT{jdjg<>(pZVp6}z41F^biwVIvK?y7>1&5KWmQQ-0( zck`}lBS$mU{*u*NQSaTND~2{+9%%O_ecPZ3J~7juBplmI4Kr?)@{sh?BpTlB_?NQ0 zM#t)@&zOYokj~?COh4>LwaYJ)W93!ar=&pMvrGdTiEv{kxm~KbCnw;06VnleVR@f5suL?}-JI(A z!s_8!iB4a&Uis2`=hQvCLK7DaeRcCvUt1*iZhD$j=yqp3>h88h6F1?cBz^bg%9>2# z9C){VJcwVqmTXV)T*Ob1O#5+)rt^L&G;LqoU39Q!Z0k<6T3_1L{n{zm;THC+ia;sp z?uM}@L*JQpm)bFNZ5q~)L{HH9s}NQWhGGz$tKih`wk+ZA+_OkJ(kSPooGvN3 zbU)cK+haf+NK|APk(~DUV0;#Dp_smPu2-RZlQo!B;;8|-j#La>v+GL%F}O&c_6Beo zpID<5Z={~<%aXZuS&WP)C490K0uAELaIDMg{zFm-i6B2sdZDa-@EbI%n0y5$zBJOT zvU}JWi$8*+R>`1Zp$ohx4P3}~Rwh;GQwbaTV9%aDB@lf9gB=*dD%~HdT?OP0#@WwA z`J@WArGy-HYP?R@Bva2dT@jINQl`lg&1|HZ4S}6Pbvz`)VCVpvY$T@oLIW^+wgrZ= z8pp3eDM&HHXcG;Yaha1J%r@cwS`+dBmR4F z5fX6`l9fYzQY1WU=x8O4h%ouHb#WBJhjZ4}n(l5-9a8DLIO{lmwZo6oBOf05>wS3a z{eYZoj5+;kjy#^BvGRh5>96A(k=lU$w)%+>zdY z_(wX@e>&2?NBf`n{OTCPw-rzt*(}fwI>ZT{jg<0p-DU5yPh0ynf&$EzQ@d;WAxZXOQcpvYBa=Q{BqKi}Pl7y3Sd< zsq8wzZDzeb5qegjbpUNwf};bDy`a6B$Uhv(j;$Wai7Xvz>`NL5Ys} zI&bxf>~2=FNvrK7bDerF^U?7-NzI$7YcrvBY}Z+7-pn!AnMZZO6Z*WFq1H+3I*%Q< zvl8v)b7^G1Idc}MU`M|^8~yUr|116EKmDZcx=AQE{iJ@ToBZ|T+aKS2|G$2b^PfeI z$g!EP2^V64jW;$2v9G4u2h4aix}n&v(=9|Lg1|$ugKmram=US52hbIEipOcS11D{m zC`>iY9JN4K?S|mGWj>X@q{srNJkXg$4Xq^-*-3PfEljCdZ0f*q!dR|w&7{$XRRmgg z>!RsoAf;i$f(PT_|F<|y{cxk%C_{c3W2J*#yW0JDM7Qxd&+x127!W%&93st3%q+KT zup>XATC($!XNiox$M(j)_9kH<aL^%bvNvkA6eJ&JJuS!+h zTDeU1mAnl4^;dZr26ng&rK{hijStg;7OVdl5zXgGMNK#MAj9@uJz@La?&7DD@(3e7 z-GW}z#dAS=v4LMLQfF`9-iVxSuSk=w%{K2ke;zL$7qx0DI=1BS@`ym3jZ0ccB8Pry z0?hr?v?iz|CZ8ro;krmV?Ho}=xhYB80Gw<+sMDtpZ}#SRw7l)Q_mW1I@XzvORjTlK z!l)}owAmi?3ot(AH-YuVl=&vmI2Y8@|y#LXpDTyugJy8d#ZL@oo#2ZIpPdK1ycP_<=qVwC zjZhw%g9=lxR4giZ6B!Ww%%Bn2Cgb+OZ0Y+;=7$P7@vy)#YPRQz%8nf@luR!TP8!2Z zRsz7rrk64h?zIbu)`OEkC5_~iHwL}JMN&|2=YtmniaAPFTwoS_p~bXyQkN={s@yaF zCefn8v9$ACMC677-@{mV4{NDRd~4NF0fXn)B`S-^PqLeRn$J8)n9zRKNKlxM?Vw{Fxvf)?!^o|@}VcQ zBTFc{))?NhiBre{nnUa%Nk}I@m4gq*joYDkurSSC^>Ac;A8J&xDOvQoV2Z@scfDrrZS5v{gAkb$2j2o= zD>?&kcWw(V?anAMf&h1+)@Qct8F$E!?H=cwKx`u|Ii%4PWErhu9mDJBZeI`oDz>Is zM|-ogiikx%l&}1u3&-}W`L!>KCwihq;1mLz8qH=#Zu`;y_io#FP%qF|0@2TsX9t9C zs1pFCiYXh`H>(G8CCkD;0J3YCflz{1N;%bac0qG+0EGyufF{7SQ17DA7bl3Zh73c@ zHo#j~dx*9YS{6V7wGlZ1PlBsXZF8L+ng2ktA}EYTAqPhNOVzE@HLL0mqwYtVPFncx zm+r*JVrJNlZL0Q`UgXtg4R$PgJ!Et^pVvja^-EH_=Kn&VCPN0AMf) z%%z*`vcW_f_nuVJgo;S*x0z{PtyH(5d{yAsF=&411z=wkkkAV_rjuDHD-^TA;G1d6 z)u}FN0cWNchf+NmgG6D z{`-&iLzM`Um!lW=O4X9ZbD5K$1ZJEQnhAu5JLMR`! zM6|%zoM!=z$7ZXI+aLwv>KQ5&+OlZ_P9~WqPrW7@8rc;T+}ssxa>jOiWXjPIw>O%Z~si1Z+wWu8aO~EM-ujj8H3=lbr@TTbBDuvr;Y|9gJuDc z*K$bgXGmF~bB~B@;8$~v(;Qxv-j+f&3nt#(FDS(zg#((VQ3*||?I2JC_g_weqAQxI zC)H1w->;HTjpmXjw$3`0FK*HbaQNEc?k3oeZ$5l?yCFdU7o%!eS07g^7U%I~ufgdm zx-yZd3mjiPsK&6uBk&|Rl16X>4(s{D=)AzeX5Sp>jKZIUW>SizkKt&UYNc5yPKY=s z>GBX$(d1F>pD9)JE>Xr;RqFVd5wG5U_ij5>g%1Obqa?weOmmQHACfUYqAhyje6DvRC41Zw_pVgOVbc`Dt|^91Qw;m27;c(kxM_;vA8v}_t|^9xO`&-m znf3Eao$sgj|I2Dzhv+?*V-E^92gv*a8$K>hSpM?%e-$G}+>vm=j9V+)}V%d zs1xd=c|?{gW7xN)9;S1>+>>(KTO0&Jr=%EV=Dzn@@(axV`OWKFZCLdBZBjtqvjm51 z_vsY{G=1h~kBjV&^PX^khbmbETN{hOy#D68mehR!O zZBbG$FcldT%h@cnh^&{sQ{8rHfR1vCNXRc`?RJOItSStmWeM5>a7o{gZx_VtKSdp@*IXqrN2)ppBo1 z5QN5mI0oyastuq)5fCzy8cK$aA$OFSVlzh$h2Q3q8F6f(THjL@-s~JbJDr}wH@KE6 zW}rlY7I+Z&%yGGBBz%T>PJA!|05EdQ*i_W$audZ;YEL3clZYN&194Ta3zJ>R1)5y* zqfHl2XX}A0Tx85j3iq7%U{r@W2@Wz1=r+Q2L2xWRBHbLy&{F#_Qn#D1_CmVkepc?# zhW0Rh47Z41N{OxQ2NZ|$fD}^R(j3D}DHEvg$wq1Aah4eFu|G}=>8Y==<9HlVWyK?~ zW>|qO;EF(C9jPtQHwSer{ahr$<47sT1zzUts0hl(ZU;}8uQfRlDw>>f!7gB2fIF;|r^p!^1Pu^|a1_+$1+lA;U718W z>WVE@0WTw0y4K|6P>3Qe?Rk%o zqKKbO0I)aYy<0-Ad#h_9*fmN{?<#+;1mb7&5qL0r-6!F?yQ-_ud+??X4?b}3AL|o! zt7%A+plieT>lE6JijF# zPwNM|D#_(lNqpH*G&5Q=(>iB@TM}GQHkd{#gR>jdh=vXXt`tb1-#jZM3D!|}2cWq* zLHAfG{Bfo%!Lcv`?J?}0%6i`nA3na`Hi4#5%xmHLPf%piVAj4uGDlTr{W!u<>t3D& z5vwU$Axz0hP!yy%H9~SbDHl&Zp(ywXsY0eJG+!WFp~4)PuJja!k!5hgeoBc~XugIu zU)gbqVY^h(lTlO(Xc2G_2LK4Mt4f9XKwD?}Snov+k1x5lH+ZDiS=1mvnd1tH#10jQ zX^ab^y@;hblfs}W@gWr?jV!jirk~iVPY5c4{FRRDhtR9kOagT*62Ml%r3y(fst}l7ZI3&Ts4O!K?#*=FmZ?0n<95YFcFUO zp`Y}@%Ts~wAfBm;($G_NZ89lJTVk*@Yj3kUQ%U-)j|1e0cu^<-oo_-K0UXnir_k%P zf6H{;3ovg&g6Ze79sy)`1~*F;jeZ_4jeR>we0=@KKkiSdZ5=Qo{gr6@SZ2d$yTd=G zx=e?eI?SDAhoPVfo+4et9iUt~OoqsDf`0Wj12`V;Vfr$ z5EucO9Yz143M}ISW;QGeY-x^k+{Sf8@E5{QM7)uN^9LX^vu9&5d=&B`I8Enn*3coT zD-#sEXIRR%Q(;^j_*&CTn!|V^i>49iE(vh3_@$y&P(8=sBq0^jx<7yckWWimKnm_EV*Y{6soTF!1CY*5ra-WMd+WeX3TaVO8z<%cP zG5G7%1dW2S+GJv}5if4V44qZ~*)K(9GDlB?Gg$Y1_S8og^k+v9L{4;8K@nnT zxel@H5F}FgxHW$jF~)Jk*B;Yi_97txgdvE2N%2q2=J*(3mcaS;tm&<4ZNz41<(a<4 zYndHtE=!+bK}FE0*lGQoDK_a@EyuZWSte;&HdlDx;8Gy?3#D@D)Rg1(N-yzIQ~!Uz zy#4gY*L&Nk{Q#@4cnZU#dYJfVmG_3o1pmq!FR9sdKFwm z`%_je#+>XcMib`5(Bt_PPAukZ6D(2%(LAxL`qVS$fy}~1-wSn_L-!`I1a0=FZTsF$ zTXfSH7L1Z$jSWPZRtDPM^WW%Et}ty>A5Ea)>%1D_DO$r7Y_ zlUb(FlTf<{;KFJ{dfvXn4*il`pAb+)ZID5$o3i+g@Ek6(uloR4e3L|JW@Nr20z|mu zs(HA!;)4c%_xeVcrfQX&Y&H`eBm$O?+H=)*ee~9z19HkLOHdKN(?pOn6+sg9b9P-D z>lv{&9XswLfyxR5k|i+oBCzmF8KVMSh{K#aQpoX&TKBFLp^3GSC?1sSY|PDQIo1QM zdUXXYVMf~oMddV3d)D5GuwqDWe*qvg}D5Rc!;)%!m9m7zL^r3C9V@k z)rPBEEvf0VjcLUkpQ^>$8#W#Y^v>3=@dzdV&MiC(K;jxD8^I+A4uaXaS(%}N_3Njw zub&RPQBWT@(-jur!El{Jr7`m$pg$YuT?b@wnm$EWtw)61kRj)pPoJI5zy3pkb|-3I zSwSUUKNEN~N)j5-$&t)o-hGmeYm!Hu{lm?SQ}&a6+pAiL&kyt^+8nV`K2Q(*pwLYV z=B-Cmd%M%xDA6Qei7tFoiS0RCHJk-$6D*XhoUcX)(IMEpYPY$04Tsz4kRMj})$1Sj z;+u7MH-&7MulEE^=V=qI#W+Ub6e$^4JY8-PgkTJohaK(OTcAP_P~Bf@Ddl4_|Fk1> zDdj>~>t#PnR4)B?6nwvUB3X_EcAunar=Zg}^~NXdmIK&8cD0gXANT0nx!Wr5$0WfDxiQHDMgg=!k7aqN zkI!*1K_0vK*ttx~IvGT^ZV6nC%ns>jyh|4z%Cma3d-xCmNAx1JxOqhqx6f#||~jewPBlf!dEswjWtvuMr?tTJ@d6gFhBZcrkpE_qJ) zQ)%>H6&};=K8h;r0)fT z3yukFbC`Mo(FN+sNAxq?znd3rZyS@@R}4E@7 zD^&HrW@P}Gv1xjadEi;A87G#DhNi`bz1yM=YdI{c__(i~Lqy2hE|#!Fuxl;W?m1|j z>G-B;n$Wf0ScauPbe)Dvj^DERVej65T=E~W*j&<`H{1!yAUffOaO_7)2wa6nMiaBQT`;K(_6-ZL z30Ec9HINbJaQ1KX_RuZ#eMRjXSuTP50yGnDHeY#vDnJ>>ceMdoUfa?SmbH#u{$T1V ztI960gbt>i8SM*B8X1sAUh#)=DM0Y0gixia(T^G|<#`|;!dy!z?g z%|72&{SV%1W6=KQm>2cQ>9XZ4>kcyRj{^cWG$I;6f`i~HaDPe=>aB4Ej`8q@egJoX zq6CbJV2Eh?jNQZhh;~oWRn@6p)PCw|0uG1eWzu;TZ;|^jVc|9Fl`A7&i(W?#STm(| z?=biL`=3{Df4n`EomL%Z1hlw@Oac)Le5MY(&5qWPv|xhj3(t1`7F5yAy9#)Lj#sZg ze!LO()pVn+!LLy0XKOW{+fju*piDkX_qNaTg3P+;y3&nCRaj=NjjXqsNK>lhA~av= zq-$@;q}NO@5^&EPD#?^w{*fYIu8X>AJI3@mzNp>4mN&Z=B%(J7?Q09FhdG(hAw0gHAe+zdoLR5Sn*Mbiq6Kr>b-o>d{mPWH9LNx-!Fo8#4<1nbu z*dae58pvc{z--WTcbu*u1-a-`K=v|guk2-b=H2q&2i=1pGdiLm#e{Jv3pgc#BNrgZ zt`lG%0#2SLr}R(__J~!O%;VgwTX4rSF8o>R_bw-dB{;UNEb`ae>mL_?QHy zK^O$aCa^?-iDMFhS%FQ^Schw2r{K|tax1n`lHGx*%B$CtaViZEIV&?2mZi;5N)H3dQHq#_Jck@Q?4>84IBDO)(&X%5sFo_boCXcQQq zG3K$C1~*JWQg#!DsHo{R7-v7J7YV5?xnaR*rceTGqF8tbErH3`6mqDfE>!aDnh-<< zo$$(eHG;^B^pVJdn|Pnq0#4P_mD=G@q1(z3BgwDuYyipVfyC6P8VQX)8#TKPN+dNf zWSk1k7d2nE9#^{6T0w_oG+3K4a#2i5K zp9L59@;=Ga`GMKBMBqMB00SFYf^Fos&w!capn}8qc)o&6 z1AH2p8|pe=@CjuOsr@Tdlx*^JbG#IB;PZFxH(OX^LCcTLczlO+ry1b9Pm&<$OeOlk64PiSZIRWW;BfGJs zj@)G>N;Vk@njjEZ?wr&cFW$H{rtO5fzg4}BcAEX5`X4^t`o_jqmT#;EexKG)fO>w` z+vsRLH7_f8AZ}E`aVAzTljFepxbRnR-hF)Y{t%mDoE-&h)X3iqz;vt1dcyNE<;4v@AdSKgX$LVOLv znNU3zd3>FAQcF#d$T75QxEM;77?2)`+bFztg|bf_K=Ggg)>&04cTr)w)L|s+$=cA} z7I!+8{@V0fPDYjX+PFUO+=V&axDN}D(}C}WCR!f*j=3ZsztJpGuO>G1;lB+eWjx%3 z#>0zgb^f++d%BSd6Z7ZbY?#XwG%ZlbK$Sbtu0kKiqvkI0tKZLcdqG^x0Vm)LJTCBF z=#10^?e2pMm>QT0xx4A0ZPM{RcTw)&DZEJ3d| zzHqX?DYgrj6kMzJ9nqao0x}ef>eGgt6Gju$Qm77eBHN5G5iqbmTfmY8=JCnmepO(> z4Fpyjm4WYMMxYY?EJ4%JW>Xtr&|bU9=#?EuO5ly%LbXNwsR(_YwS-ccnHy>oa-s1g zO*VK}j**3+P9^5JL{T-}Du+ak%L10{1NvhE6l;%xO~yf>ME(T^(Nsa8K+cK;;*d`4 z4$@_m{*-0n0$U#y@0Pm~b>9`fyD>l*BTbfP0SA1)1}`K4$4T&5 zxs{lF5@dQ#D<~6+C|We&G=v0*a1bQoCxH+{VjHT?Nw9#P4aDfZKy*S{|sX(%$6BkWz7C_HBRqJG1 z5j%S`L(HJ1yTOHT9lEI9HG^dSCaCM{#}jVPi2+~m32caMDve7#1#`Zl@2Nh6HhlCs z)pecf2_j(1xGT)lv7Hesw!Us$!JIA$Vx5~0S}n0yFHkEzeuC6$k9KYf3U2OqYltSB zo=j6-c5Y6pI!;t`u5b<4ByH?;88*3_>Ytcf&7~P08Ro>gPgREDT)gAA^Seg|4g-LP z;8r!@8}hXgoXo{+ihnRA-Iy=dyszBjENBGmjvWNoBseB-+ULtX#ep;kh0=|(fXKNo zCpctZwQh4294|=(C~Gn%#x`Nt6bGW;^ov$tD61nWDpXDb%<$KV0-&;RAZg;Q$3)f% z8d@WKQj)0x2M#Tr)s-sd#}y>BUcq)vFkM394Rqq*M5}DX846{NjQ}Lq>IFSQgav^kU;=ywgndpWs0d6HMk?AbDuG#7t3u5=edr49 z8y7Irx?H;ZOkH5kv%n;q_EPo|yez{Ln>!MT@H z{N)i4Cw>(j9iv|=;PKEss4Ia#Mear|2`=s@MR1!zj#&jL&4NvJ04{~uBcPZ{yNsh? z*Br3VKS^+H&gyWgM|eszT~=@yI$f=Qj{1t5gK-mc`BYX7SA|cI8%U!Na$VrMfyZl_ z(p-7q1YCfXq=7y|$4GutHyOq@QV))YPLEFV70>=EkeNXo)i?Fay;dKsmAOUJjLuO4 z^N`V+d9*%#6cPh%fQ!V+6u{~;@%23@b>{ATwn%pLH=wEuLt3+&mP1>hk##mZL?zX% zI)&K&0{XiokX52X4@n7%@2SZMvLYxofngS?V(sZLCZ=_Y6c|L` zDDpHhaWOy*YGC%7FVMjEWN6(V1imNx1l!d8l9%OtoVf%H3SfNzSzfS3k&#&|GQ}j{ zz6#7L#KY6pe?}qj7-o943q*_`sjKLFrz`@qDisAD1QxDb`3$x&2vk)kKt5ffubA`j zsdOIZLXrkdzs^Chiy24Zb|+Rb*5pqDYor@??q7S>gEj4k8~Yg6erH-4EyfbYr)IlZ znz)IX*h#hG#V}%>{2$3mW#E*ON?2 zVj1CyBx*D4-yn$W`%B+r>JohF$ZSe#-|i7OnPNdA~Qqtk@GmVlkPtT7=$j7&PKa@T~(<+A*kNN>?JdDcTtD9|J z1O1hy@B*y9e5%(i3e?$p^&IZ&UoR!0x!ssC36B)&u=S-NAD5KwN*|S&%4BDk0r_~X z#eJ3kyq7}^HWOr{j}_SKND*%v4|cT0tCn7*5$ufT?it_q5V2?$1dQFh5KjeVZfz~6 z{j6@HJ)CIPw`bBbWuEgy`H^uE%i8nVpcUwt#LEu4hNz)uzmg*yH%3rzQcB(mJ|1OfG3M9g}@=`nW!bb_9=R z{nlQq7+g~T+g5`MP6KCvx#a`T(ReKv-_OizFEsFs{)*-^zoKegcGpp071*0fUi&d{`7YF+P?a<=)$~}p3`rs1*7HPq=9G= zmW!z&1rNk|K+nWJiRZ-W8PrNW8^6M{DpK_eoycdn!8r-#YeD&}ScYj-)AwU7fm80i zibdY2G257>yUk+&Iz^dRaPlsRevpAf5Zuaa4HrsdbzcPgyk<&XGNC<}sDw!ji3Y#Y ze}aB6n(}I`PKU5-b|0JsC&Dwe8wu}*6DMd5S9qK+;DM}&H`fXlgj7?%eVEq!1@XYk z|5yM!Z=vMAC%u0y^-OtMxpgzD&v8DlmJ)LJ@2%GD=D}}`X=fYX+l0i}EsC#M0v5%E zZoPN4N_spsy%oJ!ozYjXI8*8Os#i-54{Gt@Ms~<2LY`eYqtT}|EWaGdi4q^hAUIdp z8M3cMFpPXY^!E;TJ(-<^!~W6yrbRwYsX{o+(KM>}NR&22wdyI_$D{HT{Ei>h7*( zkKn+C#n~JcvPy6sx;j|OD~x*x!2;8Sei;bx;OA3~?A4~fOkUD<0b9YWHggq-SyD8k zQ`g6c;;ByA2%AV0IB*asKTdqa@-Zo!B`tLlXfbk6L0q9^)dKLD`*XgCN%cQY*e20A zX)a<8mO9~BHB>fSb<>@uB`}Du`thXUC}p^d8S%Q!uQnY;yI`M1=nIkb-O%TwNY_fR z0{BEU(lH;9ck0m0gJWQen{on49{}V8qV>>3LOqL1y4SOmbFfdhB3cLQ+#d$SPnqkp zua2XZ8sSnc&c=%`%xo9|Ov_gnrOl|xS0PAr%gIr;N|o zeu;|p*M{xo?hy=USyzR`_8h||J7xyXdGBf>E@foI!OAl#f}zZ*Y=rGZn#B5PrlUpd z@JO76=Q#vnG-8j2fP@Jrv&|j%+MSQrPL7Pn$dr5?5|aig2awtgH)Pb6JmzEWVX>>o zT45>FbwIeMV%RF%k*d4uwSOPEBll1VpkpksV7QDGv~kKXd1s_PuQlnRAu>DaP_o(Z zYvfR*^)W&ZW;u%b5N$TL^BvqLA1GJiF?uVi27Dn%CD*qPNp zvtQD_(Az)#<;JvF_`Y_L_`1)3xtSD!}3 z=H1RQ3c0-&F3FafiwhA1+y=22F<+8mCrjLsArpTfK0i8k`|RHe1t!}=EhB0U6=UeWyS{*ne|)oFw5ge8w@z9S%+P8JJSF}5?2~l+ z&5ChJe5}eFB@_af%xo0HVAd5o?vHzSXsP&Z=7m0${Ux(G6KF>ba2AQ3tYM@tb zfBm{XtfsX`9v%=_AJ4bn%kQ_*fetVTWH}qZoV3U|E`*dbTtS|>nk{xBAjYgR4A!{! z*%tC~)IjtK&BJzi)F$oPBwprnVa*v@cfJz^jc$+1Do>CIrakZ{#PhlF={t^Y4lt{K z|NXuDz7iileD}*@^z6fr`(fRcJOiJ}0@3U+MRnjKslJh2k%%@E<`{4?+4yE5#wdnTK&>~ipjF1gW)FK%a5z#Vmh>}+1uEHH69+QzGNCtwjl02VnEm|=SbMic>+ zN8dsh!CasnR(V&$h>eJ*Di9wmli29vhdQx(M4$jjGU*A3uek31M`aw3iU38NarV*O zJ|=GXtx}NZNqAg5AeMYpJe7eN2f}kd$`Zs;71)!cEd)ow#WIBgQyH%9Ck>RV87>%6 zH?K=Yx3M>oSWn)Ymc20@ySFTR6Z=5Xpjf+q6jc??^IR5>|0U$2#FAYtVO!kme<+w7Jqe~ZnEUY5J@(feg=d#au>w6 zq}ZVdj^!Z>t0pHL64id3HWeiCR9d01S^Uu}95X@U;L7}yi8@FNOTf-yaJ&s8ZMsi8 zy_6Q4Q;!Q6@AH($=-b1T;C$3~{_k#1S1KDU%L2UbL--^iU)ZMVj- z%DL=}VdY!%Ta>pAIZ%Id6obX8f9N8LJ_aaMHf(aSHJy$k;>1)N4;!UMx}u$H-iDGk z+=j-N(t>|{h<|*TXMBjiyqvagtJz|i2?^WvUiWin^>DVlHBH3{6!#2>tKnr=9K_=b znldQ(187t@PCuMs^BrV~B~tAGRAIKwu5^gxTT2A-Uxiu1)Shox${-C3r0=3*as4>r zvW)Nj*pIuk<|>>$uo+oi&iS+uYoe0Vc;zN5MxS zH0rZJMY9eqm06V?s_T-6wZs>Ae18XqX4D~_|4>poB6TmT&K5m97epd8X9?<320*BHO;1?`7}022lwFsUN>%mD*jfx-3bu6W!z!&_EcxEn`Xv&u zd`}2{Ahsz4pn_|a%8@-l4GY6j;FX|L)S@5BK_)*3R0V{Qkove`?@kr8Y($z0yONfR zb3dQ#OKtkh$XK!=8^rtSm~+9Tlb~Z%GUK&4$5EM-GD-+9SXAs%{>f*-9w^s=!%(tc zuu1RDYH8j}F$TKBhsmQ|6w@ng_>KeR`8qS?es+A;#z*92QHZp|xt#hqJN9um_hHxv zWgjwiz6>IU6l_6h)h_fd18^OZ>ir(1mtlJu$i2k-#?q?r_5cOn%p2*h=U~s1mX$#W zEol55CqQlYm&W@W`WJvbWR=YdYu6Ad4nX1D9q*FfHRCzae9oaBgvXuPx;Jg!j zxxS0`7pnMRqDe!V+mHrXuFpfS=EPmT_PFIZDX`4gBpb9D(p)l(-^K$WB21r8rV7Ql zZb5HTci>AxB{`~rR4dJ(L$A|7ow($0g4xCM8+AdS6e*w7T(|p#O#@FM^{VQAf8GAq zcYEW3-Y&%>s{x$3@jONc^ZI`tVtEw~cg6v@xD4Zy2-gajsaTs?AN;8pya*x$$p$xc z4eqW1G73QJ$wAF-aUy1G+LL~Kc=w#nN!P6Uh|OqwOBlPUXj8(1kyWIPCwPr%&r5fU zoy}@zZ?zX+B>NzD`!YM9TELzJc;Y6C0#;iA`33H!J@=-StZ5~yZSG=jZy3@&StDfG zm8i*@Ad4p#Rh_H~S)*E7s3@U0l2~YG@<+QQQ=aSx3H=M_qYSY3Ps=dtxwB}#)q9LbPC=*rRAR7{vbCfHg+hA7nuj!@%_ zoKY6=)xoff*--paHG6mYw`wx2LR0UU0;RgpUl-`uV_&NA&p*B2o6x|+3Ce-kiFd4HKTsis+B9ks=S(zDwC4aE6enM0ysSC}vbDUq2JG zfaMH0yQ`zkhVi|&Jlg(TIBj2-*f}^QlF+$l-V}WDO%j{Ib+me(EP6JU!B=})n^)<9 zjU;3b=e+EoHD{-_@rrG_QFlb?%?_7(&(8g|Xylw%do839RT}Cl_!EX=Oz#zIr%b|W z{LfW3+qe(oMc`d@$nUx8e@mr@S+*wVDB2 zA{v{)i%gcVO>10qVx9pv9QN{zQ3Si@_Th`X{-c>qm}*@g``uWanBQ4@KDMXKZmUQJ zL|`a{bbC=xWVZcEz#zqIq3(I{+<9tyd1R9XFz6?qmod z3TFbbt2*;bav-As1T7FnDKJ`Q3}T)|l-BtwrKtejl~tVJN*n<=l3U^Drs7F`SKYmw zIh!Dn$KojP>Qz$iuUT(RFL^yy#&PW<#1Azmn@C@IZah zbQNU$7_?C$jme%W^;CkAspt?#F^;hP1|Y-}dsyvwFHrh6bZUA@r>LQFd{bV2xmK_!kM%n3o(C8m-&&1#1 z@^#%eta3K@Zkl6n0!i6!0>k0Oq^uwwAP@ObmQWs|pI%Oz9yaK!W$X9L&!0ZNyH(HC z3WJYc(JfxlYSn=gr@uIz7$+r|lpx%lULeGUlb=>3{EMx1eTNZ{i0a{4(1`G^zLwM7 zZB`7vA>1j}Wu@dBWnYF1C{5u2gd@$dbRX{*^+*Mccpl_TKtdVf5VHF^XwgO=jgO>6 zB3Z```T(Sx^B1j15;eDGow$*oVa-V^gmI@;Rd(;?sqNm|O+5J@H`5QdE;KdZ&Z5vG zcpNbOz$4gTs>Gd{|0Cy2m6<1SR@peKwC3z&8#im3k>6^alY`RwVx?pyEy^gzQX?g_OaORXB9EU5Z|&9yuxH)U!D>$_>Yv z@^g@2vs207bd5M>+Z64{OAw$W>kma)7jdCD;W!IIh z%Wv^LOth*ktFx|n=EhxHrMJ?h$!I@E_QqXXIyv&v4anw5H}2!+`pfG#zucUlbe)>Q z%CKGygHC9#=*DiRv92>mOVu+kbX}K863*OZX2o(j=`2T~0ME>^3dkqLMo;@_oNEV$ z_9;$Hk&K?yy4j{MA8Nv1-!~eyq{dng2oPs!VC4*gX=9GT^J8}oe!#TiL-(xvkVq*# zgVbS-W39pIGd^iY?y{2Qa&4nOKk?gl+x*VKf-fEdV%60rCo6BgYLxaQs-knsWlS+b zOj`AFipzea>o00q5NzC3Z(mi8$Q zDZ5B!`6OA`{iRgAxwJz3U=qUp<(SqwoA=Sl68q73^GRRrLEi)`X}t~0FQ(!eUvw9VxI1N( z;ymQ&o};N{rsn_-JMb`aZ8&Nt(fjIf2h#Vh6**B6vK@_qf*H^{UrEo=W=~jRT+*IY z8~U_vZgUr=JSJsFdPvf5*EA=a3T;Z>NG?7c(G`s08I{dz5`?JlrNDR%x1k*0-lfei zq@5nEDc-+dzKB2n*XzB?BkRYR-$B2c%^B9C;Jp4weLcYU_#?QSf*kP@wvhq%K-0CXqcrvTvYzfGnpfP;crZRgM9+Y3`nLp|c&Pl6_up&y5? zi${O~XxoyP|zp4?-7FSttHE+y?g6AYmsz&)W8nAAQ%S&-Z#UZPpM^#~E0VQYR z!ZHPn6c&Kvc@kLdCfBK^i>%<4JSf!}#pg+C`^|biGBC!47X4;Xl*9^})}ymV8~sT){fi-jzwVB*+Ua#qq9|DEen_kZKG-c zIE|`b85)hHde`8?jYDxfhiyHVJk5Yhp%bA6kugdQTrilJsNkY-0TmX}&D2pZ7h41$ zn&Iwb;R26|@YNI%Sp|mz8ij+q*bEv4cD*en7=bB12Z0GV5*#T9FOxd`oIuTuRQ4dz zNg7~NO$1a*2)@p4%ASJY>>`rjM4A!UWER1Y$(42K+|Vzz5Hz}SQE+M(7$SiuGE&v4 zr!IK`BSnn1HH*1|3NiK^Sap>x2tUeLq>CJ#3eveI(|`p0X!Pbj(B`&)oHP2Qip>{Sl36`jkx`K~vFg`QZGxh_P%7+D@wzN1tDXf&z1|#Z| zh{`~;O_*0OO$rr6%1p(oatA?8fhh{ap0lUrgAxD*kv0{9Xc;zlB%D|SDn0|+PZN+_ zB#mbz2%Z%IG&?IbXD5YeLGMzJK6`egTs+8ARaoz6~S+}CV49_!N9 zPj1gl_2*y*TU%c%Cq40oHg{&M4krj6CxNbYMGC>mTldlp4C~`)_?a2{tN|y+<3L&CP6428s>WLK z1S|M#smj!D6gVY=V%EtY?ZYu(4_XF;xI@(*Js*P=u~*Becy)-;E0~xBrU|jDBsJHV z^qRZjxrh-mV}Ehs@leJr-A5H*L(h#_oq;f}fG1_*h2Yn3>JGdZK*{L=CP5 zuzgHKUoF9PMm~$fuXyH0gBv?^)(4vu4tjc3Cv@2pZnICWrl!mOOpMLZkqFcy@Z2bsyzGe-|4R{g^2b+WvW}lRj@$$0B&3@U+{dUfaA&LiK@-9|76nXF2HCle&y7td%BXoK;w`QDtmh&WWeS1MZ=ND@G z;o~3o;>@j^veW_^GXyh>3`Ao531lR2(%io|wzN>X={0VVSwO`!z<++@+*>sH9-KC3 zj%Rzq)oq(79O=~NwXQG9yhQ^^U>fAOF^xh_@6!-w94N>>OKd?Mz;4M}x6NO%ai{T{ z=+;%QO=dbE3rju(63lql}0IFoc31viddE$Jvw zq3LN7D%xE`?+Ctk7Zgj1S!#ioIVPu=Gy zA1-!;Dv+gF9giy&k2~nSdOx!U3leM%22Ue6sSJH~VFK%u4s#d-MKdOQ>`FhhD8$AS zeaCw0vn!KpoWWxMsNLuaB{8Ei-(g%j7tex9UPGT8DMhemQzJcfa>5Lap0hyci425H zZbv9$qM9MpvzO`joJNfhf5z;gerU=w6E7a#nenr~0k-+wKM(3d{$%VYdM&C$>ED_4 zvY{wv@n=cVe5jO9v#dVDR{}oQijN(O$bz2csPTxEs&bvhp!lfWFGe*qFyh{AwQ`>{ zfbV3+^1~^0cUUvtPR~Llck@VmJ(|mR`IYd#w!bVUju(&LA3pwgBd9g4GK_(<(20<$ zko8#mL^s9Gm?Zx7+KJ&KE!{bH*BCZR5!hKs!ld)}t-+P)NtQoUpZ0(&pZ46?dw}El*rb)ZK5q&D zbV_pV96jj=JNGz^%3dkzDIr;c`N>M1=N_x1Jqu_L&gNeS4p@({(JL-vbX9k>o$R1y z(!|R#bHB!E!-UbhlU_0Zs63-iYa0y_PT1w<{-WRQu>U&qHGjyvSATuCSPOsq^UpWR z^bz%oh=v9Jt)#(ZyR3R%?RQ5fm3mdvsZDJmj!fKOG}EXd@Uux*^6c zEhqr|PLZ4kF&$xH>9h8puH2w^zE_cVIteLUvKudM=T&PKw;RFk!;N5fXnP%Kt3YFB zwVnk|YCP^#3fDevJVM-lmG-0Y2n>lZ&7W3|&6u)e!ilZ{Ji+JuyYgD$GHP;j{UT-_;UW2*KsIj`QlU!=HpMA;0A z>VVKMnjf|#lLSxQW$uxL+HXe9Z#wBl*e_e=GuG~B&YtrkH)adbn&Rq^U>cgu$7zV? z^1R?1+A$4S2WE<%n065`)r0H(Y!?TdQ52t|Oh_>=A$Im%^{NnHqP{geDb*xGwSc$U zM>GtHqurJpCL0OXR|7r$E^l$h>np%LzyErpJJ$Ls(NT-VqfHPkZ_|@6_#NFl<8~5C zTd6}l?rdM{Z7kpB7*K}HN51Q4Ozp8QgsD3E1>$DIr~Q?OECaFk_pw^{YKH+sxK=nx zYftrs;JqNI+F#(E_0g<;?M7kiJIsf39OfQ4sqWkjrX<9Y&kI+)a!=tYguK zTR0I5#ZxC)Q=zX4xVK`z-)}!+5L{V2dzNlCf_~R#`%kItGg9<2#|YHV#nrf#s#}}^ zF>7ScY=xwU*-BW7$xeBP5tv-*D*s#P8M6pbY9N`zf;p z_-6V8x~0azZ6^rClyA7y($6J3USP$+3h-!ZiC;6;>4-@o^pPk^h+b^==;3K$(n}X&gD|444E}L7F(t zIpl%y6N%g%Jq1^5n9!yX%WGV3m%`!=B+%9o40xsS3g&|(WsVt2^m~jp z{egTVC*kyACgoA5XdI5=PXajgVH?v4MHwLt%~;iz#>(v%Xzv^1)_RO>hbh}6$XECp zxj;;}0QgdOve0)p0CRWEx(5e@L1UHojJ># zgl$sMO?{^+QK(1IhH^B?O0ib(K{LGi)9asa?rq@9ZcE$X<2Hy?VIPzqr{b#KG1Bt!80^IR1v>#*2F)?1+lV z*>Hx(K|mC6W|oI&l|r+woGfQ@(05vc+oGH*E=?br70Q3qN+@ zdGp3z?jR>7+%fEpA;c|mZhS@L{q6W)7FV^u>`#nVy2LU^(FwB z?R=SAd;oNPz35eMf?`;erQ?aKF?NB2{#*o75qE*4#Au%GN~~vaQ7Vv)ty@%@%sjbN zh30`DW9z9;2!Lo{@JV46|G=f^&#!Nf+@2FviiZ}-=4OFr_02$UcfcP@Ldn-u znuCD{Dva6z-UNlii%G*x(2BH6fwj9loB-d3r5Dr2!)=)Hx&+EfOfte7juekG0eKgd zFM(^S`$qZGjh*GD7Of1-2AiH&}kMD5|Q(spwpR(m>xJH z@36tCU|Qq`xY%14r$IGyewVSUD6vRp2kzrBdXt%k`L^$fux0*nO8?pJ_%yIZ1#7gE+!w}WzbwV(Klt=tTZfV0}hpmoWXv=K03kGNWw2YEkSI08&;wt$gbCyteXvuh<_WYJ;}B!~9B1Q1?kr3ebSICu+g%;%CoP9RxHb z0Kmj+5jZ7*nnLEu4W)N6=^&`p-bj;KYEybZOGvvM<`nXpK0w&0oH<62LRC0}4!8!7g?F_D`j9m`>my8o)8sqV@2h%6vF ze%(7y3s#ro76h3D>(SEb=F;_C{B6Qp@w6&7NQy~SpXeo=_M$QvitrWJGpdZKzz1%g zIAcpg?e|>PL*?#DgH2#4*5O3RouM8A4U&+MpnXeQ6)Q&)R0vSKNVf<^T!aV6n$=NQPVLuzW?fHUj}f>RKjs^FZDOk9FdaO_4x)D2OFW%cYE8T2k~ zWKCD=Tk*%A<=>0is_P|&jFb<`lNW~yzaMSo*5g0(LJ*AF71gy7Ui%Opg_E& zsH%Y@;jk4+KFBw8ys?_56Vd0^ zMU)-bB!0NN2>Nw>k6$bG>X)CEW#0ZQFd$=a3|#7}JM+!vlZ=35L}fS2b9#oKm>&nO~hsG(RvIna?+Vpc2Y#%onE3UplrGE}r z#HS<_nr~$I)7sf`;0_5FExW8+-(>xGbeMeyZ`V9gy>o7=$O1O2$4ARCa=#xkue#Gx zifYI60%JQ~%0F>2vHY->^sRB+N}@-FB6)^x31n$L>$IvMM#}}yi>>%jVIeSC;XtD? z$~pYg^+}z$a?K7Up+*6r6D-3eriu;07dDK|h)ORP>Bf%spcnm#ZLOF?TKrGwLh}|vG z4VMya?w8JG02uY(%; zFD=2derzUeL4oQISImgRm$S0-(k!S%H^=hoBxfA(0RLZc+t)P5Zr>00@pcJ_mv2_uyydGmYD5*}{h*Y-;hb4C1{UZs`n=p)H9_z3;ArY2ncyvA zP7bc`B$5Nwy`|M{5^9uo=GIA4w(q?KZ?GJ;@8WXXC#d`Qa@H1{u6sQmP~D#I&uZV? zoS0xQ4iC`S{q*8d9j7T2tzyfI1?v@i?V4FePtQftDv{$qk{5NsyegX>m=4cPUMHW% zGfp$nz->#YqU_AQCyyP4fbO2Qak-=YRo4)7>1w5BqS!AwBYt0c1uVkjdJ!J{k?)>o zBkRXZ)uT-#2{@GQRSeknI*3QE&bc&m7}xR2I@Imk-tN*~Um?=bg4h}nJxrFkOo9~~ z^jWI@*dHB+iS5~G*~%zw5j+t4ux(%c@%8)HKi(O+Vp&@?GOQQXtP3k`y84{;8H`NB zEN5B5)Na^vZh|M;sc;>6#2!?A#$MvY#a6Q!8IC}F;M8y;VsF;5J6l^qIcR7-UB2X{ zmq~R(lmvefvT5O?#kl~~#GtnrJ3V~JG*dxQL=$f{$egLCS5Q_27AJ0ol#|9}fK=Z**+C`g!f2@gvfm_PT0Mp3~o_cotbeX~B(%E2o)jSto2$(`C9n!P7{< zsDS0CzCie0M^fiR#;QHZ06aUOxT+8=Kmqt$={rhQ8@o(LmvHLL5Z;UAX=$y;dgBP z+F)D;R7JNL$rBICqmx0v%i=kXfRFNk{Bx{%bVaRI_h#pm_8TcJcQ>yg+(kEGh`V!> z?b=pJ%I0;ti;Y&2++i*IGUN7j+{Kbt81k-=O_55{wy)_nHoKK#Fvrsb$l;rhR{`Pp zwq!V-+_EhQqz4xtJOVz-19Fu}!W}8O=a_-)M!xT!3VDIHIoc%$P*<3)U?vC9eV_RL z!-w~`%cNs?nlK>FT_IlaLA6xAlq!@~i?XWFk zpoqam5Veps?8s6o4)j|bcnMKcrQ8SkedOT6@yOs5QZ=R0+Zi=h!cbb}^&B2B?A^~l zfB3lQ(*A-5_pSmMR;XLM3N)EM0#}O*_)zOEHK*gmF4o?;wDa%&*_+}mzA<@EO`A%$ zqU)n1pVddYo+o)*`NZ72HnHj|wcARZTc7;d5_O+yRRBjP#37TcLo1fa96b)~ckLo^ zDYI#s=k7)KAa?wx3dF%U`h~eojA3QKj>gKW{9kci*yX^YLU6;RTn)o9onuVb_IW2D z4WofFWHT_QzaaJv!YfCVK3|Qc*qjG!mfq@%-q6`{Bc_ zDUZT6Zsal}B|u5d%3`~o3C-U&ASLf4BT1A`(5$Jd_Q0{H8+*Rdc$_4z`G8QWXo%(n z3S@*&dR}F70>4-39Lxljp0*HM1jf36tci5JHW9Awla;h8<7m`lM>wjG(IqNMHkn0^ z^5{ia6q^U%J7Zg#TaAhLpq)tJfH%*j>#QZQp(a4O`Dp)3M_fH~em{FbeqamFRV>vI zTPNKdMwQ<ECkt+5DXKo4`yEITE;e z3q3ZFR=*eQUHtInzVO(g`jC24rlGf;TfH}HZ{(yVk72&_0r~__n!R@!q7xZ}8Z%F$ z`+!>){=#iN+*-XcdfVWsg5`(a)=uJfax=Tl7mVuB-O@eX;nKvku#(1J#@gUv?O&9l zM(E{SyNpY^^eD=*s#-5CP~88LzVY$x+aF(HNA2C-H@X%)tF`y>V(xtkS99;!d)Ixk zOuiROirDyR6p5?B_i{D(KKfqi#5CI-a79bJglbh(y&j2S)rwnYEhO~8wsmloVpV=a zArO1i&y!wfMc|MdVA91jk)XnRc*TD_t)GhEmVGaJh1=vbM}D6OnTZvg27~^RISGi5 zS9)2!T#V$77)Djn!-Rc*fqCp!awm--i^z2=xswkL55CgB8sHs$iP>>~sYPEsu+!6^ z3BX#NxT^2|yhi~dIA=lF<{}x8a-I`sCugg{$XDz2x&^`2cFy~Yo}{$5ev&BaHn6yW zO?KU+?XGK7q;6TNwZTV`hj}3hfOb3kzNLItPZ$*&xCic*IS~<{8x)#*QqOC2-|^TH zvwEdXquNy4?nd`Pz|}YDbW>Wr(K0Owhi;+ihV%qFw4_m$DJzdfki2tKM>(it+n&6J zhJ~&=6avvl#0s%V8IoZ1i(V913@{YO=QQf4%vgUAIOeR1V0Bq_0>@}rJR;_njTl{ zhu3euU)B|mdxM*?GryfHjjbXrT`iiz%J;TZuwI%hT$(IG;-Q1tS*h(vRwBflaLGJg zG8fo$=wNf^rp(hNb5Z7z_D-|x8&>|Z*j9Rb=UG2$@74U_xIoQ+^m?^Q3{;S|bkOH{ zhE>mhbEZ}CsER#YFKU*(u(9axZ{`kM`QJRTU|H2X8<{=CvvsN&_4kl5-+g@dmzyIJ zeZ^bCs3wpnBs+2Frtd5q8kb zgqR^8H_P6{*oA_|Ir&w!)YlUeo$Z;ktmOq^W8Z{W-JUJE?!$!nB#NJXgea*)PBflu zwX>YnhCVOn@)T);YJDE zb^G-8zklzxojb?P|1AUN-b!vWw_k6|OUsI>jiKC|zjp^eJHuyp8z_h6*c2@?F{-lK z@?sD4Axk`UqWAk5;Jcd{uxTVBi5W({B)#YW zM=uAx#8aTIn&c!cyrHLv>d-bJk>yw3()?&i_xAPs8>_p?CQGb!jrk^cg34Qz^4+92 zITBSII}oQY-856e{1q1qIuo;4_41tdUcBS>bwV?Kc`0_ga!7nn$) zZI_^e*QW|9-F+2`TA;C)Uquf@6@@`*k#mTm!u2JrqE$c}@aNX!C!J7}8|UUm$!2g? zIRcA9o3C>kbU^s{?X;@hnPP#_B5zl9as`H_-|U(@6+&UaDVa^i3HNd@)%-OvX1i$& zmGA>BrjaI*6RK(l{Xja8E-?Jkkep}5Z*=I}ZK0H*`IP{oWkjWQnVjIj;#UF`ds0mT zgqLIIz=YMXxNcO{sVl-C2%Ibs=QkL6!$$0-*aNP!ge=r=vRarQM+Hi0<2M-V<>x9X zRF+U(A6*h(sZ#Hqd=ac+j~a~{RIp|8rnux5%8v13?jSQ^^ox=DV6=RE^Zl#8zWw8V z%4d0YjC~EfD$)kKL1w`kIPCI$CKra|q)3|uvz|7CzkE|zIA6uOm*9OE3DZqjDBU$m zcU=u`o71IQ>51}>(883C=_=+3owZB=$xaW)ZuJm_(KIxSeLmxsiUX43aP+50Eb!1V zNHb87&rb{xb>e)c+pPjMV+jj&HD~+B)L~ln9H-Vc^o9sA3FKNx6P8ooxpD&BfHeOUAbNqjc(o^;?q-cXBiOoWQ$jFJO-Cnl1iKm1 zFW^*-#$Uv>^N^2zFk7*oPl|gBM$w>^3^Bqe!kcGj7X%C@_aU^5Yw2BS1Ydi~>K8e_NqRap+uF5Qj&3k>So40%$8IroMJ%VRM?t{g*_9ilv z<{@S8-~JiL&&zJ=q!`hChs}k{e?K)fcWjshU=BqHMdpEl;$D9njakXt&yvQy(=7 zXFR-ibHKtpT#NrKU*jXbKCJ5FbAZvC=#l*|dW2iiSVd=j48~2Uk}*3=JAwJ155TB^ zsP|E?sBt}KwN$as`pXyPA$c-W`}W5_?@ucygjsBqcP`w5h9R?P?w9;k*vnk(loitm zx~*46-34b%b)d$BRgW|PB}wcM&9tS30#g54P*wm8L=cCSZ!!RZgjf)h0i#n27jP{V zzc1Y8v%Q;qe~*w6;tdL_`llzt0&_*Ipok7t6M+_#7!THF@hRyMyG(@P>ReI=3U+x9 z+57SB8@2xZ945&wOeaf(LcI$$ixNow(&J*l;0!`v zQ)VPerdiaRA8AAxfCVm%pmAq=O5G7jW(!gUbNzvK)OwQ@?Gm@rqE!p&s>6?9xBJo^ z4+|9ai7ec=R*bNt+&VXD=pjRDWMYc48R-4Tht$Rx$uxoJacbD)?vHQZ-+DAgfluPz=s04LPiM^CFu&t$Vfp&OQGxkJ8}g(oPu%a> zp;9u;fGDfW=t6^!-OD%QB-tSy-rog2* zQo!FGjU$WU&QYj=Whsl->u^n-Sa2ED3X00EkKyk2)Zsei>7Gn`HBWY?O2=9LWG}CZ z2GOoGR^wIjRO+m7Az~@$<`^?vNOq3Luv@;O!x*ttWEb;&lJoz%6GM>d(N)6LM#55Pdj0-)2g7Sh)srycx)h)9$Qbn;?|I@sYcfbnpfW|DWDK1-~Y}hEwHDo2x21<96UJcvtVc zqSCk);HtC*x*n1g0!9Z+daoz3eS=f2qS#TfnD4aKuXc{3C4XLE|MQTguU^03tuQC;;_W(xA)~6*=L*{dFGbz@3BGYftXCLR z`%4VB*06}UHa)L9N5dx_L#l3Nb~|4z*d+-oG#eyJSQkl4_sd6N&PVk<{iX$W@>7L!JTRj+45?ys z5Sw{5*Ih|eoaNX57=w`MAx!9<UzqvNYN;sN1wg}6LjB$ZbHCi-YY~h@xTZF|8-ZePd zUTRZ#V{vdub6ii;4U7Yk0#i_?(&?Oqw{-d~^6W}cO@`a~+P(0tq^eBuKqMagyuSMCma zkM+o(DV$GCfDnLHX%LPx->lQg3(WZLF)KA#MCtjU;|OBhmqB^C3r-)Z>D zWCi`=MQ6hq)FZE>U(@=v;B~rwEGqo3LYunDhQupa$Mee#yqseGvJ-wBhqQBeBC`o~ z=(EF8G+;=AN5f__a15Kg3Ol8t5Bmj4rHWyJgMwY(s=R9#Sdw3-0!3^ZcR^rx$Ak$5 zukcyrTn7;u$7?51|Jl$r4ho)x?=k>XF~5bx>$tvFUMIh9uta5e$W+}(EW(pN-x!7L zpAsfjv+&wa=|3YZ5Hwx7bFclb*H40X-tVuUtm}XlGzv=Bx#c>^u2b=uFU=>efhvujB9K6l<_WAgN>S5hC$z;emfl8kedI>J| z#Zh}>j7cZ+u^uspo$NszV@wk^n9|V)m9cLcyW)A37l)?Mi3{(f5M%n)wzU8B?dex- zNq>6(8gqOve*E<9yZ!WCzI^|{hc5=YuztO#P$$%Q-Bf|;SK)f~3e-p)qTgh^4w$?k z%=)AyBTV4up%m~dzx+uAS6OY_2!3%*X+gr9EAhmro2;WMkOLojd=tP|QcquBdcZEv zZ$ls~kOEEw$1&+z|3hfP#OKoAwI(>lqY6pg(`%YEp>FHIcINfc2Oh7DSgzuyk*1}mV!nY{tXL9`IfZ2U!Z^LQibC#g zB|J&5p?9lYQ`W(w%f^0g*Fm3O)=dl6O79fT%Q$>#>2Hbp&i7B`3j+OLyOIG(>fMy;+CqgN!TI)AeSp=%A!z z!pj^ANs)t;mCTNS%X#BPgRZ(f6n4T&$4EHjZP1@AN2grV5e$M`nZe9?y2e1ith3Km zQM9@N5-RlaFYcM_Z;I>g4epZ^DL}0ot1uE;XUqmbCdvRlgVN1^2D6Uu>PUfOzcv~o zw2!LC73Yb{JgGG}*+P49oMDwhSyv&c&;&LMjI|?t5=i_?*Z& z)7wBNl3m6H+X-%y`UteNY?m@dXD2PF;ko=O+)9O zNRjv#>y3qA^+c8+%iAmvNzd*Q1_c#3+7=M`Q}N-zz^miHM?6wk83E#{u$Yit1iB?> z16EE-B7|l7Auk|RAC)p-xk@ig7~+vP>}ec~?!*Z$ySS)ZFAB41twwVQJk(?BPWhu6 zu6PeH!jpk&F29JsW6F;Ow->8S;_5`IW60zyUZV@Mda{iuzu2AbcZ2FZNG4yM^4)$- zhug2|#ycPxm1IG5`;ENu07wqDhx-rZaQmSgwx7kmePY4v!QfU&`1@Jo0-~d4iBAHK zp%JW8-uT%r_38cXDc`;W?Ax^rg}&7!Gcd`#+OFf3Q=_{me(f$nkFxJAYFc;45Z3NE z=}~sQ5hYtPtKKlk<`R<2b*t?Ww;i_f|EqM zV)w(25va)GOoubJ?pM=g%Ys>L1!x8z^|s}72qt>Tfj0{?# zUnCNJ6jE%lwf65zE9bQ#G-~!={#(bu?l?LXreWR0r<--e?IHuy`D?>_vBZtIO84*? zNFY2fuP3fuZb|1(;_hQ`tYg$F65` zbf2t8e`+00H4@=3m$#E>`*OK?D43-ST4YaZ0bIL`Cx@VPee|HQ)uHj%A@$wIH+&s` z3*V(!kJc?O+IpiE0*|(_Edv_%Y)lv_KSSXoZaUKi1NhG1-WEpbXQliVt0q)eCuOMB z#p^3c4x9IQxQow^EBpS#}#xxD0EV4<%B!^W( zcKv51{HJkBdi_eMEzE|-Nr_tA&I09lP5F?$cm2tpNa~#tNh<>0hH7k8(Y`YqX|bxb zw_+3X^DZdnCq#udK@^U5T=NO=jXGlJRFvD$xKeTIGe37}`8xF<&gn?hV!EUrNdLN$W8JOa&HIMh7gvf(3{t^8#qTRfxi4Rx)@qD_kM`2L`|_bT%Hs z!3=Fo@fTjr!TTl^#c%0EmT#4g7y%}7`$f5aP-!-6MM_*MhuE^og{l=T?B|7{$slS z8TuzTRT7Ceo#wvd>16t*>vfHM^@?kBeyHg98ur-4qp!!Cjb6~52p`!yi zjXuHM5`bdI&-0ZdhOgnR1w5=)6S)cQP8)Gi!)DD*fZ9Rah>PfZ0`NOEO%b74CEoM2 z;`hd`#$tCh*2(?aW}38CkY1^*CtglYmdqFN0DnM$zh&guS51x(zN({C;n7w*x_7*LA%Z=b+_djC(EzoAo|u+QZe$*eET>mT3#@Zm3Se^-LT0WIHZ zb2VAp9$bRk`xiD~vr;Ie^dupXrV=t;)5JiowxUr$>nYZ9Ua0va{m- zOxmVkEwdXSCvGfP$`DKeLu8OWM4^?qWrWd1WXRCC=PbvsW?cbryia zY}Dn3MtG_Nsba#fU|hqJ69QCrJ;v2>Y8LOt%MaKzs?z1B`i1LYL?Bn(fkeu4-{=oi z)JC+)(S8i}5^sML@@k5nb#{<27Nr`WM(k;B&sVPR&^0@8mk0=V7L2#Q4;!0S8*en`BfQk?=TC8z^M#i z4OJDc*yOmHuG+j#PpEKiQ^dnA2{o@sW)usq=kIr$B->WKZz0@az53&a|K91G zQ^{`*INQ5)cPyGb8SOxz#|iMZ3e`fA5ahvCLv6BQDM3e zF_Km17OQE{_?%9qzc#%}-`I|l_C7=u7I$Gzm-b=daXRqba~R+0Ki>$0P`iX6-dcqQ z)_ou?eU~zfFC?YnVe0lwraB9*g3EZRUP>!C`x&_QbV?g4GzR+*l;%dNNY7)iFb)D6 z9Zz5>7~;ch34>0hDw})VWXFP2u`L!txtlMT>BL#F(%RdB;#0II2qm>sD(PrwAaK~k z%{(qYl@5<7%UoUcO0guEdL~`uClJkTMP3>HHr<*tR2&xqP1?-O0rXNFmB9R)FAW6Y zC)=jz;el#s#wdrlB~=1369s|J)O=wzP*hxR4pO<1oDrXoVAEtyVO3yl1Lb-|Lrj3K z3j}u-?vxT6)oDD%6`;L=3(gtl3x>6s#OPC1cv)wGQK0s@U6)OOzOAxx$rnE- zLUB?+QeZG#K7*q=L+K@9M%n~WSLiw}r1xsf3+18LqR<{x4qJ}Y`KWKQSux{0)*Nyr zVVnl7z=oAtxQzdbYTgU&+9VyE{S4B=azaG4$sKeRWR&P@xuAnO48>0(51J-X2ccEO zL46f%R0+$H`XTH{<*V8pj#O=qU{hs2V>K`y&CF5g%;Qn`%y;{Pcp9J8CNnLhFj|dd z0-d>U`)pt{xd?X!%B6=u3@+AVpsB&BH6Duiuc(hvoXYIbJ_P^Y+tp{a{@`W5?^q zZQg$Jt{=kd=kd7tX!@htL&EX$MV_x;>Fbx9GANCLDQx@IzpezPzHqs$80PCL;&w0MBN+t1(H@YFn@{Py`^19M&2;@FgGn&O-h9IQr#%mwPyX?`6d32-5@Edb zuFZntcwJ}AyXD7qO`>tAt{fDSxxvR8ET+N*HQcpFO`bOY+@zN=`s6ujamc}Q!PSx7 zmSFib=pqpaEm}qDGo|#bK~fPCf0Ol1Y_O#0D6MpzYbcPGh_zs=;3Utc`T$w+vtorg zB%&rZ`mtwG85KnKk!JMWuChxFlaec;r)(%>p;0>72B`}PR6nu>>I}AGMyL>TXBNf= z$4n4h6rBP^L&Tx{GhBah>RTKG{P^>qZrsIYYqcGNcVx$aIH%2)VJ~VUqCW)GgKWmd z9;bWci9R@7wtRht>${Sn z?@Fwi0y6JPfa2^2QKX8*kufoya=z3Hx^78Oe-jHBsccCA*DcA|mBI61?LEC8`JoTB zxf0i;fzE7wjfXX+~coX}o7U zyu*|}BS{FJndUsl4cC3|aNYNsx!2D1#lHRU`z}G|i#fF8wm;iAhYTWX7}(iMOxwX= zIUA0ShNk`{j;UYiH^dp1OhM$2;6+>5O*F-0C@`wbdR5JQp%x0chbFWEQ}UA)-E89@ zzzT2%^-DbI2yi;X`NaYFp8=?+gscDQ!)j7L(YHjSims(j1T{s}SK>!)YezmZf^v7e zkmSUY&W5HpQ$-qp`j@eF-H$%vM!u;7pAvm%HGW4vhT^tAhRS8Xr+6l z2gc1j@UK1^|Fy}xn?=8WeP^m5lvzI*60j-=n&RJ%Jy6e?N@R`CEKn)NZ)*=!_S2+f zjc9671U4ZeP!oiHLN`TeK$8X;CZWh0S*fQ^)-lm@`c{GHrR!%kW7!AkNOI*>WhRXo zVl?{+l-|j=1j>AxewyuL@l^LFx$>Uu5(7!w$!>BO8!5xr32kt!jL>oI^cI6wQLM4S zp^RxDjT2!Sr|!`>ph8tJC%{;|6m`YTz$5%}Il0UPq2c(sfud#t7*HZ(c`X z?U5d$JsTl?0Dk3|n;9*4WAEF)W9-cgx0^Be?cXs5XXv;Yi{Ea?;)A~W)4q$^#=BG{ zY)N@}1gp(j=oF;|{IFc4Pv@vBJYRttXbJ)Y|Zg=pBkQbIS`9WZw#6&U$%FXT3e}UME7xVJo;4w;U&9` zd)tmLRN%w=|M~NWAMaZfvws&S16<(5a7?10K4I`vdOk_Za*ZDKeL+o-^Gcy-{7jcn zk9kOxoB)2p6Y+zN_Ec2a?t@jhny?l@kXj(USKAgUi>Ph3Quz`ee*XV{dHwNWd0+0> zC|{dVQC9BF9VU*)w_1E?y0S_nIq|JkLO4yrm zdxc=kz#E&sxB#QoLvSZ40H2wP(lUgnu1mC+&`^)i0%}$D*RSZKDn2yRF~nKum*>D! z`xpR0`V~+w0S1XW^|P6T^dmNb@fgP?-MV6`?0i!45y9l8+0wK+sny83koZhfOaLRb_{G}D6nD6@W?O=wGi3ui6} zPN8+o=Bx@G&(pffPA}2^s54!VUW##{D-AOwN886?*$C}RaMD{HTsL}{N#azT!F6Fv zK3-U*9gGhw#C}0Bvba|vm1QvHao|YGaKfEm2$%XDX|J(Y{>lvK3EloyB(7YB%44S7 zGvx1^L6~^t+*YnyA*m8t?7ax2Wvx%j?BFz}{n8Xd?g6ICIH{uihFH@L?5Mz{{q)#8)e--*Yqy%jMa>*)0ff3mV6d|)+N7ASU+FoQa$dcD^X9`Zd1_A&CVU79y#{gf(D)!J*Wa`^DU%z`n=? z)*_RqCHEcFda4ESnsdD18(oB+Ds$uaxrwN<697L9%?kcEp^UBDu<@m&MTpz&grA)J zCYZi<8+LdpDI{ZGRp{2X^#o!IyzWp4QTARktrz@wWbbwd*j_onJVzr@FHF2Y*X{ZUu`>DIxGez{(44T zhEl4oW+%P_3Of^j#7yH8`MM29cg1w3j2=(HXVEY_z?6k6xjetXxkn=qKFk-kz^fhi zHtbwEoUW|1lh}S(j+SH93FxZrkpXUp#&O&X(~*RjMI$GO{@1t2`?nu|-A|9s*Xz|e z)Wvoira?YK#J^LY*w*k|Z|ZmsFHIb8Uf+nX$y7gwF-2ko>H-dUCQ5f+!ua}2#X zdO&g_J>48bI10n5AJ>ga$~PW)$ZV_VSagRirfKAjkK6OktT7vws!^Jb)eB}@`RT5q zg>;f6WYa`3{kF?Wi2L^$RDUDyUa0fO4?q9>+1U&RQ@Ja9qu@E3UBHmvWQ-!MLI_-?i%Nwr~m;rh~dCU{{8R8xV# zhpAxUGGKuwL2WRUm2NHL zWZ&i!Czzx<8r!Hal16zSQ<{?nBAI@c)azuFJex7iwPD0N1a}lV{!PjmK2!6@&Dv={ zUg|Ror=Ym2EzeoR0g1foR2M#Ncoz?XMnOSP7TzmQwtRB=ojY6)D$SNRO_2E2)0}#R z=L-kSk-Lfe+!jRE_zJy;4fL?#+QSe>9J(7|^HQmW{{>!t|N8x(Uj6A8Zm|BTGt@bT zmq`5Z!>#AM2`swk+@m}}GB%t{-;+`{}%@4w7 zK5}c~>k;_wZa_u-pBLHl@6#9dJaaYYYo)iGNGsd2mv5UdF>Kqg_`>xK&%*VbVt-CN zU0-*-h4*wD{nF-XVfTOe66?1)zT+xQep{M$lCdaJK#m5mu8KecICQJFf`fU9(Mfd7 zPPXO6SAqiAPC8BmNU#t7kAkuS4`uG44Tc9nlfYDzJ=Ja$Gm`0$1+~h8U3=i5l?Kq5 zR%nVdP)6H=gj{ElU9^e*LYGM#4^_k5WhAHIwwl5wY+>XixcEM`LD>rWMhlo)IJIzP z!LD%=76H}UdAM+a;xq%oUwTG&m0}Az2?_+Nvt~V$Z$KTpfURuqvl^UjS9qE`7+1+l zvuxP3J*TjYv%1X zg`BRb-ITp9;DKUw{gu5YOMomc9FLXa0`K}|oZv)r<|w!tq)ldnt^|%x$v$)>5fQQ| zz{c9#^)65ia|aPzjr74p?on`TDxeC?S;2%-RGa`6e=x|vYNSnqYwRej;ix7QBp${d z-z);C(^_ovBrAee_ys^SDvskGE5x;@u3}+^^PC1J2>9u_HvU&kLjOkJfM0u*{0q*I zMKk21339xdARo++VQ{)^GaCobe&uhPAIE=ie$0R0{8*h?Z5!|B$GDjvPoL@czt*HT zPQTi$SH5P}OLwzg{d;G<@zFsVX5@WC)!V>1OcK2+%zwD zOxWPzsRIFZw^=W!t&s=}nq8K&N`|h2np3ncP#YCvOe8?hPxMGaMWD)8ZxuZeGi>6H zngu{{>VwsQiF{Ubfk6PVnp{Zl{GVa!zt=~it-QK6mK)CvX~uOv^6bsnnZ2@}5rj*d zxi=6A$f^cZL(XffURs&Cww--$)%(Mxf0(utEubbj^d`A9*tH4Wq}L|ujb^|EKW?yF zNzNO`1S%tR1|8TQN4s2a z@iV6uFG+XydZj0o{`nEUsmQg0Tm?+7c-}B$%c9OS7u9>}+TD8hyIh|)nBcER;~Qwh zTayjJ_)@uyy_Nm_ zR$J_-7IlXvSob=U;1~&??)z-;!6sa;O<<*+iru#gjEM>?zwJi*C?YnAluP1ZHq)I7 zgV>HiN<9Ak$9U9rZLq()&Q$YDm0jSF1Sfjsx(K}(9y`!0E%lp~#Ah#mXVYp`kOI;{ ztWjW_twc1&W(a>X3u)Gu=gN<7|Mc z$>9Ah!F4*?-FSxXl2-z=V!1#qg!L>qKgbkN@46cf4R-Bf!Dzfc zMw?I*@K_B&_yXfo=(Gn#Rhg|+Aoyxi34wn^VJE__76@Ax*gJMtmXpyskkUvz9ZkW% z-wbYE_Wu5_%2ToNKVOIk-rnQ>x~*5%(taBemo2!3vziNaTiza3t*smE{nK9Z>8s}Et9X&ZooY9`pDZyH3U66f zGu1m4Fo8yc%%(_|Y?48zRNfqntfN;k1rD^qmg0-l zb|Up2tfLTlev2@sBh~Si{Pen01<`Tx5yUi4I<&+h6lTN}IxavhUMQJ<&OMA}5aM>M zrl(Q?^vlfrxvhe!No`-LRRgKD8P${ARw`NGs1c9_HQ@!}DReqRae=4+bQ;thvndm7 za+M$!S0Q8$!a=24wqr*pv?f@;6j^7bCeH}EX!IIejA&x^hK-)SEB&uID2X!$3NmY-hzbx{u8 z3w%9c>F&Vsn~YATr=|X^jqIeg+8Fj&jzvpUET(h)leDOpRoptFvWDVNT^`6$PYaOf za|&u%wzr?;^F#`ig76C?JRF1N**90&EF~TulZSOx0uOgY!N>!pQCpWDn#l=GxDsig zAoWjXbyb#xy?V(1QDZ@qxqzq2aN_|Z-nhR=M`uto%wW+?Y3-UumDM{1E&(|oO-IC< zIphg0x$FPNky;2G^~n{`hF;Y`I&na7U>g!y^w~l&Fs^%y)~aDM+|?@#cM>%M8IOlq{UTUo_WLD6v#Gj-1wG{)qVW$rBmqBjN7QUMa zhwh6i3B)9`v^0*W!K>W4N*4~BiN#i z=ID2_cHD&GuAWb2wn}edrj5jlt&vPeMS@AmQUg5)BMaz_ie`>vdejppQ;8y7f^t09 zP#bPhOLwf7sWeIi6+SQ%b>?i4t_4Ik<|Ij)8kjcO;4`yL#b|7TEXkKBt)6f#miv~|H%Gu54 zqG(FW*Dw9X^c`t_;hpIbRE1vR3et7D7qo+!G1I}|51kICT`}HIp&#D9`qPJxKfJyX zn$=y>xjjd&yC=Op2bxbZheu(1-kNb&RS>B=;H-V@5_S>A;ymlQs?jEXmw;K%!{D;| z;~{;wGkkio&T_?EkgeH@R7w&b?D3r6!;A$6u5L?Paogi zh~%M1DFV1!r7(9HRHOSBzK#NGo;54?1}iklP)HZmwKlj;Bc~@i!cg!50f;>7M;Clv zP)S6f<_@CO2$Ze&+MYP|DC*BqLM7UJE>I~$Qs2Yeu&&pO49jY_F1ovrgO*TN5;%$& zxuqIs!J2~mU5^hojT@D3>e7!Y1S?zDL9N)02*(Y&Q#@P`iC`XQM0NvVeb$tib6DBL zr*#SCGosL8OB@)?U6`lakMiVDx>*vg%%)jT6Ii24Bb%s%n#W_~r+0taiwdKmKWeor zaDnQ?_fb$1lrtcORe^DUjs+}X1J2vfQB}`fk*JIdnC-Gg4Vy>+M0^YaE35$;0y*q~ zEr6%n`A_Csi89k*ov#FlphvL%fBN22?2})d)r(m0i2Nuh*joKu1XX~#k_P`K?HXHirrpi^*Cd#MS_WVs(e zr5)AAH3=+v0UHaapp#T>HzpzNre*crk2Ct^LsOd;(Sw@;lm(;e617JuMt?2z#3}2< zX-!c7g@}0r_fM#PS!Tp)c=qRr;69=+26hsg1z6KXhYXMEf4~gjF2Ew|(um|u-QSP; z^ZNo zmz*l#9AXdZ{M$e}Qp?G{cKEETA-L)ff+X9f1;K<05>(bCxD>{b);5Bp3OinLJ(}2l zT8zctN<^iN%gBY;=No;25cXDzbbq|b0S4ho`!n#e!9%KqDZXuHqu(7Im(_7k8T6gQ zaZfwP!`^XEymj28d+w%BK3Vv@ltIP4#DiBq{POd=H#eL}n~Fl}cn!GL;8JiP6S4zH z%aT9FfuD{c_Zc>nZH{qZgz9W*;D=C1um{`ehP=qi>M)(#rZTkOG+Z$Un(o9EjlRdz zQUVSHiDQY_EVUGm>Jmw&@O@E*e=4MuE;rNQTa~15?yE`ru#f*`w;>SH@TBhug4dO%rlgOv(&nFZ;QVNd9=Rl$;ETztt(kJ;Y;=YeiX|Pd-R!AR907 zLG|OLl&{925X!L=Te&p4)*B3uIgGsE=eayyxSYPgWwAx8d#qMus@^Hv8h}0HwCiOvJ2289KDsCNmo6q!s z&-9Q>FY4Xu+R?VXFC2iQ;HZYm>OQ-xYQ~?r+?2Hj4Pj#=Q0s2*wX~GMg{;=BJnM7VEj5a86s+ArdFapT@Ud~+I?!@YkuUTm zJ13wfFPv=}d4b3C?#tgecPN_>B~z})&9NL@y#DUSZeiT$lCoY2n|HK#o@rM(Q zu}xL?sY1EIGTz36CEj33H>u(cmT(&{ENzeEhTgVEQEy^}Any^}kec@h(oL)oXjJXW z2yOFP80&&Bp4_LbcwQ~b26=UsF?g?xkLrYyxzJC5JRgQeYIxh<>RV5zt9 z!lF~mJ-y?O^P%i`b{m`759B?uyF`jFJC5DPgQeVHsW++04VLjf-h(k}FdmRqjm-1$ zX?n)EYvHpq4$L0Q)21Zb8NZl?RVep=h5<%WUl-?O4A%?Z)xc; zD|%#diS>R~@qwC9o5J>0ZzxM{t3!?4@fQC zt53GGupVnS`e?kkaIZv9Yjh}&OL?fNU7x&E8>N}V*>vPxXdDoOT?yLa7VDr95!J-n zC-vouMgdJ1m1%lb5JvlT%nhL+-~iU<>rZh3R0w_-o7$~ARh;s1RJv)&dA|#O_vas8 z-KxbE*b<bohRe^k%UNUJ<_K2Y+rvar_BiQOd{! zRHp#YQq-9pU!49?jelHBa{cn@-G?9dm(hu-Ai+M_z!3}x6wgvzL=-MC5Ek&POGhq< z(FGz}nn5YrF{%K~M)t@<8e&hCgCIt4DN1rsL#iE>MzJSUU&o^c}n z@8nJ4rbZ!XGEVA{8n#C*aj~|6v}V*YKQT|DE<+L~HBCPmCIuFjxqhs2<2~PfV;ZIFP&#I3&I--fG@1GMS(D%xOb=)~aI~8ph=C z;&iYLIUD~}oRZOx+Kh`t1;m3B2*B3Y91kFHibf{8bC3<2jFwKJm7@Y^VHwYpMZ2s{ z9?x+BvZk2FQ_`om|NZG^^lr!L_K0qJ_m^}kPiuAB zb6MWHJKdyS^spkYZ!Um6f41jzYJx*h{&otA!O$4PgSZ&ZefE8f_*MM#4To^r6mjOX z*&teDe`$wGY!& z7;SC#aZS@rO-Xv@u5i{{vYGR4E+Ec+Qw;UfowjJ)ZHYx}R46^vbxnRNL_uTQ((Q6# z1?B$^{CJ`1^Nu0ECqbvy;{w<&yn~$=4o)vpKK}D44+k1ugY}r)zpKkhy|HiXFk?NR zsp}@V=}jb?zHm6_7c2bc?fdt?yk7+5!+uH0@uNP1Yt2XK7M-!9cO(#{DMIIC`I&8# zW{9la`}90@-N@;LU`f=g{6T$*ruelq{i>y=O{u>w=6-wh>u`Ehs8!$$v0X_PR2lb`Z+hS$e9 zM2jWa_Y)F~9IQgU)?zPE|NYND?KfbD&PtnQ$O0JI(;B27vzV|-stwaWQ_v%2Xv}oR zcs;oY1$Z^tsVbc=-#$tTeVCh+PDdo}vn1T!C$uM>S7`rhL6Fe+QlAi+8@mEO5>g2% zt@HY&CwK`{{JN`}2%MBQCLxU66Bw5k26FnQvbuYs#u|Y}J6~24j|qRVXFV@?Y_kR_ zBH`zWxlEQf0%uzrirh;+m2Gdk>6yxN+cVwc)WLRrle9N|Gb?4;_D!YI8uDSiKK*jz zOim}h9&YNk@nj=NNKuUzhCDhb=!hoi4nRU%KADiKS)D#4hgq)8DXYaE9cF}1DFdR} z**WI{r30^JzexM5MK}2E_pg8a?z5FZ&wP(iI-= z$+`JLYXGQ801Rkhp7U5zXF-Y1WcU1%B?;txR9e8`3+M{SC0lT)h4Una%JoaLkk|q$ zuq6eSraP#50jJrJhLQruvVfWViQBfM1c$nSEm45L39x2BQBcw)Gz)avAh2YgJuYBs z-0U=gRL2rofm?mV8XMdcKM){7<{5SZR>%Qdsz-tr7trQ$El#bFi5h@&f+|mZiPDoT z`CJV})zy>{^6vr*H{vEPRffM9)>;2s7cNhhd9!#c| z^h7jIPtL%7x)v`c$*^A268#i8rXsK*{sqJY8kxQ(vdQ)l|~jC+L0Tz3P3`JN)+AXnIibzr6kU z*BgJdOoK@RE{L0Jx|tDV;Mfjm)JKfii5vjxr zt3GYrrF0kT3H16d!;-D*)cr?pYVS_m-apefAetSl7`sdBa z>hD$Yypvw}*-#_7;uO%w)W;Y17GG z^M;07?ukOrC_p%6E>IW5Y>Cyen2^Ic&g@b&#TRRKD$!?X|M{m6yKA)F9QW@(bM+1K zum36d`sx4wq0!Qr@}NO}xREy7s_1D~C;hy9D@QMJvCBQx0wZSTqYPc@WCYK30#_w) zB1Lk&hwc+!ArdcAf}jK(ws`H(9a&9;Btilq2_z#(0!YROmAP{$cEuwtMBb{);q?m@ z+=RGhx7>L|!tI&W^fYdB)u*H)xq0`LKe2*t=kb)fjm37Pla0F7SI4R1*%b+5ahA(R z{vmYJ#TvZ=rz)@tHLJ>K<6m@l)Ne24JfQ!l_seGM&4(ZNr+%0>P>BW**k-e?-t1kc$%dWTA6QMKFrW#0ItqwxW|wH&}Xqa@bI@SFk)JyPp+E49Oy{nTuW= zr)Pb}Ohq?V;gfsxK%2)kkfccBtZ>yXYceC| zk^JxnVmQ)RK`SFvC8=aZVbe~)VWSXr#;Y~?kc@ir_B?SaE=Wlbu5!(Lr~-OYkes}} z>XC;lBEp>spKw_Vl{yR5Y77;*B!w=NA-aj#A}ANVq6$Ss)jhV(pvr)jqSDo&x3`|N za5X{MYS~KH09|S)vd(_0Be|<|u0@`FfCC^c;e>$X^;5Z=&`lG0&PL}T3UNY%_v7Km z*RTHi_T3+MTef9X`IwHf+GJRT)oKmi4r8R^8_q@a)3;*Iu2DU!Zy2tha!zn-y-X?C`trRBb)Lfcx=GUX=cNfgE849@s5-N z04?ezFbgyRCr)k>aYPo;85A5uU`-gjoyoS(O;C(0mO;8M<0)A0A}MLH2{JB3$KSDIqd>6?xYY zmDS4CfN)PBpWSMeVH3qT=8)@4KXqu&kz?$N zjpH-{yzz`u5D28RS6b%1Wr9nK)j8>f{e12YhC#t@%jsPCx_ zcO-_5+v#28m5}>^_UY{puXir{r>A)CzIIlvxPXL6ux?)$UDdQ$1&wxyDR5HY>amC5 z3Aidek}v8Uqgy2GdVhi~UaMRdk$S%0Ui{aMcux#I14B1Gb*pr=H=%-rRG#H=HeUpf zd_H|9TLmJinJj?I9%JH*j-p&dk)F*gy(VaJ9&K)qUqSN}Y?O5P zF;QYX>Q#5mnye^uk}z6TnF_rx^xci#6CZxgS1|q()-Neqx{9mEODge1h7`O<6d)bC ztQHnOs5G28B0v4@f$NX{A9VpF!~rt?LCC zCOvd=-1XM-fUah?E~m=YhD`5A<$Go={LI;C~ne(Q(V^8;;hc4lyG4MGSf>GeF~Z9 zumE=AGT4C7z@n=9tqf$3q}Rz|Q87^x;^zisIy0A#RoJNm>-2zKe|`OFFA1(zmh}!j zRTw=?W&fe+DepPFgP2y&jD{kLNJURUcevv^MLldDchI>pT`h zchzM_jPwPXT~HsZQFoGxlf1U;xl~$>su6z7++iG(y;aV77U&YC`pbIG;}WiSmeWfL zR=-D$8#vjWH%IsBWAD#JTPFdkOvPB7c%ZRcX=Qh8>LZ~ zQwGz>g*B(z@kHiVwmIvO<^)-q{fW{DA{MT|SbgTI$IT55b;;Hbm^cL-7 zfN|XTIb;t-lG^IeckH?fK5t29f>mgk&SNh$qYAc6{u#+fGPX5e*yam~d@s?YgUH+Z z$_?A%pi3f<~V@O_itcxr}`)6?X}VsAJn zZ@4*jVp|l4%C5<`I5-y%0z(2Gf$LdG*r4Tl*-fp6;R1zhdxXLkV57~OHt!Oz*u0jz z*g(~HDB3=e;>YcKzK;*qxjotkRP|1Zpog6E8uX7Jetf$dd$@6DZLc*ARxJfdks4$Z zvTa4L^7Tf1TL5RVp?|hl-2bxE1yxcAC`ocDMjt!--1CNp6M@tnon=num*0dOOm}r{ zIRn85$B5w)CshtS)`Nn+v-~!M9IvBf^Qy8>C|;ny(0w$fC4TDae|3Qy5sg%m|4M_x zC(=wa8FaQtjFGVd2;!GNuz~A^;&O`187U`Z3Q{%nmK>LyGJ%q~iIggCba90^DOT1;|6)yfMUxG4+hbK1cTJJmTkc|__^>|4jn|Q~CNon=a zp&uBuCU&>9&UIY1wwRCv2jGL?N#HbBmlX!2XP4hLBe;XT&Lmv+Vk+1XL1{u=&8kLc zr@V(<=TU$8!X)*xb^7x3_7&43N-W{_d%X`(iaB<77Gi`pTF6BDBQTu> z>R_ZfE;=z!*@xkXYV4lV1qZ=XS257`Z4_GV)v|JqdW5~?b-KRt#Z`Gu>q9^`u^gmI zT<^Yx{^zILT}%Ml2$e6faabWTBRB84sJUfMGLVQ9z^)3*okiaw<6n|zzl5g$^ ziVxjd5u{6uk)Vo9Wh?@uH=Snzq9?17F2+w0*TrZmD=nCDuz9snaHO0GxU>~URbd6I zg4H#A0cySj>%K4b;7P61t@@V=G(!ksm9V@%W$WD_w}4Y`x=oWl90{-f_{(xFcXO(& zOqStHl5(#G2PD(62x|~|ui0SorP@fXQ^Uf(LA82ZL+Mkluxd$XjD)1sR&-k7#N|ha z-K{$Q1NGwQpc{wEMR1&ENN_{7ZuGkeLJnjWP*+pFPq>p&+6FiaKadrlkumAugp5uH z3npKuE|G1>nH`qsxW!#K19FYJh8`He)S`oBngJOb$|t}Uzl*@qR+Aus+vJgPw_5Y> zf-8o7Q8XJ?!T^zL8*ZBRI`jQ!=4($|^-C{IxRzwa!zrTgTVI3t}WqSp4s%*ak{d4`p)3 zsLKphPe`Id>jH)W`WMJfphqtoC5_!4cprWLdhfFNW{IIWW%C;EVw1&~>pntr*IsQM z(+Rs2F>YSfhlFQ(s=LrV(i@zzG$W~~c2m@@oUI9Us<4mOVHUDhyU?&l8pB<5@ctJw zVf#3JDYx$`@I3BQ+^ot*AyUS+505v9;|=0?u$>$7)|*0aisV9fU#ESN$v%}I_K;fv zbnDhgh)>pJ04HR185CG14U<8w^r}H!$dI;90s}_|^@vew8!89X*VbtTj`ks8a49VY zKuYu4k#D0N^UgLfJbM0RZECy!!7vk7?co9>aSV`fqC$z04}-0sCkAyJ1=|HzpE;pK zVAcf#f|nBjHk}0^Kh^Yol-!k4N4_38X#WrfLKJy z*dl=L^YyI0Z;X~vvBh(YC3$6Jm;FjO`KrIKB4dXUo|-#s!GMC~Mq4tPmxl4%U3$2% zcCnyq_dE#$*GbP2do>buc+kav{{GQ*gT8}D?q!p1)F*Cxp6h4xzxv~c|GqJ7o4UE* zq<=hhF)(vU90-xiD51WX`}O}0>Xu}VPU$S%aW7{D0-h^UtHTJ11l<$(_U%qg1iv)v z)%<}zqPHw2$vlkL@_GwVJ8r~7eB_uW#Y~8LD0^S{XI{(6TR)vZXOd>U#OJEqiIi=5 ziHC{bss}LYDmZ39CRX&L?43ZF5VkJ*=mFztLvt9{z{Qj1 zbi9!Mm;=B3^r-%+*MB4kF8c3r@}Y0Hv7X{pS0dGb4SWkUH;uN#(GI5*5hD>HDn{c{QJOM*>#Uhn zb=4!!$i-C4tc=`5>rQ-?E644KL}9v9f%nEy0P8fXEx#YtsgFJZJnwYzq^Yo{Mxe_U>q zZ)F{Z^sEK3mRbCC>*|@W>wUOrdA?77;PZN)d`KrB>V&!QR2b~x-izaB34B{#tEcEW zPVHjIodUwJwK2a$;wA7PhQxq{uKHq?A9|>y?t7Z~N6l}8UGaDyo~im>xUj1TwZ2T3 z>HeEaBStRRItlg|laT!P^V>Bp4=q~?Se5w@HN zW`#x7$_+0%E6VBfY#wF9bTY%wkJ|{Y{QWHXaO-G=)3}4YEHz8pa}+h{j6~a%+}$}9 z{6FEhGJlguIbQBTu;+CXI@%a0>PI1>79uOeOu>X`&*l)Z{|05pd5hFm*~u~6bVc^& z%tUgyZORw0*M`&ir|8>t?u7HPa5ss7@_~@&B|;h^O|dfE2Yp^$DOynvnE7AJlJ)JU z#dhU~k2h=$ZR@JPVZct?JF6h1i|0dyEO2p@7GRrv;5mi;kxsP4)Qx+WF32uuKI zWRkLQHwT{OmFbj%L?lYt(gZoT6K_b+Fra7!D zAh+IUIHF&BM@}7#Qf6z{#!uaNPIqZnI&>bF#J%|i(&(rV3F2}??Jl|ms`1hGa@&ub z^j`?#E2CbtWxL+RYn>A5$p=FysTS%4FkKxfnCEEofdX*TkBD)1D5^G~w)fXg;+wc$ z;cVa>@A?S6htY8#)oXF`nc#%}3mTBeHRP@v{P_B(H{ZYhbo)2XXkK`XHiHMM5+cfXAUG#8}#)(T7>q}=H0kge~_=S1y}&3l^5{Jxja3` zM2tHK9A~?ejn19eOHaX7LPP9w6IQj+m;^=+kqak>b6&l{MUgfM%mP~g#HnI&0{Mgj ztP4~V&?O96F3595zl0)z(enpRfnKOSD*OKv0856jFh<~^2BhRLB5ZZ6N;h5 zxfgKiC^_<=9D#K$UGM}<_>@hmnyv!!HMoX0Ku^-a%qWcb035H1g#|c}9&gk!bl$2b z6|-D$ih?PqOl}@qS$3EXi$ljM$0gq~brM=T} zaTzaKV^abgVsMXDQ0<*qDTBLqJkZ&xkI#p}Kd!?n%4u0ZAOKLQ3BCG(UE~8Xh zJjYqMxD+Z*(~q~g|LvHTC?lt|V{{9oB}EcYwf0k#us}!BOdx=B2?3fI39%ALDCjxS zQ7t!zLRJxw2Vp|DZ_s%}wZfj*qDHG$(-M=?5hX905G-8dPx_(ild#y&8=pEu=4^;? z)M>(aQRAX=5fwMg%}>@c;X0?+B)DpqA3AyzM5$Lblwd`=-b$xtE^)k~Yo3d$lce~U z*ERl8fBVz>*Z;LYd^q%T_K7p9Ld4BFV(fy2T%Hz#eh_k+r;# zS~b^D%5A;A~Q|*XIQ@l_q$>9D6lJ%^_5-3ZlwqRo_u?rI7(<6_9YTXvCqor~u-z zfAUKfL4C$MHbDC>@iZ6Dm}POTG+HhdrRGua$_le*O$GYa&R`Kkjk$`=F7F5_P@xtR z(Ay{xf00}j0h?}M33WGl4(F$9}a4b;o1)e z_rsnd47+}4d}RSH{m=#H;nEL>wI2?bemGqFp(|Gf^;Yx6qPOvO6Cv z;F=1`)IBRBX2e!(BXAZh?y2YqOGOWgOdKv9BSfnS(u2nP;l@Z~eY*979pmO*(KC}P zL&&1I8YyM6nc$i0T3ZihSJ@KJnT=2@1J9ax+K1W!C#KcDotkDGQvDxnoR z6$69=6ZhaT!vcZupxA&xfmsTjDjXyM^4uf{)w~W(#nJ$wxJ}L>%z|mWFbb_3)F;nw zXO=3x`Gb1|&->-=hc|EDe*EopQ!OlBo**^r2q1NXJvR4QY^@hhK_i1uF`)=7nsaPd zhXaKJr=Mf$sw<}nSOXPHDIhG$HTv^`CA2BeKJ`OTi&Kb}hczpHe9E)RW0Wl6v~`B5 z3f5*^aBW8y-eitXxlTGyQInRVP9TnG1t5EKUG3y~c_%c5!NSXxr_Pux`7~l_=WgnTeoXS(JACY3uAyRjv5UX@)4R9tZxreC92vkvwESK~Z+K%b zPqnzW#NEzij?ThH(~8&mIm^@xCIi)LW&6fNB7*b09u`h-4nlnFkElQL zVMteJABzFRnO`PMr%BwiBmp&@$u5OSfHQ%p>$NrI!PyPW`ZaQ=af#0Uphf?*^JG$= z%B_nqE+NNr+euPO?gH_*ZQ99cL)s+{qf%?FvG+12?{htw#pmJKCWIk*=ICSZf0dZv!!zd@g5QZq_K*vrExk73VoFjQrS#7?<6Rv#D({{={>0Y zc6D2mPK{UF3vEkU6})Am$PML2_Po&;fyOW;;;LZ#+|_&9m0?9e2QF7VjEuu3@T#aD}1Kds)`9SMHGheaqvmz3{5?(HFG zEp#(m9DPG|-5|fUU1{VTqE=hQGoHVL%P$`+F{Al<+Ex9bzw z1Bc0-&&{wY0^CqsL{Cw7nG!jV{p5DSc;mt8n&4Ul+nIj@DFU#_i?;>tDX-G&#VG|J z#^be!2Tk{G_oZIu)#sScF+U&flJ3vPP$#z7iPioInJk2*`PCuy%*}q)D}LFVHX^J? zj=|c-S+NS$nw3*BycO^*x}{(_r~B#q*MEHb>D`;X_sB_W8yl&6;`&?bbuD-maq>%; z9FP0vBRNE;;!f-@v^ROCi#8D!St2gfkk5vRwH!KL5-$tW8Knz$XWcuw6Kqb1<7x4%sm&X=EHZ($2*2YvdR*JEgJj!J)MifJ^0 z(0q}FuU`NB=IxK)?FCL?=3r(HS7r`oCafAZtQsz?8ZN9FwyYX1tQu}uHC$OWTv#>i zSv9Pz8m_DwHmn+UtQx+^s^RZt)pu_n@oK#|G`Fr@Yv^6;|1Ew!=>a`4gq8O6riRC@pQ~Bd*;o3I8)f|;yo|At3<%i|__hz?F=DcI(;@d`g zvESo1;T)o9vyD-&%xz%sv>`b8%6n7_E1fCyz?4&s!dhoiGru^AnpO+5)ploR2{92= zBt)16Vn*9GZp)lm{%3uDGuU;L(7`zKR8a~_978R5M0u9P2dWpkrFHdOUsYR4O48yZ z09hylkIJZEFJ*90 z(S^!UjcEG{cnOkS>bLg~m`4-zD0K8HW2ccXi+0f|GA-s^Ai= z$u5|aJ@PV8LWWJuaVecZ;tnm`qd?f5;sQ272lV*idkgk8rzXI5Qtn_tOZ@^j1vhG3 zK#>IJqB3F?Ty3nGaJrXjA=qAVl3|6DycK~{Br6Q?34-O_I(C5>EU_uc2m#ey4T+o$ zT*Fn!CpfE33JB!pz>-9j6VrjN?jdz$*+04_dpOrVxL)C0-%clzwy|fVzKg<}x7ph6 zeGc2J_aF9p>B-*>uqI;_PVGpIS6IDiv=cYJCyn%Vdls$=1Qy%E8@AB~GLDWMP?5=ZJE@mU>wsDY5`Yfre)1bRf?%TuV6xK8j@yt9=%) zRG8Jf--@h~Xl&xVF6f8Z&i-JI`Q_uA#h%Z{#Tobaw@!QVJV7!xdMJz*vjA^YEcd)L zIr5JMVA{+iI#0U3;yS_d!eufuu}v^^ll|u^aZAG4_#hCgT;m?)^-Trppo@g81f8=z z3Dud!*38;OjVwZae=`J@qYMyU)%2W|7r||0A*p!!Q;Gu;yK&TW_XVg=`TC04SdCU~ zuaI(x9vsysrdsLlHu?#D@e*@@+cJC7HdCzbVK%S2bl<$T+t?tb^1RDG?h=$;?tNT7 zgktTMOn<6Zpp*{Z%;wyAg3-Afv5B@g}$ zYNNHs>szC*+bVpyinr1ASD@P_vEh(xlYX`u{~lG)tL{`L1;p^hN?|CPn*CdKxWBcU zKYv>EQ$N#ozsiL2>o@L~D@63ugsAczko}Q$hRDACfCIoG*sZ*t!QLTa( z>rlNaMT~0FhJ0GB_yiWm397T5uCF2Enx;4pn}4vdWH)MoQ>Hx51%in{4KVT?_j{qZ z-wMfEj@B2}MaY)}k7*Q6Uqw~C`}ZS@Y3MEu=#<`s+XP|b#^0{-6X$@VVp*#7O@Wem zIW%z$GYQ5{A4@C)(~Wr6p5sf-sVCM_xFZm!a!0(ttrw{95>`SEow})$yV74=pHX6b zSf)y@@M!&|hEi=YYm%9jc5E$A@l|wf%&DJ&E z28R6t3Q_0nd)mj7|KSjj@bS%Mdwoj#HENkTAdZvPsE8>|wq)3BVRE!EOQ88Vb@UNY zm;_ISz4Wi_@>SSJ>_6)DaFZk>g*gQJV!-N)x`611Uzp6M1oSyk?) zx_}R$?U&_YztV4*z`w5a$zR;l&h4_&Z(iwFuk_0fWjfW*_L91JYd3M25!@yy`wmd| z?c45R>*?X4$F5`TO9<0_{P;qj`RT@xe%W=IY3VVOd4eMmn50Kby-nJ+O{UJ~Y2PAc z-y#WXnLTN`w#c|`5yB}fQMv~64rMy+w-w`#>-$YZy@?ySec5IH{D$W?wjzGgZf5JS zeHY4EzwV^twVtqxO{T4K={yo$VtE+z0p@wUlW3})-SKeccML`k&`x)~;D&HU;Y}~O zjju2Cl8=OdRpc|b?d6g3-Xdneaa-AhWO6!Z3tCyCKj<2O*g%A?!?0>fiwx)C+vbxK;vtlQs0rQgnZqm zqgtxhiIaajaJTnwbz4nPe1S&~!A&}bVmPc}{x0p`kUA+k7eac-nv!C0ZZ zxg(^Rhy~2qrxvl&GgY;MR3#HjF9c|z&HyAi4UlsgR4d$UlBVXV%X;iBQ6QxO24IaBBLw9Az!7+!qD&9_L%oJ}m0x9EHn+$2miBPkInT zp6NmO%jqfOi(~KA55K(s^zNtkH^%u7cVdF^d^0R1^|}qg%TC-`>6fim3yIkdhoQl~ z>hbw&f9B2VwJ9%90Jlu|=~>i`mM4BD?Ff3bE2B}bqk2CNrv$3LV#JKIo{dF`SJ2$v z6^~52UbpD#)wDEnQ36^%7X)ZIgDi}|$Y`s{km@!A`JQ_LV(-g9^Tc~2x;c3xKXMPo zxoRhHpqFMMEU4YOiD}yyS5{TqUB8zCC<+ZhmQw*apTTTH+6==^ZlEN6RD6jaoi8Rg z)3xnRy|DbK(*}xp5aB%KHi8;|HcP&gm>(44P&Kz|a6dE`aM|B***rph)Ms%*7)5S{sMF=ufY2_FOr3<>JcM z4XdvW@Q5?Jn)K@R+PdajUYI*uevyRKD_>#to-;Ug(2xuhnK{Wxw5fHb`(>XtuvYaQ zN2@a`sM=G55>`{A>~Xjvr8f42&;btxWJWUFR7JTWAwgK5Jp+pz+=-UX`$F~$whlaK z;^hnf?#I8#-rdhP8W5P5tI`_LOPH3opjWPGyV1F>;IZnHRDq*H6M^Rt1xYug3Ds)i zxF~(=)(9iXVmfh-B{)=tV*!78QzBuGNYo3@>ikBOUESfR@COzA?xy#0XkaZ;U5H5p zc~)~TP)h?4@_pI8Xx=ymyTmp{5=c`ADMkJch*XqG+Bc2Fhp5=~Mm+^s7 z6XML}m|&Vc)C)L`PH_aQ>9|(IHKH0vCw2neRZ<4TbBTXVdC#V|i&F2MQM$N4I~{M% zPTTfV*b>xI1F!upJg*dsOM>E!+2cAK$%L zY{rG!;QFdWZTos39hz{&y(5gz4yxPOs6KOep7x_;uiU6Ha;v+x+2|1>ET_@qODo%L zCr(<~E{XaLmlDNw9r3sC>rmIv41DRD96ma8}mU-u-^2 zgZbk;U4(99V~-?|qX_BvGo_bV1+h`8R&w1>e-~G%38hoD_2qzMv|4|$=gHa+jPm8~ zBO*%LR*Rqacu~HUnm9tAO9?ZMzM=>%y1j{NzPn>S$*E%#Wj!PeWA_K#C(-Mqy6G>J z*tV~klP{8TtJA07mqyNC-+g@h{>G1%eJh0tbAdLSRxJb8MP0EyO*4e6+VUjnWGATt zowG>F-w3mWOD$hkBt3>xq^PGb=odXCrwAM^Y$!P?BvU${@kV-k{}??B29Mzm@Llh2 zp`2y{B+?Cp0Set7%o zetA>&qnf)`wh0&KDI8D=N>l&1Wz-yVmx)i_e{kxOxU}SMWB~icT0sl8R^YQA%M|Lu zZG6#m8+LV^hN_@C&=PBOO=##jC12;Wk#$evSFL)Zv&A}Z<@Ce^8#)p922E-0-8<%luztRl5 zr3bgMO*Hhb!_K_|&`Tt}N+c?->_5kHh@&p3EY$5EgdO$US$=VH4A`LsX5ibTx=OX(@hrV7k|C&Bs%7S-|7cc z+CZB1>tl(G)lMcHrU)jSqym|5ki7JCg9{mE8>MOqv?@hqCC=dF3rUwN!i3HWa}924 zJk=ZqPc>l}m3N$NPD;#E#`dq+cQ~=uPZG)L^iS;?A|ZDcqA$(#lGG?|)`D-M3-`HY zcsRAZfB)wDw|jMr7|^8BuYDAYHq9_C*>Fn6)^HAvl}x_PJ)OF;3|htP(ony{ExWbj zu>G8mHoK*R-FlQ7lwz_DtL&^NY0;R%am{s4_PaaZ5EkIYjFYWzj2u6R0~gOm^z&$Y zaZ3u4>PE3i$3Prk)eKD69HlL$`hGJGCe=0e3P)RdNR3=iw6h5F&4Oo#>6@$> zl^9t${fK$gL!)B1E3@d-cn;OVwFA#!D!kG zL&8-8jcR{F5a65TXZ1ItsoC#Fr}$GCZ&KxbD&k-0AAf!O$9?DM>Xnhki&|*2k+val zXti2xcJmY^p3+Q93l^_ADYe#K63EPTL41OP63r68-nP)sQSqhSTfg-0;)T`&WpURP zM{;+zi{kL{YEs)*$UZu!{N_!W2cS?!Hf`SMdJ3~bM0K{hY^B#_xIt|ey^VfAf{ z)2GB*xhWN&3BFMyTNAWye3@%cS>lnVoz-|blUNm)aAp;C$)fm@bP4Wj@rQgl1w2tK|D7&l6fFI8D#rz?}qYQQ%^pk^DW zDP0kXL29haI!l0-flV?KFds7Z2z=6_w#AGom zEm`bwf`dG7kVT#{S9Sa)iliEk6q$-gW}qLfTKNH=4NQ zPb`qPUVurh0O7PKbzry`&~RE$8U3KB53vjBr%;rXPlA30(jiD&$Oi#RNB8mJS@&np z8Ov&8qt4(O-C_bp5gN&$Bemf4raiMSC_v+EbaZW|BL%b80do;;Rgh^jJps5=|0|kC zebiUqzx(s|pKjeL=_{t0cccL|sEREi=ox3`9cG#AIgIp3K^$$V@>F!z+`9JwMbE3B zse!z!uQISMFH?_Hp`j41)vnV8oe+bS6^tRQ7ItW*@W^aOeX}0p39L! zh(z90=?Ai2u1jVR^P1Nb6z^A|g(FrZb6Al=x5B9hlLpS$od+y+g;n-82iazg=Dg0pf zVPW*@g7;%oJRb=}2RS+e$~s~pmJP9fz%yIQS?QG6(4`dIU{$+qMwzXN82vz(K6)OA z7}v}GXdU@|Qo!+&|DK5-U+<@J3`$1Hr5w)EKu*uod3>(tw7`~Hsr3AYRm$a6FC#u| zN8otQ3mg|%ERTEJp%EjTmmt}8qcBJ&F(1|V;+K{NG90Ieq=lx1 z14w=bY@u9*mGK^yACUU)$NzeNYglr?r^+N5pL!bQzH+h*k-etcNT#i71v`C}BvG^2 zkOI^&VM2{T8Jf};rEes+8`MDhbdu36ZJ&;1n4a4akJoi6QSwjqMT#F9z&}8WB{L7A zr7kF^g_wGtPNG9(hzcs9I=BiVDM674QvIa~tJ())OsX4IYswc7s(e$p$n=8G7lzhgrJ1WGnpYFGddo!(AP2E;@(G_&&X9hx!EDdYj9y9Hs8)9u{ z!Z~UV4!AZ5IExlwUxHfh>49%5y+!Pxv%JB{&pa&w{&ttu3G1BoD}^VaU!TjiA2a92 z2(Lx+L@b|S?Gqcoyzs#x7k~%ndpe`AZ!SwyURu_jfUp22pJwS9HPb{fht*Y-7-bt= z_mg{zo2$V>p2(7@vh$^pX>*!i&)y|=eMEpl$U%hwQD4(>16-2`#}d|cXu1VE zcU3bEt?=yj$hyJEbOKoH$9#R`YEW}45R0ZuSX`ksj)l7?Xg?H6SF%ZL|DMIC*!dLU z(+e7!|KBgKKi(KZMxR**jvuCdwcL0j$K4@_lvK=v70<;FY=ENi*+2 zXo*iFMP?@VDVj_KQqIdTd?vS`qaY%zbH^>_f{s$EA)QYG1hrOWx~a_+a3(aJRev^d zqYp_CcAEqu!=Dqj2PFm#RP~XFcDf~$7C;9d&M?mrSH_VwI+QEmthho$C>{G`ipU0i zcn!$O5+`{9YKs{lI85h)7a*3Qevz43uuhvr%=wquF?v)LXyh)0G!vjEg$ z@aquX$~H=+%;(j|?j$Nar!$Vif?m_nzL%9CMkmlQ{wAXqe@Q+ekKIM&IlWx?qpEE2 zUQ6r6Cj^o71%bY6!Fz&E?@_)MLbE#ZIv zO5gEuFVM?pJa8$|H)0WH9rRslYG=(U&m(#q`X-CT+$=iNxp>(4%%a;o^%TdyqfK`1b9e-`)%) z`AJyXM{DAxh1+vI;vr?f$@f9tjqrc;G@^ybk`K+l_+S>uyVmb&Re-E^UjTqZ9h(>Iwu!TLZ$VaO&CXhS1!CX%G4Qdv8hA(+mPAyjbJ zbfXOI3>C{;JUC51L=ZSWIAr?tda+gd_P-Z@=0EPuqGV3p^VxfOV7omzXzNacqiLE^ zgloFRLdsG4w|dH!H3ta-=Irp%Qr$(L>-bD=p&UV2?3tmjZ;aA*KC=K6K93w+Y5Ek7 zS@@JDJCmLT3zjcbbg^yv@lQA6Z~BlIf9Lf{j(jUd?F~~8Sbn@PAnB=a6^guCrTnN{ zU0lU0IQuNJn@K!gQ=e9c1js;@sq3?JGnKIk_O;h^ye2*Ack;3y8<$!$*&SQ%x3E6_ z4k&?L5}yM0G6{_b9i2AzB?Yu%B>VO$AFl~dtIzq20j?70Gxbc!vmzg|Rjk}{6w#^?X z+x#l9skaqWKJxBHv-hoaRo~rVLtDngcIkwa zd4xG-b>593FXa+SeT!`DTGy|x4G_eHc?APrQSGq+fu>1dObBr!777!aK-~;R0kO>4 zttCcg>!7MRvYs{1Dng*DUx9MGfN=(z#CZ}<>NQ%{3vG-TK0*L(virDJfz<99i0f!2 z6I97Ly49ynuT6_afraAbR8uGQ&7vSx3?L(3ZB&5Hd)0R_m@g%Ca1aR&&8gKs=?lC&C*B!{e-JDk3fOkWWjMO z9>Cymfz>u0CQvD56usxSoelSQh6IHPZqXGqY=+;@O}G1|7#Z(pF4?<}bW7}Zp(maQ z#Q=%b0`k!Gh-B;nl4rYNx9@c%Xqn_dcZP6!(@5u)i=m0S@Deg@I}IE#3N~ez=V=_; zaT=y`IgZ1qL+>^e8e$OojNIvabQzXP?iLKwH@laLXx}3U{T|rv-0Xqu z4=IG5o?~F=n(H6j-@-E+(f z2w#2o;jcgLu?|I9d|i|-erUX1MwNbbwTD(dX2J*i#5o`*&;Au#2w4t33)6+29>e1W zjmFL;-wTBO^3y*=79|cv6l5rfq9CeJ=sY$ND#Z8vARpbAJ5w`n4yJ z3C^BJ%Qf&A^Fs=54@Y#WvG=X0XXOluN8D4fn4sSCv2;5ts%NU?O{+Qx)yhiMOL(z<4;9q&P_EuP_07%tPDX@k zd1#|~YJ>C+<`}3uDgH3&A@8z$?JF_Fvq_Z;3(1I0dM%FEvz+r>$gQ}jkH5sZEE>vA zkB{lYI}qFy;w3M~-a-?VG{oZt?H3u+4;KFp##~F^64W*Xck*`? zaviS(n&52(RmiNe-L$c({wt5Bc?{*L!1XLWBcP zyj>m&U!2M$%}{9T2j>s2F_Lxb$E@Ed_k__|-PeuG*iRE@)!s1i><6HsKP9O5P0)R| zemWPNDPlTs`7x-?D_}I}ymJQ!5>mjW$P>fxD&0@~MWi+WyhMVtnud@Ku-h>O22FuM zWikG1sS;(>Dz~57mM+Yn!bW;WS}%H?E-94haRYw%MgEK5{rKtUn|72e}oq{V*w^^SDc-+9l2pWjGmZ0F`t`{FHXXbdkf+OM;|{|?RKVa z={9LnnS$E_RiU+sBF4(T+-z;rY~`QRZ0MlAeLNE5vV!8OCm(I9t`}2;FdpdKnsuG@ zi`ZY_?<5QfVJku0Bdnh#JkL5nA2BC!o?nH)Pm9#R>o?!u5QUl}{Zj|OKH+Ku=U#Et zbDGhQFX%cK7Jkdmx1k3HohwC)OAPv%IlI)0&TDy&sXNH-vhYO<6;2SfTAR4dYnGel zm{FlAA-mCzoj@OA3crQ;io&cxl?AHIX6GWuhIcuA$+dtcawc`e6QmHR9teSIVe4we z7eR(?pkT1$A#TeMw%=YhhQ1O=6yRjaeV?< zVGW5#G+~q*5KRjp73Y*dWIr!I6|)qV4ee9`Ppzcl*R1B5CgdQrlwsS<`R44L< zsUFTrx`bK=91{bojR^9AQG#`eRfIL030F4mSEjBa%v`*>WNr2~AwJ6HJ77hflLU4c zxTNrDaP)npVBcL%5?i%@6VCI2H7>K$2p)@&xHYp%N!?9FBQYKf@ta1KGzoV_-)d(m z8oSrpqwD3C0>U-nKq^$TvYX1VO#?gFj&q$H7$o1|zw|1AM_v?dKnXZdP@__7;U_hj z$p8um>YuyROfss;@Jz$>aBAW7hK&}0!AusJV z!}$OD(4_IogKhV3H!lA(F2j?4{uhqSw;ykP-6vLGQK*{0x@ufDzV*Esu9~pK4oYaf z1#)BRrhujpVP_wtfc<0c1}_MCB6bJ>sEUyJ3@*upwP(o;s`;Kfb(0vcLCAWiJN&Xq zvod=r?yHR4Z6ji@c3|yK1Yb1n-h(q|F%*oM(Gz_AC&6R0a9=w{m1(tU0fY?#6d#i`Fo+7#J&*yJ0< zIC|AH>sL86!75A7z%RXtgFWMneO;vNdMh@pA>=(nGL8#QN^o(B!buA?%A5vJf%nC} z_qXpg!P(DFY=0EX_5VN(!a=Pbarlvj)P08Z-RX8j2tbr(BFtwt&A2(M>w?-g!_XJ+ zsrQrCZaen1pH&WZ584xu9&uji7v``Ox36FKm7b= z@l$`pur}Ltk?v_w1kn?xSlf%-IVcJ@4csA&JeN>sacooCcEZ_Cn5`XIuu8WY|M2H( zvPBR#t|h{liEKgc8*7-1n?v!@GB(X>hlMXb{a&LAVB=C#M3n7o5uv50Wrh)gtQvsy zjQIPk*UGZQlm!z6sP$L}C2!MJ3#V>ke?iYPb!EB6Gn`SmMXPLQM7-^-gp+i9E=%$U zJ^kIAJ0tk3T@Z}db!pOBWMskP)Fn<TsTQNqbFczW6DbAOa0~+V-r1*&78#_q1K%d0Ato_JIs?X>DI5S= zx@D9u?NPl@wh)>HUNH1^H9lg$NNa`qQlN+o1#0dUt=M5gS46@FUNN%ZL2yuv)TI63 z8fVVkjtx@0xjV11 zQ7o@b4x^x&pQc&QNv%y#!~Bz=i4CT07ovq$<_>C-5y;{q0!DCRLX9;rJBetTu9Tj- zXUK5|p?0NX2MFe5RZt5$_Fe@b_@wb6)RIPYUx$~z_khv>bdw*lIEaR|2cHe71y!o%& z-BNvuw-(;(CO{iEROH#PHt@R}F&=9c+{6aWD3C1(n^DqEQXp(?wlflrn$G7DBsTqn zOVwh?f@Mr5d%2+YRJT4EnTRmna1g;-9Ng>LP-7jb@1-{6Z%KV~feQ0YruA^XAb-*Dt~o3X+qoP)A`GhygF9$@QC{)E6tFNSf1+ zzQK?KKaSGmgQ?92eBH_G>0^!U3LEr%l>A;|;#ah7beb;0Y17MP_dB28iUu|oww06Z zb#R<4L@?`D5rd=S>e)d_^p+jnKV{BITz5({p=6{QKB(Tun+nks$VbLg4AyWuik|1p z>RVBnipXw|FHtK@Mj(h6BoX{Lvy{ORL|y}&bO^wNy-2d=K7J9pRd$no2xX(=li z5!za!iP~6HYKGS$#hM8igyzOg)7sJc0SFc?Ao_BMr)#_f)-cnz*d-5xex8?fq>74E zd~>3nGzKH#c?LDsJerG}qtEk9MHI2342NXhMNT)8J}*#BR7$8tRuvEuRTdGo_CY>r zU##tcaHnVS>lB)BW^SnQ1g1nbn1ECC!J(IR+$3-ug_rdpOq*03;$>WkY4uJlA%WbJ zO)3a11$(YZa83#@L2xMjcGF^DMdgmiD}ioc=^Gw&zm+2iXZspdqmOJ8v{s2w;j_BX zZ#X;0Qs_0v3mVrei62y!Fmd4MvQC^TjL5pm?ws-}M9APo0xp@~I4gwk)=1d~tIvxX z^kaBE)Sje?Kv6S&Yg@vD9x_FG)=jhvKZPU;vTreoXUPMjrZ@o^~sghg@t2V`Hglq16v5A{CO^7|8 zUZ*uMfiH05&Pw57e56MPEmbcYPA4v+;Cfl_R4`!FY z?B-ORqdYe(uF8~^UQhW+Q&!sS%yBk-*aR%;la?iEmn>wZYuk{Cbhkco%lxQJK$dG8xslf}p=i$Pm~>8PJUuh?c+ zf@4x7K|zru)9D~N2~r9t(qkSYOD#)rG_;Zh9 zDm`AaJ)rdMr#Iif`t;$|Pp|iS;8DArJWH>T^8^9QBinYGMYjLlExlu-%G5|{o|Igdveh6L|C1BQw2e(Z())r@@g;QuC&T3KNyyIJneoP& zJ3?ZQE{9wvFc>ybJ;`C+ZJ2x`q*CO*YXEM{Fi*M@@YA@nI&BJhB! zE4EWg(p;S3Ju{EBF8QpB|I0I`vsTAl>9`;X#*#1c{5Cr#4&zygkri@w+6BN`=e@8+yD9&e__kMXwapmFAJ?DyGlkb?8Yq z%1Dzqj1GUDvEY&Gx6nz}+WSs6~xG%r7^uJ!^dYWcPIVO~c_i&ytU z1D2Cf$Ekp}}c_3DS#SrQM>L7TVEwdj?q znVI+)!sAWXIgMTLA=mi|4q4O$7^z!X%AVD+1O@BMVEN+;X{QL;aZ>gmu#Ce7=@rC> zQ#Tww0u6@J`ux^UtE%>A;^*c`USs3%-+ba?u=X0@H^c>R;cvw__FzgpnO^1{0CGT$ zzbdo`>A|l1wUqz!xv_eC$^Bb)fCEpjC=dPc8Sscx^OVo}IZj;&Ej=%gW}Ot#kbM^P zz|NP~(QQtme}ww@m)rEUHp?OLor=BjsTsw%pc=5pH03!hwO8!viR(3)nlu)3Y!gi+x16~%tMwS^xhawj3e_e)3J zmr!#0*hj6a_R%{@Y!ZIbFlfZW1y;M*7SDtv|JhF(gK>_t6p=U1;6Gwh!p+F>t}@+e$L z1THDyd)-;3M^;7bzYQgAz70(;r>&>SjF2G(YLfgH#ISO5+OiCk`PTak6Y+r z+aOUG5|@dmQ0{oepn#U!P}1hx(DriLYJXh5xeTZJsI2lRdwo>W^kT|tftPBQW%!rx z8-;G*Hn}zl_j4R6-8Twz{@N-B(Bi4}C9#!Xe)!?tp4mv=qm+jM$*TRM-zWT6 zM>d)hh(D)$)Ia|D{p+89-hbC5G{9*JzNdzRBtz}#@zA9cLp~ykiB$c(;HHGM#3$SS zIUxFpxFbSs7@a{0aai7-ry1v`+_s=0&Au1UZ|qEh4~jxiXcXvU$b^{5s04UhORQvK zynrS51b8KxF3U)e37oQvK&hb@oRLo9i2OMs9w+5V_9L~Ep6p$x?_N|zg|$qz1!8I$ zAt>1^gGX&vw%l141E-9YwwLGwX8yB6Y(xMu&knf`SH6~KkN55THIJp5#Rb3S=DjQh%nnozeR`pJvzFJ z#8x|K%69aRGfDkOw1?J6_HmTU#>df^yS&e+E#I~1)0bWQe9Fo&s)q$o#O!}Y{U@Y4++e&4I#ggKcZd7coknAZsd>Z z^ZuSIuzcAICDG3b+I#?Z0zyJ0Y|1Nn;7QU!WK25T*5XW}30owSjLd43W0nQyeqn*i z*wv&*ngXjuOyK*KTDV!K#hcY$x{t44;7xiJZZ%oz9>pGIx+yZ>$5)G2*vcz6WP)vy zwj4Y6PkDK?opjZ08#HEe<;5Tu_NN=}X}(mc@t;+xokgxL*ozUdN&AOzTj7vCTjTPD zYSvvff1U2a-L3mG)f|D#x!}geACK$cB_eGHvNeKb=tWDSB2yph20Rga(LwM~ZqK zo^!X}c7RmU3Ea}oa~Om}&ud4y8=QZA{nH{>_wn8TU1Zu`?+nW8d#E{WJU1U|*ejXV z*67me+ZHAt@c8f{dycmw&?Hv_!VrF2*NnA^^Y39<;F<&a~ zUi1@z+ZheFe$Lp9CJ^Em00&2ax&~k$QUqCO>KJ?^3|WEM5zDL-S?p&&A1$~>Ez`Mw z)xVbX$C9H%oK5VN=x<*pdRt90Tl{md6tTrWg@HgpLsnc*qjwSkE4P_oo1oNOb=xzg zGvTmf0v2++jeOkZeUS-|cIo-4&^M6r+C!;8(UCLr~th=?jOAY4Z8 z*CXZW_S2kH>;(<$-0Q1~9o3DG3z-iqx0s?|R5!V7hy`V*% zlHNo+y#^NmCsKzI@5^c8;+Tjmm*kIr&c>6w4;&Y5gk$GRYcRPbNIP1%NV(U;i zs<0fx^295n&~f9d55JA;D~tG62${UY=UAXf1iOb!gVV&&bM^bDK!`CZMm!e#D7X`uwh0d)4czMOk7WxbbWvd^6PF7MOwqS;n&jW_E^SX*Jb=fj7+D)G`l==y53B0+`z zV?oKCHFbzbexC@LyCncbs~0$Q(Bf?*>0YL|=T*O(2>0Y-wQ)jYHyn~U%Q`2!P9p4y z_^qKgAs{q#w5`ksvSe9SJHe&9os)`I(I7X5jyDO~(Yl~1| zc9H&SfkAAtFgla&x%7TkE#yK=ALk}UT3AGp#gTX>qrEk<7qBOkz}%FzI=7eP=mVvx zvm-HmnHwt2%;=Ux@VZ)xDVqa?;SU2a;=_Ri)I#~GW0-Z@E)da*$q*$GeOy@}K?~>A ztg&){UTFqE`=h(-|M}rhAAbCw-%5X~nD06ukiwy=Fd{6}x-ao05Hkxc&jO>E&L}!$ z1_5WIQD9}}90ekPQLr@w6z!8wlfDKml zUH4R1%MqdRO%fRAx8JH=TL|ht%#{7WZsiJE`(YMdj30RC9V2HTR_NYH=9J6#LRC5Spc4 zO@bt>4H}xjT0vHnz{@PH@_~xtfhr3(z9ZHnhLXT4O(2#|AWuxm0-~VNxy2wCGdeoD z6GcDHGx_yG6N-G30pF7E-o}m#Lz2xIqgxg0&YaDZF zht3>4G4c>E_fPtUa8DHlwxBsmCv40+Xtt{WE&wkR<^BA;_b(ixb_(UGT({BOZE<8a zGTDgZ+=?DYQN>_lDq{%S;#YcTDf=7~oAt@&QB_zzhhuxPQPgwU6nwqFVm@+XPgO9@ ziFdSqzgFhpp*4!Sc(A#)ud&8W{So@Ol^^q=589^kwryQit+HKZ)?_L6sgtpjGC-X5 zn^(!>v>NH~a7Qwx@+rzo2-$t6SQ9{;b$ZvAB8LeV=9*}@hb&N5eH{+v*KTdf91-*dgWg;|6XYHEI4^)sWiK%%S5y5T5oOha=o>Lg<-m|u&yjTaxIMg z2;J7H6ZfxwR+CJ<2j_kx+92lx_v0@=?;ZU9Dg->I1=FT*XwfOVhbJe;^$|foz5gBQVbu&N zqDr8g>0T%VRyTe`=*PD|+$gq6B${s@PAa;50eY_ZFy;(o4a{^*(uU{{au4KK!inkN z84Qd^usY0Tk<@ou4l+u-H1Bm;6O7x21aU5HLc*>4j`Rf6u)4)XfVxw9#EV~k{Q2$s zMgI5g{(QDe2`qU}d^I@5(}CaeIxcTFEqme&BhWf>*Q87qI8dg#(BhU0H|_6ndIYY7Kssz#A2Mb{}o{s@T)`YRz5 zA$19Pz`OksGX{zF&2%dP941Yz`*ymK0G4SX&MBi$VMfvBSKLLXlU?=p({so7fJp%% zJ*0Fwf&cj3&SDpA;J|4spA44fadzUk6V&yrDEY2lLlPn3RC~ar_j=ODqvLe_jBiwI zmbAh`@~#gQRZ`=JXa)h{UQ4n*TnC3+~d^!d1<<#8@0hXqt1dgajRCitlq?vLl=G#so#U= zD#0o_Z&Qv#AVqxKmTx}1|K*1t_xG0Z?)oWH{Ptus#{Fdyx|zG{q{s~@{3+r|)4RMo z@m_e(s#~!eq?f7VYw+szpFZt69UW+YWPd}Z5=bUGs%`R0Ot7ctY+`sXdWRSeFSB}U zKuWa1+`tG=z`jOGjPUSfs{i=*Pq)To($h}9D?s)(BtbTGC!~H&c(S%XA&^eLbBKwz z#RCMRxeLqdOlxI@B53*&+4o;Gj4OmMvwE+PaN8pmEPrDo*lw5os_4Vlk7bTwbx$9I zQnX`CP7n`D5TXJ?zNQF;Jn4djkg=y(%lRx<{`&5_olj`Ztao!X!}Mm7jyIDup2l~x zbX#zFx#81s&%+Lw6yTY4SkYMmB1`8 z_`D`c+;svBe_&71iok*=GWM zft1g-k9&KU!#5*mkX_B%I@7 zv<(=_DGj>go}SaGioJY%s^Ba*EHM6^S%RMy43Zhr>*PW3O&9{0g8Q@I2_fG7_?x10 zWPXTq=UqY-*u&g4?^2Q;OFXd4W&D?Qsa3aa(K8J8h2ltbjqj(VX_ZBOWuM9 zyVrdJOJDZoz9wjVeApccuIQI3yQ90?YK17p)yp#|FS6b7vXqQ^?PA~YGd#FEld)piwP%4XzDojk>!@7argqls z*}n&Y*)tvg~X|@?O&FeUo6(QGta8IDe)!yiEU9+T%a%kfLmAd)j6i(^foFYcCFt> z6No;b%RcJIPj7Er5GHGP>vV6@O-<5UFG}x~_fhYaYE{Z%U*wR=K`!=8Nze%)L3&Kf z?KFm^CVG;O2PeVmgiWw&SAjD#|Lvw@#Lj42ud7zG5&g!tG1?k6iy%rQj=q{l{=_i4 zj>PJ4@n)k^AAdRmJ>44>zv@%sjY{g%en^iuDi0?RgecszEwbSr-<=ywwiD9>qh<0* z-1ptB2fAlFF+Cm(9tNOwpo?>2_Ta*>q2YfUzd!tSw}=!Y_jL>9h7hK+9VP8<=@AZe zO{{5hsInSu$k*9$HSBPmFT=}3E-T+#s~y~#j5msb=R4)W>GmR_p0`OBEE@5vxngZ@ zc*6vx($Ob$c0o%l2p?r&-mJp87;LR4I4X2q)8E@Y&-D_k4=~Niv}Ztf(hnF_Ix!1XP=g= zX(EIc%y9uLWgt!Mf=143n@7fJ*hP^{?O{tQF|>G6Qe)QMU123>mSg7QwdYygW#!#n-Ij)-)45 z;Mhr@NP*4fU$`-jwoC>*P8N*W>GrF(FLkX?pB5{0H%295)V*8A2C@b*%WwsRK*&f) zC1g~{zxXBPve^9b-OWM|10&+HdRmt%f^JNH=_&nw$4`UPPuRugz4Z9v^m;14<8x1+ zCEhU3`Weu#Xg;aOQ%VeoSc=>9rD*Hsb{0geo=S{=5D{jrX8%4{EzQ*=#AQg~cM>&O zsXF4hE>K#6(h`@Hs`a18z2eqN7rmUrJ9Y?3ikXv2@KtKK89H2S+)H3I-M%Jgi4x0% z>n~97>h+J`ef;q5#@(5R;d8b$KJTYh@qv#P*0>MPTYp#!v_x$J%9FZn+k|kbe@>ea zVR=j#yRM(U|FBo2N)IRg=G%gi4yu!x{hH{u`zIL_uehU1+xv4n*9zO9%>#bCFy z2?7^enrQEBjHLELy}o<>^Y?%JfETyluklZn`+3XTG^_7j)BzjZ2&?98SYnp+mpk?) z*-M@0-A}J?szJA*&z$U>E8W^FIdp6@`}3`zv0Fn`_^-SPQ@VT;R$oY0PpFCTm0o4MV(0QfZOhCr8BIN3 zFq4g^K~fEvQ&L`m<0LSzmJ}(8+q&*HYEY~_pe8;wiGu7h?~*1%QxG20O319(CfF9{ z$ZKFW3E6kJtM}whJsE?C3i)H06ZLgB7IDzNR_LQ*Hx;$DqE=jHMsg)nG@gO=$kH3RrLBzQ2 zwHblBd3h!pG~we^rLmNOtc~rT!}Xoz;r2D&MTY<*3wkx`=3H=&*VQm*AzClO>NSEZ zcv6oxoODA+yD6yd=_q&6Av|bw-J$Kp#{bsAu;t^I2ZHoT1#@b=83^qw215G>2EzE# zK=_TOl)kgUC33LO;f$)8!{*j~x3@6x43nN||2^URC*({Snrp*Vi6+9bNR?`)kjP13 zqLk2gW})@O6b6P7l(z-B_&IcP5M7Uu7>7-5UhG5nitI=w{rh&0uO9+uc4JcZ&|QtG)gU8#@xO_)gqaKGa{8!FeSxpu|oxV70r9p|G$hZA`Cq0`?+Yl1#knQPqC^ug^wEp!wAxRQ6 ziqL`)EX$QEpdG?RKBTGB-#Bq3-QSp+st=p4qIPau`GYXfLoNYvP!HJ#a3RQig~u*k`5*JZ zV8@N`z&yZ3Z#;|dX^USivwhDHacxtFY*NrCw(m~m*1M@_=oP)KJn3`=du^46P4dh8 zPw#%Zk#(1<<(=8y`p_0{xe3cJq~j!V?SgZt*V#8T`m2F7^NVCxz0Ts!3!B`AzPs`i zEx6Wojz0LfM%$^(E1LgG(li4$=R96NLG$**1bsY_Qtvxuw%QykPxGWw@?eeA%*TPN zHp~oc>UgqY($OA(1ZIJof!M!O=0YE}+wT-y*nP`1%M13c-62ygl==lX!QG--I$n$a zT(iG47{g)4&#(s8v;a+-rr#>4(%b4Fx5D~u*hsEQ>WrspkgZRK1Q+oPlp>20L+1C6}=eoJb?m7Jus0V8S-RT22E6*v5x zLr+Ysm@gnWSNH|fFOs=U~6LYJyCHb&`YYhP59(ks32}PgRDYK}f zLb_CCD?od}s*e3pW8KKQX*+@1w+{R#1UGcGt6~+VXIOxwI8q$dM&$CR$n(i>H$$y1 zc+*k8_~ae`;i)&Aa5=Y|`DEv4+|GuClI{gQ{@x#-f3&S85BlG%t@vmi?O(H~czy>3 z__MZcO`S|^K6{9Oqe6ad=kkw#V*j=;+{1RhZ{uHg5%9aU%z5Cuhys+rDl_>l@EAv_f!l@}R5&^c%lU!2fejpiVuyO#TM&-r(nBK|W)w5!~58LmC42gR$Fs}i`mL5!zaQ({&El!Ouy|@GQ)K%N6;PMgXY=%=S}Cn0UTZlHw> z9?b4XZL>ceJkk0s6H8@C4|{o?dj!dPa;8?JaxBPA`{!1!94d@M(@q!GbEW`9=s-Mg zN@0j|?;zgZu-1;ey{+ykPE{eI|JqJ4frdP;vG){|V8$+T~bfQ8W4|+qxD@ z6*0hb;g2A_O7r z(}cK35yEZ!9trtj#V*x!gQeZZ@3D~o5x?JleD&$$FK=%6J~Yb~doh$|Y$0mJfxb%7 zq0i)?X+REn4x`^gahlMSCX(a+SwCz+BE?aLAU|2O_JMb+L_{I05TT_e%umd3anJAPNrCaaL_aHyPYr_PjpUYg;_`*g%t+t( zu9VEntQkN-J%!SLtFS^nB@H#=*s(3oiWIC63Q^HmXP{8ZebfCU&6n4UUy!|2@N(Z( zpX$~dP*)YP4D+;!)v9dsI$>d^?QA)RxHI&;x6_<%qb;M2sblKyqRIr_C4LlhsTZe>h+s9ivybd3WPgDwM(?e z0|MsA9Xh7q_|@W=$`XB6VpZ3Pv9w5nwB}l%gC}MCTF~pPSfw4vkX&iSoR?H;3{sJw zSco9QO66(ny{MR2z0R~n!SNQop@CS>DXBp~&D%_}o}yi{5eKo=)H*RKgmQ4U(Hu~j z=i>TPzLF3*uIW3KXr~l3^XAqqRd&~z$?b@d)WmD)3A*YT9=3Ku$9bpOLH@XXKitK) z$KBwO3HhjHKL#%({kgzecF;8Onb0#%VjX`bW_c%Nj|W4~<8Xd^T4J65WOEq&_VnU! z>3AGodcNf)IolGnCQ+bsDoE*j67ck#4(Inoh_9!1ev=4Q9CGXi2T&<-xq_qs<^!U{ zyc>t%Sy_58n4EZ1_I-2w_q!XV$8glVK<{FSHqnhLUG>f_C5B#ZLrI%%L#LP0vPyb{ zeteXpJVM?crvx>d#U~pwkFq()_gy|WC>;eXn<~?go=2HJ9`Oh6#G|@p;rL|fRok_j zK2PIrxz;~cZJ#hqO1TS)fwb}1sk>{Jx3BjSIbD6o3PxJZ>5JdZDCsq!x+3v6&1YW6 zFM#i~Bp=K-$Qt!+#t}{#h?|^tVvB(81eov#wK^zHUBE~UrZ^To_Mkg6!+2$mpGV9^ zK4T6wS)=N-UHf}L=&1H4qH)?bt`mb$@(gjv>TAdK1aD|2F zB!1$}eO}wHs2%$-UqG5Z`@_XGdyq4a$`W(+U zx`0s@af*bwbZA?;o4BM$UTw$)^r}bnsxe7Wv5+Syp>6Yrorg%)G1?f(mfOx8++Ia) z9~XCa;_`#q{qUD}Z~uB@?QMEWn|#qWK-H-+>t`jY7(9*bb&hT=T8>Xv3W(lCY_|c| zS5B6<@6%m8mQ16D=)__uOD&!tdfdf;&{1LcwS52f&mUj!oVwtE1*2OW@wk7Y992bbbEY-m2bRYJWUG_G?1|~Gd;!Q8ow}=!7FN5TL!*nOAg&6FMv*ToCZA+D;q8$ zxm)lK7AmX)#wFyE<`fl_7d%OT>N(nUT03R|Dr-%13Wk&&GK$XmluM1)tWm~8(+PVe ztj`NbN2}){F`|I_Z1*Ek!NM6$z`C?TLR;ad{O-e#d$!uzs*I#QwnV&} zXfTD^Hp;`dNFuE3gnaF2_x{2bLB(in|HbZpY6%-L!(-EK z0@dJEgIFQuGX%epd+v8T`|vE<(h=+X9M+;DT35x6I%uS#*fBAG_34Yq7+9|H#SGo! zQgjLds@amGBXA0gxa-R-aR^NWz0|-85xr?V-k2=3lCd&_UNZh`_I6tlk==xlWUpe@ z9;WHoLcBwl?$G5Oy2oka7ukMqMjZz;$D~EE&Xl>z!%vWW-DqY22(*RSePM3r?Nb|= zFe{TJF0GG7OT%s$+8Mm%IgRjCugzD7OJl9g9hnq2(DG|gijqUvD$e;5n0!4 zEiO2f>Ds9_&8fE3fM@cNL6v;ltcSZMJKQ!a3xwM=x6OKkF5RKaJ9LlJe7;%VzP_1^ zhV5iDBvcV)K`7W#o^AipiNf-$AYyOkq&Y_7rG4YH09A|41STg)g9^EL!pu4ut2n=9 zao0m89L0{DfO0F4dQc^iL!1pnCnY3mvU6VD+h~I3oqaD;yHCq}fzSi9QaONJE2fuu z_~&2VeRuPnWD>@P&N`>xnFO!lsD=}Mm=t~SuJo`GE2K@B;m!J1~$Ak58 z`zUBP!{GCyU^@u*W57zfmobnA4LYtxPSeo3(Ox9Q{4$=~XNZ3P`hV_S8d!~ZDHKh( zzi%-iR$qwi2MPN{3kIr=lNR9hWeR`(^x>x)uEHX-;KGq))~+18a8SRy{xx^DuZ>{N z_6F+BmCRQU#Pev*_8X|_(Jt?YpWc3a{ppvF*!}wX-HqKU)O7kfeDw5+WTZCRI2Lb5 z1xnL4)b1g#A^XnO!8b;7tC$5#!G~Y(Ue|qdbt)mK!li(=-YXQ98k67y(#44m&(*@! zl{Clx$jTRMR#%RH*8{MLB5wj+xl?(%Xy}u&Y~IS#w0TQ6acRjr?(Qth?hLGM-s(-< z__>z&)9dd)zWs5rk#u*ZbLhKuYp&ZogNVrBS0YF_x?kf(magh?d!i^CY-&7FZ!mZns+7QHZDYE2yMMh6!oQ;1zV>yL=u1-UjW`h$K~5$f@%g`WVe-4b(~bDe~lU9inD(nk*b-9EAdG z9Y2MwMH6ds$YLtNW8yCrdbqy7b8 z)v!&&6m840x;h`8tH0c+E;MO4R0V3X^7}oRA3wfc465y&EUN=>n`gs>L(l;D@B{=j|ZZ z@!ez<2GN3#p?m@7GheJ_ar%AW=cw7?8RuG$ZgzhD^yDWlxD6S#`&sV&@$f8%vC-u|++%QV@*FEc&Sz*g8-kW(< z&lHwb*w(NP=?~lYOoo?9`TU8RRl|H1{s|a>ifd^i!M` z5E0g^g?{C)SJpS(J#XCfL-$JeQn0E)s1~*xAF%vZKo#Rp>0J6A&o0D@_T5eI-7>A- z(<5Yy#PpjFfBx~^r`rSBA0uRr{{HoMdn>5v zDG5^nL0ife!x9Eoxla)jbs?qK3Ua+R4%zhD^cuUx&F=H#Ku98FBqR}12AgNI;nRm# zKmYXh?fyz|@2cK+RC@q1SvV>GQn& zTc=W8x_Omk7qs?{Y+Dn_R!9F4rga+}jTL%P$_m^vdoLXgdNuwPt$dxm|7H08`r}@d zB&0zdKBi|2JD=hbAgG?lt>ch3aCNOu5Mr@|_6dUy;q*-NSH?B^m^TWyJ=JqR8&2n+|1u*T!pgpU{ zUU5o(g0v^o0x(}*p`8TY?@%wAcY}50>TGY1DwA@xYfW!vC=9#Ktz>8PN!b2i7qjr%ZP# zjq?!LB(K2|V%{0JtJA<$*UfdO25^M6b!T{Y+?!$p`EBvi> z9A9mlnSTN}EBF)?)4d+!T#05lXtK1CdVXg@1T!%)I|JZXKzDFlX{7Dhv|8j?b(hR4 zQ-}9J=YXjVeif_je$sKMe!x8IkW5gM+;4)OP!@2UIysWY5Lnoglc1#q1VTAp-;m`U z!gbz6b>afVGF*y$fp@pp>hbVMujlHDWABSY!46~@c!AYx=jiMX^qTXO2dRK%U0+Ve zJm_&QCtH3#>Sw_0Wl`MnI4ejrY3G2`4$Dm(ltGI^;tm!fNs8AFJ094XE9kD)i^Z@T zWADg+mHlUtOK>&!-isjvZ5uT9q@moTZAyFl@pIZ}p?tu7E>WUgi|z)s2VX$0#2$Z0 z?FYqQPH|(hpQi<00Axado%wq6g)?h#G^kbNv=8=A_ zSU4>$4k0X;P!r0!T@h{{4!M^fh0-vq@#|D`tDDIgKJbI$fejCqJnJAPLOW(t%(uK z@rwO~Pvvf1FYEH8NmwTZg-r`oMvku}iY$?VEaA|JW4ZCzGzCh`8h_0SqX)+1>aq+*7%HsL?-L=jBA-Y%2&r-cz&%MtB66-Q>y3?I z)ShYT3LC^j8!-pT<-VAlsSl*x0kh)Ulq=jAjW*k-pSdz%;?r!~;hHkHY+=MF8X9|Ax z`u*Ge_Rwlnb#>fX3DCg^A%&0xh4b=ExbzRmfXJp%{I)u*Li3!hiLUre(y9RT(!xPt zjEd7R(@X_y!@WydIZ*1hJ`2C8={M>Z1{{Xm{ThmhA+t0Iut5e(Cx=Y>(KP;fPQ3a4 z?O#4F_o~bOet$A)ec#AEQI-b)OX4M4vO4y7nXGY0cUCuvKJ)2do;0(mE?mkE$>vhH zaw%N7l*A<uKSoQt#HTt!N^m7P*!*G@;{m(bUIdNC7wRX~L)$62J zkL{p$YeZFR3P%p|kzL}dUsLzQMO5JMpMjbLRwdDK;Zh0`Itf3F^^C)OU@ePvb5QUJ zkydAoNg0<7{50c$0EDB<(9`bnJL6DV^-PocOcR%mF*(evoXfRilxxRmHhZ?|8KZSv zH$9`!GsaEN7_U9!+Agzq10sUHu$^${>+C}Z`EomPi1_Qw`62$Tlm5MZ&^TE9d)2Qz z1tE9E%w;paEqosxGMex4%J+EXdlui@hV22irw!X9Y!4f@hYj16_|z7zH#2>m%VD_$ zQ>p{1`Q1KW;X99MllrBt_V;=V#>V>pJ|6u1>Gl2-&+eUHuJFYimpk&}Tkp&5`OB?yyTQHRx$opYMh*|QAu)6t?UqclE(r~gp8vHO{P%aB zU%vz2H_(S)w6FZ*FMs^w-sY=!G`D(`Z1`>hl`_Vg!1z+iF!?B~+}a-xh-BV`Hob+L z!17W`ZUptDFQf&d9XY{0K3zWC8d)Y)LN(`2O4yvS*kz(jS_LH@H7AYT%KDtF46U;v z$tcue(|w=}Rkh`T&M0C+MJ3si0B1nC_pCHbdKW1LiOZmbNpwc?CTbCr!xNZ+1!kf$P29-Enw#e8Rq!m!yGf1AtENI8_{1xLDzI|m9^p~E z5oA2<1sU7ig?h)wGM3&jTR}Ui;3&1#|VY_>0)pdlOgpO zf`X>Ae&{<&5;5GM%oC`Zeg{Y!#g2;7zItFlaIdPR!c&pPD8o-QZRJ@N)OJCnns!0c z!&Kn9pI?6Y;g9#H6cdNJse6l(;#rwTeVN&<6nZ{awKBpjxBoPfd>CHs7kDJlJKmHfV=&qX1IYDsVz&(MnB)(_#H0*VqJO#Tz7aU{J3}Bobg2DnwH;oQCnzQaW<6p5G*WN({Y*wil~$ZfoiZAJIEaxpmb9di104a zF)iSM)ts1*1v#C!x7nJ(2nkE}Uyo_O8unG194gZ)R=>+ITc8C#Dz2Tokgv?Kv4X@R zTc5)KEPNw`Tu+{3c!@!e`q#LSCR&!PGSReCw5it5>y_Bls@HV7)cwMaGMh(mbIZ5R z%njp}xkx#*Yk;VQXs}5SJmk;Uif$@@<;iiwt9ir1D_fiRGM%u{CP8R?slu{nA=Y(- zrUd%L^fY15WqQcJpT)r2DJ(|5Y3KrS|IE!T`)c3R3Php~MKWrseY8!t3QRh@5-^qy z)bYH(mrf=gDL-~*aRJW}&jt?gr_!FV0Ga?M%_b95F&~%LvDj?u9Fr0R@AI>O8~~6q zyuFjAj+XB#Te1RUw#8#1d5f}>G|hgCZ75WHDC!|PH$RU0upN##Q_Y%x4vHGJc{^x- zH!Y8%ulX$nyya(knVp-Br|N`!b$X*}chx=3PMD6s4(tMP?aeKbpK(0ji`~9^^Iv;g zVd}$H3qM*QRyRvII>Z{4>M%MGVKa8nv^L?i3E6JDW^f1xE2PS6MjIcT^?T?$U!~}d z#S6AL2oLygT+-zmo4!SkYc-yfEz`a9hI9cbdUgB%d z#1XRcoq0PceO!QV^z)>jivWrO!r?B0&Q|X;EM4NI^px-d=ihwz@lWqQ{_y%nP8GMk zw)ItPNNjmiVAli&por{EJ^BHiKEOn1AJxdXS($Nu537m)Jm*%!t zi}u-@JC%^%uZ92i*^Vh#0vlBoJ9=Yr^cwf*xRWFUu*EXVM-C9`;TZNw9aN%k*jwwT zQ$$YUXC*Z_2*Hz30lk=$G9i$IKEA?ydlKHwx`K4AGAcI)*0K*8(`J(2vM5#5&AjKvRD_ zO9EbbB4|RnD45Vv-ZZoh%y|s~SRc>vj?N$6zJLAGURN9ajg9AAdhzvDN=uv9c-Tji z`|m$QzfHrZ2>FxB+E|W%)!A(Sz9@;-JV(Xz?cuxR(=Sp@9VD)&P>2ti2ZPEoTnqX? zkJxlOaSjn>2GkCQ7_EvR*|U?*pk}_7+z|#u8+4c=eQUv?#|0&{afN}XgOVL)<_Bu6pn*ajwxHZWHxrNtxYRwi_anOHqv zWPzne{vTq5E^2GPEUeya_dD`#yLbFNtJaV1|5GeGP~H-c-DFq@yArxEW+4Gp0iR*v zoA)2EfBjEmT_^)K#&UEebwHtKh;Xwg!qM0YSbov$)0@nRv8#+a74pgCXpZte>FAt9 zg`KXlW#Py$DA^E#@2{{^pt^Loq)Hvn=3e?d_tp;h{~#BaFySfFP()D^gqGf{UtD)P zIyB`79D*oND#%U%pf9g;JH9A&=^`A>I~_F$ErvaPy8<5(%~Yxvo9O$u?|=G#YHFbK zvWeR45=V=8dMTrYG%u4qiR#x@))n}yxb*!_ujK$?dI+zdeGDnuw_ZDYX9VHI@#p|LwjC3nO+n9 ztTWyX(Oc!xL~gQc1G+u8ZG3I|Kw5jZzaKQChnj+uaU)8SrB($ADKII?E7RNOifSIRe&K~ zUnvh$MCb#eepCUHBq+r!t0xxSpr+wU81_2yvsd~-ckSVMI(zba$fH-`uxHaBIBQbr z9c&Q;>Kt>XB)B%8Q!9y$sa6G#P4Fnt2br}hMJxy?kn;c>qqQmoC*+F>&PBn=7o-cw z6LBqrtRl#CwQCImT*8CbS1v9NtuIqCk#A%{kvhTH-*Ppk?vODl)1kT27f|CvY8f*D zmTn>kruRUz{LI44CF`WxH_-?Mjkr4cHXTxJD~k%$E|Heid}CH<6{PA{`!h&D_IXDl zfh{0O`YHoR||Sj%}Btco7*Bz1?N#OHlk+ac>zMBK%LrWi&Ir$Y(uqG ztCHv1xvx|F0L6zD3|#L=iTVBMA!^zyk%TrzMp>3AEr0H);?!Wr1a+ zl?ApmPaNB>y|cl^;4lg@S_O`1_O@iUR65S}X~0)wShST4PKg|!Ir37GoD zNeS?8h1EF{l+b}HV`kzMzY0k-e=8ntf+@00N-|Q*G%DC+9S~xYsWkPDik2_pJ{W6E z)i%4;Eu-jA;DPVn)HyMUkJIIziRhqT<>5f16k)Q@eWA|_WZ_h8f5j-ap-?6$^`=lX zH@BKU1qZkB1y+~ta3qi(mtsf41gHd~z(ziLzq&*dkfP{|qhQ+?90{)iry{V?mxYbx zm&KG>ep!%Nb&R4G*te@$aBB2}COFf`S!v*|8c=Wnt`>i=KOoXK!l%l8AKz_S=b!+6 zQU!aa9Ix;=U%(c~@2|W7W_;+Fp9bs&L44*MWad{PHX;(KAwA^)JvP%D z{hd&7hO`z1SLSm1;b9V(F1CDeIeSs#u7!ps4eK{3ZJjX;WKA-(>PVsyCIh!9<|oQ3 z$U9cT8EA(hFg6XqM7amTX`WgIRx@*4hjC#FpwhK#9D!kdOa7!V z2Q@`~Z~%oS49M_I)h5#ctoX4BBwJ0M%LGrMe^%53CSYbNg8NzAXjn7a@TWy{hrcXX{qmP3O#ZBR+U3LHQ95;2Xz~`B@OP{v5g3ZU zEl7R(+rs$Z<03Hh&r7zP3CESt>h)T06UE2czb}G&Yj=>|4HyY()`aL7{BaRt!W-FI z|GHStz#kZvgo1q)R|uyXhjIPD6fn}~*wlfe(w+Iha7+w5!6GH@b7k!IYT=^4FA65K z0JiMUi&9L4H=04yl2=~AUl@Ul1kpnh%dm=&ELN<3JLuiqhHUKq;W+iF}HtXMCsH&GJ=yoGQhEaWUPS0 zZ~w^T{)Iuh8uY$tN&dpXWPf15q^AETLV2;(=9 zq@P*%+hU)!f_;P72*0eo{cZ8G)ZZ2jN`G7gH?wi{P!{a66;2arCcZMEe_}Qt zgcFklQ+b`4Ji3~Y1`eJpwu4g#gWOMTZ$(SGuL#d_^TRh>SohU~*N!-?8rv(XKqM9x3T1fb>Eb5U2(kM%N^0!X2P`w2<+JRB8NvQ?^z z9fgUgNyW9HnhoBwH$h=WBUYo>hXY8H^&=Cx_ap>ftebT~Q<+&*V-TAq7tH`PiP#Q} z%F!y06eoXplri+Cp4JYKgqYBAnr#)EFQZQ51UA%(+=q(K5!As%Ycx2C{>k8T(Siz_ zAkPb}a}z>dbtnQTd@TS~j-v!NPPGV~ICHX9{h3X%HT6A;6FixKD$0llU=I^d`B$*a zhM1uzuY}bGlV?ZOcM0leHZ=(p6bR(driax&f#s_9bDlP9Jq@S^2MTI?F_~`RX_3AX zC|R)yBIq|U3Dg;~KN9_^GuG#7O5PE+7EoGhRbU2YZ@~QTvyj49OxApT!>+{G&8^zSoOUjXr z`zq1P7e^mDKp%fa84T=a?dd5W*{xy|R>_(ch>4||7Lv)jxG$WX+umR7`mNDR&uW8b zb{K&9s+nb- zIp)KSjE_>;2bG6c60?3iOf|nV8i0MU-s={aKe?hHH1+RmOJBZ2*k5iOuN8gV6@GsG z<99dW$9N;==g2YJkrfvgm>9km$j>nx6kVQ_zR1@2S_z-)9UHHh1}$fS_DHW3%>J0l zuX=UxX+ekyYUx!eu<5Bl=~W*>6iEKe=Ry674zx!jUfs0JzG2_O970|fqeC71S(OW5-1hZRgP6Dl=mwd|$>-^ziqVZ3Ml4cd@O+th`?s{JtmX++ z&k-e#ru)YQlRZODwOcGzpn$uagpw10JOlYDiktvZJ z7_<)?J44!I^rYN0>zdo|gb;rUZD`L0`v6);YBA7SH#POGsP4f^_n6?@FAK**oNr++ zTldcis<84uCoN0xEvS3#>AA|_ zB;F>)POk3E?}EfuA+t)Tip(k}=%rmahL$S}OU1jJ*;Tud65Ttb|kGNZeO1Fjdwr>?-gKJWoQT zU1m?;G3iroYqFx}oVA`q+>W(Dxv%|)_c!LzrX_t*-tl=t@3zhSdMVC{!X&`1KJ={+ z(Cp4xhL*Y>wX~))@2Mw1bijH3K(3+VF*ajJ?o^YmW zQ6{=oHb=owBhVBcqmS9>MV5D5;7MQ=g!SXKIxn=yqrn&tX46FadUY#U9JngCLd z|6ZMB~wQ4fytdAID~$g|G+CHtWxbO9&(L$D9HnbGPsT3FrjW#Hx*pN2{l`6V8` z{qEhTukczC${Z~PLr`E(XFd(^NpGtU3q{AC9H6}5!(zgG8q@9)XOD_i1BV?_)TXB$ zd!mz7R4ThCcg9GLS~&K_HAq#rM!SB}Iq&3a+8{9d7?1=<H+ZK&Z8SVymF=UNqlgBHzS+gU_X&PH7vaIPj|{7eU`9;vWJNwX-QnHQgpKl zjostXhkp}ni_BH9Es1Rfws8%hBU+mu6qp5$BMFYiRbde}4NrOd#FnnwV$Do=-S3#rj&^ZJ_st{OZ%*#MeG< z{A{&)=lNZ#m!GyBDx_?{76Lg4RSd!! zdl>@Q91*RLBJRosX?qbOR&@m_c8PpgnYB6oT`RQ^o9F2%D}a(!u%NMTn~;27p2Ao3 zBN-hnEjQBcEIPUwp+i9|DhZzYXIwp}FO>|=+@2d&QEW2+s5}MIC)W<}sYQ0h@>0qC#I=3W9`q?cZ2Lcc{N?9e zZ)Uxz1z^%BIV4em_A=5KV-IwEl?XzT+I$l|Sq6IJ!6C%y)-esXn<_T2BJKvKCm}6K zV3@R*W7&yf1m{j=91O1V+u4ZCHD5prC09Hz*X`BY_lxt}kMG{>D=E^>HhhQ5_%N{` z=2_1^oUmTcaWK!<3-~-Kv0mbHU1Du-z~^`dSx3_O zY6qveKS@GD+w$~t_R`To;hNCk>?i0*=t5lX=NR>q?n!oBTHEmW>vW3Kt`W;!BOdR% z3aeoZRjb>i9xu#e-G(E;G5v#G>m(US1%+c=eyF1kC)o9K!Q|`B6TS@Kuvs9gL@f;; zu*W@7{Pc+5w|bYj5Ltei5%g1h@~Wu*dk)(hC8aLccao?tgKV1l#bvJ~jx26;5o19( zia8Ph8>bYn$}uk?y;Ln}a``=n>7>S}$lGz(#=;hPy(0O!U^U3BGpj2!Th%TjP>O<= zMLv<$FI`NyQ2GuPMO0q*>(tMhs1~y?*MnJ9rh40yc8YYo;QQwRfGE;!$Xf#4b zrRP?9Ld4FXy1z1Lyvzz1MMxg59N&NsI@EH(aAWliiMLTgY8G##T1b*1D1}_%9PIVp zzavK^{!SgbA=1%z3b-)#*Ni3BjF0-FpR90A0NCX%T9WD9W_1&t0FnSK>?x6eA}st` zslXgXdWVY+bb1sL18`KhT{_Qt2(H$Gz{Ed3Q7WgPHLKoHpjmL5mc3hfDpyV7I9t16 zNa~R27%pH0Eb}C6il(PT5yKfEGRgV^AJs1fW_nG=pJML1xn)?2yKkbOm*v&Y^c5~e zwXK#j(t6A?OLpLJLp8NBx(N7|Agmx|or7ENe8^TZFX)`NSz&q?)(&!v@52`5$EBO# zXsix*jsu@Vgg++?jSRNf*p!k$LHa2}PosAyGK_l(RO~O`L;q%{{5BkVhyd5`0+NaV zrM_q0FCTw={lksL&iEt;+OlDR{pvcmZmm-TH)wm_&URa0bu+<~idwzXWv*3~SLgNd zfRTk2ON`hgHyY-?XFQCN(=y~r2T(6U4G1ZzQ;#afsgYmT3P8)#cqyJm>+^$}{&f*k z_~YBxcUSV6>orw0RGe8ZIMQ=>TZx~~c z03*xfIE`s^Uej)zt`kKGcKJZ3Vm2&UG7z%#PVeNPsq_i3lan$H%{-uqRHl=>CLe@U zibAMrapm<12GX6E6KNI)oV0%{D^K&KknB=J#N&aQ25jQLVf2cOyH5`tC~ z$(Rwz4ST_2!^Qhd&Gz{TwiK~M@M7-mKFUC zdyr3L{M$>VR;WBT9TwAVLKyhjb)3(Q0^FSb=7S)eLt!|cBF_CS79G6q+r4Yhw*cj`e*fr)cZqNE0BA8#H9GOlL-D?1wOw0VUdph*K3!^G*axe-?B|d z0&Uji$nQYNaiN$rN7DB|)Zu#Kt^qvtK$7*uga`v^jMjl);@Q7-v;X||^+)!azb)xO z&Laxz?Qu8zH&sG=mVmOrH`zW8NO9=$W_EanofUMi61ES5&B98FM&DNF;X}xGXcJ1f z(|(B&Yg_(q44DRgOe9Kx*EW`a!E2I#C9ZvZy>RUPyTwQ9UehX^)AMweN8+p{y^hw8 zt6q4M^UsNUD})}pj#P^X+4L*0t}EEEmOEOTdTbJrkf!H3F$kWyMQ93(({Yt`9FbWp zI{P_B+jLVw*OWREtv&^>M{B<3sCX4#6sT-A{u7Uz#A2B@Nt5pyxQ8puB0Ay~(ShUL zn2wvY583w9>+kkg-s$$r8&}ac4x_^DCHHh5cbD8rx-8vptMyUB)Xi*Wo!rNR@&xQ8 zqtx;eaj$MI^e>HPFNgAOC}4Rc?#22Um?I|yY<=9;&B={AbG6C6pq z@y0Dm5D?2b%>q|H*r6*0Jg0>m=C`oGXT7N$cDDBH1me8&eyagX18=WTIP^x_avQ{% z&@L#df%gvRtOF#3x5c>dPQZrwae_HUTrE;$23i_hNBLN(5N1*B5QY!0!jhcYCCYxaeb#!m8K%Ot!;rr zaEn48BM$ZuYsNY7F6 zc|S>|=XMQ{42S0TIXjQq##r>ZYjRpfWC)kokcie(@uTC*HNN$D^2fubFua9^vYR2f z4cSy7^g0+NK$rj8q)AR=vH%`^f8PCgYcpY9C>SzRY?fqXKQiHhdE=XTI@&R>JhwJJ z!dL^;=SUq{wO}iUdN~aUpI-A7BIjP?Xjvp8m8sZ=qF{q37lR`DFZ&-J+OA< zq@HuyvfgW?(+hLN_z0)d=G)Nra@zW^6<)o0eJh}lpV5ijD#~sHbh>`bPu_Qo$7*xT z$H@vc&sjA}Ha5Tgnh5d9BtL}>UpKGgUd|!k#b&L8F-BI@dcKy8e2Na;3TAmiu{Z}z zf)I%6l+p<#OTpLz^4{lwsT;j2T;n~(_3QcM)q9FURtb%yiyeqvL+T8y4&_*u>q>8P zP;A!zfIYX;2sWD1f!NMsqSmse>Ugc^NwuNpD2F0S_i@RByGJgm_RM3N+P=p<>qEMa z*EZt@%d}6W_`H1&_wnU%Kl{t;kMCaZFLgunfEZ<6AVkl*EHLX3m}COak>;@(U&nXh zy6wD6Z@IpM?xeskOe0@CUyL;GWxj9`-B|LFiD6m(_GG!#hN zjBJ!3LldlY?f}CQh$H;DN&?WQtjeDTgh1ywwtE4rOO<6)gY zBm4-RABv#DsFKpBz2zxM0L9UE50*TKhtpYnI7Ow$X~B!mux|e+t8YGH@2j8R?Y%Zm zLpY8@K4P`#d7MW{Pw+QsQ&eYs#OUe}5kOY1SyjLIaS#X6f?7zBmV6zBw^g@kDy1q0;vBGCJ z1Y)0ifQEO`vndP{NN{AfIid-PD1)l8Q=m<%Zqcp6!>WrF?n4Dc%&U>$STOUX-Rg_g z$E(`C!_0JStRKpeH!&vN?b62^#?;$g`gprbU-`jSeZ!Bj^JCobqg~li%?^W|9RhRg z>=>`?7_aOAG&{!5jtD!(hwS*%{=Tsdd2@JG1{Rm?TvqK05n2Z-ff(wfky18UBpmkK zPMVlKE>Kd}JG)@LkIQ>l10n%|6z!sh?i3D)1cdYw`F9TKwSGR23)MP}&|5`ar1m!z zkWe2{fZJi}ss(y`v7GmB|FoAy3QyifHPI;Kl>qyoAs`VD6p$1!an5s$GCH)tFBbLj zcKei`nr0TAB(_ssUM9U%CZVT}-II{b=EU)g$>A6mP^IV-xdQ*r$nyeWEb!OSp}X z;ft;L;<7G0Un(eWH;dLjO>E?6*4DC}ScqEy=P9#|^oFYw?&;jv{|2O87HB}!si;*j zMlExgwl3eaAZgcDVB)^MDmKofj00ICbQKkzpS$tSEDab8C_lCHH2cIY55xtzAVnjGslrqLaSz{0#Rb*TwNQ*Zp(dX9y+I7zYBG#Ts6T1AfhI-yF^~e2Ap=@8< zO)Q(gT@TCq4yduRc`f@`<$b9)e)m=~qc^uW%V-?Z<=bTGDh&uN!1(D=3EdgA`rA;x znRHP(ZEh=3sa}zZ8sSy}6$=8SK{VH|1SnP>+Tpmw28+~+<9Jhg5Lnc;D$2oX+93Iy zVY<+F!NTQVyU<~ugA=_s?5QS~C75%WEgqK?*XWB08>CYP%2$MRaT^GR&OG?nl*&+r zbeCC9Pf9aM2$~<4xq2j8=3=GghrFmpgRIQj(Fyd zTBy`xQDUTVgC%fR;vcuugY`k&*g@2BHPchK_`x)pRZlc@R5otHpzNaf!23Yl6Y08| z2>AzabrJAgS>5SB#zQnxv`vvPXT@4|lUS)%Bj;iN)wN%DhL!V4O(cKKT6^=m2DynSIwq;4y<|@2=U28YKTyG4Z`M||W z5tl_u0qo z)_N2Oguw44NW{Xj!tZwiJv8WXuEv{~b(;;of=&q8?zINL~cR(|;s1Sd;&zlI_y!7<NAlqGWg!mwXN$nowbWDRn?#GC(pS-Je@=}2RfCx zgiv}_)nE*Eu$DmdtZJ5X(${m+0jabNwF0gVD_Sc_<-)0<09_0kcnau3B*qc2Ia?4M zv4QoBUm6BD~H zFZ;+qKDQdN+BR|(S7iZ9*w~=QBd%iTe%B_Cz>Tje;wW6cSM*F&4YpZ_BC=yN9x8H- zK|=a5tFovh!i2R#51aUhcR&BENe>;I-I;*M)o1;v&uO-nY{j&7H+$@0OYuY{%}0y| zPRC1Lbyo@dK=5>Amo#$Wf3)j?XU%O#YIqPXdk+c1Rg{zaR3*_FBoVB;l<2_FHvSXp z66*9K#>>6D(q#R`1FK+ z(1)DE5w~2TIUOB~BlFS-i^A%Z4D>?gYxIMLS`@e6yxy&nCUlqbnKS5VXLu)SL~TO2 z4LEl*7-5tI*J)Ct1Qh3VjFj{`>Q%RRFA}f{&;5#oc-rM~{#-I8PyaY>&Nbu3aE)FwZ-*DEb7$K; zv_a<1e46e9SRI-C-So5pgC`tEKP2E@9={Aa6;=yS>{i|}4@jDALZVVY5F%R{@L@p+ ziT?^54g(@@zMDA+?Cz&K(cw|)_rlPBXVo;ULmVtxJZkZe#IfZerXCb5noP=o$g%+B zn5QLm55rxqlX`(NIS7QLb15jQJy^iLef{$$;kgeNMEy^9fcRv^~*y zuA2m`)S2n7+zcn}i8y&g1;H{dlm0vV{;oyQf%%$^@A2ZI4VUzow#cbkJ$2PHtnQ}YEi$|12N3CmV#1s z&CLzEApB`pc4_&sVJIR_W<@C6s`q6D1g3NMRqYDUBCe6^x2yHxAukT3g`4K$hO03v zJSjZcPxGZ&sIp@5#X5Gs%XXH{2F@8d^NmP|xtzMYu@9@)zS~g9&(zB-IvRVW?&>l8FpP7o5>bulOudE9n4+!#CYj-r{hbA9RZM??3F% zG?nc+-ypzlC)d7r5m|5X`9VyKHWz)5%%!Ly?E6QmXUmdtdj_TL>9SaB($mbm4Y_-8 zE-MtZIKIidge;Vn=LLsFJoPqEk}$0hqA*d_&78i>E7a^!&kipIMj({Z?BRxYHgisY z0U>ARjiN|R@yZNU!Z(ATa0*pgAjlG)2hH^3cZ+KFqr1q!QZ?G?dN{hv+p+%ym<7hC zs>z?o(j#I|ydan^&IgeVid>177s>eX?JvtWZMSS7n?0R`fZ()6l8x_0Ok4|Yt5bSy z^ke#b7Gs(xLH2bu9Ua+jY7`04xqxmm+;Kxsp!L+aP& za~pIdFj+tahaR)m2TG6z^;d0D=Aw?t={=`ncG01ce-MU%2Tp`S^z)3#6&sy(oN$pC zfqsOmz*4z=)RQG4Hd~ceStGyU9KGrc;W=YBAq2GOke$jbgI=iptJi;h{qg1q?GK(; zkAVuYj=>iQgp}hl2o>Ls8M!4%C=FGKv~Uu%^ee(Im`;pSK3!nbCQ7wCD^LRQcpQO6 zdPs39`igrtbGiW!r2^H%x=4HI!+-6aiWE_h+%g&Ge5JcjIq2EcIw{W$&4##bo%9D5 zcP2Jd5xv*1?+-Wa@x}JL?|32EbXKMCXktX!ZU2FKSflD31(fbRHBD4_yqGqtYft*x z9?}Qy|JHF5>{UmF*!CH^NMO?MtV3kIwI1C_ZqXY-U(3cvH}Q4I$PVT!uf$U^rt?eQ zQ{8ZOmv~Uq>YZ9oe-GD`Z#F(q`KP~Abhis_?wKf_-84-WRB$tJ6buJ6*E&2Njs$$3 z4{Nvj-^dU8&a7V@G5Pn>p}w7Z!19bfT?z54S@_FdA?$BbX8GHdWKP6R`m|y*)DA9m zZCW0co4;N-|8Yvnls!1@UeZE1QtAPtXmclzFY)A5>L5I#%(V-Fnc8_}U8UY!BFZ zc*OVv?7T}^AE)%?d3%KWL1%)kkFba7g|y&rT$g06o1<>#iVoYGuUU?xo!K66W5PB~ zQTa2?^TLNoWZADiAT;q&NGmw|iO^C{I4Yp=;VrPk&v zM*HD0L7mqgjQcz}jPpr$N7PVE@euy$C!iMTcH3JwR` z_GhV(c^#bq02@L5z4r9_nR8E_9I0pT%!50#e)1B088)XhaGI%81!ZT)pC*wkPz2|> zkT3s)UFb@Pj@WgY`|P!*`nfD=CMKi|E5|L!kuKmO0n2)`bH z|0Yw7IKjob{aYSTa>-{FBU%V++|zf~3AcK}J$?NY`ZrF?zq{t-p8fwB!T&FgV77}I zq8_}cfU=T)9?vlTaITO0&7WTH&&!kbXS*!*b7fxO!V$}23Z9nptiyP0NCOGEuIUeo zDLVy$^0X?Kgk#L>_kHICak}}w7bbvhlA9DH$Y}Gb+S8*iW;{InVondg#Py}L?kDRa zq4}I&9d`{pJuEytEc{{F4~sU^m)q*m_?A2d4bdm=h_b>0_lQ#vKobU=x>gcZNH1&L zzxXuKiM!HvCC$)$CG1L9C+kYpm8eeBm82_0?N^#6Wbk**BEdx^A;X$}O-|}Ww;t%* zIPM!YDU|D^Q2V6NG%2(`DNNT%AslwI!nw@J^G@=-GhXMNhaK$y!EeWZz8#Nyf)rR6 zDS+Ekbqh&sC*-=HpEJv|bJ?kdiQ>KcQ|ONJYOz(nXLi57qO`wxZFjNd0r5Zlw0A@r z<4|a$0RQ{194G2UXOR3nBc%}M1!hZRJ#au$$;jb~NtM3Kl!a+8Q|q&hA3u5Hh)h?5+ws89ES)dyQL z0D2(dB~enB<{_%f@{k&*0Hz^TfKb_>*ajyDhj{8^dFDx3{_*SJWIdaciLXv;N;&-1r47M<_>9A+CJ&q${wze;u zg22pmUb}#Ca)P6eYUEIH4w87}{M-iYsg^wd_ z1Tq(i{`cnMq26;*=d=j8V#TXq&js5Gy7?U~S8mZwJJ2bAxGMKC26f4=dSM1YFqVvp z#cA6Fwqshby9hkgHLbw=jA9kuNx@f2UKksH`PUd2%A0-Pl~q&M{}0hk+e5ONhgAQH zqvS9Dfef*#Oat2}Ew%2ga zs=+lRG-PErAz3ZD-{az%Yqy3OcZ-y=d22UuoLp@)Pum1E>h?9<#$tw|ZCrmyhG+AN zW1H=JyNhq9?pA_N{yZTE6l}r4vhoXHoelbApwn7$!Y-q2$s^c^iLtN|!I(++l_vj1 zlUj&@J-6PWN>)RUUFE0~f}p{bCZw0HMCFyJydi4b5LGrrjV7w2$s3|_Cn}^XRUux< z3gJrEm734>t$V52Ja9*L@#5N6@44z`vtEN@9N#aUyZc?e#*Mq&2mW8jACkk^Jn0Ry){~z3Tf(p% z#4mcuDFA4>EVwDMor)?$o3XvYfyOKmQ+XnqSN$Y|n)CeXNlg)3Fz za3yQHl65798%wKZS`L_yNFvJE+Um!Zt;(%<_lD;>H zW`Vh0+0!;m+wyW{@L|LCgByd%NbPZLsj%%**OpaoT6|LJ0E< z7yP)uO%-#g*sj3|3j6!ODiHQD&6po>=j1cGhI6ps^CtL9|0AD=P4h?t$TPpn2*3#i zl-l}57rv22F3&U5b=twoKrPD~64_Duqi`>xqj8}|!yLh6#yy=Pk9v;ZI#Ar(&k>X7 z5@meYIrr+vwTo5zSP1Fo%rt>^(8Y;HsK_Zvhhk9DjBhcsy&4vktp{5{*^gqEZ_hH< zV~=7Iwx*j@NsV^7TM?mh9+Ld(k01W~R}6DCV|x_xbHa9mPy|f> zVjpOU6iI|#NYWt)BqtG4MVtyn4Fvi-iO{!NA*xhu+87{uu#EZm+-W{h_K~%9U7F51k@X-cv>mJBkQY>zlg0%sp6|nNF`~9@nF>gx0Ran^8h- zRu&Z8lCmN<+)I0r=!bi;Rq{9oipYZN#8+LI(F6~B6R49nAh|MG1l7nN3;du@$KSW! zn;K}75YMBB%Q?CobhoXMd$27{JU&P5_^M^*;^6_qKJA-WmDSM%B##SJ>M%Jh+taYj zG-mNdUldJ47?KH^+Vo>pdIe>tkSA(3c-SQqp3$Z(KrWEbX*}B5ptOgdnWm2yVz||d zGr!(vPNTpHxC_G{@rGf_BSk>D~6gW0%rs9$? zX@8RJ$c{@ozM|+mRdT7?Q3w=-t&51uXj{1_HVZtk#;qt4vlp^|#CW_CdJ3cfw#jHG znS;}i6Rl+<^kTM`v%sYnPa07tpk&A-K~5&#Ud3D`)`_m^kqa3!0DX?q`O+PVHjWLW z6{gSd^LQosejfkpyH9&(7x~Gmgqbs%39Yq*=5@Z0@m!8e3QV9T%kCBqS7_%VKc+YpKdRYbaGWN2g~^;L#-7A))o*&`dLAZH4io;ifo!`^eI#q zT*{8O+ZL1^4SEZo2GW+a{O=?+9LWR)7le%;L7D_oTcEi= zhnuI2SQw0Kf9h+Lc<7Hgv<$o5+r-Tg^e7? z0ZwxvsMj)3BDOw8BPlPk$RhDmVf9q(}$y<6$CGuSz&2)FJk!lYx~aTAhm-BqC1SFQJx z(rlmm4Yf$D^~1a{VN*k~qhbTGfr*_Dmga8fJ`^RbinpB!L4^tyuq)o%(30q#NLiC~ z4p`tA*UlZ3l)ZK0aC!8RpMBt}kFpcj2UH2mTtt#E7EzAj+`)4kjtiDF4UjzU*UZ{| z@l|N{ppQ&ts*9W<^|QMJ`hroQZM7L}3z#!t)KLJla&R_*tqc<;>Sz7vtIBD(x89zr zn|KICDN$2~_o>Q8@tyBAQ90J_+BFv9YCt=5 z2@wl?%T(8${6$09A(E$OzNh%Zt3TnI<<;w7K7If8M{Qwmt(8R#&KBftHzy5hSB$6H zKaX^jHnC0Hm}%DDsUg(#RHf?uEK5sO*}Tg}f>E$HxzCg8SvPoOIhEwD%|URC=V?pG z;YsnzIguhN_5CjWe|~!V*N^XR*DNv$*R@=N@6!0;#Bc0cc6x7)Zc3hy(Z+mdpWpk$ zo+JCX>b&SZ5)CN2q(Nmru-JOYhzm8XQ%24cS*Lj2QWaMf6oQ`9tRGJ2^wZ^uP8`V3 zQ%BgY2&XH;>54D}V+7EWsN)QWjud>-I*i@X2!Zj6H>4}#kT#e{V+NRJe!-kq%o)rL z%yq?FHkj)MbKPJj5K_TBt(e=2xf!z@(Whs|jSV*7jG_$~`7O_F0r8~Xp4&~&_~nl` zw}z~}lDr`BI}^ZCaRAgj*gOX7O(;o&L2~PeCqq6bd-KHBOU_u4 zViXuSCC3UI=d2O9xxe@m(F9My@a!*84^Q15Tn2>vIveE9-)X6%aRAT8?QoaL4WCJ| z1&7I1^KF5VZTG`FsDmsxq=P3%3x3*pbHd=L9Tn&2oixbiH2%xG}L4ihG(O8xQlf14M7sl$_0LV%oy}(3jNivlNZrn z!C0rqaqC+#^$+b3zYY5Ez-ji>TSqeO)K8)>g z;6TkLEn$G!j^-kIc<6-$U$zl93N8hhOFuQMyx(&8bWqz6a`7J*S1{d8Qty8L zus7Hqf(|pH?XtyzW6!$$T%luP=cLxWKtuH2R8RNg*-+J9vS8PfZg!{(Fe^AIL=~w@ zRYQmEkH+vSiYP)lUC>vb)ahoT098F~I2J>+MV>ocdaudYF-=?#CP0Ra0}B=4P*xx} z`?H~_%f_mzb{o8z_ToTjX$7Pb6cw}9qhu&6m}fr=rXvAczuuij!|F+)^l)*8K0g^W zI{-0Z!@Z&y!(np(lBHmW>4XnezF|}{arvm>h3UY#XyRk?Zkmi?+?Aa=EUwxPbJPvk z@1hVGhbC%iHw>yc#An@)t@fC*QWqxhGy={H83H-7g84pDP`#&PW*~C*dj$uo$(IPw zhChMufKfCoOrohiS-zyx#DORU)g#Pm5r(d=M^zYtT-0x3L_SsprK~t3(%RXn+ zuC6U$Q77_9(|u_2h51wIx2sFaLRJmdM2CrVMc-X6Y56*1?y@SZR&2No*OJw8{#bFR zokl=DTY%n-F1A;47ZW-+?WDwXZY|al8&7BxB4Vcelw4Fpa5?$dd8%_pMo>07? z!I><{Vq5_;l`bRD4z{P72U9aqRfudBo%8X3?ki}4(G_jl!MpZIj>D5mN?27`tii#e zD#BRxhi0+?XPUvGG!5BoFIThYv0qSgOit@^gg~29#Y?qMjdqK(p9k;FCr%$Ui#9IM9rwwR6DHm^qyoQMPPvfs>X9x5AI*`0k+j| z!|1S4@%$<^fU<82zT?;XMKS2r_lwJ(MdA2Q?|!^9Uq3zh_$DA=bG51((#7CvUD&&% z+Nlji{6dDj4LWp5pn4Lxm3)l>9q+?6NU0~J9B|2{t;da0(&m-isN3ZYhP*FhbfQPT z*B05B#b@z{{Y`q&Gy9c?0v+=rEn98Hq0# zjT%G2y+jNfLdKDtB5l4viq;&2`wt(A^1Cjk#rkma}+{;+U!(Ift zJLkTk`z6BceeJs&`hxafRy`hnWzxoHY@@r37pZz|I4&c)qPadaY*0$*K;x?EgT#3~ zx8Q1WrBjxF5qAIh-TvDnt9AIWS{_~}=(3UTR*?Zh`w%;N&_oT`){kpq^!)3KSs?K$ZX}F-y)RDB@JQT%UZIh6mO9 z(}(wqtNph>|NQFv4)~I8k6v9I}!S zqDb2Ay>SUU$3 z4D>5_2~~#A5crUt&;}>QwfYwZ^Cjp3l&?e=mXPfX$1sC3;ltcW*xI-NoYLv*=PK z_RG}h6RaV1!KGMc6!9V!e({(egP*t}PjS|d0ukaI z6M?-Tl^DA`dp~yQ9u*>q6W{qwB8eab*b?meM8y$?APffB3EQM|A;?G`yZI4&>&6jtGZ={AMqtuao~?Md4LDyxBke(z!{E0s~qf*`TDFFM(qf zm_rBg{lW%fCSU=pl10F_fIP+SS`BJAjwCD_Pzy}@US&6not+DC6zx7_e->Ev6+p;k zW;83t#x_PTRN59+8qRsV|Ct0%z{xO;aY%;I4QwPIx9}{u3N8-UK57D*1o;fr@;i{G zl~~z;z6Nlo@rH`4_bZ4!cY(>POQFqIXkMVnVmZo0+s7+d;~Cm!2LO|qGuD2NXLt@_ z8|=37F)Qkiia&s&DFOALF2K35B|IRdZ4*IeMiW$nAVrT=(LUTIWfF*}@|ct$77G*! zRQ@n_P|L{~5M_9%bD0#0cb7@r8jY`Y^xVI=oB2`q!a3)I)Ht8WDl`R*#~Fj@Fia7i@N zwC)zVg}UwxBLSD9G_eS7qZoiBWn-g;OaH@YFS1bxbwLw+8|DM@N!>E)7OHVai%5Wk z;V)jc6dgT%rS5@e^L(*m>aGw0Ri%7>@p{Vv&Y^Z{Q!qkH}4-XSIMirX`akwoYb)cr%KoK(JmUSox z@pNtjES*F;P^zw)FP5mUz@(&IdCdT4K$yQ8dZL543d?|!!p2#kLSwjurZ`;Laf-py zuo6dUSqg64-C`=9&zU-oEj!VfEP%7F1(iN6FjDY^q+OBM7p;Q(u`?GqKA_J@;oQIq z=uRu9qu>#EB(dP$hq^etYN53r1M11=#o5A@qd=}4xWeJa+tLb&E-SD!_u~a@k~loY5|LfY#bbf|ddzMdXW+VT_Q zF77ybGa4qGqM>&<;a%CACmlq*fbG=}%c1qVpZ4OqV&l0PYY^53(hSnjgx&{KXd?+Z zJ3p24LMcDKT?8gS{@0DRYubxlY7w;!(bi?P4z+V@uQZ159tdN{?!LVCqdrXM9}cN7dEr0_mgCdeUJuOdcJk z;t483?ymY2N~9)>OI4>w2ctj#@n&Sy%?VLb$Ln*_^fY!kXjM_`P$cRO7C=ITU^Fo6 zx9a=L_qoWff_|m)-vr3C0|@}8nP006rH--aIq3{(FQ;u9TGzLas-2}3t=2OFNy&U6 zVfowa=$E(K(5%D-bePVEkQ*WFnoh?v zlVc~WJD@$OFt$rZ=l@vjw-Mq}xDiR$W3!tq-&*}K2#OX9? zS>GCI=D>yE$n*h>#q@=M<)vUmJ-6ih^3hX~mm>5l)Oe)ARmCIr!pM-=XO zvP*Uf?Y0q?6o#zB&CxsGI@q0g)U(X}Ad-{7AqJ5Z*rw_wu+NXE8f;4YeWs;;4XibV7gSs*q@SI!1y8dh^L%d&u{i2$!sCPKpKpgyv)EeMUo{jYI7K@|dvW{@>yLyPvjMktmC!3VP@4ip!GIKe{x1~?;G255rH7)*+3-{r+ zc|=H3K+}6V3C$B2?HHfDHjx9yBd64qbG)W?HbpsJuVgZX`Y|b&bf>1PPU_UKfCS|( zm|vG++I!Lbc8WIX@7bqI-dFDzVa8j7;qkDleKuBAmEXkbIw8SHI4Lnz%|(XOOg(Y} zi!PLU0H0r_Aj4@?uGBMKFe+1+{3orDu&FX>nmD4RG=gOaUv*KG ztG2YatLsuvES9(jVi}!v#;xrygEVzBJJ|vN7GyyF>M(Jm5hUO=ts3r<2w;@~t)fQC z-^nO(F1ji0rAE3nh=FM`St?nc`p0vWnLE~>fsh!65d&n?Ojz{)4$3&j97*Xg#!))q zTT-VK-gWdHt{(AQ1!^&=G+G5pB3?IERpG;=UnNrzCz@8XIvS<8TI~>3xcgQ`#@rNQ zrL84wn4a~@Nz)RB`y7Rh3TZ?4S+9J;ce3YJpF6F}G`4p-I2{xbTCEmdR)4Ry+CYUc zQ>dP*#Dr3JBfoEzx7NS^`0@3!2zvGUk2hZX(^KF>YoTU;XcL|U=zU>uWEnIy&V}0< z-!dhDtYA{|TAT|Y&-ztLy(+7oiBJl1E^x3Uvh<*zW(2VIuR5%)n zg!)-^;)4QW>?v%jaGGQE`oSrx_4&WZr$4@Z|KYFu>1M(HHx@$!+d8}WR)=W`Q>q25 zBwrrW>>FAIk$!o;Tv5>hLpp18*HFwexQ9CWODz8ShJGF&^Jn49|9!V#N^9Md?>rYi zc2%Tfg3wLWt3wRTyjmrob97Z5OUdT>$7iKja&Z$pkUN7a>!5U;o6_ZeF;O?RGY?|> z^n|3AS468^24@+pCRQ=zpcTpNK5ZSFNyKQNam}DavoqmD13VZQ;9~RZd@!1bhirXh z4Q6TYv#zvf1o637(~smF1RX}(3ml(GL{z|d8|k%XfqLn+_ua4HJd=p{Hjs*Jz-YiD zJooIhq;iQQf($i_%0EXf=(x_1G~z;V!49X25`=D&EzT%+$m;MQs-is<5zpJ~XwnbP zMTklwfo+O8t&sF+q3*dFU>E%eB6Kbk?xH9O`-}-_xs7_ z4&l3cy&{HUt4B>>8(HQQZI}T^Y9p;6sr71ViQ=u=;TVyxw5gF}j7o_t?lg4cc8vP4 z#D0S~j($2NgkrU%+In8mlX-LkmQ6!ln&u{WmzVJXj zRWa&xO8KNr1NonX>Iha#@laM5`#};Y@qFCI%;#InN0W-az9Mz8eNT7sFLl4~-u>xM zZ$G~M@y*{qH$0DDyUIB|TxI!OZR%E!B_m(;mVFnmTfyIc&3O`mQT5R8X9qH}L6Rg$ zBs?%vU{d-^EY=$T%UmACO7ZkLsgwm)8J1QEUuLqzbe^hshl-{uR_8tuqCsdN&%m1Z zE9+neuh6KUe|+ySk1n$RsC!)o?n~cDs1GlX z97ZLllJSK`SacHK{q*zxgeW~(n^%g=~ z5l8t-eY*$*uea-)ZvwsVMFuu;(lha{bY|@k704IeP+C0Ck67h z?L_kVDd!ZDU?v!Hr58HE10lS0MvYHD>SG-4Yko!HN54;aMWFYOUD~GVjH23H^!Q>) zJF&+!gxS-K{u%Im<5|gJV&$-z+ZCYy7uc$7`O(6mV{lTeG3v5+cIVPR18B`nkJbck zey3BbY-}@bjWZhdSF0y>z5%y9(_?=8^x@r&GOwDCRqZiEZmEC?KD8&BlC66cBuTmj zic3(_HeFuHnyR0lk=}b;8UZ7{E-*WB^`gy- zh)E)*pr|f^vGzQv^Pm(a?M8WZUE;kBAH`zEk+ox->v_fMYcG+egY#_F6Gk>5~X=Et2V;~?Lm+9t@MIp@KpD{@*R)(VA86z*!0 zEjdyJC7#5zD#7#Vx#+Wf^o0Mwl2$PldfcJy<|Mbh+vEL4o1#1n{{?!b%I!|O^7?zs3kD2rF^>^=X+WIMLDi@BtHwL%-*Qq>J1%XE zIQBX1E&X#0unAfyCtW@#I>7>IO;_J;A&bdXyeQk+_T!DD45QK~ zt@iaU59)Qb|1=3@kUQ^9<|U4X&YLhVrhTpgYPb1I&GrBN^7`XVhl}c^R9jr?EiUk~ zMs5OOU{?G&ii$?}?j6P^7yyF;)z=sR>c;9#dJ*Q_``X3wiDNg-_HtkQq&tV3@iILn z@k)viBRb2)IxFqklx})-?~dI{rzT#ugJZX{6|~0WP&W8dW%M`$gx+U30kNB-i^qii z@*@M{?>y`Kb&uW3`3ooc+vPnwg?sM*_`}{d5Q>+x4fd{zb6MJGOU&%f;uzTXNf+*b@9Ibk6ebR}Yuk|>OP7t&OyBq&XfJE@HmK>a3C4yoV(=l?VaCzkEt_&XRd)_T3*goC5-{$MeXEzj_Jl4CL zT=bJUD7uNLZdGNxzYAX2G|o17+3<;h49^!=h`mp`9hF zg^b3dB`&*47)Hsh$YnO!?^;V&HR0%+&|?19J4%bWTT%KF>U4~lY!FfmA&=7F=BmW= z+X!HK@)@dVeNdpZ1Ys{ z76k;@yr3)#+|fTI<5k*8cgwuY&i7EDCYzASjTA;-FqHMCWJKzn8FXugZMrkF2;=yS zz{7D*|E-xtPUb_`(R!%{4-J~-Ua}O+4?E*!-0GnYe4Yd>LAR-xThMLe0M$H9yzCv$ z>w~-rNp$W_K*pKqHcwSM%J;J7+WToi2OqgphM&_oK99@0<|{%(yAo&>ag%qVZU}=v z!mVm?kjp99ZQR&1Kjd-#uX{PYWggh-#iotlDgqdOyAXBCX|HZOA(IGip=^BC*yL5b zXZI2bn~0BgXSvEgYbJ^oWMsxsNK#Tb6co24@bQnP8_W?Y&B-2| zb?jnK97p{O6RK9kq^g+lc+K;;-tT^R{pYv;jE;`|$4Rmum~hnz-%&A?q`+!tle#yk zNeNPsMl_nr*W54E>c^jc`Sfb}6ukZM$6Fh%<2MTtS7WbGmnHoeC+6gi#UhtJbhjU#pi83!sLq7GfZ2+7&sN#riuG3fh<#ZYifNL1|CNEO>w<4V7k&A zLnk`MD+6L84*--yP5E4NegEAL@3t+)g=OCRIE&A16QF}RR($EG1$RH?2-A_BnlEA6 zQ&wR0rI|y6pu+;8Y4+(|BU){SKO1L{n&05`Fp@VaR9|!cg!)Tw=bPiCtb|AWlz|e|k24g$JysP#?8cD36-UY13`!^m5vR zSL)#|Hb3H=)3!TIFQ$E|yK)!x`)@#5A#mVupfu`-+`d9C2 z_q0AFja$us+Bje%zB@%}gnf2!{QT+l9~brK|9k5g74e98*k1zazF-@IGEm-zJgFOR z0v0S>dU1rywHMy~Z6Vv{xVx=~YTW_+`&T=3JYLeiK>MAy_+WuKBvsFXj>%?(tE9tW z1^VtPP~o^$6*Kp|9-q@D!1dlWm=5Q5ZORP_!reNYR#__C*dG)Bmqo_rX2&Ef88UC0 z-pag9+>o`qtA*d%t@EeZZh3G{i2>vVj3~+}zkCDP9DW+@z$h(`f=IT#v1wS_!@JhF zHQJ~ozK1IcIO=Fhk*t|H&UP9UG5fKUDsUV!k9LmR8faf}$F3N>BlIoG$X@Q)8K7p| z^eR>l+t>8ewy)tfHlNBasO{40qITCq_mMA*?7zPI_*RDYZ%6lidkO!|_zq#ukqk%n zo$kt!aOKEJRx=ysR=PE4S`p>T4&fz@NKFTp_(Q}`qES*(s)me7M(A}p6g9S<@EO6< z4Ewqric1pP#33afQ?P%E23$0>;`uzcUYM%`7rmpmEvH|VW5<^p%dgJ4<*&&b4bZM&GP8xRyr}8kWR=p zO($U!1fo+!f+brnTgdmgVdEZkxJ3=~ZZLybc!l;+4bkk~nHXt&kJZcle#N~Ef`NrK9pHX*`tifel!KlHd){Q2X%?`}GEa6@l;fL^Y>Lv7)X z69`Bz;eFVxhb#VZ7=7(4Q)fHm$byE+d|mQv=pc$1vR#Of(T{2EU@unncDJ@gLDAQ; z=s+h&cZ!wT0)AZ;x|qF!m8}4$CH(UQJZ8+}NZNUeX*O2v2@eYUw0v`9B|L>P~@Ar4ghiiRqYVhduP0Wkm@1NiPf4?l(FYoq_ zanchl(Uy_GXZAn|8M#Tl)5{{C_3{|)Pm7VYM~=ThPM6W~`^c>0-ViJ#hwd2f({p+m z_hX-3peAb&a=nI|lESW}%KOASA0ghymrDM$co6zw-@wal zcX`RN&7&^O(C$|Wt$QN|keP_$prlk-yj;px`Zyi!yPS)HIAB8nt2$XkkCGxR_P~+w zPNI!u71Y`Sl`>DFA^B2X$;KwA3X3+Q!A8B39j!!8WiCpGLFl{ii&$d$8`M+`;<={+ zcE{q0>{-++L$XS#P+8W1TpIvE8ZGNBGt$x~fGK?>B4mw43- z6*@VFNaBT!!RSaC3ENR1`ZpokHA(Lk_r2%C@|D_lA9aBJU`glkxI88cW$mx45ZH>l zn9zB5xDAEfz73l>92Yd;V5aJE9wif7?Ny=-Vgdp-5+uF3uMfVqN;iR}A79pafk4~T z1h|vu1jG$g329COz-i}g5em91L&-Ulp5|bG=`=3pRy22|{TvdJ&DJQoxV4HB5>Wth z_`F`?@0;i2r(a&bf3?h#w>CC)YMCTloj6XJ{(gb4XH88Lj_u&8+_d2SQ*-+Q*f>v> zAG#$S>IX=i&emL>2F_{AcwtQlifqDUGuDF2C@=_|Eb|4DWA}5OEF;zh#!h;Nf`dLi+`O`1oy}K3UY?jH1)GI~Kw+ePZvrY5lW5j>nd8yzLxA#kx>6?cnI^z-d zM7BSyo}*~2OO|q6acCQvk2Yz9H^Y_q{8?IG-Fjs7dqx*bZrE z>S=aw%Q#1agqI`~zjPiR5s0xqUk!rCA~*}I2_6P{{!&3ruy1(}z*Z@2 zq$$ukb{8^KAW*&BO?rk&rZ0gwigWZ){16hX9yFT(fNysE=FX6XeiR6cZ(HfVZX_T$ z$Io-b9U89w9jHfWsE}*&QfJ4CMR%GS0i$w{b-seup`?>F^cT65uFUQ>A`>Qs1KMKpj0;p6&^$Rnj8Y|Wf}RpzHHrBo6E^bETOK(|g~*PGT6|KMu1W%6-U(<@ z7f~|dtX28D_?MC}iaRyUqIL@)J|qoN7=(aM4Of`0k_vW+?V2LIC%9tpy#UfQfP}V6 z;*qY~C5Gss@+i%u=RzBSy1o-@V}Nf>10rP;BX~8M*5w{X`jrxlHo@d&2mT~oY0G$0 z5r{?uYeI(7q{U!^@c~=5G<2dz3g`|79g;>@{0e8j8nKaVvRf;4eY4ofo2vLt7D=XpTvNoQF~Y%OcD?x13w8!bi4paXN=P|IFFaKo&q$x(XHs=%!Q(B zidTpg%mP&fK?r>?npk?&%w(i@dWoQ#1_B{gon#W-lMVLylfQ-M;BR(gkqX>;Jl1Dz z8&fdZ+9U97^WE z;{w}CaUU8B3`l?{h5;t1SH@u zE2*$N>v)`e3EkAkHBLq@jBy-FXVrt=3&eUNlSuVXJ8o->`nLGW}<*>htXp@2}mo#EKh(EYP_H564xytgkCr?}8@8r_Lz z+~MNBUo#o?g^~$*!%D_Krx+MC~LbD;)IHYN)Z7s0y_Vbx#&CzqzWX$youzzf3%rC_yM<4 z2ADVk$Eb1-_53jkD|VF;f=Y-+RrV!iFlZfJQZOYY90n0SacVeeJ6g+NurW4BQRNBg ziux4!X2cmmG+BG$NXx$c92d&5Pfr=APeJX*m>Ucinw%s_q;!-I8G9?N+66n8A8+J2 z&|CnV;^MniKxjxIFHf`=s(|t}Ok}*6^E!uQQkr~jB+T`wdPKfGlhTgeJm>_I(}U(^ zzKR^1MzzQS6tSSSqwDgZznn4Kgft+xs{b1s_J`N+ZsavAr;R7*&54}~xD6$3y9tc( zrKB1h<0I@3bBqsgPmdFVnG(u3dK))-0_2$WjGmUggjjPET^eYeLR#5qV$ zcqQ^QarS&*@fQV)UOqJ=HkpyeuOXa{l;Uc4U zv&wJ+uiRHUPSJA^WKu z=9J)Z5EFbrrH_1vN;4FRV(F6CgB)pe#!8Dc?7?GlmPV@HsZ3d5oMz4rAxqg8P;EI} z3qFmSvWrF!i`PmyEYYE58rh_DGyIWD2k>MS)K>e`J{S|oX_=?{TJ1bXa4h0~?z)Gi zpYB}>KdHCsB-#5e4v$n(&8Gv){Lxx)HHe;o6U5#?{X3I&hQy{!g-kX$FEB-c4e~{2 z@kzX>=fts0!&nxKK4zvx_7y@jC#P|QIN*DVst^KIe(tqj0LB8K?m;|-vTNN!4z!Xop~sm zifm_)s2;gq@(uJx*ydX;Ov>a||& zS}*5*Ov0Von5yr(=QH+3gM~&h>fKG#Vpa7ee7}5p`(<=AmAZlI*)^ZJ(mwX)0QhoSAu0H^ z9W~T5=3Uo53tSZZh5q~VhhIM4_$U}I^TFWxV31@IW`>2T`$Oqs?Ex88i5tIAK$mX4 z?Rr}BXa|$ICPnff6`IZhG_4zDYe}`WM6Ik+Hyj-zJD|~73BIBS(X#?RLlH+DB_oJEW zQ&^5bQ@O%b6Fw$vgRx=l4aX%wI*S(+xJX{Tv_#$UCAeU@pfCbm>3hWGM^dt|K{FGq zo2>=p-FrYl29tdwLMD1o#OnbU3!GOos4dhcMP1!HNxD%al!nx+niD@wLX1gRTaTSi zE4PkU4$hsYox>NFAFuVCua&lsot?!*Ur~-U*0zDR4cF;AUHiqguWb6y z+NG|^?%Lv~ANOZ};twCIqfYaDM3m_a*kRL}TSWL-Zp;R??Ymw1Wk?=Zj;u?;9QsGq z-!pNp@|_z6PxhtJpJj8r#3yp|-c*S3axxsrUbGe!6m>Lym;iCZx^P54XZ`dqk;$uo zL)f2Y#r^5020b_0dJY`XvFjEXyeVe#8tF7Skkr>Wmz#HE3Hy0q+TTRi*@^351eH?& z@apGyZI)B%(=ofwo)R|7+fd!0O}j!w$gFfCh@2)8bkKg}=7uWGh)Ge=A}A?)+VW+` zCHZ$M>;;CZ2Mh+=h4s`x18DWO%Vpj1QklDM`pet@-`?b~ZtIbxV$Nz<9qcCTgH9$- zg`ml4{JqKqh3YU4Nsc6YP~4|?d!;932>PTVttv@u4=s@&)S5LAoovH zD2|9|+pjrp%l_-@_j~!_?2W5d9m_<)^wltQ!i`UzRS$uQtH==xqIM}70h#izp<@$R z1ZE`&;aIfMKL<#bpjTSgt)(t;F)IAXhME=OWJ5w2ddbQ-c1r>&aK6EObI4xrvh-_n z81)zs@JfEfnFoiYh@@sc=8*h`(3Br>)Q8&4;~{DtsIs#YR3!BlysH5I2`n zyU!1yl**sL&!K+xr}wXK3@eS@JT|z1(r_!9I@KGmDNjhv8SY<6 zC$U5?8ROxCZIc?^EZ4#6DB&}dKQzf0kZY{=T)%)YN90!MmrWy6$}Yh4H(hHu(a9uM zlkFJOM|zVDlAiFCeb(tKfzr>N^-*cue=EID4MMttWsPo59uLkA5JYu68u6q0zui^Y zlKEk0Qd8!E2Q8($B%eEO8T-c0?BD~=f=pYG8J=*#HW6hjaY@<3v2EYSf zZnju<6Utz@Pg`F~n_l9@t3SW{)2BB#iiflZi*}D#D?`X( z^gXc7T}Pf5Yp4h1(45HDZScIRNuH@56TD)Bj)wf2eG=+47K+5w^#)_n=h15;0)2u}oEAieXbsxU5oxMaj1%SR&bL!FvG`deHnjSGpiUWL_yYBPAM@)7!t0(Pims7~HbI(2E&*(myvY&>iG0o**;TZM;*1x!N$DDSW3-o$ zw=vV`PGZOF1+K=&byga zSx5F82@rN5$WslfbU#Vrgh>H~=j`)s2jy!*gR`GT=Y$96{Q`IQ-S^8}4u^%!YnNhW ziQoHR2lIg=o+Z>S@QH=!Vbi(7;pG;3?5=-5Fotzt3?3K&c8GNy7(*Wz0|VocvwxH` z({R(vhqadv^ilqG9^Zz#U2a3`OKD$jhfg10|K;ub$KSt-sw_sZ1ciEj{57++$Vm}J zsU+R!DJ&GGFuo(Jx5PN~$ch(<-+j{m>Ge;0r|;S8>iC?uQzB=M`UIfpnsmU^u+xlg zONjj>x`re1DAzo;b60Nz^TU)6E%||zZw`yntLwfkt%@d1ceZ)w-$1##OQNN=0{5qb z`QnC;&)hxNe!P`o*!a%TwWQXtZ1H>vuj^L`q+9 z8|73M`4lh*7pVbl8UPL(0!1(TrCC254PvsVb=ge0A3~NS=#2;^f#i0?27R!YWe-A%zsy+C8DsV~t-IDH+azFVzy2!UgnTMsM%4g zaH2N~6Ww#BzbZ+M?3{{!XT$EaJ+@~&(UHJV(UL2@4CwCE^e&|UlzBG6Q|PIU=h1}l z@w<;7{&;i4k~ME{7U>(u(;2E=Lc_&et?uU1GmnhewN$GQ@?*wxjY|In}P+R_~tBEu{}h zU1@!mTeRE_1r&X7l3rUs%YZ*HN52Odc*+jA_`G^hx3}NRsMEeuVKSvlE|!Vu7zYCS z-bSESjYq|)RK+My2$ZQIi}wNrs6te_`;!&^QE992>+oLhoFqZGLnehpA%ccXNFhWV zzOTr#GyCz+uYP#_=KGsA>PPp1qjcYtM05-c+ngb3SkKN~a?BPF5qLGs0We998qui-Y9Q^NL5 zc`BE}L*BfyDc!!eyZH8n7J2ph{oB2L?7lT{yJWcSb^)ecw)>248<8|cW$!>!Y_OcN zW&>nGEk@mqj0=#PUr zUIY-$oR#P5)YaMQlC3&hTmB|e>oGKETe4^jNPe$OdP9P2(ldWcSX8s|TM$7D0Q!6i zZi;ND$iQ095&C_7B_JuFeyPcBg~B7;u>&L8i1StjrX$t_C-FHeiRV7p3X?bL-Xa_0==ag}dP>aX@yxy1t3}dIqi+HM8SlV(l)R zm0o%g1HHqH=$=OK2pkA6f~(Us;Cj3$NCcJxREpJ&sf6YeRthlvfl`dxg<3bolh2LS z+`a&L=2saFjJ{kGSj8j=d+GZi9gDKOA=If0R>UY5D5T?+8g(vC;OK2MRUY*mzjdG% zQ2U-a(SsHI;2Uyd4OddIOb(a3(6W7PchRA3-j(}wac@Ssp=rT`-g+oHVjSss<>~O; zg|93^xv7ab?T6@#`7q;smR=K?VEX*|c%!0JWjH)j!A1e(~~~u(drMOuAJ+!fIh)yhxiK zion_yPzkMY|6Dbb@^W-+Kp~S%g0)uzQJA`UBZ}ZOH^Xs<*6sBOK4)e&cql{ZI(i{W zX^#t`k9qX}Z|}YOB)N^X&-?upx!#F-3npRK>z6luQN8Z`w$_^wIg(}%Im4YHrPqG< zt>^zBGb^jQhm@g?qw9(U0!U;42mpaF@4mSoa-7w4!(_tD8(qR_&}H7qk_T0M#TOrk znwR)^T;fr#P>SpX8EUBMGScLumVveptMg9g?v&+bBCm6Mo9Uirw{!0>v<3-7iSts=rH1$L4SX6 z$Seiz#y;7uPD7QV~ zJhzrt>>Q#E2dGEMKLbB>k9>%LCEmP~KxddLc?UD^ivCKQAJzC0wcC3qN~1j5S>T8@ zsj!CLA9Z3o>U^RE1>ZzVKVa)<7IkAtkE=8#G%v(rY{BkheCYQfy>oXDpY6oIf?}Cb$Iyr`ag}7)J9x82= zG~BOwlt)>g96{G|8A(+gCD%88zGLn;lBZv+q?R;0+B8753ZgYtEl6v_BCWDzOe0ZX zEds5SWpyUI@5h44dcN9Q33dEhxZ}$V8=YqhZ7^ma6jh=FXAR2K;hjadR|T0LwhWM? z1e!|QKN|~lU4UA7J^rUQSvE;h3u4&EkZu#^VJqG+ZnV3#so058dkp-EnJ#s4US*M- zhc#jC=e<2T7oUK8Rw>D=x{fNgFR5$a#%3sbP|^9_X3GLY1hDjJz^w9uRruyL_W?x@ zky2k8LPzmCr_keWC^L_2{SoK&cNxF*`u%BjDCfQSwyVRIcV8c0+NQX0Tfjj^K#_>2 zEM=S{$qbEsyn}=z-ob8l95aJYL;wzToj8!Dk&dJueZyE5A;`d&vT!*Z7rr*@Zedc>g~#4%{O=({D5(bMPX=d=FnaxwwgRLrCC zc~G&4iq-cE(&$>+AYvc1>MIEYB-}~6k}yHS0tpkC$kJD``F#M8aC9md_;}YbiUShd zkje#$8Z(PPgie3stVY&JziMlDLenuzKZRr$RBkr9>DmTaqa&&70nfQsrgwlZQYr~a z3H7sdzvHuXX^Ys^Pf5p6nTANE94C-+u-{$~nYbtNh=D9018TcN66gb46`9m}e_zOh zGU(B_IJXKGiGv3d8MDDJ)_1<%ucs(i!=M?x|9l1wc+D%H>&W_nX89`o9p5rEfd^C(>BRdxmtwOuJ;*+Cof(m~C8 zBo?pKMJm&W?Umjf(>;mqlA5vjV2Tkm$~B>f@9McV^gBiU(U2WHj~1)t*O{RuF=yO| z3aJTfv#+)6EC}*g3(Wc`e)njNfCAYtb_w<>Fo4Cr5J+nSZ~ctsnr!JfYCm}toy^n9 zXo}p0xPfl+%YAdb2LJLdGUokC%QCz!$oTndI`hX@WXDkYVcmZACa`9=k-x(szVQc=QD}dVwS;XzdqygP_7hNwt1GjnlyeRAFA4@NuOvk;B#3m?UUv# z&X$9TfEz(Im*(+2tuKFuioz(g7>XAGZJPZB+301;rhyEuWn4d7v<)59hyvD9K-aS{ z)QIs4eDRwm&7DLSlV|CQRW%P4NmAwV%hE zpX+e!^g^<(EQv_&7UaiNbX8h4#$@WFU`6VRq+5~c})W|}*DU)>g( z)7GwQ9&=~`pFm8;D3o9r(mgbY8|k)9roK+5c=CU!y2Nd^+vJA3D^IxK*&d@QGN7gm zeTDEuT@}mW?8`^MQtFT3)OVsgU-$iOj0IgAv{>}ns)F=2TF?z*ubr6AqV>m(8 zv)rwh$Wnq)GW9f2IL7%kzlRPnb4+5;rNo;ODINF(u>x;BDO5&!=>T^ zQ%6fdCqXq%oL^=gF+bCfFNc^d@!BrTo@iB|RY_o_t^Eqp{AK-^ObJX0v(-#V=`Vt$+&FOGt5-h4cm5)y0c zU?yO*$~_S~8+;xW4sNR%mp8c^RFtDulz|#-UX*<^%`l2DeAB0g zj{-H1ZG)>g)XSUpH}9>XaW{=!+n@D*y`FFKckZ9QQR9|E2gp{TwBk6#ZB{?t zTNzI)aXal4u!?2e(g8JP&{i;MtV(N>zvh7oB&ah~kaAGdu<8oo2=`X?a z6Zf_;a}_uXu644Br1fl+g14ABTN8TsB4eRWE7CMx`Uuu6N40BUNX#vZ^w)g5h%7q_tPOdu!9_Buk(x*9oUUL57tger zX_=K;>|#z3(xV>Lyeu$rP(~Oj01fMTnH`v*X!_$u$ahEDDFuQ(4_CnUntT1lg;&%w z)KFh=29@Hyh(ve{&X)lnWcyIWNhjku1>xEWvrz5HFoSDH3PHm%hT*oN;Reht0L001 z2EnL57M4HqZNPlU4$kw6qL1Lk7NR7hdnY-lElDESTYGv5MFNmEX`P4Aa!~tp;Awbk{8j?ur zxWWMaeA5op_lw~LpOwJ2d_ZIfl-(+UZWWYbE&n`3}PZns;>``Ez;njdjEe(VwxRTt;g})-%$?mNfjlnB)hfhUd zwth}7d=}V%ty7opE|TC9-TS;xU?G)n^kQ8}cF7(GtT#t+1UAdMcxN_e1=fqim26pV zFEWBla&v+6lcyse>{Y<`H+(@R{0T%X=bfGp%hTKI!gM_`eEIc<@4q^@ywKYEt1G+N zoP315Kgto#QtdKV;fd^JTq7v+KyZ6aOM&x{H{bJ8d5kD8*7X1MdsGY$DX#a_6R{h4kw1P2;e zwfXcLNhnGP8oEC~){h@Q{Nam_SAURq#I5I|t&#w3K$5>cU||!3m8O+&2bU9k*X$lf8#Ej+Mkszk5adtu=k1kRVE9!M9D`tKUQM93*@^Cw@fvg zLd}neT|mI{;|!XaL9=I2*=A7RCQ#qzPuCnj&YrmFkG=bzionvZU_edu+Oo60 z(m}^>-9^an=l+P>fFtdX`6^G0^n21D(PB_N?Ixuj5md!%Oz(Ghe$TZk9cl{44+!PR z3d5l<%e61l+Lw_l&C!=}^kv@qvW>oMcZ@I|7$FSi_S?c;lQ=Iua<6zd2r#zp$1#v? zf$A|ZZ)2csW1wwgK#t5=# zdKDKT?~6WN;)}jwz`alHucOA-N7=u;_r4V+bW6Bvi(GfA3&Ly#fNdG&3ZCs@a=tb} zfkJ1jkdr*;Ntt?P4PNBKt=jf85#_Ww3S8qff+Oxc&EBeBf4zmS{p@<4<4Fy{%}{I3 z!ijaZew=UJV-k3RSrd^j`9*}Etb9aqdorr{2O~1Ay?0T1A0oy-#txpJ;}MTRp6_D^ z-@U8a;nhtNwJ=iq(a;T{%(43WwT;V$`!L7P>4=9s=C)Dom|s;*K722xlZVAR%xpC3 zak}0Z?)#4)uYsrUlx7IUY4^2gc@!Hsw|Uorl~LCEM{#4tuu-JJGZ9i> z$LefDqrM3&MZ1>(7zBdAp|x~@Cm~pq^$Pi1d99wc`T7@bqES@Ti~{TQAD=U>t>83^ z?)ng1>zHA0yjiKUPkgI>E}#(dJOV&!PM9YYq|_z`#tr$->0`X}Gj+OsK0W5=*Sg_r z?fu@rdwD|ThB-n&tpO@~Sr}&MPEQV?M9>9gBsGHTCxV{MYYa zc8!iPT1IfwLF00P(9iINfT{j@EWdte%=>r-p*~dufhYxVnz|V5Bi!vg1iEpyK$pkl zd;ph8mT(!l*M>JX6VO1we=F*JX z)ex6QSundqIK$fXxV_;y23n0hqe1 z#7YPg;1$LBcs9{Bh#+p&YPmu|LoxJ8=Qb83S=Nkw0)fJ5Pkcw!J@IRGj4R>E1M_z`!QNIaU zaVb}@WPwRw$5)D86f=hM7C(8&on(R1hG*9h9NNbh8ik>nH7hs-nwyRtYP)$X!}Iyh z+tl#eXV~vzNsKKC8rN6AN<w{;b>c(lxT)D0|E!~%ZL;%umg6%wFpkUro|zg7Yxo!jotV5+IR@4tez(l z8z8u-v@#Nv7MU;&P-*sZuz5q@odcx}l(o|HF!hY%Cblys3-nm^y-_a0A9PTC#I_Yy zw!cV&gr_oCU_rr0>Qn_bZsoYZBO0E&#}_(d_usw9w*s&C?DJg*I;|d4sG*NBWqWUd z^v?brukqSfx$NpSEPJv0#eV(P2fey)glu(V*X$h9;PwFJ672ciENz&fFtLld(47dl zA4R}1-iv_S{^&h;k*9+Zci5M{CyNkfI$|j!2rG6LX1e>A$+Lyy`ExT~_()qGs=M^Z zwg$!Ffi?4sN{AJpgFASG`3M#YRJ08eW;joH5Lc!~zkuXfm-Plu@8)yv)~ILSh$b;l z?w4tMR!TIhX;&~MxGLMg17=D z+1Ybc-BoPqTHI%C=AeW+_I18h_RKlG+H{7Q5r-23t#$$l4ixAR&Og;d$(HrL?$fLl z3{~?qs(i*FuV&FA8!bVS>&BI%C75zLhjH5?|M0=V-LzHdX|gyPb-}GJuPOMJ+DDuF zFWx*ij&#QhhqgZ=J$|@wI6U*7&rigcPvI&!FJtD+)0j@Pr<1pu7ZBjI-C89Opp1#? zorULb8}rvn3B&A1^PC5$DK%cstcMbZTvYc zZJ5{l&;3$eZyveUxSjEwly9GfVN>|KEkV0GO?JFv@YYcLS8dT>?F_fSj~l0Uw{e=0 zh7EqvCtrKCWM;tLWig95iA9KUa9A=kX<{ZY7}f(Sp%<9*N?gnc3XA~u(CB8d33H6p zJg49+9m(2Y6vStee$U1z;?5}I&L~bhqewfWNIRp5nksvpW)x{<6lr4=d1VxNV-#Uy z6mew~abpx|V-#sHincR~wlj*lGm1JGMcWz0>4s69c1F?7C)&;@PJ>Sff=_7d?tCH+ zK5-g+qM1*$jZbv5iBXjn3t|tk|FN~CU3jc1Xotlt!1BkSn62|?C;X#W=Vn6glXRcB zhxvRv&&T8kV0XJOyz|Y%J9`x0Exhe+;SFQHpi$$$W4^#%w!e=IuiY`c>KI#hj5Qn? z>wM2x>w&T2IE0rr{=i1iU0eU$?-S~ApOChF0=#QyW-EK!7~akU_kMWZXXid+_gTEp z?0vTHEZ~+gY|LWi9%dzDBJWdspY1yX*xAC?nxCirUuD{(x7mH=Hr!r5fxM%cj%QcwE#sV#O&f^{iuh|{fs<0?&o3l+YwR_iqeX2(98-I^$R|Qy%<)mS2nJfH?Eg9wwE@xH&0t_ zgYBiA?ae#etAp*S4|mR&ZdhO0Szp*WUz|p*JL`)(?~5Drn^)dP{VV%Rga0M7zj7)F3773$;|i?7 zq?O&O;0(;ps#RVQ&Ww8{pBN{Ai4LrFz;@MR6b%9zYR8v`Q#1}Az*epyo^I{TO_<Hz>X`^qF@j8oCKrPt>)o5&O&5x zY`Qd4wy@vi&LN1}RIW2z6@)r=OaoNsj{N56wBju*SmQuIQ`t*ZC~_Z_1bMYHqx5;$tVV0a=>0@v&YRH zyd2W~CgbldcrH6znfEbO_K{ZB@z>7cI|2z2+A%^Z``|76kalic>KOY{!L0^_a_;+# z>DxpaD({|Or*+M8S51q+;-_J4{lT2ICC4!S{6*^ z-(n|b>TTup@!SUgr=!NIAb&q&sVMsbviJYG@ORl0rZjA> zO4eDlITZsr%0^Pz5bw~EDG$HNF!uQOY?I#T87I~q@P2dOo3|bKlQ-#q@3*P1E{WG5 z<#*CuBEgUAM;qp~S)fg-99UN~OCN<3?&g8uz)Lj>6l5#Bs*f(SKrGqNe=}<})5>QS zD=xAZmL&nc%Hy#ALOxqL_|30IU(P3CuwtY5}bY#1%oI z6oEnn<)pf{#)YuAF2ucgA<@1{`|3^m>efENd;7{xyHIxGg?Ug<;7-1fclw3A5m4|- zL6zKEIp4Ih+_bW;tvvlz^^|_RLRh+22#bGJg|J0`hl>~9SaGJJddh{r%VuPou#F_s z?58A0L`B8JwpszUG;GRI;kf9p*p}&(y6Wfp?^Ttu*XHfR?v;0*(w#CsCu>^C28OK! z+*rRX0eK_^n%JSOvW9^t7%sz)3EfO+^A~)l7%(Rv!^3FVZ7^`JnCVyE6B@*N>7%-$FCW*H{ziV8B?7jIlGlk6!!}X+ zm?+SUpS$UDOrhUcKm<7IyBqJw9jOW~Meq!Ammn4*TocEN3(%IaoAkxKy~Mp>HL&Qf zO9j`%;Wm%T#Xb`+CB1p}O=|;bDRyb_R{iPA4q}CAe{i$ccpPKM$&{x^v6cPI?>-6L z)_D6|XlohRDqBYl`0#MWta|JF^mjC42Va>%oC1HgW%-NPvRGqFWstK}mL+Ww*eA8N zC`;fx86y0L^Rso#nrE)o-W_Vq`D3URUJ$9lMzV2?gXH@WFF(T|Ua)=iwIp~P%=576 z_ez9fXm&(wluZk|Xa&3(JZrj@E!c_R8idpN(3rs~f@>EX;(7#2jQZg%+ULi>xadjn zJPk0gX#)jul~53^o?1t9mUolxOtaa!NID!2qdVL zs}V@!CRWVa)H|zWM!8nVikG zPB_hDNQViZyP|dv)heywtignP*JRBiqMHHcG8qgOwIsm2%oN6Vzkg~cL!UbI#Lj() zDcaI`D@r`w(dW8d_j%o@9K~nBcol*mRxD*DO`OBC4W^L5l{!4a#JHM(k7FETz$0e8 z5Ib4jnDkl%H;X?6TEN+@CpJ?z<54_OfOn=W%$(scG@NnmaF~rUw8pRWXg>ed z1^r(4xli0mxJ0)6z(Hob}FBwBy?A$XLBe7(0Z#G1j^< z*19p)Dr?pwV?8bUqb;r%wcxA2ZnduBBe$2j3?*@*B~~~*!mx8rzB+6>nCr;5JBY~D zAH%ch7eB10lqyD?gHmB+#OrS#G#$)QIrQvY`$w9a6Ii|s4JY{rnOERyrFp0vX1J8bLw0KXNtC2 zaFQ=Y1~j5e4ulpnfCC(w(k;U-R6i`W&O!uRQ1_@t@B0Mopi5C;NP=?`Y+2Lr=Wh?Q zGdR9~1{TM+)mIbW6K17)R5Ae_H!~)~7J(XtL*%+zZLm@N85Q%2u*&cA;0!ZG!#w;b zSuYoQPB&xbb>{xEq`mD{C~dbwsly7TtX3#~%+3dJnY{a1S?x`BaJfyTc5wH1KCAe? zwv>HsDf`+|#@aG(YfIYKmb9-eabH{FwzfpCEpe7XZOV}0{ z!TaJ8*2N{>EH3$GamnlAl5Q54ye%$*_r+ztSzP9QahY!xm$EM|&5MfwFD`vwT>7@S z#M8dGY%oJ;TU;88i*m=}B5+$=!oIi!78i28xCq=9m%c47bz5B8zPPk~ajBy0==kS< z$_8a&UtQw9x}<$|N&D)O_thnDt4rQjm%Ohod0$=9SY6^+UBau};rsVTzHqSG^?4`m z&#d{k`H$K4Xc~M%a=1TI!+iTZKjinnzt-k9t*G+x%_VJ2gDE=84k zx}dH#rc0`4*Y}sVVn4e=SDe*ivdnbZ{LvKFwi0)nuv2!s^~y2?aB7FXOhBu?XE~30 z>1`W1cGld2TdgE`1TW32HWF%WO#lv;Hyo~VDSM`}&yLkcXFo64nIC8D(JK8hpKmy* zKkh@8$46WD`|L3P(;KpX$&R<*B!@A>M~@QFU?-)%J|aH7Jq!l?9UU0h3;gWSFHX9B z#!bT^<%qylgBIn-E3taFz_f!inS4aBcMq+m$7Sl!I_2w&_LOo&Q28fy$0HxT=fY2a zpNHvB#R31f&yJlhzWVTo_kSk?=;!`=xxY|$x64sZSk|#994W%?(NS=*;qH2vYpXC~ zUPBu1U=BtRDY)q~<8rZUJB^7-!v==te4AMNZGbca1c69KV|R;@!VARouVTZGw2*Ci z@#BWEf9Vg5((k|hdpAaZ9;1lKJVY(1^%xc0CWD;JJwye!?MM@beqh_d9E>uCXbv8t zq%lOnWQcBHXwLT#_1gex1NpSfLzD(HLIs5}LPK$+Lyu5Dt{D4wzBWL=`|$Doo3B3H zIXR#2hE_g|taLXvkNGMt*VA`aBlT&%Nyvxn`4^8?Cr#}L@sNn4j(xTD2)^@=lQT9U#JE~PAztXwJL94gGd%7y90gXvzAlJelN_+v<9c0T$Fv27DUa)21F?>5 zagxO@5gJ!sP2be?>UL*974Do@=KIZHI&KCd``&hRw*@DzhjQ9@9^Ms>R?NR!`-|j}Ruy3CE#Lo`j zmqImPM}*yumd)*G+T4zM0KMdPv~F%k+wOL>?QTbZWY68%lAR8=WaZkpb~IKy-8>d| z?GKGxyB)1BxgE`SNxooF{F3rdc))x6d=Ayzz0yI$5Av_%y0@|!I&F*7)6bJJL;cBfI=F<4C9) zSPMhVBw_@bZj2_=(t~W?1FS>zQ3+f5rJ!s+MSNd4LfA>`>8>MmOo=bzyf9&}!F>Pu zAp-R<&ydfKxru!fOwXaZl!PYJlhA%;lV<{EMClUz0!&a8b|Rub*_jgob%W3 zQ1y;J67+K3K94%ql6Zc}f`rm1{ul-2Czp0KVE=X1h}B$y{jb$ub!)ipr9H9ey2vJA(Xj_rK7>H#u5Rw6uy;sK3k} zuCOzV_N)$W~<*m z-bG;OcexyV4i3^$MRUL}6gq}>LgoO_q~T%(mswiFb$Hqgb*Nr6-q`Gbkw-bxFbb9& z-6hYQC0wDm>V8c;`ON~3D%TCaVK4N^?>>Au^3b7ZVOJD4@p0)+Wg`YMJuP1z+cvB>`fN(MC)ps|(?NqHy6x z%&Nwolr01h&PT)pY!(KEp`>_#1?B~3zXb;%zV>Z^RdAM~7>#g5vRUvDl>%2TiMcdH zI>KvVfW9#1wh$ckDYLr{s?GFl06uY20$o(no3r3t1iSZ78Tn-f_Q?Z$LNh^YM}`}H z_pGcDcxXYrWtif`I24~VG2ANc?F50#QjMYQeRQ}(NLg%a7lKJ}Wy%ljHGw|l6`P6E ztX{Bo<+FWOuGAj+Y{S_xzP9lSQKgC|*o3S!-o0_+yg7_xtfnPU^tF8}E?f4aZ}Bk` zbVSr#{i0zO9ZD)b;S_SQ2g~j?M8z95@nW&i_3UBgCw%1DBwG+_PJ&nk69+gzeAU^L zDjw{tH62uW8crsgji%@+>lXS5j&jTxD%P{wd-GZTch%Tzd+fqRjYi43kVL%SjR0s? zsGgk~=h30FE|aSLEB4B(x`ab@2tK4C1<4wQ)2#YeXjD~wCBUE;S$tydBd%LS)X5hR zSkShm1^;=)fzib5iY^;;lJ7}fVbWirS_SnXvpnM;R&a`E#Fxwnt#1)fHKrmkM}Z*B zi!VEH9w{Q*qFIY&90qS?aL*YHfFdw77H(@NE*ZXoCnMX!)BKt9I}s!G;R18P93C)O z5eijs9R1ooPqQS&wwP?KwoZJ3AAkGixThW0e2agZbUybRIHrf-gyNm=MH;=IZD`C` zjaS$L!d)|;BSANg;GA6ctO?^Pm$Y9vCcoXk2ATB@Ke{vjig`0*~+h` zA9i!#r~RT&Lj ze0g^~O;R98*Y{fgNHGq!idi}4xR}rB3#)}97c!rN>2w~*7xKAXU+GIg8an%B2qSde`qW+jH?pb5yh@f3=$>ZvrNEWP$-M zx=WqdTpObar#*=~WIYvU7R5&|OBrRADa5MUtF}Y?Yaa*6m%n>+xCKD>a+wKViGZqf zhLaHS~{krmvDl}~-CTN8mI+eya*oM{XP4AC3T2GDO#Kam^ce4C;k+tAlt zd36X~*POjb7Y_7lff{s0!re!AI~y(6&+)DnOWOGubfz9JmHX{uzR!JylwbVz-X&+%-;E_EQ2O1kq(r*q30m6eh*;@iSd5A zNr~=}6@Ty6Lw6s^8jgeu2eLB5?{jAqdXmCFinAwzKuWaxghQ@o7lSr#nXG@AmOdD( z^Mh^bD3)I7rN4dm^#}FT&m;d&82K`R4(gI-IWBu$`iNfB^X#3~C4{GrAopw@rG!Ek zBfuKnmE3;?tB7dMcqmsKcdt_D>R0;t>vzBT?(N6BEu0RFdfhysk=43> z>)$w0tD*kn$qmTb1tfv9ax9L%l&5&Q%eU41dmKFvn_Rgr_yt?v4XvxOr3qROZeiP`2IPQVUK^FvsU*B>LdqZ0`=hR7#Zg z%<((uD9wkoveB|KP^Xle$@4fCt{d4;Z@xX~aSmxvLSj^Df#0^;{c!jc94)c{CsopE zdK0V<^W{TBdv6|+t=UHfz_JKC1Gh;q>D|{SwzE%K1E{uU-?TdlNki}yByen|gb-*B zp61q|2+6^L8fCP%v{16D^=Pa}6RcY5f?;NTLJ)?k0y1DS^A+kUmgh6q5vn>aww>?R z85^@eP$@_i&RaD1P_Hm8>-H=}Nlsw`Tb`U6e9Zx@4uRfP=1XUNHGGQL|L45= zyYm@qaEfA22J}~KyHgZby$536pY`U)DfIU3*VhB#yN_SI`SQ!RpFX|&^}Da%eRprx z%I4ns$bztx)~IZrAdr4)@p0qF`<3@{0B!2prx!%jk)I?qx{lRL1m zxCCcyNk1po*_LWQjB<|0uUdG8RdZIsvu2>)E}w=RBo;hH5uF>Q;&3WS|s0{1ri~}2uSX8!r+-m$%7M2P(fngyI z=f#L>qM&?*R0hQ>-T;T=ipa{7g61bsq^8Xy$G$71UlyfIU^vcQ%L+y1&hTjP1?d=| zU*ACpih?rGbC4F%z92E`(jh@S|Cmr7F=pg$Hp)lPgTcLa5I`n7z)}Xl#TfQK!!O^& z=*$3O66eAd3`K~*We%>Nx)jr`s``_w2f&92(0Dg-QAlA_xrL9@=-sF9zJ7bu!_mdx zkSVORp*eSnjqkZjWE`+&O85wey0B!kL1nw}tX5s>^)WsLIr>b)x8f{UhE*~@A~#jt z?{kmR&e6f{T03JJtx>g=d$xlDazoLAUY~G9r>B@f-ceqmz!x9B|L*H|#~8DE)uhtg z9Z`R4yZI=TlBWX%v>(6EN{5M~>89|4ne%{kQPp5b9 zufd1Edi&|ix9{(RVn(-VKHH%L+i(Q-_BoN%rs4~{EHef)ZDP8FlYUP`F-CHJee4&3 z3%k6EW(ARnree9&bt$^FVm+p?IIzdvZWg;M8E-)GU#!*2KAAZfr38&W1u)CO5xAHi zD{{iTev=b4C56n$zXlDG*p2NTu{kyZ+1G_AquTCArzL@q8 zbK-@ebN=iQd+4BdU;Xy&cb|^td5GBLf{VQ;(LVb*MiJvSHOaU+291d;OyW5hMe9kr zq-$Nu0ZT}aZ~x7^dyOKjCZU$D(*(`#U`}*bz^7lk2(*?o7;H>c>P#)FODDQ6S4#N$ z%P6z`l3SN^`bEbAj~mIRyXB&qk+i0!heodNEBX4Sg2-t*b#bSq+E-aYU$mrXd)su< zYebas9=_OJXVVE323{SOXOF9yQS7$wa$~U3q?ATVq$0;ha^)d!(Xw8m>lYt>^P9s} zw2m(6EIPz`#^r{z7cB2Bll(+!tn>qkxD=MB7F@k>{YT_?T+rSFqH-M z@WR*YURsb3dSyi4vdcQ6Vo#d%g33&%AaCUj?aG6FJv#?<@;M4qwUD#_~ypY{36poT?zCY8lm zeH_FPhtf$12iSvK$wm;uns%7O)l>N84&J@W`?%%b$S>PU#**iRptLC#`RYzkcqHP1 zhWnHy=hX?T9pFA&l`|%5wx-WETwel#5iS<2)4nF(61@Q=1Aul zT+b}r81yA;&98L)$G7i)``z!p2=}sDTh}IS!L=@g>7>D37r_qrs~OUVZ*pjFp~A^} zIFZ}!Jgzh&*3oz}OVRb=e&uEgFt$%srqZ}0#|b9NXNbjM@SE?|Ji4q+`YRYBCx!=) zeZxRWh^c{MVRay{9`ptcpPq)T_770VUReG@bjo9)&(_dFXj|I2i>>V~&dW}Fx?}GhB_mD zw01(MAo%w(qKXv~T&1HHt5s_>Rgq5vdN?4A+`sUg$mf@@;MBa9wmAcQwcC)Pr! z(#hx7rJrK_{6vg@|5?>Aipw6Y1!=tP3F{sbS>ses>_TkIP}XvP9;=FfeOC3;fAZgF zRuy4YKS1wzL+|(*dYfT59L{P)V5?*+vuDpNKif7#n__ko4C0_X2<@2he;)ngOZ0CK z^xt{vvNPJ9`ELC93N#?R?hDA%&bJq0AjpD6J&041^27Z$IMT|Y2FK#pJY`w=+Ro<& ztK2yuoKa=y@nz$k83cY|l`FU1xNq8--C%_qYjnd#1JklGK{G{u2h$7PRqXuG{Bach z{CrP;|2ZPJpxu5XP`;lWG_I+Nw)86iZ|Rti2s8hAJTU#$dEig-k$<1LUiv%YdYtq?}X*$ze|?)Lv8!3vYx-A$)ErFlYjU2 z_EXNSpXU~%cfTn9QKR_j`h#GQ8Dx*z_6J{XhjPjz=9qHo%d2P<%H4K!XU%`&x)_vE zm>WserX;XPAB*wu6U-3JkDZD?cAgY?0rcZO<1kBj`^^-YUs)d|gXcIpHF`_1#CQ} zd6xOy`bUre#Zreu&C~Y&9r_^>*>514ktfZbc@0+3ejIzl8p)pSZ^$jGo_rO-u>0ZV zU%DmS-wkC=9ZO!|5LYf~!?I#$I-}6%d+R4yKcrgkG)H0q^~W;uA13RMTzVcq`*>N8?Bzjf>H5iP4RVVQn0t;a_PT{XscEzt+nzEpb_zM})#D`#}usdj^=0%0i4tqY(S zEaln;QS^#-l zo>a~;Pz++@eUYk9zS3q%5{F13P&Ma(6>FO>wD_6JdVB{g24{hCe;57Dz@h0!V@PfUF3K#@Pbfnt0=4WJo$8q^f+}}g5`^J( zsMy+}p&6^xV(WhIPhg*FncZ~HCiEm+hG%kcWer<>Z@0@m%|=?G=}DspkVu06Z<(h8 zRinUqK|zApcT`{}CIufNp7#+uTW$O7p((GC{}aL-j0=cnM?2Adu&a}7w!vL!EvmEl zf`J#Ih$%?rMQ#-_6eDLJv6Xyz`5J_$84$u66-_)Wl%#8UP$|53$5-yG1#}#3``Vy zZe-`n9&T(FDq1QRDq$K#2<9vQ1RSRu!as)-TI_f?-+cf_@r(P!^fIPuxKE|hm&U<| zKga{$r@L{$nAa$GRB)`+1hAh{?zw={rSD0G-jG#BQ!baw{G=c7PvlqSqbBN%@s7{6 z>0oVG?DbqK`FW_R=cjUouzyciFrJhclDv6cp`*=UzP#j0>(1xbCEp~JUwpoCFL`&4 zdez~#PV7#@7_Pu5>L{e*9P)h*~`T~eEatOu~(WprKnTd+9!=JIjMJM zy5yuTIRREW>Zk4^+W9ASP#qmqkNs1H)b*ev043^==&O%!KV2gW+;vrZY8Sc-Q%gEc zB%{}|h*U(N)kn5V zzdnV?W0rMl)bq@9)$^?9=C!M2nimNE*P4gm8@x{XJy(> zvtKxsD_sTCwG7Lil-9e-G<=&Tl|(b_5~GU7laSD6TytJ&+LcAUxf&LJdFTW?@Jbgu zSMo+LhU;TFuX#pdgU6Cpz+HMFb3T~t@pLe06-;7+kYG&mpEDld zN|r54IopGEO_y?BGlan!T{tUMaIR3zdOoG|mM=`yJ1-7^0-~Jh>N%X(+~@4`WQ~_5 zu@8G8oii@&yk!}wt0@SUgylo8q!8yV*LWe(oII+tU3gal?OQQG_NMlNhqZxR)Rw^Z zf5&*ndu7qklQ7|o1%1^RC(!wpYdp>+B1kV_vR#;!P{Mh~7|2b1ixbm<+*L2W70)}y zGhtX6R?RI4oT~GsxmM?b2W?n$T#BU?)Nu~pDxC8CRk7c)DsK7JC^v+@<0dP}^^jXfEeH&uHwx>xE6S5krO&amNN_pd*$Ood&j6THD|3 z*+Pv4Da=JI?#KJH?}P*K5R%_H1LC z0n4vIHtKo;I;rrEGO+b}EmkXTVoXLOI@g#iSTZJEF=t4ajp#I6 zNv=_FE|)@WLn5V4LFSW2W%V+1gvLd$%~xiQ05$0+YZKxS2JromIjfLJ8xYDzLrr0?!j~6xc3$ty=(rXo0<~ z<`D;-oeJ&9hSiW1_VmzztD6Fhqay9dEpJDfOA12(I5wIAJi~v&6A6#Iuy5}@3d!9c zzW%!YKX<(J*<~NYnKL>*H<%xlcW{>^sLAX^E#tQx{maDD?Q^#4X<-i$fz5ED>l}U> z0#X_~WtsRQ|CK`C!DRaM~Y+aDrMd)rpWw;TAjxN>4 zub;O{6+T0NHbzxh8057{QZOx*;zACIK0GFr)l#fYYta`vKtY(^eEQu{uAv5rS0X(` z`t6B^m6h%q&H1m-+~aj)1WM=|7d6qM-Vpe6?xMH;OdSe?$!O84V=>i;a(;p{>G#-W zS1=yC5O)>E)?^>$lYY}hb-O40HnAK3#cM%W_-jgAj4Jai`Z}mNQ4qEz0*Z+^5Bi4_ z9l%|mo@ zJHjds2Gp*EFBG9-F!zg-y_+-u>OiqWH}SfJFB-lyt+_jKwtlTncU78)>eH?t0_P}0 zS3Y$7Ou<=}a@YFOl0Z$@QpVJ}O`H2@avLqKqrqjgx6s@=TH8irUHD)40O35il3{xS#BI3|rSn1I?qfx(49wND zOwem>4H~pB(+-VB;cqoxb7l7_bbIomNmnSjQYi@eJsULXyJ(JVJ82DWq_k2wXmr-~ zP?x+J_NHG}$~2OS7tLs&-df%Y{v(QA^JEf0%kT;yw_<>dUAxb=lW@ErEM9xHsdvp@ z`34vqM8~V%Dsk^tu@l^8%Lf)*E(y-!{{m+8WdR&#!>|LGg2^(}1jcmUUxI6ZnT|#k zf$QTiQQD0gU|a?;GY%U27_Oom`@qpVIq0#!VSnK-Wg-qI9R|4`@J?u(gZ=fOFKI4BDi_!)EU{SnXDqH@YFSG8HPZzCQ zSWMShi(@fVbRD%p*A*Ja&Q&sC?$`QE3L}2t?BD`OZCc_IfBe35iCprzC0g0-R9x+R zdeJBC$2Z?T#%guo_4zqD7^x(NIxi3J1I@}=lSOCQz&r>!+g`2O?;fJRp*(Wdbg`el zw)*<*3_x)n0NcbxaRlzesN_XY2Q>VPuikxn^XspV*BjTjsI^F4>-d7QeF62KrCV~L zV!lUBB;)ZVZ{L4;*!e_ue_foMlj<^VUg-(BZ{qqkjr-` z87~ef7eRx>b+sC>3+nWX)AyJfz!p2EDQQU2wSUyY9z$_!4bCAU8 z)KtYedPJALoHzyHR|yigxDiEEsbzSmBXA^buyTl6){oSQ5araNPc#gL!cL;F(#RBo zK7CrhS8N*;>gLFTKO)(*`b5+w^XOnrC?j-YD!9?JmPZhXwlXg9T8bFm`Fh9O6yd*etH83%I- zvPn2U>qOpFS0c==>MY35gP)tI34%y8id|d1)iz%7Jj?CMt;19Cw#y*}M*vUrO$v9+ zw+Zv3=H)+s^Ud`>?EO7kpe?7mM2-L9MKX@dXn?rzS9?lu1ef9TUvN)nYZS-8w$d?I zBm0`-K&)&t;!_>5(6dt6h8c5anCng=jvAN1XyQe|FXwj&qhaK`v6SK)&Qz2ZS1oN3 zzf9XeRuVO28SR>AtI^#4biSd7`v$iVYcjt~yhQ7nhpmKqcd_YwSYqCYeLef&A zGOmGS_j4E$vQy#-UClNSGHs}|mTmY2)iCssvL1p64 zBmFZY-M&UtIk8l9w&5gW_B>)-NkXVYTYhTNqOFz|N_G!YRbOU%r*K`1oY)A|3gKl0 z66=q4#?Foo7c!1C)S?w|QN@C+VXZ|@uSJPK%~)uZl4++gX*|X4K7~5jvL(ML2EW_D zqQA7uC^U7a#S7Er>pK^%)O#KpVhw-N=h>fi)`O%G$~+ra!%)1QLM((qD?f6ZKpjz! zWn|9h75iDoGUXz!ozLZp6NkEu-b}hG8+Z>*zl&Fklc6MeL9z4KLXbv5Qz6WhNQ@GC zBu>g{i}#a=qdl?SDRYPnd`7O`4Usr2v2=l|xV5qUXP1l{wK{(6oBRamXk%T0J~P z%e3_RWrLUs=#_;@Wz1d*vU2;h_MSHFg5&JyX(RAcw|cH#3J|T4oj5ntY5$<-5lk+s zdb}zNj!0YV3V)oF*v+F$?GtpH5bxq9iPQSxA2v@)*Jm@_aWTz?zxXNv>U$eF`Ib#% zY^jd&=g5JL&u9XD%Te>PgLsBj|IWj66#^AsDo%I}=H+2HP2EAgnyZSe=^nYkl3=F_ z5;O2A#eGjVNPwriD~wZCaQ& z_(_e|7NYL4?~x$ykBrUR$8?`te}Gt5Uy@Sn`4=zf8U^iz>xc*v!!-fr7A^bv`q92C z)lbols16O+hKfA;Gq%qzBcFyGP&hWnRh*XfOF4EU^AlRSgh%9gLP8+ag#+vtbX1*^ zqZd6TbyP-Lsjk={$y26gePjoQPzxX0Mw6sTSsYPfexkL{_ar_YNqhxQulIlo>pawL z$)=M}*K?Rjs7eU)kL{GJck_?GefR#icglsMrT=()LW6G~d6)V;EH>@nmjEbHH-^KX zkWxi#Vg32t_hUQf?Kj`zZ2spN^H(GJZ@&Nfuy_2Kz<*%^fBoSP_anND5nX_4u0M|K<@bPFg4q65>D9ByG__O`l5NS%SN|jweo`pkZ<0;KN#!Y-BF)j zIcXkIUc`AW+C;WXf6`T;`p9-oSUc%?-YjW;cuRio{afONdQOrXW(PBse+7rSkH~!Y zW89B8ecFy1d28us*Z%zH95!{69iy6OD`v&371*j|yr>l}O=V`C#g(q4upe-L@{{N9 z-@X0AeaA0F*Lu;`z<+Mf&lkcbX1ZTPdvte~Ayr_R9o9Lz9Diu;R|i9BB&2jW!I93V zsY^1B9dJ8moAah~9SNQ6D@BdnDNSw|*jYMqesVEuGrEe>lcVF!8Mc6$P?aJ>8R z>e=lH5$(Q_c%nTgx2L1|r-3zr0!ExDm3=+0%AZ5t@So@q5FR???hqU*0c#bM>TB=f zI1j!#KqgvgGUC={gM3E{udRY-fjx~&lo)VvoX0&xW%cxpgWcB0NIWVlvpT(v=<+=Y zE_sbK-&_eSe1+#5oK$&fr2&Z7yY9qG8az2_1zW)c*X|Aik1{o(<14)UT1>xc|1&O= zXUQ+sULZO0OZcb{*!CvHsKtC*X{V0Pv2v9*Yh-$Pta1@!Qy#~rQuFnzPa0YJQj1S# zt*6<_^^+}K%2P$u=$(%Gn<6z5<5OUsmmRcrInq;skw(ntZk;dr84!bGoVM|0XeJAK zVT^onC!x>MNnMiuP6>%Pw=3wUFKpD}q}&*$%+C`!N>^G8py*fW7hUMYKs}(a{NX{R zNOG<91l#K-;(KeLrk*k&p^uVs`2de2z?4=5Y_lCUjjfW`jW(`oS`cidIK#CGHcqR; z+3ePfbr=LVpljAf3Ee}IGvzx`+FWlqqY%Kmi3_uOkkT-qo&5&Hl`b~~q*k2Am=4c% zINU2w5}iwFji;$w$FU14Rm!k4?<}i-1I9ZM8r|b+bi4rJ(WoFMJy-X&ILX{N}o5iR6v4CmSO*wzf;rOYz_Vt=k0os|E9|2-2H+@mFqN z{}LPf;>&j*zx?{`PqgI;xZ6PczUIX-&&;$npBRW@2e7J>k{EtSBz0m8G#;v zeG!-hi@U9G0|aWq$fWi%?r=T+Vjcr9m1TtN@VIjoVGr(AvR%CR?I^+r!85#gRx`^D zh|>mvUIu4WZ4SB>Kd#bZ@wIBI98hp-Ppv30~=mm%&?Dw)40gVLfye-y`<`K zb2btfj0I35u(qY>eaI6X3zwb>*4dm@`pTyCZ^Wf=^dSZ3ocj z6=fy?VY&j{pSXVd!}zS7m$xcLT zNzq+bvNFBhH_UdEwRB?VI4rGI|HU~M4Nag)khaK5a6Hw}hUThmTTn!EB7+V@O6hMi zJOMAt=Ovg#`n_0mx;0##meI=ShU+(L&tHHhL3-p{tw80^9~8MK+`oA9yASu#{bmgf zjj&Mk`lubM)1I)?RCA@etbxup<7q_xjM-SK+ouu z&&l_>Juk_}x16+daTKyCTi?Fq1+Us!xmOg@>J=)Db^6?f22O?Nk%|H{Wqj$Ki;Md< zm_DBM5~Zj#>V-R%BoKlZH!RK~Aku)O#l${*Slayys~`90d3XfRL-G(u_z_v(0%i%C zU_~4sx(yBH9gJx)XpcvId%K(TY{NIK38)B|Xz9>8`-OsYS$0@$1KE+A&6usg5CnG> zL@_^Z0J}c>{G!^DfPEO#+D1!lv5txYV4SDDjYPAvz$vo{t=3rb@m*l-0<%+>9pv5^ zcYwUz?JE5I8HOk_s<17;UE0%+p(ITcmE`}&mtC)y_g%~B91`MaN^*^AtVc)XTf%C1;{WxRe{51W(Kx)Y!_Ub z4}_c5VA&(s(gI|b$21VrU7DHkg5n3YGSPU?#5;%T6m5ad)ty6Y1QVdr;prWY1 z!nyuf2ML_{aX@^1T);6Rj>Fy>`(hv6f!Y=9_3X|nj`}m)SH!*u9ypRpkJHTN%Hv7`QTyDB zgypgzIzeZuOA$B;Zg~;xLzja$B974*BDJQo_e?B$Gu@+JP&+!QYFxj+ZgVNeW6Zya!c$S@#hEs-o?!lUX;d5~}BKE)^b{W-tkZgt(s$10_1+Jm%OFEhtY*q>uYFN}15E9s2u~?iSjy4~tiZ))!xXeEa6=sP5|O`}?on zeRyf4-43(R%^c5T7;xTVlnJgH9(2(x0Pzwlx-Wa1ueCh}x|N>Qot&NYmvoz!I9%%H zCcF)|DJi)cb^yirc6UyLSW2Q`%+u8gToQ31a$3CWiC8=vNuZ1B?3`WU(s(~ZwlSg# zt0zr@71V*~!O92Z?X$86Jc0bR34#Vow2vu9o@vFvF$vG!3ncGi2#E|Ni~*5lFD3(u zyj0+snz~N3RNpnWcwwJtLeue?c6sNa@ux=9{_IBg>Y-LGo;-~^kJ%Q3rBZZ)O5i~` zjXbES*|6^_WrvcN(E$^k0){}BI@5vFWQnL}Mo?18Yz^ItGvqa*2Tb*J;q=;!`t6%Lpwe_#P#i#F&U~T$ z`}ni1dyy>9;1|h%7)f=dkHD2cZeX$hc$0_^1K`VfVcFhSw%3*IZH1rbK%@u`sWGW! z6-cVR0$-H(S`UBv{@0(r{P^zM@7{fQf2Zi&p7N#O@lsNR_*5?V^^CUTKDs%LC-J3x zn}Wx(c$1>$JRM8fqlebu;U1?ZZU@Vm#Mc`A-R}=gMMQ>@6*^=|)EH`HfnS_hp_gIz zRz~t>fZI6?_kUS@V=|C}EosXVTo3tF?Dsw6pB&|9HZj>cN#`~B83B`SHH)Qu)kR2OT4i?2@AhEth{`KTj{JRqXK`8?zS$vt;_*+7M9%T!~au~xR7&sA1*_{r#V2bqsj-R-G7}{ zpI|ggkIA4b)ZWZj?zTzS-%fez1iJ5qx9<;r6NneVUToRH$zYuzs26$I@T~@%gdT;G&4Py?lxIB4)!jBfl zuN7KLPHF*4)9qD7Z83)HtjrhiN|C9k(Vi&rFs$GG_SbI@!y0u7O)T|w6{M|fLkq)d z2OgPPX3_HD6!EHMl}9=^0@30|Z~lmkuirK=z7|4c4ih)reLKm$?4n&4poAFF8%ZuE zy)i^d)wdRCk622bCfj2c3E{3_5g3#jG^l;2Vb8GD!ezB;_Fh9y@`{Mo*bG*0N;Ggi zrZ+m_jLz-@P{AkyGx{!R2F`+W5}dlWB{}k1PxSoCt@wi0WE}paf_7@nJGG}-Cyl1@ zgW;ruLr8+c<_a4*k0C+KrYvv>OyKWzNdD)c>C@I*i0;4!{5q>M6+w!KUCgSvSUPv_ zh%b;HHk8NcZL5JCdImd@9*5w!_X;pUrL0)R**mRpR#xXp8qDMf78c1>&H2+0IdePhMW|Btq#uDv~v^^`OU-;I} z<7slPg${v)c|||@m_MogOEgi(pD?j3^RWV^qzwJ=A!$-F|4;Lz^Ao0NX7Ej`ueh7x4C#g!aajgwQ>n{;75 zwDrR^c+8hyy!rpWzxq4){?nmfY)9-Xj9|^_JZlz1P?NnC$0%13Q ztrMuwDWeUq(C$jOw@1Pi-GpSs($>WCRR}(u8i$L5kEduKdBvX8W=oGpO3+yp?}EGF z-PLr|BByqhs$Pk`X&1GdC#{^9UD(Mkxg8{2F7i_CsoO@{|2( z+U0+~{qEz3i}bH_)0c1FfBAyr(eg{X9<6GrrB`e%w3wIK>)$lfsPa^9<;AC?I9bsi zgtur(vnr-MOKS<4ZOsqSYE_Cgn~2b(=~~b0a${FuHp1r?2Oit2#nYn9%|WNBxmM>3 zQc%OaRPkL;*RN!2%8qf$$nh8b=%v0{Nd9dLcqgPPR@PHBr)S?9C^W(Chvz#vdJ}0t zBann<7kgvpm?d=o@({W&4JgNbpfZM`zp94^fSXN_{yrJ=Eh z#k}rz3%BBJRo8Sl`Nl_E%}5l1K2WLeO%iPmO=JBW}6GJi+HB7^VGHd0mGFFK;!Wq|a)+(8)ZCeH%wb z5VsKJt)P1$YTC(_$t*Q5aZm9?OyWw};&J+TeTl>yK~lhhHJuP{N)iEMsI@5!+i#fjJEQA+)rW=85e+ z)Tu9`CmO6L5lO&oRiDKQ(lU#v)IF;VFVl;&ICfEI$&SOi?wckDkb|4y`Rn%bIo&7q zfw};>_)u=kz}`v}2NRMYGjG0CU!m8x?>>Eb+yt{+;#ibRlEzBbxPgN`F>Irb%W%)r zu!XS0&4QC+D^95zEorSfMdxa;3dLkln^lqM60=nqJ(;y3r8p5x45DrKof_2m?v4DMEzd1ro(;`Nn zU+Fa`4g$SG)$iVX|MC7&5lq}kR9r}0ywnN@?#eUZ!NCB>}Dqk%1YG9_drm-;4K}AyOf^v5gn) zy~1r>JO(&alkE<3z2sEe^%oD#na6AdfQNJ5K05x{S8spw>H72O_j>r{v`2ORUZ=bJd*IVrW>3=-`mtX$w>VD#vzb>bEI=z|eSLHV)^&Ebk XPQUzrKmGEXH{bsM8HtF%i$)p%ikAva literal 0 HcmV?d00001 diff --git a/hassio/api/panel/chunk.884d6e32c83f99e41040.js.map b/hassio/api/panel/chunk.b60200a57d6f63941b30.js.map similarity index 99% rename from hassio/api/panel/chunk.884d6e32c83f99e41040.js.map rename to hassio/api/panel/chunk.b60200a57d6f63941b30.js.map index eebb2b207..53fffd2c4 100644 --- a/hassio/api/panel/chunk.884d6e32c83f99e41040.js.map +++ b/hassio/api/panel/chunk.b60200a57d6f63941b30.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./build/mdi.html","webpack:///./src/resources/mdi-icons.js"],"names":["documentContainer","document","createElement","setAttribute","innerHTML","head","appendChild","content"],"mappings":"6FAAe,ICETA,EAAoBC,SAASC,cAAc,YACjDF,EAAkBG,aAAa,QAAS,kBACxCH,EAAkBI,UDJH,+2ipDCKfH,SAASI,KAAKC,YAAYN,EAAkBO","file":"chunk.884d6e32c83f99e41040.js","sourcesContent":["export default \"\";","import iconSetContent from \"../../build/mdi.html\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\ndocumentContainer.innerHTML = iconSetContent;\ndocument.head.appendChild(documentContainer.content);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./build/mdi.html","webpack:///./src/resources/mdi-icons.js"],"names":["documentContainer","document","createElement","setAttribute","innerHTML","head","appendChild","content"],"mappings":"8FAAe,ICETA,EAAoBC,SAASC,cAAc,YACjDF,EAAkBG,aAAa,QAAS,kBACxCH,EAAkBI,UDJH,+2ipDCKfH,SAASI,KAAKC,YAAYN,EAAkBO","file":"chunk.b60200a57d6f63941b30.js","sourcesContent":["export default \"\";","import iconSetContent from \"../../build/mdi.html\";\n\nconst documentContainer = document.createElement(\"template\");\ndocumentContainer.setAttribute(\"style\", \"display: none;\");\ndocumentContainer.innerHTML = iconSetContent;\ndocument.head.appendChild(documentContainer.content);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/chunk.c0a46a38d689ab648885.js b/hassio/api/panel/chunk.c0a46a38d689ab648885.js deleted file mode 100644 index 963217271..000000000 --- a/hassio/api/panel/chunk.c0a46a38d689ab648885.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see chunk.c0a46a38d689ab648885.js.LICENSE */ -(self.webpackJsonp=self.webpackJsonp||[]).push([[2],{132:function(e,t,n){"use strict";n.r(t);n(16),n(41),n(20),n(75),n(22),n(44);var o=n(4),r=n(101),i=("".concat(location.protocol,"//").concat(location.host),n(9));n(77);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(){var e=y(["\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n ha-paper-dialog-scrollable {\n margin: 0;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n height: 100%;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n }\n .details {\n color: var(--secondary-text-color);\n }\n .warning,\n .error {\n color: var(--google-red-500);\n }\n .buttons {\n display: flex;\n flex-direction: column;\n }\n .buttons li {\n list-style-type: none;\n }\n .buttons .icon {\n margin-right: 16px;\n }\n .no-margin-top {\n margin-top: 0;\n }\n "]);return a=function(){return e},e}function l(){var e=y(["\n

  • \n \n Wipe & restore\n \n
  • \n ']);return l=function(){return e},e}function c(){var e=y(['\n

    Error: ',"

    \n "]);return c=function(){return e},e}function d(){var e=y(['\n \n ',"\n \n "]);return p=function(){return e},e}function u(){var e=y(['\n
    Add-on:
    \n \n ',"\n \n "]);return u=function(){return e},e}function h(){var e=y(["\n \n ',"\n \n "]);return h=function(){return e},e}function f(){var e=y(['\n
    Folders:
    \n \n ',"\n \n "]);return f=function(){return e},e}function m(){var e=y(['\n \n \n \n
    ','
    \n
    \n
    \n ',"\n (",")
    \n ","\n
    \n
    Home Assistant:
    \n \n Home Assistant ',"\n \n ","\n ","\n ","\n ",'\n\n
    Actions:
    \n
      \n
    • \n \n \n Download Snapshot\n \n
    • \n
    • \n \n \n Restore Selected\n \n
    • \n ',"\n
    • \n \n Delete Snapshot\n \n
    • \n
    \n \n ']);return m=function(){return e},e}function g(){var e=y([""]);return g=function(){return e},e}function y(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t,n=C(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var o={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(o.decorators=e.decorators),"field"===e.kind&&(o.initializer=e.value),o}function w(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function O(e){return e.decorators&&e.decorators.length}function E(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function C(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==s(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===s(t)?t:String(t)}!function(e,t,n,o){var r=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(n){t.forEach(function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach(function(o){t.forEach(function(t){var r=t.placement;if(t.kind===o&&("static"===r||"prototype"===r)){var i="static"===r?e:n;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var o=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===o?void 0:o.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],o=[],r={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,r)},this),e.forEach(function(e){if(!O(e))return n.push(e);var t=this.decorateElement(e,r);n.push(t.element),n.push.apply(n,t.extras),o.push.apply(o,t.finishers)},this),!t)return{elements:n,finishers:o};var i=this.decorateConstructor(n,t);return o.push.apply(o,i.finishers),i.finishers=o,i},addElementPlacement:function(e,t,n){var o=t[e.placement];if(!n&&-1!==o.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");o.push(e.key)},decorateElement:function(e,t){for(var n=[],o=[],r=e.decorators,i=r.length-1;i>=0;i--){var s=t[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,r[i])(a)||a);e=l.element,this.addElementPlacement(e,t),l.finisher&&o.push(l.finisher);var c=l.extras;if(c){for(var d=0;d=0;o--){var r=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[o])(r)||r);if(void 0!==i.finisher&&n.push(i.finisher),void 0!==i.elements){e=i.elements;for(var s=0;st.name?1:-1}),this._addons=(n=this.snapshot.addons,n.map(function(e){return{slug:e.slug,name:e.name,version:e.version,checked:!0}})).sort(function(e,t){return e.name>t.name?1:-1}),this._dialogParams=e,t.prev=6,this._dialog.open(),t.next=14;break;case 10:return t.prev=10,t.t0=t.catch(6),t.next=14,regeneratorRuntime.awrap(this.showDialog(e));case 14:case"end":return t.stop()}var n,o,i},null,this,[[6,10]])}},{kind:"method",key:"render",value:function(){var e=this;return this.snapshot?Object(o.e)(m(),this._dialogClosed,this._computeName,"full"===this.snapshot.type?"Full snapshot":"Partial snapshot",this._computeSize,this._formatDatetime(this.snapshot.date),this._restoreHass,function(t){return e._restoreHass=t.target.checked},this.snapshot.homeassistant,this._folders.length?Object(o.e)(f(),this._folders.map(function(t){return Object(o.e)(h(),t.checked,function(n){return e._updateFolders(t,n.target.checked)},t.name)})):"",this._addons.length?Object(o.e)(u(),this._addons.map(function(t){return Object(o.e)(p(),t.checked,function(n){return e._updateAddons(t,n.target.checked)},t.name)})):"",this.snapshot.protected?Object(o.e)(d(),this._passwordInput,this._snapshotPassword):"",this._error?Object(o.e)(c(),this._error):"",this._downloadClicked,this._partialRestoreClicked,"full"===this.snapshot.type?Object(o.e)(l(),this._fullRestoreClicked):"",this._deleteClicked):Object(o.e)(g())}},{kind:"get",static:!0,key:"styles",value:function(){return[i.b,Object(o.c)(a())]}},{kind:"method",key:"_updateFolders",value:function(e,t){this._folders=this._folders.map(function(n){return n.slug===e.slug&&(n.checked=t),n})}},{kind:"method",key:"_updateAddons",value:function(e,t){this._addons=this._addons.map(function(n){return n.slug===e.slug&&(n.checked=t),n})}},{kind:"method",key:"_passwordInput",value:function(e){this._snapshotPassword=e.detail.value}},{kind:"method",key:"_partialRestoreClicked",value:function(){var e=this;if(confirm("Are you sure you want to restore this snapshot?")){var t=this._addons.filter(function(e){return e.checked}).map(function(e){return e.slug}),n=this._folders.filter(function(e){return e.checked}).map(function(e){return e.slug}),o={homeassistant:this._restoreHass,addons:t,folders:n};this.snapshot.protected&&(o.password=this._snapshotPassword),this.hass.callApi("POST","hassio/snapshots/".concat(this.snapshot.slug,"/restore/partial"),o).then(function(){alert("Snapshot restored!"),e._dialog.close()},function(t){e._error=t.body.message})}}},{kind:"method",key:"_fullRestoreClicked",value:function(){var e=this;if(confirm("Are you sure you want to restore this snapshot?")){var t=this.snapshot.protected?{password:this._snapshotPassword}:void 0;this.hass.callApi("POST","hassio/snapshots/".concat(this.snapshot.slug,"/restore/full"),t).then(function(){alert("Snapshot restored!"),e._dialog.close()},function(t){e._error=t.body.message})}}},{kind:"method",key:"_deleteClicked",value:function(){var e=this;confirm("Are you sure you want to delete this snapshot?")&&this.hass.callApi("POST","hassio/snapshots/".concat(this.snapshot.slug,"/remove")).then(function(){e._dialog.close(),e._dialogParams.onDelete()},function(t){e._error=t.body.message})}},{kind:"method",key:"_downloadClicked",value:function(){var e,t,n;return regeneratorRuntime.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.prev=0,o.next=3,regeneratorRuntime.awrap((r=this.hass,i="/api/hassio/snapshots/".concat(this.snapshot.slug,"/download"),r.callWS({type:"auth/sign_path",path:i})));case 3:e=o.sent,o.next=10;break;case 6:return o.prev=6,o.t0=o.catch(0),alert("Error: ".concat(o.t0.message)),o.abrupt("return");case 10:t=this._computeName.replace(/[^a-z0-9]+/gi,"_"),(n=document.createElement("a")).href=e.path,n.download="Hass_io_".concat(t,".tar"),this._dialog.appendChild(n),n.click(),this._dialog.removeChild(n);case 17:case"end":return o.stop()}var r,i},null,this,[[0,6]])}},{kind:"get",key:"_computeName",value:function(){return this.snapshot?this.snapshot.name||this.snapshot.slug:"Unnamed snapshot"}},{kind:"get",key:"_computeSize",value:function(){return Math.ceil(10*this.snapshot.size)/10+" MB"}},{kind:"method",key:"_formatDatetime",value:function(e){return new Date(e).toLocaleDateString(navigator.language,{weekday:"long",year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}},{kind:"method",key:"_dialogClosed",value:function(){this._dialogParams=void 0,this.snapshot=void 0,this._snapshotPassword="",this._folders=[],this._addons=[]}}]}},o.a)},43:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return s});n(3);var o=n(76),r=n(7),i={hostAttributes:{role:"dialog",tabindex:"-1"},properties:{modal:{type:Boolean,value:!1},__readied:{type:Boolean,value:!1}},observers:["_modalChanged(modal, __readied)"],listeners:{tap:"_onDialogClick"},ready:function(){this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.__readied=!0},_modalChanged:function(e,t){t&&(e?(this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop,this.noCancelOnOutsideClick=!0,this.noCancelOnEscKey=!0,this.withBackdrop=!0):(this.noCancelOnOutsideClick=this.noCancelOnOutsideClick&&this.__prevNoCancelOnOutsideClick,this.noCancelOnEscKey=this.noCancelOnEscKey&&this.__prevNoCancelOnEscKey,this.withBackdrop=this.withBackdrop&&this.__prevWithBackdrop))},_updateClosingReasonConfirmed:function(e){this.closingReason=this.closingReason||{},this.closingReason.confirmed=e},_onDialogClick:function(e){for(var t=Object(r.a)(e).path,n=0,o=t.indexOf(this);n\n\n :host {\n display: block;\n @apply --layout-relative;\n }\n\n :host(.is-scrolled:not(:first-child))::before {\n content: \'\';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: var(--divider-color);\n }\n\n :host(.can-scroll:not(.scrolled-to-bottom):not(:last-child))::after {\n content: \'\';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: var(--divider-color);\n }\n\n .scrollable {\n padding: 0 24px;\n\n @apply --layout-scroll;\n @apply --paper-dialog-scrollable;\n }\n\n .fit {\n @apply --layout-fit;\n }\n \n\n
    \n \n
    \n']);return s=function(){return e},e}Object(r.a)({_template:Object(i.a)(s()),is:"paper-dialog-scrollable",properties:{dialogElement:{type:Object}},get scrollTarget(){return this.$.scrollable},ready:function(){this._ensureTarget(),this.classList.add("no-padding")},attached:function(){this._ensureTarget(),requestAnimationFrame(this.updateScrollState.bind(this))},updateScrollState:function(){this.toggleClass("is-scrolled",this.scrollTarget.scrollTop>0),this.toggleClass("can-scroll",this.scrollTarget.offsetHeight=this.scrollTarget.scrollHeight)},_ensureTarget:function(){this.dialogElement=this.dialogElement||this.parentElement,this.dialogElement&&this.dialogElement.behaviors&&this.dialogElement.behaviors.indexOf(o.b)>=0?(this.dialogElement.sizingTarget=this.scrollTarget,this.scrollTarget.classList.remove("fit")):this.dialogElement&&this.scrollTarget.classList.add("fit")}})},77:function(e,t,n){"use strict";n(3),n(10),n(11),n(29),n(39);var o=document.createElement("template");o.setAttribute("style","display: none;"),o.innerHTML='\n \n',document.head.appendChild(o.content);var r=n(82),i=n(43),s=n(6),a=n(5);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n \n']);return l=function(){return e},e}Object(s.a)({_template:Object(a.a)(l()),is:"paper-dialog",behaviors:[i.a,r.a],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_renderOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderClosed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimationFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderClosed()}});var c=n(63),d=n(7),p=n(71),u={getTabbableNodes:function(e){var t=[];return this._collectTabbableNodes(e,t)?p.a._sortByTabIndex(t):t},_collectTabbableNodes:function(e,t){if(e.nodeType!==Node.ELEMENT_NODE||!p.a._isVisible(e))return!1;var n,o=e,r=p.a._normalizedTabIndex(o),i=r>0;r>=0&&t.push(o),n="content"===o.localName||"slot"===o.localName?Object(d.a)(o).getDistributedNodes():Object(d.a)(o.shadowRoot||o.root||o).children;for(var s=0;sd#;Jr-Oe0t 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 VHoN~{yISJae*x@+XPP!^003geDjfg- diff --git a/hassio/api/panel/chunk.d4931d72592ad48ba2be.js b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js new file mode 100644 index 000000000..ef3d24794 --- /dev/null +++ b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js @@ -0,0 +1,3 @@ +/*! For license information please see chunk.d4931d72592ad48ba2be.js.LICENSE */ +(self.webpackJsonp=self.webpackJsonp||[]).push([[15],[,,,,,function(e,t,n){"use strict";var i=n(16),o=n(29),r=n(21),a=133;function s(e,t){for(var n=e.element.content,i=e.parts,o=document.createTreeWalker(n,a,null,!1),r=c(i),s=i[r],l=-1,d=0,u=[],p=null;o.nextNode();){l++;var h=o.currentNode;for(h.previousSibling===p&&(p=null),t.has(h)&&(u.push(h),null===p&&(p=h)),null!==p&&d++;void 0!==s&&s.index===l;)s.index=null!==p?-1:s.index-d,s=i[r=c(i,r)]}u.forEach(function(e){return e.parentNode.removeChild(e)})}var l=function(e){for(var t=11===e.nodeType?0:1,n=document.createTreeWalker(e,a,null,!1);n.nextNode();)t++;return t},c=function(e){for(var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1)+1;t2&&void 0!==arguments[2]?arguments[2]:null,i=e.element.content,o=e.parts;if(null!=n)for(var r=document.createTreeWalker(i,a,null,!1),s=c(o),d=0,u=-1;r.nextNode();)for(u++,r.currentNode===n&&(d=l(t),n.parentNode.insertBefore(t,n));-1!==s&&o[s].index===u;){if(d>0){for(;-1!==s;)o[s].index+=d,s=c(o,s);return}s=c(o,s)}else i.appendChild(t)}(n,d,b.firstChild):b.insertBefore(d,b.firstChild),window.ShadyCSS.prepareTemplateStyles(i,e);var v=b.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==v)t.insertBefore(v.cloneNode(!0),t.firstChild);else if(n){b.insertBefore(d,b.firstChild);var g=new Set;g.add(d),s(n,g)}}else window.ShadyCSS.prepareTemplateStyles(i,e)};function _(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1&&void 0!==arguments[1]?arguments[1]:I;if(this._ensureClassProperties(),this._classProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){var n="symbol"===w(e)?Symbol():"__".concat(e);Object.defineProperty(this.prototype,e,{get:function(){return this[n]},set:function(t){var i=this[e];this[n]=t,this._requestUpdate(e,i)},configurable:!0,enumerable:!0})}}},{key:"finalize",value:function(){var e=Object.getPrototypeOf(this);if(e.hasOwnProperty("finalized")||e.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){var t=this.properties,n=[].concat(_(Object.getOwnPropertyNames(t)),_("function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[])),i=!0,o=!1,r=void 0;try{for(var a,s=n[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var l=a.value;this.createProperty(l,t[l])}}catch(c){o=!0,r=c}finally{try{i||null==s.return||s.return()}finally{if(o)throw r}}}}},{key:"_attributeNameForProperty",value:function(e,t){var n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}},{key:"_valueHasChanged",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:T)(e,t)}},{key:"_propertyValueFromAttribute",value:function(e,t){var n=t.type,i=t.converter||E,o="function"==typeof i?i:i.fromAttribute;return o?o(e,n):e}},{key:"_propertyValueToAttribute",value:function(e,t){if(void 0!==t.reflect){var n=t.type,i=t.converter;return(i&&i.toAttribute||E.toAttribute)(e,n)}}},{key:"observedAttributes",get:function(){var e=this;this.finalize();var t=[];return this._classProperties.forEach(function(n,i){var o=e._attributeNameForProperty(i,n);void 0!==o&&(e._attributeToPropertyMap.set(o,i),t.push(o))}),t}}],(i=[{key:"initialize",value:function(){this._saveInstanceProperties(),this._requestUpdate()}},{key:"_saveInstanceProperties",value:function(){var e=this;this.constructor._classProperties.forEach(function(t,n){if(e.hasOwnProperty(n)){var i=e[n];delete e[n],e._instanceProperties||(e._instanceProperties=new Map),e._instanceProperties.set(n,i)}})}},{key:"_applyInstanceProperties",value:function(){var e=this;this._instanceProperties.forEach(function(t,n){return e[n]=t}),this._instanceProperties=void 0}},{key:"connectedCallback",value:function(){this._updateState=32|this._updateState,this._hasConnectedResolver&&(this._hasConnectedResolver(),this._hasConnectedResolver=void 0)}},{key:"disconnectedCallback",value:function(){}},{key:"attributeChangedCallback",value:function(e,t,n){t!==n&&this._attributeToProperty(e,n)}},{key:"_propertyToAttribute",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:I,i=this.constructor,o=i._attributeNameForProperty(e,n);if(void 0!==o){var r=i._propertyValueToAttribute(t,n);if(void 0===r)return;this._updateState=8|this._updateState,null==r?this.removeAttribute(o):this.setAttribute(o,r),this._updateState=-9&this._updateState}}},{key:"_attributeToProperty",value:function(e,t){if(!(8&this._updateState)){var n=this.constructor,i=n._attributeToPropertyMap.get(e);if(void 0!==i){var o=n._classProperties.get(i)||I;this._updateState=16|this._updateState,this[i]=n._propertyValueFromAttribute(t,o),this._updateState=-17&this._updateState}}}},{key:"_requestUpdate",value:function(e,t){var n=!0;if(void 0!==e){var i=this.constructor,o=i._classProperties.get(e)||I;i._valueHasChanged(this[e],t,o.hasChanged)?(this._changedProperties.has(e)||this._changedProperties.set(e,t),!0!==o.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(e,o))):n=!1}!this._hasRequestedUpdate&&n&&this._enqueueUpdate()}},{key:"requestUpdate",value:function(e,t){return this._requestUpdate(e,t),this.updateComplete}},{key:"_enqueueUpdate",value:function(){var e,t,n,i,o=this;return regeneratorRuntime.async(function(r){for(;;)switch(r.prev=r.next){case 0:return this._updateState=4|this._updateState,n=this._updatePromise,this._updatePromise=new Promise(function(n,i){e=n,t=i}),r.prev=3,r.next=6,regeneratorRuntime.awrap(n);case 6:r.next=10;break;case 8:r.prev=8,r.t0=r.catch(3);case 10:if(this._hasConnected){r.next=13;break}return r.next=13,regeneratorRuntime.awrap(new Promise(function(e){return o._hasConnectedResolver=e}));case 13:if(r.prev=13,null==(i=this.performUpdate())){r.next=18;break}return r.next=18,regeneratorRuntime.awrap(i);case 18:r.next=23;break;case 20:r.prev=20,r.t1=r.catch(13),t(r.t1);case 23:e(!this._hasRequestedUpdate);case 24:case"end":return r.stop()}},null,this,[[3,8],[13,20]])}},{key:"performUpdate",value:function(){this._instanceProperties&&this._applyInstanceProperties();var e=!1,t=this._changedProperties;try{(e=this.shouldUpdate(t))&&this.update(t)}catch(n){throw e=!1,n}finally{this._markUpdated()}e&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(t)),this.updated(t))}},{key:"_markUpdated",value:function(){this._changedProperties=new Map,this._updateState=-5&this._updateState}},{key:"_getUpdateComplete",value:function(){return this._updatePromise}},{key:"shouldUpdate",value:function(e){return!0}},{key:"update",value:function(e){var t=this;void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(function(e,n){return t._propertyToAttribute(n,t[n],e)}),this._reflectingProperties=void 0)}},{key:"updated",value:function(e){}},{key:"firstUpdated",value:function(e){}},{key:"_hasConnected",get:function(){return 32&this._updateState}},{key:"_hasRequestedUpdate",get:function(){return 4&this._updateState}},{key:"hasUpdated",get:function(){return 1&this._updateState}},{key:"updateComplete",get:function(){return this._getUpdateComplete()}}])&&x(n.prototype,i),o&&x(n,o),t}();j.finalized=!0;var R=function(e){return function(t){return"function"==typeof t?function(e,t){return window.customElements.define(e,t),t}(e,t):function(e,t){return{kind:t.kind,elements:t.elements,finisher:function(t){window.customElements.define(e,t)}}}(e,t)}},B=function(e,t){return"method"!==t.kind||!t.descriptor||"value"in t.descriptor?{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer:function(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher:function(n){n.createProperty(t.key,e)}}:Object.assign({},t,{finisher:function(n){n.createProperty(t.key,e)}})},P=function(e,t,n){t.constructor.createProperty(n,e)};function N(e){return function(t,n){return void 0!==n?P(e,t,n):B(e,t)}}function L(e){return function(t,n){var i={get:function(){return this.renderRoot.querySelector(e)},enumerable:!0,configurable:!0};return void 0!==n?F(i,t,n):M(i,t)}}var F=function(e,t,n){Object.defineProperty(t,n,e)},M=function(e,t){return{kind:"method",placement:"prototype",key:t.key,descriptor:e}};function D(e,t){for(var n=0;n1?t-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:[],i=0,o=t.length;i\n \n\n\n \n']);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content);var a=document.createElement("style");a.textContent="[hidden] { display: none !important; }",document.head.appendChild(a)},function(e,t,n){"use strict";n(4),n(101);var i=n(6);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n \n'],['\n\n \n']);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content)},,,function(e,t,n){"use strict";var i=n(20);function o(e,t){for(var n=0;n1?t-1:0),i=1;i\n
    \n ','\n ',"\n ","\n \n "]);return l=function(){return e},e}function c(){var e=d(['',""]);return c=function(){return e},e}function d(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function u(e,t){for(var n=0;n\n :host {\n display: inline-block;\n overflow: hidden;\n position: relative;\n }\n\n #baseURIAnchor {\n display: none;\n }\n\n #sizedImgDiv {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n\n display: none;\n }\n\n #img {\n display: block;\n width: var(--iron-image-width, auto);\n height: var(--iron-image-height, auto);\n }\n\n :host([sizing]) #sizedImgDiv {\n display: block;\n }\n\n :host([sizing]) #img {\n display: none;\n }\n\n #placeholder {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n\n background-color: inherit;\n opacity: 1;\n\n @apply --iron-image-placeholder;\n }\n\n #placeholder.faded-out {\n transition: opacity 0.5s linear;\n opacity: 0;\n }\n \n\n
    \n \n \n
    \n']);return a=function(){return e},e}Object(i.a)({_template:Object(o.a)(a()),is:"iron-image",properties:{src:{type:String,value:""},alt:{type:String,value:null},crossorigin:{type:String,value:null},preventLoad:{type:Boolean,value:!1},sizing:{type:String,value:null,reflectToAttribute:!0},position:{type:String,value:"center"},preload:{type:Boolean,value:!1},placeholder:{type:String,value:null,observer:"_placeholderChanged"},fade:{type:Boolean,value:!1},loaded:{notify:!0,readOnly:!0,type:Boolean,value:!1},loading:{notify:!0,readOnly:!0,type:Boolean,value:!1},error:{notify:!0,readOnly:!0,type:Boolean,value:!1},width:{observer:"_widthChanged",type:Number,value:null},height:{observer:"_heightChanged",type:Number,value:null}},observers:["_transformChanged(sizing, position)","_loadStateObserver(src, preventLoad)"],created:function(){this._resolvedSrc=""},_imgOnLoad:function(){this.$.img.src===this._resolveSrc(this.src)&&(this._setLoading(!1),this._setLoaded(!0),this._setError(!1))},_imgOnError:function(){this.$.img.src===this._resolveSrc(this.src)&&(this.$.img.removeAttribute("src"),this.$.sizedImgDiv.style.backgroundImage="",this._setLoading(!1),this._setLoaded(!1),this._setError(!0))},_computePlaceholderHidden:function(){return!this.preload||!this.fade&&!this.loading&&this.loaded},_computePlaceholderClassName:function(){return this.preload&&this.fade&&!this.loading&&this.loaded?"faded-out":""},_computeImgDivHidden:function(){return!this.sizing},_computeImgDivARIAHidden:function(){return""===this.alt?"true":void 0},_computeImgDivARIALabel:function(){return null!==this.alt?this.alt:""===this.src?"":this._resolveSrc(this.src).replace(/[?|#].*/g,"").split("/").pop()},_computeImgHidden:function(){return!!this.sizing},_widthChanged:function(){this.style.width=isNaN(this.width)?this.width:this.width+"px"},_heightChanged:function(){this.style.height=isNaN(this.height)?this.height:this.height+"px"},_loadStateObserver:function(e,t){var n=this._resolveSrc(e);n!==this._resolvedSrc&&(this._resolvedSrc="",this.$.img.removeAttribute("src"),this.$.sizedImgDiv.style.backgroundImage="",""===e||t?(this._setLoading(!1),this._setLoaded(!1),this._setError(!1)):(this._resolvedSrc=n,this.$.img.src=this._resolvedSrc,this.$.sizedImgDiv.style.backgroundImage='url("'+this._resolvedSrc+'")',this._setLoading(!0),this._setLoaded(!1),this._setError(!1)))},_placeholderChanged:function(){this.$.placeholder.style.backgroundImage=this.placeholder?'url("'+this.placeholder+'")':""},_transformChanged:function(){var e=this.$.sizedImgDiv.style,t=this.$.placeholder.style;e.backgroundSize=t.backgroundSize=this.sizing,e.backgroundPosition=t.backgroundPosition=this.sizing?this.position:"",e.backgroundRepeat=t.backgroundRepeat=this.sizing?"no-repeat":""},_resolveSrc:function(e){var t=Object(r.c)(e,this.$.baseURIAnchor.href);return t.length>=2&&"/"===t[0]&&"/"!==t[1]&&(t=(location.origin||location.protocol+"//"+location.host)+t),t}});n(35);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n \n']);return s=function(){return e},e}var l=Object(o.a)(s());l.setAttribute("style","display: none;"),document.head.appendChild(l.content);n(13);function c(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n
    [[heading]]
    \n
    \n\n \n'],['\n \n\n
    \n \n
    [[heading]]
    \n
    \n\n \n']);return c=function(){return e},e}Object(i.a)({_template:Object(o.a)(c()),is:"paper-card",properties:{heading:{type:String,value:"",observer:"_headingChanged"},image:{type:String,value:""},alt:{type:String},preloadImage:{type:Boolean,value:!1},fadeImage:{type:Boolean,value:!1},placeholderImage:{type:String,value:null},elevation:{type:Number,value:1,reflectToAttribute:!0},animatedShadow:{type:Boolean,value:!1},animated:{type:Boolean,reflectToAttribute:!0,readOnly:!0,computed:"_computeAnimated(animatedShadow)"}},_isHidden:function(e){return e?"false":"true"},_headingChanged:function(e){var t=this.getAttribute("heading"),n=this.getAttribute("aria-label");"string"==typeof n&&n!==t||this.setAttribute("aria-label",e)},_computeHeadingClass:function(e){return e?" over-image":""},_computeAnimated:function(e){return e}})},function(e,t,n){"use strict";n.d(t,"a",function(){return _}),n.d(t,"b",function(){return w}),n.d(t,"e",function(){return x}),n.d(t,"c",function(){return k}),n.d(t,"f",function(){return S}),n.d(t,"g",function(){return C}),n.d(t,"d",function(){return E});var i=n(60),o=n(29),r=n(61),a=n(62),s=n(43),l=n(21);function c(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function d(e,t,n){return(d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=u(e)););return e}(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.startNode;Object(o.b)(this.startNode.parentNode,e.nextSibling,this.endNode)}}]),e}(),k=function(){function e(t,n,i){if(f(this,e),this.value=void 0,this.__pendingValue=void 0,2!==i.length||""!==i[0]||""!==i[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=n,this.strings=i}return v(e,[{key:"setValue",value:function(e){this.__pendingValue=e}},{key:"commit",value:function(){for(;Object(i.b)(this.__pendingValue);){var e=this.__pendingValue;this.__pendingValue=r.a,e(this)}if(this.__pendingValue!==r.a){var t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=r.a}}}]),e}(),S=function(e){function t(e,n,i){var o;return f(this,t),(o=c(this,u(t).call(this,e,n,i))).single=2===i.length&&""===i[0]&&""===i[1],o}return p(t,_),v(t,[{key:"_createPart",value:function(){return new C(this)}},{key:"_getValue",value:function(){return this.single?this.parts[0].value:d(u(t.prototype),"_getValue",this).call(this)}},{key:"commit",value:function(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}]),t}(),C=function(e){function t(){return f(this,t),c(this,u(t).apply(this,arguments))}return p(t,w),t}(),O=!1;try{var A={get capture(){return O=!0,!1}};window.addEventListener("test",A,A),window.removeEventListener("test",A,A)}catch(I){}var E=function(){function e(t,n,i){var o=this;f(this,e),this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=n,this.eventContext=i,this.__boundHandleEvent=function(e){return o.handleEvent(e)}}return v(e,[{key:"setValue",value:function(e){this.__pendingValue=e}},{key:"commit",value:function(){for(;Object(i.b)(this.__pendingValue);){var e=this.__pendingValue;this.__pendingValue=r.a,e(this)}if(this.__pendingValue!==r.a){var t=this.__pendingValue,n=this.value,o=null==t||null!=n&&(t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive),a=null!=t&&(null==n||o);o&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),a&&(this.__options=T(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=r.a}}},{key:"handleEvent",value:function(e){"function"==typeof this.value?this.value.call(this.eventContext||this.element,e):this.value.handleEvent(e)}}]),e}(),T=function(e){return e&&(O?{capture:e.capture,passive:e.passive,once:e.once}:e.capture)}},function(e,t,n){"use strict";n.d(t,"f",function(){return i}),n.d(t,"g",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s}),n.d(t,"d",function(){return c}),n.d(t,"c",function(){return d}),n.d(t,"e",function(){return u});var i="{{lit-".concat(String(Math.random()).slice(2),"}}"),o="\x3c!--".concat(i,"--\x3e"),r=new RegExp("".concat(i,"|").concat(o)),a="$lit$",s=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.parts=[],this.element=n;for(var o=[],s=[],c=document.createTreeWalker(n.content,133,null,!1),p=0,h=-1,f=0,b=t.strings,v=t.values.length;f0;){var x=b[f],k=u.exec(x)[2],S=k.toLowerCase()+a,C=m.getAttribute(S);m.removeAttribute(S);var O=C.split(r);this.parts.push({type:"attribute",index:h,name:k,strings:O}),f+=O.length-1}}"TEMPLATE"===m.tagName&&(s.push(m),c.currentNode=m.content)}else if(3===m.nodeType){var A=m.data;if(A.indexOf(i)>=0){for(var E=m.parentNode,T=A.split(r),I=T.length-1,z=0;z=0&&e.slice(n)===t},c=function(e){return-1!==e.index},d=function(){return document.createComment("")},u=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/},function(e,t,n){"use strict";n(12),n(79);var i=n(7),o=n(8),r=n(6),a=n(4);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n"]);return s=function(){return e},e}Object(i.a)({_template:Object(r.a)(s()),is:"iron-icon",properties:{icon:{type:String},theme:{type:String},src:{type:String},_meta:{value:a.a.create("iron-meta",{type:"iconset"})}},observers:["_updateIcon(_meta, isAttached)","_updateIcon(theme, isAttached)","_srcChanged(src, isAttached)","_iconChanged(icon, isAttached)"],_DEFAULT_ICONSET:"icons",_iconChanged:function(e){var t=(e||"").split(":");this._iconName=t.pop(),this._iconsetName=t.pop()||this._DEFAULT_ICONSET,this._updateIcon()},_srcChanged:function(e){this._updateIcon()},_usesIconset:function(){return this.icon||!this.src},_updateIcon:function(){this._usesIconset()?(this._img&&this._img.parentNode&&Object(o.a)(this.root).removeChild(this._img),""===this._iconName?this._iconset&&this._iconset.removeIcon(this):this._iconsetName&&this._meta&&(this._iconset=this._meta.byKey(this._iconsetName),this._iconset?(this._iconset.applyIcon(this,this._iconName,this.theme),this.unlisten(window,"iron-iconset-added","_updateIcon")):this.listen(window,"iron-iconset-added","_updateIcon"))):(this._iconset&&this._iconset.removeIcon(this),this._img||(this._img=document.createElement("img"),this._img.style.width="100%",this._img.style.height="100%",this._img.draggable=!1),this._img.src=this.src,Object(o.a)(this.root).appendChild(this._img))}})},,function(e,t,n){"use strict";n(4),n(22),n(13);var i=n(80),o=n(7),r=n(6);function a(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \n '],['\n \n\n \n ']);return a=function(){return e},e}Object(o.a)({is:"paper-icon-button",_template:Object(r.a)(a()),hostAttributes:{role:"button",tabindex:"0"},behaviors:[i.a],registered:function(){this._template.setAttribute("strip-whitespace","")},properties:{src:{type:String},icon:{type:String},alt:{type:String,observer:"_altChanged"}},_altChanged:function(e,t){var n=this.getAttribute("aria-label");n&&t!=n||this.setAttribute("aria-label",e)}})},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(4),n(8);var i={properties:{focused:{type:Boolean,value:!1,notify:!0,readOnly:!0,reflectToAttribute:!0},disabled:{type:Boolean,value:!1,notify:!0,observer:"_disabledChanged",reflectToAttribute:!0},_oldTabIndex:{type:String},_boundFocusBlurHandler:{type:Function,value:function(){return this._focusBlurHandler.bind(this)}}},observers:["_changedControlState(focused, disabled)"],ready:function(){this.addEventListener("focus",this._boundFocusBlurHandler,!0),this.addEventListener("blur",this._boundFocusBlurHandler,!0)},_focusBlurHandler:function(e){this._setFocused("focus"===e.type)},_disabledChanged:function(e,t){this.setAttribute("aria-disabled",e?"true":"false"),this.style.pointerEvents=e?"none":"",e?(this._oldTabIndex=this.getAttribute("tabindex"),this._setFocused(!1),this.tabIndex=-1,this.blur()):void 0!==this._oldTabIndex&&(null===this._oldTabIndex?this.removeAttribute("tabindex"):this.setAttribute("tabindex",this._oldTabIndex))},_changedControlState:function(){this._controlStateChanged&&this._controlStateChanged()}}},function(e,t,n){"use strict";n.d(t,"a",function(){return b});n(4);var i={"U+0008":"backspace","U+0009":"tab","U+001B":"esc","U+0020":"space","U+007F":"del"},o={8:"backspace",9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown",35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",106:"*"},r={shift:"shiftKey",ctrl:"ctrlKey",alt:"altKey",meta:"metaKey"},a=/[a-z0-9*]/,s=/U\+/,l=/^arrow/,c=/^space(bar)?/,d=/^escape$/;function u(e,t){var n="";if(e){var i=e.toLowerCase();" "===i||c.test(i)?n="space":d.test(i)?n="esc":1==i.length?t&&!a.test(i)||(n=i):n=l.test(i)?i.replace("arrow",""):"multiply"==i?"*":i}return n}function p(e,t){return e.key?u(e.key,t):e.detail&&e.detail.key?u(e.detail.key,t):(n=e.keyIdentifier,r="",n&&(n in i?r=i[n]:s.test(n)?(n=parseInt(n.replace("U+","0x"),16),r=String.fromCharCode(n).toLowerCase()):r=n.toLowerCase()),r||function(e){var t="";return Number(e)&&(t=e>=65&&e<=90?String.fromCharCode(32+e):e>=112&&e<=123?"f"+(e-112+1):e>=48&&e<=57?String(e-48):e>=96&&e<=105?String(e-96):o[e]),t}(e.keyCode)||"");var n,r}function h(e,t){return p(t,e.hasModifiers)===e.key&&(!e.hasModifiers||!!t.shiftKey==!!e.shiftKey&&!!t.ctrlKey==!!e.ctrlKey&&!!t.altKey==!!e.altKey&&!!t.metaKey==!!e.metaKey)}function f(e){return e.trim().split(" ").map(function(e){return function(e){return 1===e.length?{combo:e,key:e,event:"keydown"}:e.split("+").reduce(function(e,t){var n=t.split(":"),i=n[0],o=n[1];return i in r?(e[r[i]]=!0,e.hasModifiers=!0):(e.key=i,e.event=o||"keydown"),e},{combo:e.split(":").shift()})}(e)})}var b={properties:{keyEventTarget:{type:Object,value:function(){return this}},stopKeyboardEventPropagation:{type:Boolean,value:!1},_boundKeyHandlers:{type:Array,value:function(){return[]}},_imperativeKeyBindings:{type:Object,value:function(){return{}}}},observers:["_resetKeyEventListeners(keyEventTarget, _boundKeyHandlers)"],keyBindings:{},registered:function(){this._prepKeyBindings()},attached:function(){this._listenKeyEventListeners()},detached:function(){this._unlistenKeyEventListeners()},addOwnKeyBinding:function(e,t){this._imperativeKeyBindings[e]=t,this._prepKeyBindings(),this._resetKeyEventListeners()},removeOwnKeyBindings:function(){this._imperativeKeyBindings={},this._prepKeyBindings(),this._resetKeyEventListeners()},keyboardEventMatchesKeys:function(e,t){for(var n=f(t),i=0;i2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;t!==n;){var o=t.nextSibling;e.insertBefore(t,i),t=o}},r=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;t!==n;){var i=t.nextSibling;e.removeChild(t),t=i}}},function(e,t,n){"use strict";n(4),n(46);var i=n(6);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n"]);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content)},,,,,function(e,t,n){"use strict";n(4);var i=n(6);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n \n']);return o=function(){return e},e}var r=Object(i.a)(o());r.setAttribute("style","display: none;"),document.head.appendChild(r.content)},function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"c",function(){return r}),n.d(t,"a",function(){return a}),n.d(t,"b",function(){return s});var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function r(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=0;l--)(r=e[l])&&(s=(a<3?r(s):a>3?r(t,n,s):r(t,n))||s);return a>3&&s&&Object.defineProperty(t,n,s),s}},,,,function(e,t,n){"use strict";n(4);var i=n(7),o=n(6);function r(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n
    [[_text]]
    \n']);return r=function(){return e},e}var a=Object(i.a)({_template:Object(o.a)(r()),is:"iron-a11y-announcer",properties:{mode:{type:String,value:"polite"},_text:{type:String,value:""}},created:function(){a.instance||(a.instance=this),document.body.addEventListener("iron-announce",this._onIronAnnounce.bind(this))},announce:function(e){this._text="",this.async(function(){this._text=e},100)},_onIronAnnounce:function(e){e.detail&&e.detail.text&&this.announce(e.detail.text)}});a.instance=null,a.requestAvailability=function(){a.instance||(a.instance=document.createElement("iron-a11y-announcer")),document.body.appendChild(a.instance)};var s=n(65),l=n(8);function c(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n \n']);return c=function(){return e},e}Object(i.a)({_template:Object(o.a)(c()),is:"iron-input",behaviors:[s.a],properties:{bindValue:{type:String,value:""},value:{type:String,computed:"_computeValue(bindValue)"},allowedPattern:{type:String},autoValidate:{type:Boolean,value:!1},_inputElement:Object},observers:["_bindValueChanged(bindValue, _inputElement)"],listeners:{input:"_onInput",keypress:"_onKeypress"},created:function(){a.requestAvailability(),this._previousValidInput="",this._patternAlreadyChecked=!1},attached:function(){this._observer=Object(l.a)(this).observeNodes(function(e){this._initSlottedInput()}.bind(this))},detached:function(){this._observer&&(Object(l.a)(this).unobserveNodes(this._observer),this._observer=null)},get inputElement(){return this._inputElement},_initSlottedInput:function(){this._inputElement=this.getEffectiveChildren()[0],this.inputElement&&this.inputElement.value&&(this.bindValue=this.inputElement.value),this.fire("iron-input-ready")},get _patternRegExp(){var e;if(this.allowedPattern)e=new RegExp(this.allowedPattern);else switch(this.inputElement.type){case"number":e=/[0-9.,e-]/}return e},_bindValueChanged:function(e,t){t&&(void 0===e?t.value=null:e!==t.value&&(this.inputElement.value=e),this.autoValidate&&this.validate(),this.fire("bind-value-changed",{value:e}))},_onInput:function(){this.allowedPattern&&!this._patternAlreadyChecked&&(this._checkPatternValidity()||(this._announceInvalidCharacter("Invalid string of characters not entered."),this.inputElement.value=this._previousValidInput));this.bindValue=this._previousValidInput=this.inputElement.value,this._patternAlreadyChecked=!1},_isPrintable:function(e){var t=8==e.keyCode||9==e.keyCode||13==e.keyCode||27==e.keyCode,n=19==e.keyCode||20==e.keyCode||45==e.keyCode||46==e.keyCode||144==e.keyCode||145==e.keyCode||e.keyCode>32&&e.keyCode<41||e.keyCode>111&&e.keyCode<124;return!(t||0==e.charCode&&n)},_onKeypress:function(e){if(this.allowedPattern||"number"===this.inputElement.type){var t=this._patternRegExp;if(t&&!(e.metaKey||e.ctrlKey||e.altKey)){this._patternAlreadyChecked=!0;var n=String.fromCharCode(e.charCode);this._isPrintable(e)&&!t.test(n)&&(e.preventDefault(),this._announceInvalidCharacter("Invalid character "+n+" not entered."))}}},_checkPatternValidity:function(){var e=this._patternRegExp;if(!e)return!0;for(var t=0;t\n :host {\n display: inline-block;\n float: right;\n\n @apply --paper-font-caption;\n @apply --paper-input-char-counter;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n :host(:dir(rtl)) {\n float: left;\n }\n \n\n [[_charCounterStr]]\n"]);return u=function(){return e},e}Object(i.a)({_template:Object(o.a)(u()),is:"paper-input-char-counter",behaviors:[d],properties:{_charCounterStr:{type:String,value:"0"}},update:function(e){if(e.inputElement){e.value=e.value||"";var t=e.value.toString().length.toString();e.inputElement.hasAttribute("maxlength")&&(t+="/"+e.inputElement.getAttribute("maxlength")),this._charCounterStr=t}}});n(12),n(13);var p=n(57);function h(){var e=b(['\n \n\n \n\n
    \n \n\n
    \n \n \n
    \n\n \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n']);return h=function(){return e},e}function f(){var e=b(['\n\n \n\n']);return f=function(){return e},e}function b(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var v=Object(o.a)(f());function m(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \x3c!--\n If the paper-input-error element is directly referenced by an\n `aria-describedby` attribute, such as when used as a paper-input add-on,\n then applying `visibility: hidden;` to the paper-input-error element itself\n does not hide the error.\n\n For more information, see:\n https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\n --\x3e\n
    \n \n
    \n'],['\n \n\n \x3c!--\n If the paper-input-error element is directly referenced by an\n \\`aria-describedby\\` attribute, such as when used as a paper-input add-on,\n then applying \\`visibility: hidden;\\` to the paper-input-error element itself\n does not hide the error.\n\n For more information, see:\n https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\n --\x3e\n
    \n \n
    \n']);return m=function(){return e},e}v.setAttribute("style","display: none;"),document.head.appendChild(v.content),Object(i.a)({_template:Object(o.a)(h()),is:"paper-input-container",properties:{noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},attrForValue:{type:String,value:"bind-value"},autoValidate:{type:Boolean,value:!1},invalid:{observer:"_invalidChanged",type:Boolean,value:!1},focused:{readOnly:!0,type:Boolean,value:!1,notify:!0},_addons:{type:Array},_inputHasContent:{type:Boolean,value:!1},_inputSelector:{type:String,value:"input,iron-input,textarea,.paper-input-input"},_boundOnFocus:{type:Function,value:function(){return this._onFocus.bind(this)}},_boundOnBlur:{type:Function,value:function(){return this._onBlur.bind(this)}},_boundOnInput:{type:Function,value:function(){return this._onInput.bind(this)}},_boundValueChanged:{type:Function,value:function(){return this._onValueChanged.bind(this)}}},listeners:{"addon-attached":"_onAddonAttached","iron-input-validate":"_onIronInputValidate"},get _valueChangedEvent(){return this.attrForValue+"-changed"},get _propertyForValue(){return Object(p.b)(this.attrForValue)},get _inputElement(){return Object(l.a)(this).querySelector(this._inputSelector)},get _inputElementValue(){return this._inputElement[this._propertyForValue]||this._inputElement.value},ready:function(){this.__isFirstValueUpdate=!0,this._addons||(this._addons=[]),this.addEventListener("focus",this._boundOnFocus,!0),this.addEventListener("blur",this._boundOnBlur,!0)},attached:function(){this.attrForValue?this._inputElement.addEventListener(this._valueChangedEvent,this._boundValueChanged):this.addEventListener("input",this._onInput),this._inputElementValue&&""!=this._inputElementValue?this._handleValueAndAutoValidate(this._inputElement):this._handleValue(this._inputElement)},_onAddonAttached:function(e){this._addons||(this._addons=[]);var t=e.target;-1===this._addons.indexOf(t)&&(this._addons.push(t),this.isAttached&&this._handleValue(this._inputElement))},_onFocus:function(){this._setFocused(!0)},_onBlur:function(){this._setFocused(!1),this._handleValueAndAutoValidate(this._inputElement)},_onInput:function(e){this._handleValueAndAutoValidate(e.target)},_onValueChanged:function(e){var t=e.target;this.__isFirstValueUpdate&&(this.__isFirstValueUpdate=!1,void 0===t.value||""===t.value)||this._handleValueAndAutoValidate(e.target)},_handleValue:function(e){var t=this._inputElementValue;t||0===t||"number"===e.type&&!e.checkValidity()?this._inputHasContent=!0:this._inputHasContent=!1,this.updateAddons({inputElement:e,value:t,invalid:this.invalid})},_handleValueAndAutoValidate:function(e){var t;this.autoValidate&&e&&(t=e.validate?e.validate(this._inputElementValue):e.checkValidity(),this.invalid=!t);this._handleValue(e)},_onIronInputValidate:function(e){this.invalid=this._inputElement.invalid},_invalidChanged:function(){this._addons&&this.updateAddons({invalid:this.invalid})},updateAddons:function(e){for(var t,n=0;t=this._addons[n];n++)t.update(e)},_computeInputContentClass:function(e,t,n,i,o){var r="input-content";if(e)o&&(r+=" label-is-hidden"),i&&(r+=" is-invalid");else{var a=this.querySelector("label");t||o?(r+=" label-is-floating",this.$.labelAndInputContainer.style.position="static",i?r+=" is-invalid":n&&(r+=" label-is-highlighted")):(a&&(this.$.labelAndInputContainer.style.position="relative"),i&&(r+=" is-invalid"))}return n&&(r+=" focused"),r},_computeUnderlineClass:function(e,t){var n="underline";return t?n+=" is-invalid":e&&(n+=" is-highlighted"),n},_computeAddOnContentClass:function(e,t){var n="add-on-content";return t?n+=" is-invalid":e&&(n+=" is-highlighted"),n}}),Object(i.a)({_template:Object(o.a)(m()),is:"paper-input-error",behaviors:[d],properties:{invalid:{readOnly:!0,reflectToAttribute:!0,type:Boolean}},update:function(e){this._setInvalid(e.invalid)}});var y=n(85),g=(n(77),n(26)),_=n(25),w=n(34),x={NextLabelID:1,NextAddonID:1,NextInputID:1},k={properties:{label:{type:String},value:{notify:!0,type:String},disabled:{type:Boolean,value:!1},invalid:{type:Boolean,value:!1,notify:!0},allowedPattern:{type:String},type:{type:String},list:{type:String},pattern:{type:String},required:{type:Boolean,value:!1},errorMessage:{type:String},charCounter:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1},alwaysFloatLabel:{type:Boolean,value:!1},autoValidate:{type:Boolean,value:!1},validator:{type:String},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,observer:"_autofocusChanged"},inputmode:{type:String},minlength:{type:Number},maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},name:{type:String},placeholder:{type:String,value:""},readonly:{type:Boolean,value:!1},size:{type:Number},autocapitalize:{type:String,value:"none"},autocorrect:{type:String,value:"off"},autosave:{type:String},results:{type:Number},accept:{type:String},multiple:{type:Boolean},_ariaDescribedBy:{type:String,value:""},_ariaLabelledBy:{type:String,value:""},_inputId:{type:String,value:""}},listeners:{"addon-attached":"_onAddonAttached"},keyBindings:{"shift+tab:keydown":"_onShiftTabDown"},hostAttributes:{tabindex:0},get inputElement(){return this.$||(this.$={}),this.$.input||(this._generateInputId(),this.$.input=this.$$("#"+this._inputId)),this.$.input},get _focusableElement(){return this.inputElement},created:function(){this._typesThatHaveText=["date","datetime","datetime-local","month","time","week","file"]},attached:function(){this._updateAriaLabelledBy(),!w.a&&this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.inputElement.type)&&(this.alwaysFloatLabel=!0)},_appendStringWithSpace:function(e,t){return e=e?e+" "+t:t},_onAddonAttached:function(e){var t=Object(l.a)(e).rootTarget;if(t.id)this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,t.id);else{var n="paper-input-add-on-"+x.NextAddonID++;t.id=n,this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy,n)}},validate:function(){return this.inputElement.validate()},_focusBlurHandler:function(e){_.a._focusBlurHandler.call(this,e),this.focused&&!this._shiftTabPressed&&this._focusableElement&&this._focusableElement.focus()},_onShiftTabDown:function(e){var t=this.getAttribute("tabindex");this._shiftTabPressed=!0,this.setAttribute("tabindex","-1"),this.async(function(){this.setAttribute("tabindex",t),this._shiftTabPressed=!1},1)},_handleAutoValidate:function(){this.autoValidate&&this.validate()},updateValueAndPreserveCaret:function(e){try{var t=this.inputElement.selectionStart;this.value=e,this.inputElement.selectionStart=t,this.inputElement.selectionEnd=t}catch(n){this.value=e}},_computeAlwaysFloatLabel:function(e,t){return t||e},_updateAriaLabelledBy:function(){var e,t=Object(l.a)(this.root).querySelector("label");t?(t.id?e=t.id:(e="paper-input-label-"+x.NextLabelID++,t.id=e),this._ariaLabelledBy=e):this._ariaLabelledBy=""},_generateInputId:function(){this._inputId&&""!==this._inputId||(this._inputId="input-"+x.NextInputID++)},_onChange:function(e){this.shadowRoot&&this.fire(e.type,{sourceEvent:e},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})},_autofocusChanged:function(){if(this.autofocus&&this._focusableElement){var e=document.activeElement;e instanceof HTMLElement&&e!==document.body&&e!==document.documentElement||this._focusableElement.focus()}}},S=[_.a,g.a,k];function C(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \n\n \n\n \n\n \x3c!-- Need to bind maxlength so that the paper-input-char-counter works correctly --\x3e\n \n \n \n\n \n\n \n\n \n\n \n ']);return C=function(){return e},e}Object(i.a)({is:"paper-input",_template:Object(o.a)(C()),behaviors:[S,y.a],properties:{value:{type:String}},get _focusableElement(){return this.inputElement._inputElement},listeners:{"iron-input-ready":"_onIronInputReady"},_onIronInputReady:function(){this.$.nativeInput||(this.$.nativeInput=this.$$("input")),this.inputElement&&-1!==this._typesThatHaveText.indexOf(this.$.nativeInput.type)&&(this.alwaysFloatLabel=!0),this.inputElement.bindValue&&this.$.container._handleValueAndAutoValidate(this.inputElement)}})},,,function(e,t,n){"use strict";n.d(t,"b",function(){return f}),n.d(t,"a",function(){return b});var i=n(29),o=n(21);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e,t,n){return(s="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=l(e)););return e}(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n-1||n)&&-1===r.indexOf("--\x3e",a+1);var s=o.e.exec(r);t+=null===s?r+(n?h:o.g):r.substr(0,s.index)+s[1]+s[2]+o.b+s[3]+o.f}return t+=this.strings[e]}},{key:"getTemplateElement",value:function(){var e=document.createElement("template");return e.innerHTML=this.getHTML(),e}}]),e}(),b=function(e){function t(){return d(this,t),a(this,l(t).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,f),p(t,[{key:"getHTML",value:function(){return"".concat(s(l(t.prototype),"getHTML",this).call(this),"")}},{key:"getTemplateElement",value:function(){var e=s(l(t.prototype),"getTemplateElement",this).call(this),n=e.content,o=n.firstChild;return n.removeChild(o),Object(i.c)(n,o.firstChild),e}}]),t}()},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var i=n(21);function o(e){var t=r.get(e.type);void 0===t&&(t={stringsArray:new WeakMap,keyString:new Map},r.set(e.type,t));var n=t.stringsArray.get(e.strings);if(void 0!==n)return n;var o=e.strings.join(i.f);return void 0===(n=t.keyString.get(o))&&(n=new i.a(e,e.getTemplateElement()),t.keyString.set(o,n)),t.stringsArray.set(e.strings,n),n}var r=new Map},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"a",function(){return a});n(4),n(25);var i=n(26),o=n(8),r={properties:{pressed:{type:Boolean,readOnly:!0,value:!1,reflectToAttribute:!0,observer:"_pressedChanged"},toggles:{type:Boolean,value:!1,reflectToAttribute:!0},active:{type:Boolean,value:!1,notify:!0,reflectToAttribute:!0},pointerDown:{type:Boolean,readOnly:!0,value:!1},receivedFocusFromKeyboard:{type:Boolean,readOnly:!0},ariaActiveAttribute:{type:String,value:"aria-pressed",observer:"_ariaActiveAttributeChanged"}},listeners:{down:"_downHandler",up:"_upHandler",tap:"_tapHandler"},observers:["_focusChanged(focused)","_activeChanged(active, ariaActiveAttribute)"],keyBindings:{"enter:keydown":"_asyncClick","space:keydown":"_spaceKeyDownHandler","space:keyup":"_spaceKeyUpHandler"},_mouseEventRe:/^mouse/,_tapHandler:function(){this.toggles?this._userActivate(!this.active):this.active=!1},_focusChanged:function(e){this._detectKeyboardFocus(e),e||this._setPressed(!1)},_detectKeyboardFocus:function(e){this._setReceivedFocusFromKeyboard(!this.pointerDown&&e)},_userActivate:function(e){this.active!==e&&(this.active=e,this.fire("change"))},_downHandler:function(e){this._setPointerDown(!0),this._setPressed(!0),this._setReceivedFocusFromKeyboard(!1)},_upHandler:function(){this._setPointerDown(!1),this._setPressed(!1)},_spaceKeyDownHandler:function(e){var t=e.detail.keyboardEvent,n=Object(o.a)(t).localTarget;this.isLightDescendant(n)||(t.preventDefault(),t.stopImmediatePropagation(),this._setPressed(!0))},_spaceKeyUpHandler:function(e){var t=e.detail.keyboardEvent,n=Object(o.a)(t).localTarget;this.isLightDescendant(n)||(this.pressed&&this._asyncClick(),this._setPressed(!1))},_asyncClick:function(){this.async(function(){this.click()},1)},_pressedChanged:function(e){this._changedButtonState()},_ariaActiveAttributeChanged:function(e,t){t&&t!=e&&this.hasAttribute(t)&&this.removeAttribute(t)},_activeChanged:function(e,t){this.toggles?this.setAttribute(this.ariaActiveAttribute,e?"true":"false"):this.removeAttribute(this.ariaActiveAttribute),this._changedButtonState()},_controlStateChanged:function(){this.disabled?this._setPressed(!1):this._changedButtonState()},_changedButtonState:function(){this._buttonStateChanged&&this._buttonStateChanged()}},a=[i.a,r]},,function(e,t,n){"use strict";n.d(t,"a",function(){return r});var i=n(16),o=new WeakMap,r=Object(i.f)(function(e){return function(t){if(!(t instanceof i.a)||t instanceof i.c||"class"!==t.committer.name||t.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");var n=t.committer,r=n.element;o.has(t)||(r.className=n.strings.join(" "));var a=r.classList,s=o.get(t);for(var l in s)l in e||a.remove(l);for(var c in e){var d=e[c];if(!s||d!==s[c])a[d?"add":"remove"](c)}o.set(t,e)}})},function(e,t,n){"use strict";n(4),n(12);var i=n(7),o=n(6);function r(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n\n \n"]);return r=function(){return e},e}Object(i.a)({_template:Object(o.a)(r()),is:"app-toolbar"})},,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r});var i=new WeakMap,o=function(e){return function(){var t=e.apply(void 0,arguments);return i.set(t,!0),t}},r=function(e){return"function"==typeof e&&i.has(e)}},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return o});var i={},o={}},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var i=n(29),o=n(21);function r(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0;r>=0&&t.push(o),n="content"===o.localName||"slot"===o.localName?Object(i.a)(o).getDistributedNodes():Object(i.a)(o.root||o).children;for(var s=0;s0&&t.length>0;)this._hasLowerTabOrder(e[0],t[0])?n.push(t.shift()):n.push(e.shift());return n.concat(e,t)},_hasLowerTabOrder:function(e,t){var n=Math.max(e.tabIndex,0),i=Math.max(t.tabIndex,0);return 0===n||0===i?i>n:n>i}}},,function(e,t,n){"use strict";var i;function o(e,t){if(void 0===e&&(e=window),void 0===t&&(t=!1),void 0===i||t){var n=!1;try{e.document.addEventListener("test",function(){},{get passive(){return n=!0}})}catch(o){}i=n}return!!i&&{passive:!0}}function r(e,t){return(e.matches||e.webkitMatchesSelector||e.msMatchesSelector).call(e,t)}var a,s=n(36),l=n(103),c={BG_FOCUSED:"mdc-ripple-upgraded--background-focused",FG_ACTIVATION:"mdc-ripple-upgraded--foreground-activation",FG_DEACTIVATION:"mdc-ripple-upgraded--foreground-deactivation",ROOT:"mdc-ripple-upgraded",UNBOUNDED:"mdc-ripple-upgraded--unbounded"},d={VAR_FG_SCALE:"--mdc-ripple-fg-scale",VAR_FG_SIZE:"--mdc-ripple-fg-size",VAR_FG_TRANSLATE_END:"--mdc-ripple-fg-translate-end",VAR_FG_TRANSLATE_START:"--mdc-ripple-fg-translate-start",VAR_LEFT:"--mdc-ripple-left",VAR_TOP:"--mdc-ripple-top"},u={DEACTIVATION_TIMEOUT_MS:225,FG_DEACTIVATION_MS:150,INITIAL_ORIGIN_SCALE:.6,PADDING:10,TAP_DELAY_MS:300};var p=["touchstart","pointerdown","mousedown","keydown"],h=["touchend","pointerup","mouseup","contextmenu"],f=[],b=function(e){function t(n){var i=e.call(this,s.a({},t.defaultAdapter,n))||this;return i.activationAnimationHasEnded_=!1,i.activationTimer_=0,i.fgDeactivationRemovalTimer_=0,i.fgScale_="0",i.frame_={width:0,height:0},i.initialSize_=0,i.layoutFrame_=0,i.maxRadius_=0,i.unboundedCoords_={left:0,top:0},i.activationState_=i.defaultActivationState_(),i.activationTimerCallback_=function(){i.activationAnimationHasEnded_=!0,i.runDeactivationUXLogicIfReady_()},i.activateHandler_=function(e){return i.activate_(e)},i.deactivateHandler_=function(){return i.deactivate_()},i.focusHandler_=function(){return i.handleFocus()},i.blurHandler_=function(){return i.handleBlur()},i.resizeHandler_=function(){return i.layout()},i}return s.c(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return c},enumerable:!0,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return d},enumerable:!0,configurable:!0}),Object.defineProperty(t,"numbers",{get:function(){return u},enumerable:!0,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},browserSupportsCssVars:function(){return!0},computeBoundingRect:function(){return{top:0,right:0,bottom:0,left:0,width:0,height:0}},containsEventTarget:function(){return!0},deregisterDocumentInteractionHandler:function(){},deregisterInteractionHandler:function(){},deregisterResizeHandler:function(){},getWindowPageOffset:function(){return{x:0,y:0}},isSurfaceActive:function(){return!0},isSurfaceDisabled:function(){return!0},isUnbounded:function(){return!0},registerDocumentInteractionHandler:function(){},registerInteractionHandler:function(){},registerResizeHandler:function(){},removeClass:function(){},updateCssVariable:function(){}}},enumerable:!0,configurable:!0}),t.prototype.init=function(){var e=this,n=this.supportsPressRipple_();if(this.registerRootHandlers_(n),n){var i=t.cssClasses,o=i.ROOT,r=i.UNBOUNDED;requestAnimationFrame(function(){e.adapter_.addClass(o),e.adapter_.isUnbounded()&&(e.adapter_.addClass(r),e.layoutInternal_())})}},t.prototype.destroy=function(){var e=this;if(this.supportsPressRipple_()){this.activationTimer_&&(clearTimeout(this.activationTimer_),this.activationTimer_=0,this.adapter_.removeClass(t.cssClasses.FG_ACTIVATION)),this.fgDeactivationRemovalTimer_&&(clearTimeout(this.fgDeactivationRemovalTimer_),this.fgDeactivationRemovalTimer_=0,this.adapter_.removeClass(t.cssClasses.FG_DEACTIVATION));var n=t.cssClasses,i=n.ROOT,o=n.UNBOUNDED;requestAnimationFrame(function(){e.adapter_.removeClass(i),e.adapter_.removeClass(o),e.removeCssVars_()})}this.deregisterRootHandlers_(),this.deregisterDeactivationHandlers_()},t.prototype.activate=function(e){this.activate_(e)},t.prototype.deactivate=function(){this.deactivate_()},t.prototype.layout=function(){var e=this;this.layoutFrame_&&cancelAnimationFrame(this.layoutFrame_),this.layoutFrame_=requestAnimationFrame(function(){e.layoutInternal_(),e.layoutFrame_=0})},t.prototype.setUnbounded=function(e){var n=t.cssClasses.UNBOUNDED;e?this.adapter_.addClass(n):this.adapter_.removeClass(n)},t.prototype.handleFocus=function(){var e=this;requestAnimationFrame(function(){return e.adapter_.addClass(t.cssClasses.BG_FOCUSED)})},t.prototype.handleBlur=function(){var e=this;requestAnimationFrame(function(){return e.adapter_.removeClass(t.cssClasses.BG_FOCUSED)})},t.prototype.supportsPressRipple_=function(){return this.adapter_.browserSupportsCssVars()},t.prototype.defaultActivationState_=function(){return{activationEvent:void 0,hasDeactivationUXRun:!1,isActivated:!1,isProgrammatic:!1,wasActivatedByPointer:!1,wasElementMadeActive:!1}},t.prototype.registerRootHandlers_=function(e){var t=this;e&&(p.forEach(function(e){t.adapter_.registerInteractionHandler(e,t.activateHandler_)}),this.adapter_.isUnbounded()&&this.adapter_.registerResizeHandler(this.resizeHandler_)),this.adapter_.registerInteractionHandler("focus",this.focusHandler_),this.adapter_.registerInteractionHandler("blur",this.blurHandler_)},t.prototype.registerDeactivationHandlers_=function(e){var t=this;"keydown"===e.type?this.adapter_.registerInteractionHandler("keyup",this.deactivateHandler_):h.forEach(function(e){t.adapter_.registerDocumentInteractionHandler(e,t.deactivateHandler_)})},t.prototype.deregisterRootHandlers_=function(){var e=this;p.forEach(function(t){e.adapter_.deregisterInteractionHandler(t,e.activateHandler_)}),this.adapter_.deregisterInteractionHandler("focus",this.focusHandler_),this.adapter_.deregisterInteractionHandler("blur",this.blurHandler_),this.adapter_.isUnbounded()&&this.adapter_.deregisterResizeHandler(this.resizeHandler_)},t.prototype.deregisterDeactivationHandlers_=function(){var e=this;this.adapter_.deregisterInteractionHandler("keyup",this.deactivateHandler_),h.forEach(function(t){e.adapter_.deregisterDocumentInteractionHandler(t,e.deactivateHandler_)})},t.prototype.removeCssVars_=function(){var e=this,n=t.strings;Object.keys(n).forEach(function(t){0===t.indexOf("VAR_")&&e.adapter_.updateCssVariable(n[t],null)})},t.prototype.activate_=function(e){var t=this;if(!this.adapter_.isSurfaceDisabled()){var n=this.activationState_;if(!n.isActivated){var i=this.previousActivationEvent_;if(!(i&&void 0!==e&&i.type!==e.type))n.isActivated=!0,n.isProgrammatic=void 0===e,n.activationEvent=e,n.wasActivatedByPointer=!n.isProgrammatic&&(void 0!==e&&("mousedown"===e.type||"touchstart"===e.type||"pointerdown"===e.type)),void 0!==e&&f.length>0&&f.some(function(e){return t.adapter_.containsEventTarget(e)})?this.resetActivationState_():(void 0!==e&&(f.push(e.target),this.registerDeactivationHandlers_(e)),n.wasElementMadeActive=this.checkElementMadeActive_(e),n.wasElementMadeActive&&this.animateActivation_(),requestAnimationFrame(function(){f=[],n.wasElementMadeActive||void 0===e||" "!==e.key&&32!==e.keyCode||(n.wasElementMadeActive=t.checkElementMadeActive_(e),n.wasElementMadeActive&&t.animateActivation_()),n.wasElementMadeActive||(t.activationState_=t.defaultActivationState_())}))}}},t.prototype.checkElementMadeActive_=function(e){return void 0===e||"keydown"!==e.type||this.adapter_.isSurfaceActive()},t.prototype.animateActivation_=function(){var e=this,n=t.strings,i=n.VAR_FG_TRANSLATE_START,o=n.VAR_FG_TRANSLATE_END,r=t.cssClasses,a=r.FG_DEACTIVATION,s=r.FG_ACTIVATION,l=t.numbers.DEACTIVATION_TIMEOUT_MS;this.layoutInternal_();var c="",d="";if(!this.adapter_.isUnbounded()){var u=this.getFgTranslationCoordinates_(),p=u.startPoint,h=u.endPoint;c=p.x+"px, "+p.y+"px",d=h.x+"px, "+h.y+"px"}this.adapter_.updateCssVariable(i,c),this.adapter_.updateCssVariable(o,d),clearTimeout(this.activationTimer_),clearTimeout(this.fgDeactivationRemovalTimer_),this.rmBoundedActivationClasses_(),this.adapter_.removeClass(a),this.adapter_.computeBoundingRect(),this.adapter_.addClass(s),this.activationTimer_=setTimeout(function(){return e.activationTimerCallback_()},l)},t.prototype.getFgTranslationCoordinates_=function(){var e,t=this.activationState_,n=t.activationEvent;return{startPoint:e={x:(e=t.wasActivatedByPointer?function(e,t,n){if(!e)return{x:0,y:0};var i,o,r=t.x,a=t.y,s=r+n.left,l=a+n.top;if("touchstart"===e.type){var c=e;i=c.changedTouches[0].pageX-s,o=c.changedTouches[0].pageY-l}else{var d=e;i=d.pageX-s,o=d.pageY-l}return{x:i,y:o}}(n,this.adapter_.getWindowPageOffset(),this.adapter_.computeBoundingRect()):{x:this.frame_.width/2,y:this.frame_.height/2}).x-this.initialSize_/2,y:e.y-this.initialSize_/2},endPoint:{x:this.frame_.width/2-this.initialSize_/2,y:this.frame_.height/2-this.initialSize_/2}}},t.prototype.runDeactivationUXLogicIfReady_=function(){var e=this,n=t.cssClasses.FG_DEACTIVATION,i=this.activationState_,o=i.hasDeactivationUXRun,r=i.isActivated;(o||!r)&&this.activationAnimationHasEnded_&&(this.rmBoundedActivationClasses_(),this.adapter_.addClass(n),this.fgDeactivationRemovalTimer_=setTimeout(function(){e.adapter_.removeClass(n)},u.FG_DEACTIVATION_MS))},t.prototype.rmBoundedActivationClasses_=function(){var e=t.cssClasses.FG_ACTIVATION;this.adapter_.removeClass(e),this.activationAnimationHasEnded_=!1,this.adapter_.computeBoundingRect()},t.prototype.resetActivationState_=function(){var e=this;this.previousActivationEvent_=this.activationState_.activationEvent,this.activationState_=this.defaultActivationState_(),setTimeout(function(){return e.previousActivationEvent_=void 0},t.numbers.TAP_DELAY_MS)},t.prototype.deactivate_=function(){var e=this,t=this.activationState_;if(t.isActivated){var n=s.a({},t);t.isProgrammatic?(requestAnimationFrame(function(){return e.animateDeactivation_(n)}),this.resetActivationState_()):(this.deregisterDeactivationHandlers_(),requestAnimationFrame(function(){e.activationState_.hasDeactivationUXRun=!0,e.animateDeactivation_(n),e.resetActivationState_()}))}},t.prototype.animateDeactivation_=function(e){var t=e.wasActivatedByPointer,n=e.wasElementMadeActive;(t||n)&&this.runDeactivationUXLogicIfReady_()},t.prototype.layoutInternal_=function(){var e=this;this.frame_=this.adapter_.computeBoundingRect();var n=Math.max(this.frame_.height,this.frame_.width);this.maxRadius_=this.adapter_.isUnbounded()?n:Math.sqrt(Math.pow(e.frame_.width,2)+Math.pow(e.frame_.height,2))+t.numbers.PADDING,this.initialSize_=Math.floor(n*t.numbers.INITIAL_ORIGIN_SCALE),this.fgScale_=""+this.maxRadius_/this.initialSize_,this.updateLayoutCssVars_()},t.prototype.updateLayoutCssVars_=function(){var e=t.strings,n=e.VAR_FG_SIZE,i=e.VAR_LEFT,o=e.VAR_TOP,r=e.VAR_FG_SCALE;this.adapter_.updateCssVariable(n,this.initialSize_+"px"),this.adapter_.updateCssVariable(r,this.fgScale_),this.adapter_.isUnbounded()&&(this.unboundedCoords_={left:Math.round(this.frame_.width/2-this.initialSize_/2),top:Math.round(this.frame_.height/2-this.initialSize_/2)},this.adapter_.updateCssVariable(i,this.unboundedCoords_.left+"px"),this.adapter_.updateCssVariable(o,this.unboundedCoords_.top+"px"))},t}(l.a),v=n(16),m=n(5);function y(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}"]);return y=function(){return e},e}var g=Object(m.c)(y());n.d(t,"a",function(){return C});var _=function(e,t){void 0===t&&(t=!1);var n=e.CSS,i=a;if("boolean"==typeof a&&!t)return a;if(!n||"function"!=typeof n.supports)return!1;var o=n.supports("--css-vars","yes"),r=n.supports("(--css-vars: yes)")&&n.supports("color","#00000000");return i=!(!o&&!r||function(e){var t=e.document,n=t.createElement("div");n.className="mdc-ripple-surface--test-edge-var-bug",t.head.appendChild(n);var i=e.getComputedStyle(n),o=null!==i&&"solid"===i.borderTopStyle;return n.parentNode&&n.parentNode.removeChild(n),o}(e)),t||(a=i),i}(window),w=navigator.userAgent.match(/Safari/),x=!1,k=function(e){w&&!x&&function(){x=!0;var e=new v.b({templateFactory:v.k});e.appendInto(document.head),e.setValue(g),e.commit()}();var t=e.surfaceNode,n=e.interactionNode||t;n.getRootNode()!==t.getRootNode()&&""===n.style.position&&(n.style.position="relative");var i=new b({browserSupportsCssVars:function(){return _},isUnbounded:function(){return void 0===e.unbounded||e.unbounded},isSurfaceActive:function(){return r(n,":active")},isSurfaceDisabled:function(){return Boolean(e.disabled)},addClass:function(e){return t.classList.add(e)},removeClass:function(e){return t.classList.remove(e)},containsEventTarget:function(e){return n.contains(e)},registerInteractionHandler:function(e,t){return n.addEventListener(e,t,o())},deregisterInteractionHandler:function(e,t){return n.removeEventListener(e,t,o())},registerDocumentInteractionHandler:function(e,t){return document.documentElement.addEventListener(e,t,o())},deregisterDocumentInteractionHandler:function(e,t){return document.documentElement.removeEventListener(e,t,o())},registerResizeHandler:function(e){return window.addEventListener("resize",e)},deregisterResizeHandler:function(e){return window.removeEventListener("resize",e)},updateCssVariable:function(e,n){return t.style.setProperty(e,n)},computeBoundingRect:function(){return t.getBoundingClientRect()},getWindowPageOffset:function(){return{x:window.pageXOffset,y:window.pageYOffset}}});return i.init(),i},S=new WeakMap,C=Object(v.f)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.committer.element,i=e.interactionNode||n,o=t.value,r=S.get(o);void 0!==r&&r!==i&&(o.destroy(),o=v.h),o===v.h?(o=k(Object.assign({},e,{surfaceNode:n})),S.set(o,i),t.setValue(o)):(void 0!==e.unbounded&&o.setUnbounded(e.unbounded),void 0!==e.disabled&&o.setUnbounded(e.disabled)),!0===e.active?o.activate():!1===e.active&&o.deactivate()}})},function(e,t,n){"use strict";n(4);var i=n(8),o={properties:{sizingTarget:{type:Object,value:function(){return this}},fitInto:{type:Object,value:window},noOverlap:{type:Boolean},positionTarget:{type:Element},horizontalAlign:{type:String},verticalAlign:{type:String},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},autoFitOnAttach:{type:Boolean,value:!1},_fitInfo:{type:Object}},get _fitWidth(){return this.fitInto===window?this.fitInto.innerWidth:this.fitInto.getBoundingClientRect().width},get _fitHeight(){return this.fitInto===window?this.fitInto.innerHeight:this.fitInto.getBoundingClientRect().height},get _fitLeft(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().left},get _fitTop(){return this.fitInto===window?0:this.fitInto.getBoundingClientRect().top},get _defaultPositionTarget(){var e=Object(i.a)(this).parentNode;return e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(e=e.host),e},get _localeHorizontalAlign(){if(this._isRTL){if("right"===this.horizontalAlign)return"left";if("left"===this.horizontalAlign)return"right"}return this.horizontalAlign},get __shouldPosition(){return(this.horizontalAlign||this.verticalAlign)&&this.positionTarget},attached:function(){void 0===this._isRTL&&(this._isRTL="rtl"==window.getComputedStyle(this).direction),this.positionTarget=this.positionTarget||this._defaultPositionTarget,this.autoFitOnAttach&&("none"===window.getComputedStyle(this).display?setTimeout(function(){this.fit()}.bind(this)):(window.ShadyDOM&&ShadyDOM.flush(),this.fit()))},detached:function(){this.__deferredFit&&(clearTimeout(this.__deferredFit),this.__deferredFit=null)},fit:function(){this.position(),this.constrain(),this.center()},_discoverInfo:function(){if(!this._fitInfo){var e=window.getComputedStyle(this),t=window.getComputedStyle(this.sizingTarget);this._fitInfo={inlineStyle:{top:this.style.top||"",left:this.style.left||"",position:this.style.position||""},sizerInlineStyle:{maxWidth:this.sizingTarget.style.maxWidth||"",maxHeight:this.sizingTarget.style.maxHeight||"",boxSizing:this.sizingTarget.style.boxSizing||""},positionedBy:{vertically:"auto"!==e.top?"top":"auto"!==e.bottom?"bottom":null,horizontally:"auto"!==e.left?"left":"auto"!==e.right?"right":null},sizedBy:{height:"none"!==t.maxHeight,width:"none"!==t.maxWidth,minWidth:parseInt(t.minWidth,10)||0,minHeight:parseInt(t.minHeight,10)||0},margin:{top:parseInt(e.marginTop,10)||0,right:parseInt(e.marginRight,10)||0,bottom:parseInt(e.marginBottom,10)||0,left:parseInt(e.marginLeft,10)||0}}}},resetFit:function(){var e=this._fitInfo||{};for(var t in e.sizerInlineStyle)this.sizingTarget.style[t]=e.sizerInlineStyle[t];for(var t in e.inlineStyle)this.style[t]=e.inlineStyle[t];this._fitInfo=null},refit:function(){var e=this.sizingTarget.scrollLeft,t=this.sizingTarget.scrollTop;this.resetFit(),this.fit(),this.sizingTarget.scrollLeft=e,this.sizingTarget.scrollTop=t},position:function(){if(this.__shouldPosition){this._discoverInfo(),this.style.position="fixed",this.sizingTarget.style.boxSizing="border-box",this.style.left="0px",this.style.top="0px";var e=this.getBoundingClientRect(),t=this.__getNormalizedRect(this.positionTarget),n=this.__getNormalizedRect(this.fitInto),i=this._fitInfo.margin,o={width:e.width+i.left+i.right,height:e.height+i.top+i.bottom},r=this.__getPosition(this._localeHorizontalAlign,this.verticalAlign,o,e,t,n),a=r.left+i.left,s=r.top+i.top,l=Math.min(n.right-i.right,a+e.width),c=Math.min(n.bottom-i.bottom,s+e.height);a=Math.max(n.left+i.left,Math.min(a,l-this._fitInfo.sizedBy.minWidth)),s=Math.max(n.top+i.top,Math.min(s,c-this._fitInfo.sizedBy.minHeight)),this.sizingTarget.style.maxWidth=Math.max(l-a,this._fitInfo.sizedBy.minWidth)+"px",this.sizingTarget.style.maxHeight=Math.max(c-s,this._fitInfo.sizedBy.minHeight)+"px",this.style.left=a-e.left+"px",this.style.top=s-e.top+"px"}},constrain:function(){if(!this.__shouldPosition){this._discoverInfo();var e=this._fitInfo;e.positionedBy.vertically||(this.style.position="fixed",this.style.top="0px"),e.positionedBy.horizontally||(this.style.position="fixed",this.style.left="0px"),this.sizingTarget.style.boxSizing="border-box";var t=this.getBoundingClientRect();e.sizedBy.height||this.__sizeDimension(t,e.positionedBy.vertically,"top","bottom","Height"),e.sizedBy.width||this.__sizeDimension(t,e.positionedBy.horizontally,"left","right","Width")}},_sizeDimension:function(e,t,n,i,o){this.__sizeDimension(e,t,n,i,o)},__sizeDimension:function(e,t,n,i,o){var r=this._fitInfo,a=this.__getNormalizedRect(this.fitInto),s="Width"===o?a.width:a.height,l=t===i,c=l?s-e[i]:e[n],d=r.margin[l?n:i],u="offset"+o,p=this[u]-this.sizingTarget[u];this.sizingTarget.style["max"+o]=s-d-c-p+"px"},center:function(){if(!this.__shouldPosition){this._discoverInfo();var e=this._fitInfo.positionedBy;if(!e.vertically||!e.horizontally){this.style.position="fixed",e.vertically||(this.style.top="0px"),e.horizontally||(this.style.left="0px");var t=this.getBoundingClientRect(),n=this.__getNormalizedRect(this.fitInto);if(!e.vertically){var i=n.top-t.top+(n.height-t.height)/2;this.style.top=i+"px"}if(!e.horizontally){var o=n.left-t.left+(n.width-t.width)/2;this.style.left=o+"px"}}}},__getNormalizedRect:function(e){return e===document.documentElement||e===window?{top:0,left:0,width:window.innerWidth,height:window.innerHeight,right:window.innerWidth,bottom:window.innerHeight}:e.getBoundingClientRect()},__getOffscreenArea:function(e,t,n){var i=Math.min(0,e.top)+Math.min(0,n.bottom-(e.top+t.height)),o=Math.min(0,e.left)+Math.min(0,n.right-(e.left+t.width));return Math.abs(i)*t.width+Math.abs(o)*t.height},__getPosition:function(e,t,n,i,o,r){var a,s=[{verticalAlign:"top",horizontalAlign:"left",top:o.top+this.verticalOffset,left:o.left+this.horizontalOffset},{verticalAlign:"top",horizontalAlign:"right",top:o.top+this.verticalOffset,left:o.right-n.width-this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"left",top:o.bottom-n.height-this.verticalOffset,left:o.left+this.horizontalOffset},{verticalAlign:"bottom",horizontalAlign:"right",top:o.bottom-n.height-this.verticalOffset,left:o.right-n.width-this.horizontalOffset}];if(this.noOverlap){for(var l=0,c=s.length;l\n :host {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--iron-overlay-backdrop-background-color, #000);\n opacity: 0;\n transition: opacity 0.2s;\n pointer-events: none;\n @apply --iron-overlay-backdrop;\n }\n\n :host(.opened) {\n opacity: var(--iron-overlay-backdrop-opacity, 0.6);\n pointer-events: auto;\n @apply --iron-overlay-backdrop-opened;\n }\n \n\n \n"]);return d=function(){return e},e}Object(l.a)({_template:Object(c.a)(d()),is:"iron-overlay-backdrop",properties:{opened:{reflectToAttribute:!0,type:Boolean,value:!1,observer:"_openedChanged"}},listeners:{transitionend:"_onTransitionend"},created:function(){this.__openedRaf=null},attached:function(){this.opened&&this._openedChanged(this.opened)},prepare:function(){this.opened&&!this.parentNode&&Object(i.a)(document.body).appendChild(this)},open:function(){this.opened=!0},close:function(){this.opened=!1},complete:function(){this.opened||this.parentNode!==document.body||Object(i.a)(this.parentNode).removeChild(this)},_onTransitionend:function(e){e&&e.target===this&&this.complete()},_openedChanged:function(e){if(e)this.prepare();else{var t=window.getComputedStyle(this);"0s"!==t.transitionDuration&&0!=t.opacity||this.complete()}this.isAttached&&(this.__openedRaf&&(window.cancelAnimationFrame(this.__openedRaf),this.__openedRaf=null),this.scrollTop=this.scrollTop,this.__openedRaf=window.requestAnimationFrame(function(){this.__openedRaf=null,this.toggleClass("opened",this.opened)}.bind(this)))}});var u=n(26),p=n(58),h=function(){this._overlays=[],this._minimumZ=101,this._backdropElement=null,p.a(document.documentElement,"tap",function(){}),document.addEventListener("tap",this._onCaptureClick.bind(this),!0),document.addEventListener("focus",this._onCaptureFocus.bind(this),!0),document.addEventListener("keydown",this._onCaptureKeyDown.bind(this),!0)};h.prototype={constructor:h,get backdropElement(){return this._backdropElement||(this._backdropElement=document.createElement("iron-overlay-backdrop")),this._backdropElement},get deepActiveElement(){var e=document.activeElement;for(e&&e instanceof Element!=!1||(e=document.body);e.root&&Object(i.a)(e.root).activeElement;)e=Object(i.a)(e.root).activeElement;return e},_bringOverlayAtIndexToFront:function(e){var t=this._overlays[e];if(t){var n=this._overlays.length-1,i=this._overlays[n];if(i&&this._shouldBeBehindOverlay(t,i)&&n--,!(e>=n)){var o=Math.max(this.currentOverlayZ(),this._minimumZ);for(this._getZ(t)<=o&&this._applyOverlayZ(t,o);e=0)return this._bringOverlayAtIndexToFront(t),void this.trackBackdrop();var n=this._overlays.length,i=this._overlays[n-1],o=Math.max(this._getZ(i),this._minimumZ),r=this._getZ(e);if(i&&this._shouldBeBehindOverlay(e,i)){this._applyOverlayZ(i,o),n--;var a=this._overlays[n-1];o=Math.max(this._getZ(a),this._minimumZ)}r<=o&&this._applyOverlayZ(e,o),this._overlays.splice(n,0,e),this.trackBackdrop()},removeOverlay:function(e){var t=this._overlays.indexOf(e);-1!==t&&(this._overlays.splice(t,1),this.trackBackdrop())},currentOverlay:function(){var e=this._overlays.length-1;return this._overlays[e]},currentOverlayZ:function(){return this._getZ(this.currentOverlay())},ensureMinimumZ:function(e){this._minimumZ=Math.max(this._minimumZ,e)},focusOverlay:function(){var e=this.currentOverlay();e&&e._applyFocus()},trackBackdrop:function(){var e=this._overlayWithBackdrop();(e||this._backdropElement)&&(this.backdropElement.style.zIndex=this._getZ(e)-1,this.backdropElement.opened=!!e,this.backdropElement.prepare())},getBackdrops:function(){for(var e=[],t=0;t=0;e--)if(this._overlays[e].withBackdrop)return this._overlays[e]},_getZ:function(e){var t=this._minimumZ;if(e){var n=Number(e.style.zIndex||window.getComputedStyle(e).zIndex);n==n&&(t=n)}return t},_setZ:function(e,t){e.style.zIndex=t},_applyOverlayZ:function(e,t){this._setZ(e,t+2)},_overlayInPath:function(e){e=e||[];for(var t=0;t=0||(0===k.length&&function(){f=f||function(e){e.cancelable&&function(e){var t=Object(i.a)(e).rootTarget;"touchmove"!==e.type&&y!==t&&(y=t,g=function(e){for(var t=[],n=e.indexOf(b),i=0;i<=n;i++)if(e[i].nodeType===Node.ELEMENT_NODE){var o=e[i],r=o.style;"scroll"!==r.overflow&&"auto"!==r.overflow&&(r=window.getComputedStyle(o)),"scroll"!==r.overflow&&"auto"!==r.overflow||t.push(o)}return t}(Object(i.a)(e).path));if(!g.length)return!0;if("touchstart"===e.type)return!1;var n=function(e){var t={deltaX:e.deltaX,deltaY:e.deltaY};if("deltaX"in e);else if("wheelDeltaX"in e&&"wheelDeltaY"in e)t.deltaX=-e.wheelDeltaX,t.deltaY=-e.wheelDeltaY;else if("wheelDelta"in e)t.deltaX=0,t.deltaY=-e.wheelDelta;else if("axis"in e)t.deltaX=1===e.axis?e.detail:0,t.deltaY=2===e.axis?e.detail:0;else if(e.targetTouches){var n=e.targetTouches[0];t.deltaX=m.pageX-n.pageX,t.deltaY=m.pageY-n.pageY}return t}(e);return!function(e,t,n){if(!t&&!n)return;for(var i=Math.abs(n)>=Math.abs(t),o=0;o0:r.scrollTop0:r.scrollLeft=0))switch(this.scrollAction){case"lock":this.__restoreScrollPosition();break;case"refit":this.__deraf("refit",this.refit);break;case"cancel":this.cancel(e)}},__saveScrollPosition:function(){document.scrollingElement?(this.__scrollTop=document.scrollingElement.scrollTop,this.__scrollLeft=document.scrollingElement.scrollLeft):(this.__scrollTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop),this.__scrollLeft=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft))},__restoreScrollPosition:function(){document.scrollingElement?(document.scrollingElement.scrollTop=this.__scrollTop,document.scrollingElement.scrollLeft=this.__scrollLeft):(document.documentElement.scrollTop=document.body.scrollTop=this.__scrollTop,document.documentElement.scrollLeft=document.body.scrollLeft=this.__scrollLeft)}},C=[o,r.a,S]},,function(e,t,n){"use strict";n(4);var i={properties:{animationConfig:{type:Object},entryAnimation:{observer:"_entryAnimationChanged",type:String},exitAnimation:{observer:"_exitAnimationChanged",type:String}},_entryAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.entry=[{name:this.entryAnimation,node:this}]},_exitAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.animationConfig.exit=[{name:this.exitAnimation,node:this}]},_copyProperties:function(e,t){for(var n in t)e[n]=t[n]},_cloneConfig:function(e){var t={isClone:!0};return this._copyProperties(t,e),t},_getAnimationConfigRecursive:function(e,t,n){var i;if(this.animationConfig)if(this.animationConfig.value&&"function"==typeof this.animationConfig.value)this._warn(this._logf("playAnimation","Please put 'animationConfig' inside of your components 'properties' object instead of outside of it."));else if(i=e?this.animationConfig[e]:this.animationConfig,Array.isArray(i)||(i=[i]),i)for(var o,r=0;o=i[r];r++)if(o.animatable)o.animatable._getAnimationConfigRecursive(o.type||e,t,n);else if(o.id){var a=t[o.id];a?(a.isClone||(t[o.id]=this._cloneConfig(a),a=t[o.id]),this._copyProperties(a,o)):t[o.id]=o}else n.push(o)},getAnimationConfig:function(e){var t={},n=[];for(var i in this._getAnimationConfigRecursive(e,t,n),t)n.push(t[i]);return n}};n.d(t,"a",function(){return o});var o=[i,{_configureAnimations:function(e){var t=[],n=[];if(e.length>0)for(var i,o=0;i=e[o];o++){var r=document.createElement(i.name);if(r.isNeonAnimation){var a;r.configure||(r.configure=function(e){return null}),a=r.configure(i),n.push({result:a,config:i,neonAnimation:r})}else console.warn(this.is+":",i.name,"not found!")}for(var s=0;s\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n']);return a=function(){return e},e}var s=Object(o.a)(a());s.setAttribute("strip-whitespace",""),Object(i.a)({_template:s,is:"paper-spinner-lite",behaviors:[r.a]})},function(e,t,n){"use strict";var i=function(e,t){return e.length===t.length&&e.every(function(e,n){return i=e,o=t[n],i===o;var i,o})};t.a=function(e,t){var n;void 0===t&&(t=i);var o,r=[],a=!1;return function(){for(var i=arguments.length,s=new Array(i),l=0;l-1&&(this._interestedResizables.splice(t,1),this._unsubscribeIronResize(e))},_subscribeIronResize:function(e){e.addEventListener("iron-resize",this._boundOnDescendantIronResize)},_unsubscribeIronResize:function(e){e.removeEventListener("iron-resize",this._boundOnDescendantIronResize)},resizerShouldNotify:function(e){return!0},_onDescendantIronResize:function(e){this._notifyingDescendant?e.stopPropagation():o.f||this._fireResize()},_fireResize:function(){this.fire("iron-resize",null,{node:this,bubbles:!1})},_onIronRequestResizeNotifications:function(e){var t=Object(i.a)(e).rootTarget;t!==this&&(t.assignParentResizable(this),this._notifyDescendant(t),e.stopPropagation())},_parentResizableChanged:function(e){e&&window.removeEventListener("resize",this._boundNotifyResize)},_notifyDescendant:function(e){this.isAttached&&(this._notifyingDescendant=!0,e.notifyResize(),this._notifyingDescendant=!1)},_requestResizeNotifications:function(){if(this.isAttached)if("loading"===document.readyState){var e=this._requestResizeNotifications.bind(this);document.addEventListener("readystatechange",function t(){document.removeEventListener("readystatechange",t),e()})}else this._findParent(),this._parentResizable?this._parentResizable._interestedResizables.forEach(function(e){e!==this&&e._findParent()},this):(r.forEach(function(e){e!==this&&e._findParent()},this),window.addEventListener("resize",this._boundNotifyResize),this.notifyResize())},_findParent:function(){this.assignParentResizable(null),this.fire("iron-request-resize-notifications",null,{node:this,bubbles:!0,cancelable:!0}),this._parentResizable?r.delete(this):r.add(this)}}},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(4);var i={properties:{name:{type:String},value:{notify:!0,type:String},required:{type:Boolean,value:!1}},attached:function(){},detached:function(){}}},,,,,,,function(e,t,n){"use strict";n(4);var i=n(26),o=n(95),r={properties:{multi:{type:Boolean,value:!1,observer:"multiChanged"},selectedValues:{type:Array,notify:!0,value:function(){return[]}},selectedItems:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}}},observers:["_updateSelected(selectedValues.splices)"],select:function(e){this.multi?this._toggleSelected(e):this.selected=e},multiChanged:function(e){this._selection.multi=e,this._updateSelected()},get _shouldUpdateSelection(){return null!=this.selected||null!=this.selectedValues&&this.selectedValues.length},_updateAttrForSelected:function(){this.multi?this.selectedItems&&this.selectedItems.length>0&&(this.selectedValues=this.selectedItems.map(function(e){return this._indexToValue(this.indexOf(e))},this).filter(function(e){return null!=e},this)):o.a._updateAttrForSelected.apply(this)},_updateSelected:function(){this.multi?this._selectMulti(this.selectedValues):this._selectSelected(this.selected)},_selectMulti:function(e){e=e||[];var t=(this._valuesToItems(e)||[]).filter(function(e){return null!=e});this._selection.clear(t);for(var n=0;n=0}},{key:"setItemSelected",value:function(e,t){if(null!=e&&t!==this.isSelected(e)){if(t)this.selection.push(e);else{var n=this.selection.indexOf(e);n>=0&&this.selection.splice(n,1)}this.selectCallback&&this.selectCallback(e,t)}}},{key:"select",value:function(e){this.multi?this.toggle(e):this.get()!==e&&(this.setItemSelected(this.get(),!1),this.setItemSelected(e,!0))}},{key:"toggle",value:function(e){this.setItemSelected(e,!this.isSelected(e))}}])&&r(t.prototype,n),i&&r(t,i),e}();n.d(t,"a",function(){return s});var s={properties:{attrForSelected:{type:String,value:null},selected:{type:String,notify:!0},selectedItem:{type:Object,readOnly:!0,notify:!0},activateEvent:{type:String,value:"tap",observer:"_activateEventChanged"},selectable:String,selectedClass:{type:String,value:"iron-selected"},selectedAttribute:{type:String,value:null},fallbackSelection:{type:String,value:null},items:{type:Array,readOnly:!0,notify:!0,value:function(){return[]}},_excludedLocalNames:{type:Object,value:function(){return{template:1,"dom-bind":1,"dom-if":1,"dom-repeat":1}}}},observers:["_updateAttrForSelected(attrForSelected)","_updateSelected(selected)","_checkFallback(fallbackSelection)"],created:function(){this._bindFilterItem=this._filterItem.bind(this),this._selection=new a(this._applySelection.bind(this))},attached:function(){this._observer=this._observeItems(this),this._addListener(this.activateEvent)},detached:function(){this._observer&&Object(i.a)(this).unobserveNodes(this._observer),this._removeListener(this.activateEvent)},indexOf:function(e){return this.items?this.items.indexOf(e):-1},select:function(e){this.selected=e},selectPrevious:function(){var e=this.items.length,t=e-1;void 0!==this.selected&&(t=(Number(this._valueToIndex(this.selected))-1+e)%e),this.selected=this._indexToValue(t)},selectNext:function(){var e=0;void 0!==this.selected&&(e=(Number(this._valueToIndex(this.selected))+1)%this.items.length),this.selected=this._indexToValue(e)},selectIndex:function(e){this.select(this._indexToValue(e))},forceSynchronousItemUpdate:function(){this._observer&&"function"==typeof this._observer.flush?this._observer.flush():this._updateItems()},get _shouldUpdateSelection(){return null!=this.selected},_checkFallback:function(){this._updateSelected()},_addListener:function(e){this.listen(this,e,"_activateHandler")},_removeListener:function(e){this.unlisten(this,e,"_activateHandler")},_activateEventChanged:function(e,t){this._removeListener(t),this._addListener(e)},_updateItems:function(){var e=Object(i.a)(this).queryDistributedElements(this.selectable||"*");e=Array.prototype.filter.call(e,this._bindFilterItem),this._setItems(e)},_updateAttrForSelected:function(){this.selectedItem&&(this.selected=this._valueForItem(this.selectedItem))},_updateSelected:function(){this._selectSelected(this.selected)},_selectSelected:function(e){if(this.items){var t=this._valueToItem(this.selected);t?this._selection.select(t):this._selection.clear(),this.fallbackSelection&&this.items.length&&void 0===this._selection.get()&&(this.selected=this.fallbackSelection)}},_filterItem:function(e){return!this._excludedLocalNames[e.localName]},_valueToItem:function(e){return null==e?null:this.items[this._valueToIndex(e)]},_valueToIndex:function(e){if(!this.attrForSelected)return Number(e);for(var t,n=0;t=this.items[n];n++)if(this._valueForItem(t)==e)return n},_indexToValue:function(e){if(!this.attrForSelected)return e;var t=this.items[e];return t?this._valueForItem(t):void 0},_valueForItem:function(e){if(!e)return null;if(!this.attrForSelected){var t=this.indexOf(e);return-1===t?null:t}var n=e[Object(o.b)(this.attrForSelected)];return null!=n?n:e.getAttribute(this.attrForSelected)},_applySelection:function(e,t){this.selectedClass&&this.toggleClass(this.selectedClass,t,e),this.selectedAttribute&&this.toggleAttribute(this.selectedAttribute,t,e),this._selectionChange(),this.fire("iron-"+(t?"select":"deselect"),{item:e})},_selectionChange:function(){this._setSelectedItem(this._selection.get())},_observeItems:function(e){return Object(i.a)(e).observeNodes(function(e){this._updateItems(),this._updateSelected(),this.fire("iron-items-changed",e,{bubbles:!1,cancelable:!1})})},_activateHandler:function(e){for(var t=e.target,n=this.items;t&&t!=this;){var i=n.indexOf(t);if(i>=0){var o=this._indexToValue(i);return void this._itemActivate(o,t)}t=t.parentNode}},_itemActivate:function(e,t){this.fire("iron-activate",{selected:e,item:t},{cancelable:!0}).defaultPrevented||this.select(e)}}},,,,,,,function(e,t,n){"use strict";n(4);var i=n(26),o=n(7),r=n(8),a=n(6);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n
    \n']);return s=function(){return e},e}var l={distance:function(e,t,n,i){var o=e-n,r=t-i;return Math.sqrt(o*o+r*r)},now:window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now};function c(e){this.element=e,this.width=this.boundingRect.width,this.height=this.boundingRect.height,this.size=Math.max(this.width,this.height)}function d(e){this.element=e,this.color=window.getComputedStyle(e).color,this.wave=document.createElement("div"),this.waveContainer=document.createElement("div"),this.wave.style.backgroundColor=this.color,this.wave.classList.add("wave"),this.waveContainer.classList.add("wave-container"),Object(r.a)(this.waveContainer).appendChild(this.wave),this.resetInteractionState()}c.prototype={get boundingRect(){return this.element.getBoundingClientRect()},furthestCornerDistanceFrom:function(e,t){var n=l.distance(e,t,0,0),i=l.distance(e,t,this.width,0),o=l.distance(e,t,0,this.height),r=l.distance(e,t,this.width,this.height);return Math.max(n,i,o,r)}},d.MAX_RADIUS=300,d.prototype={get recenters(){return this.element.recenters},get center(){return this.element.center},get mouseDownElapsed(){var e;return this.mouseDownStart?(e=l.now()-this.mouseDownStart,this.mouseUpStart&&(e-=this.mouseUpElapsed),e):0},get mouseUpElapsed(){return this.mouseUpStart?l.now()-this.mouseUpStart:0},get mouseDownElapsedSeconds(){return this.mouseDownElapsed/1e3},get mouseUpElapsedSeconds(){return this.mouseUpElapsed/1e3},get mouseInteractionSeconds(){return this.mouseDownElapsedSeconds+this.mouseUpElapsedSeconds},get initialOpacity(){return this.element.initialOpacity},get opacityDecayVelocity(){return this.element.opacityDecayVelocity},get radius(){var e=this.containerMetrics.width*this.containerMetrics.width,t=this.containerMetrics.height*this.containerMetrics.height,n=1.1*Math.min(Math.sqrt(e+t),d.MAX_RADIUS)+5,i=1.1-n/d.MAX_RADIUS*.2,o=this.mouseInteractionSeconds/i,r=n*(1-Math.pow(80,-o));return Math.abs(r)},get opacity(){return this.mouseUpStart?Math.max(0,this.initialOpacity-this.mouseUpElapsedSeconds*this.opacityDecayVelocity):this.initialOpacity},get outerOpacity(){var e=.3*this.mouseUpElapsedSeconds,t=this.opacity;return Math.max(0,Math.min(e,t))},get isOpacityFullyDecayed(){return this.opacity<.01&&this.radius>=Math.min(this.maxRadius,d.MAX_RADIUS)},get isRestingAtMaxRadius(){return this.opacity>=this.initialOpacity&&this.radius>=Math.min(this.maxRadius,d.MAX_RADIUS)},get isAnimationComplete(){return this.mouseUpStart?this.isOpacityFullyDecayed:this.isRestingAtMaxRadius},get translationFraction(){return Math.min(1,this.radius/this.containerMetrics.size*2/Math.sqrt(2))},get xNow(){return this.xEnd?this.xStart+this.translationFraction*(this.xEnd-this.xStart):this.xStart},get yNow(){return this.yEnd?this.yStart+this.translationFraction*(this.yEnd-this.yStart):this.yStart},get isMouseDown(){return this.mouseDownStart&&!this.mouseUpStart},resetInteractionState:function(){this.maxRadius=0,this.mouseDownStart=0,this.mouseUpStart=0,this.xStart=0,this.yStart=0,this.xEnd=0,this.yEnd=0,this.slideDistance=0,this.containerMetrics=new c(this.element)},draw:function(){var e,t,n;this.wave.style.opacity=this.opacity,e=this.radius/(this.containerMetrics.size/2),t=this.xNow-this.containerMetrics.width/2,n=this.yNow-this.containerMetrics.height/2,this.waveContainer.style.webkitTransform="translate("+t+"px, "+n+"px)",this.waveContainer.style.transform="translate3d("+t+"px, "+n+"px, 0)",this.wave.style.webkitTransform="scale("+e+","+e+")",this.wave.style.transform="scale3d("+e+","+e+",1)"},downAction:function(e){var t=this.containerMetrics.width/2,n=this.containerMetrics.height/2;this.resetInteractionState(),this.mouseDownStart=l.now(),this.center?(this.xStart=t,this.yStart=n,this.slideDistance=l.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)):(this.xStart=e?e.detail.x-this.containerMetrics.boundingRect.left:this.containerMetrics.width/2,this.yStart=e?e.detail.y-this.containerMetrics.boundingRect.top:this.containerMetrics.height/2),this.recenters&&(this.xEnd=t,this.yEnd=n,this.slideDistance=l.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)),this.maxRadius=this.containerMetrics.furthestCornerDistanceFrom(this.xStart,this.yStart),this.waveContainer.style.top=(this.containerMetrics.height-this.containerMetrics.size)/2+"px",this.waveContainer.style.left=(this.containerMetrics.width-this.containerMetrics.size)/2+"px",this.waveContainer.style.width=this.containerMetrics.size+"px",this.waveContainer.style.height=this.containerMetrics.size+"px"},upAction:function(e){this.isMouseDown&&(this.mouseUpStart=l.now())},remove:function(){Object(r.a)(this.waveContainer.parentNode).removeChild(this.waveContainer)}},Object(o.a)({_template:Object(a.a)(s()),is:"paper-ripple",behaviors:[i.a],properties:{initialOpacity:{type:Number,value:.25},opacityDecayVelocity:{type:Number,value:.8},recenters:{type:Boolean,value:!1},center:{type:Boolean,value:!1},ripples:{type:Array,value:function(){return[]}},animating:{type:Boolean,readOnly:!0,reflectToAttribute:!0,value:!1},holdDown:{type:Boolean,value:!1,observer:"_holdDownChanged"},noink:{type:Boolean,value:!1},_animating:{type:Boolean},_boundAnimate:{type:Function,value:function(){return this.animate.bind(this)}}},get target(){return this.keyEventTarget},keyBindings:{"enter:keydown":"_onEnterKeydown","space:keydown":"_onSpaceKeydown","space:keyup":"_onSpaceKeyup"},attached:function(){11==this.parentNode.nodeType?this.keyEventTarget=Object(r.a)(this).getOwnerRoot().host:this.keyEventTarget=this.parentNode;var e=this.keyEventTarget;this.listen(e,"up","uiUpAction"),this.listen(e,"down","uiDownAction")},detached:function(){this.unlisten(this.keyEventTarget,"up","uiUpAction"),this.unlisten(this.keyEventTarget,"down","uiDownAction"),this.keyEventTarget=null},get shouldKeepAnimating(){for(var e=0;e0||(this.addRipple().downAction(e),this._animating||(this._animating=!0,this.animate()))},uiUpAction:function(e){this.noink||this.upAction(e)},upAction:function(e){this.holdDown||(this.ripples.forEach(function(t){t.upAction(e)}),this._animating=!0,this.animate())},onAnimationComplete:function(){this._animating=!1,this.$.background.style.backgroundColor=null,this.fire("transitionend")},addRipple:function(){var e=new d(this);return Object(r.a)(this.$.waves).appendChild(e.waveContainer),this.$.background.style.backgroundColor=e.color,this.ripples.push(e),this._setAnimating(!0),e},removeRipple:function(e){var t=this.ripples.indexOf(e);t<0||(this.ripples.splice(t,1),e.remove(),this.ripples.length||this._setAnimating(!1))},animate:function(){if(this._animating){var e,t;for(e=0;e\n \n",document.head.appendChild(i.content)},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(4);var i={properties:{active:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"__activeChanged"},alt:{type:String,value:"loading",observer:"__altChanged"},__coolingDown:{type:Boolean,value:!1}},__computeContainerClasses:function(e,t){return[e||t?"active":"",t?"cooldown":""].join(" ")},__activeChanged:function(e,t){this.__setAriaHidden(!e),this.__coolingDown=!e&&t},__altChanged:function(e){"loading"===e?this.alt=this.getAttribute("aria-label")||e:(this.__setAriaHidden(""===e),this.setAttribute("aria-label",e))},__setAriaHidden:function(e){e?this.setAttribute("aria-hidden","true"):this.removeAttribute("aria-hidden")},__reset:function(){this.active=!1,this.__coolingDown=!1}}},function(e,t,n){"use strict";n(4),n(12);var i=n(7),o=n(8),r=n(6),a=n(110);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n\n
    \n \n
    \n
    \n'],['\n \n\n
    \n \n\n
    \n \n
    \n
    \n']);return s=function(){return e},e}Object(i.a)({_template:Object(r.a)(s()),is:"app-header-layout",behaviors:[a.a],properties:{hasScrollingRegion:{type:Boolean,value:!1,reflectToAttribute:!0}},observers:["resetLayout(isAttached, hasScrollingRegion)"],get header(){return Object(o.a)(this.$.headerSlot).getDistributedNodes()[0]},_updateLayoutStates:function(){var e=this.header;if(this.isAttached&&e){this.$.wrapper.classList.remove("initializing"),e.scrollTarget=this.hasScrollingRegion?this.$.contentContainer:this.ownerDocument.documentElement;var t=e.offsetHeight;this.hasScrollingRegion?(e.style.left="",e.style.right=""):requestAnimationFrame(function(){var t=this.getBoundingClientRect(),n=document.documentElement.clientWidth-t.right;e.style.left=t.left+"px",e.style.right=n+"px"}.bind(this));var n=this.$.contentContainer.style;e.fixed&&!e.condenses&&this.hasScrollingRegion?(n.marginTop=t+"px",n.paddingTop=""):(n.paddingTop=t+"px",n.marginTop="")}}})},function(e,t,n){"use strict";n.d(t,"a",function(){return l});n(4);var i=n(84),o=n(8),r=n(28),a=n(32),s=n(33),l=[i.a,{listeners:{"app-reset-layout":"_appResetLayoutHandler","iron-resize":"resetLayout"},attached:function(){this.fire("app-reset-layout")},_appResetLayoutHandler:function(e){Object(o.a)(e).path[0]!==this&&(this.resetLayout(),e.stopPropagation())},_updateLayoutStates:function(){console.error("unimplemented")},resetLayout:function(){var e=this._updateLayoutStates.bind(this);this._layoutDebouncer=a.a.debounce(this._layoutDebouncer,r.a,e),Object(s.a)(this._layoutDebouncer),this._notifyDescendantResize()},_notifyLayoutChanged:function(){var e=this;requestAnimationFrame(function(){e.fire("app-reset-layout")})},_notifyDescendantResize:function(){this.isAttached&&this._interestedResizables.forEach(function(e){this.resizerShouldNotify(e)&&this._notifyDescendant(e)},this)}}]},function(e,t,n){"use strict";n(4),n(12);var i=n(45),o=n(25),r=n(81),a=n(7),s=n(8),l=n(6);function c(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n
    \n']);return c=function(){return e},e}Object(a.a)({_template:Object(l.a)(c()),is:"paper-tab",behaviors:[o.a,i.a,r.a],properties:{link:{type:Boolean,value:!1,reflectToAttribute:!0}},hostAttributes:{role:"tab"},listeners:{down:"_updateNoink",tap:"_onTap"},attached:function(){this._updateNoink()},get _parentNoink(){var e=Object(s.a)(this).parentNode;return!!e&&!!e.noink},_updateNoink:function(){this.noink=!!this.noink||!!this._parentNoink},_onTap:function(e){if(this.link){var t=this.queryEffectiveChildren("a");if(!t)return;if(e.target===t)return;t.click()}}})},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});n(4);var i=n(92),o={hostAttributes:{role:"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},get _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:function(e){this._isRTL?this._focusNext():this._focusPrevious(),e.detail.keyboardEvent.preventDefault()},_onRightKey:function(e){this._isRTL?this._focusPrevious():this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up down left right esc")||this._focusWithKeyboardEvent(e)}},r=[i.a,o]},,function(e,t,n){"use strict";n(4),n(13),n(12);var i=n(128),o=n(7),r=n(6),a=n(78);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n\n
    \n
    \n
    \n
    \n\n
    '],['\n\n\n
    \n
    \n
    \n
    \n\n
    ']);return s=function(){return e},e}var l=Object(r.a)(s());l.setAttribute("strip-whitespace",""),Object(o.a)({_template:l,is:"paper-radio-button",behaviors:[i.a],hostAttributes:{role:"radio","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},ready:function(){this._rippleContainer=this.$.radioContainer},attached:function(){Object(a.a)(this,function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-radio-button-ink-size").trim()){var e=parseFloat(this.getComputedStyleValue("--calculated-paper-radio-button-size").trim()),t=Math.floor(3*e);t%2!=e%2&&t++,this.updateStyles({"--paper-radio-button-ink-size":t+"px"})}})}})},,,,,,,,,,function(e,t,n){"use strict";n(4);var i=n(26),o=n(25),r=n(70),a=n(72),s=n(7),l=n(8),c=n(6);function d(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n
    \n \n
    \n']);return d=function(){return e},e}Object(s.a)({_template:Object(c.a)(d()),is:"iron-dropdown",behaviors:[o.a,i.a,r.a,a.a],properties:{horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},openAnimationConfig:{type:Object},closeAnimationConfig:{type:Object},focusTarget:{type:Object},noAnimations:{type:Boolean,value:!1},allowOutsideScroll:{type:Boolean,value:!1,observer:"_allowOutsideScrollChanged"}},listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},observers:["_updateOverlayPosition(positionTarget, verticalAlign, horizontalAlign, verticalOffset, horizontalOffset)"],get containedElement(){for(var e=Object(l.a)(this.$.content).getDistributedNodes(),t=0,n=e.length;t\n :host {\n display: inline-block;\n position: relative;\n padding: 8px;\n outline: none;\n\n @apply --paper-menu-button;\n }\n\n :host([disabled]) {\n cursor: auto;\n color: var(--disabled-text-color);\n\n @apply --paper-menu-button-disabled;\n }\n\n iron-dropdown {\n @apply --paper-menu-button-dropdown;\n }\n\n .dropdown-content {\n @apply --shadow-elevation-2dp;\n\n position: relative;\n border-radius: 2px;\n background-color: var(--paper-menu-button-dropdown-background, var(--primary-background-color));\n\n @apply --paper-menu-button-content;\n }\n\n :host([vertical-align="top"]) .dropdown-content {\n margin-bottom: 20px;\n margin-top: -10px;\n top: 10px;\n }\n\n :host([vertical-align="bottom"]) .dropdown-content {\n bottom: 10px;\n margin-bottom: -10px;\n margin-top: 20px;\n }\n\n #trigger {\n cursor: pointer;\n }\n \n\n
    \n \n
    \n\n \n \n \n']);return p=function(){return e},e}Object(s.a)({is:"paper-menu-grow-height-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().height;return this._effect=new KeyframeEffect(t,[{height:n/2+"px"},{height:n+"px"}],this.timingFromConfig(e)),this._effect}}),Object(s.a)({is:"paper-menu-grow-width-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().width;return this._effect=new KeyframeEffect(t,[{width:n/2+"px"},{width:n+"px"}],this.timingFromConfig(e)),this._effect}}),Object(s.a)({is:"paper-menu-shrink-width-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().width;return this._effect=new KeyframeEffect(t,[{width:n+"px"},{width:n-n/20+"px"}],this.timingFromConfig(e)),this._effect}}),Object(s.a)({is:"paper-menu-shrink-height-animation",behaviors:[u],configure:function(e){var t=e.node,n=t.getBoundingClientRect().height;return this.setPrefixedProperty(t,"transformOrigin","0 0"),this._effect=new KeyframeEffect(t,[{height:n+"px",transform:"translateY(0)"},{height:n/2+"px",transform:"translateY(-20px)"}],this.timingFromConfig(e)),this._effect}});var h={ANIMATION_CUBIC_BEZIER:"cubic-bezier(.3,.95,.5,1)",MAX_ANIMATION_TIME_MS:400},f=Object(s.a)({_template:Object(c.a)(p()),is:"paper-menu-button",behaviors:[i.a,o.a],properties:{opened:{type:Boolean,value:!1,notify:!0,observer:"_openedChanged"},horizontalAlign:{type:String,value:"left",reflectToAttribute:!0},verticalAlign:{type:String,value:"top",reflectToAttribute:!0},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},noOverlap:{type:Boolean},noAnimations:{type:Boolean,value:!1},ignoreSelect:{type:Boolean,value:!1},closeOnActivate:{type:Boolean,value:!1},openAnimationConfig:{type:Object,value:function(){return[{name:"fade-in-animation",timing:{delay:100,duration:200}},{name:"paper-menu-grow-width-animation",timing:{delay:100,duration:150,easing:h.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-grow-height-animation",timing:{delay:100,duration:275,easing:h.ANIMATION_CUBIC_BEZIER}}]}},closeAnimationConfig:{type:Object,value:function(){return[{name:"fade-out-animation",timing:{duration:150}},{name:"paper-menu-shrink-width-animation",timing:{delay:100,duration:50,easing:h.ANIMATION_CUBIC_BEZIER}},{name:"paper-menu-shrink-height-animation",timing:{duration:200,easing:"ease-in"}}]}},allowOutsideScroll:{type:Boolean,value:!1},restoreFocusOnClose:{type:Boolean,value:!0},_dropdownContent:{type:Object}},hostAttributes:{role:"group","aria-haspopup":"true"},listeners:{"iron-activate":"_onIronActivate","iron-select":"_onIronSelect"},get contentElement(){for(var e=Object(l.a)(this.$.content).getDistributedNodes(),t=0,n=e.length;t-1&&e.preventDefault()}});Object.keys(h).forEach(function(e){f[e]=h[e]})},function(e,t,n){"use strict";n(4),n(12);var i=n(7),o=n(8),r=n(6),a=n(110);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var l={properties:{scrollTarget:{type:HTMLElement,value:function(){return this._defaultScrollTarget}}},observers:["_scrollTargetChanged(scrollTarget, isAttached)"],_shouldHaveListener:!0,_scrollTargetChanged:function(e,t){if(this._oldScrollTarget&&(this._toggleScrollListener(!1,this._oldScrollTarget),this._oldScrollTarget=null),t)if("document"===e)this.scrollTarget=this._doc;else if("string"==typeof e){var n=this.domHost;this.scrollTarget=n&&n.$?n.$[e]:Object(o.a)(this.ownerDocument).querySelector("#"+e)}else this._isValidScrollTarget()&&(this._oldScrollTarget=e,this._toggleScrollListener(this._shouldHaveListener,e))},_scrollHandler:function(){},get _defaultScrollTarget(){return this._doc},get _doc(){return this.ownerDocument.documentElement},get _scrollTop(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageYOffset:this.scrollTarget.scrollTop:0},get _scrollLeft(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageXOffset:this.scrollTarget.scrollLeft:0},set _scrollTop(e){this.scrollTarget===this._doc?window.scrollTo(window.pageXOffset,e):this._isValidScrollTarget()&&(this.scrollTarget.scrollTop=e)},set _scrollLeft(e){this.scrollTarget===this._doc?window.scrollTo(e,window.pageYOffset):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=e)},scroll:function(e,t){var n;"object"===s(e)?(n=e.left,t=e.top):n=e,n=n||0,t=t||0,this.scrollTarget===this._doc?window.scrollTo(n,t):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=n,this.scrollTarget.scrollTop=t)},get _scrollTargetWidth(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerWidth:this.scrollTarget.offsetWidth:0},get _scrollTargetHeight(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?window.innerHeight:this.scrollTarget.offsetHeight:0},_isValidScrollTarget:function(){return this.scrollTarget instanceof HTMLElement},_toggleScrollListener:function(e,t){var n=t===this._doc?window:t;e?this._boundScrollHandler||(this._boundScrollHandler=this._scrollHandler.bind(this),n.addEventListener("scroll",this._boundScrollHandler)):this._boundScrollHandler&&(n.removeEventListener("scroll",this._boundScrollHandler),this._boundScrollHandler=null)},toggleScrollListener:function(e){this._shouldHaveListener=e,this._toggleScrollListener(e,this.scrollTarget)}},c={},d=[l,{properties:{effects:{type:String},effectsConfig:{type:Object,value:function(){return{}}},disabled:{type:Boolean,reflectToAttribute:!0,value:!1},threshold:{type:Number,value:0},thresholdTriggered:{type:Boolean,notify:!0,readOnly:!0,reflectToAttribute:!0}},observers:["_effectsChanged(effects, effectsConfig, isAttached)"],_updateScrollState:function(e){},isOnScreen:function(){return!1},isContentBelow:function(){return!1},_effectsRunFn:null,_effects:null,get _clampedScrollTop(){return Math.max(0,this._scrollTop)},attached:function(){this._scrollStateChanged()},detached:function(){this._tearDownEffects()},createEffect:function(e,t){var n=c[e];if(!n)throw new ReferenceError(this._getUndefinedMsg(e));var i=this._boundEffect(n,t||{});return i.setUp(),i},_effectsChanged:function(e,t,n){this._tearDownEffects(),e&&n&&(e.split(" ").forEach(function(e){var n;""!==e&&((n=c[e])?this._effects.push(this._boundEffect(n,t[e])):console.warn(this._getUndefinedMsg(e)))},this),this._setUpEffect())},_layoutIfDirty:function(){return this.offsetWidth},_boundEffect:function(e,t){t=t||{};var n=parseFloat(t.startsAt||0),i=parseFloat(t.endsAt||1),o=i-n,r=function(){},a=0===n&&1===i?e.run:function(t,i){e.run.call(this,Math.max(0,(t-n)/o),i)};return{setUp:e.setUp?e.setUp.bind(this,t):r,run:e.run?a.bind(this):r,tearDown:e.tearDown?e.tearDown.bind(this):r}},_setUpEffect:function(){this.isAttached&&this._effects&&(this._effectsRunFn=[],this._effects.forEach(function(e){!1!==e.setUp()&&this._effectsRunFn.push(e.run)},this))},_tearDownEffects:function(){this._effects&&this._effects.forEach(function(e){e.tearDown()}),this._effectsRunFn=[],this._effects=[]},_runEffects:function(e,t){this._effectsRunFn&&this._effectsRunFn.forEach(function(n){n(e,t)})},_scrollHandler:function(){this._scrollStateChanged()},_scrollStateChanged:function(){if(!this.disabled){var e=this._clampedScrollTop;this._updateScrollState(e),this.threshold>0&&this._setThresholdTriggered(e>=this.threshold)}},_getDOMRef:function(e){console.warn("_getDOMRef","`"+e+"` is undefined")},_getUndefinedMsg:function(e){return"Scroll effect `"+e+"` is undefined. Did you forget to import app-layout/app-scroll-effects/effects/"+e+".html ?"}}];function u(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n
    \n \n
    \n']);return u=function(){return e},e}Object(i.a)({_template:Object(r.a)(u()),is:"app-header",behaviors:[d,a.a],properties:{condenses:{type:Boolean,value:!1},fixed:{type:Boolean,value:!1},reveals:{type:Boolean,value:!1},shadow:{type:Boolean,reflectToAttribute:!0,value:!1}},observers:["_configChanged(isAttached, condenses, fixed)"],_height:0,_dHeight:0,_stickyElTop:0,_stickyElRef:null,_top:0,_progress:0,_wasScrollingDown:!1,_initScrollTop:0,_initTimestamp:0,_lastTimestamp:0,_lastScrollTop:0,get _maxHeaderTop(){return this.fixed?this._dHeight:this._height+5},get _stickyEl(){if(this._stickyElRef)return this._stickyElRef;for(var e,t=Object(o.a)(this.$.slot).getDistributedNodes(),n=0;e=t[n];n++)if(e.nodeType===Node.ELEMENT_NODE){if(e.hasAttribute("sticky")){this._stickyElRef=e;break}this._stickyElRef||(this._stickyElRef=e)}return this._stickyElRef},_configChanged:function(){this.resetLayout(),this._notifyLayoutChanged()},_updateLayoutStates:function(){if(0!==this.offsetWidth||0!==this.offsetHeight){var e=this._clampedScrollTop,t=0===this._height||0===e,n=this.disabled;this._height=this.offsetHeight,this._stickyElRef=null,this.disabled=!0,t||this._updateScrollState(0,!0),this._mayMove()?this._dHeight=this._stickyEl?this._height-this._stickyEl.offsetHeight:0:this._dHeight=0,this._stickyElTop=this._stickyEl?this._stickyEl.offsetTop:0,this._setUpEffect(),t?this._updateScrollState(e,!0):(this._updateScrollState(this._lastScrollTop,!0),this._layoutIfDirty()),this.disabled=n}},_updateScrollState:function(e,t){if(0!==this._height){var n=0,i=0,o=this._top,r=(this._lastScrollTop,this._maxHeaderTop),a=e-this._lastScrollTop,s=Math.abs(a),l=e>this._lastScrollTop,c=performance.now();if(this._mayMove()&&(i=this._clamp(this.reveals?o+a:e,0,r)),e>=this._dHeight&&(i=this.condenses&&!this.fixed?Math.max(this._dHeight,i):i,this.style.transitionDuration="0ms"),this.reveals&&!this.disabled&&s<100&&((c-this._initTimestamp>300||this._wasScrollingDown!==l)&&(this._initScrollTop=e,this._initTimestamp=c),e>=r))if(Math.abs(this._initScrollTop-e)>30||s>10){l&&e>=r?i=r:!l&&e>=this._dHeight&&(i=this.condenses&&!this.fixed?this._dHeight:0);var d=a/(c-this._lastTimestamp);this.style.transitionDuration=this._clamp((i-o)/d,0,300)+"ms"}else i=this._top;n=0===this._dHeight?e>0?1:0:i/this._dHeight,t||(this._lastScrollTop=e,this._top=i,this._wasScrollingDown=l,this._lastTimestamp=c),(t||n!==this._progress||o!==i||0===e)&&(this._progress=n,this._runEffects(n,i),this._transformHeader(i))}},_mayMove:function(){return this.condenses||!this.fixed},willCondense:function(){return this._dHeight>0&&this.condenses},isOnScreen:function(){return 0!==this._height&&this._top0:this._clampedScrollTop-this._maxHeaderTop>=0},_transformHeader:function(e){this.translate3d(0,-e+"px",0),this._stickyEl&&this.translate3d(0,this.condenses&&e>=this._stickyElTop?Math.min(e,this._dHeight)-this._stickyElTop+"px":0,0,this._stickyEl)},_clamp:function(e,t,n){return Math.min(n,Math.max(t,e))},_ensureBgContainers:function(){this._bgContainer||(this._bgContainer=document.createElement("div"),this._bgContainer.id="background",this._bgRear=document.createElement("div"),this._bgRear.id="backgroundRearLayer",this._bgContainer.appendChild(this._bgRear),this._bgFront=document.createElement("div"),this._bgFront.id="backgroundFrontLayer",this._bgContainer.appendChild(this._bgFront),Object(o.a)(this.root).insertBefore(this._bgContainer,this.$.contentContainer))},_getDOMRef:function(e){switch(e){case"backgroundFrontLayer":return this._ensureBgContainers(),this._bgFront;case"backgroundRearLayer":return this._ensureBgContainers(),this._bgRear;case"background":return this._ensureBgContainers(),this._bgContainer;case"mainTitle":return Object(o.a)(this).querySelector("[main-title]");case"condensedTitle":return Object(o.a)(this).querySelector("[condensed-title]")}return null},getScrollState:function(){return{progress:this._progress,top:this._top}}})},,,function(e,t,n){"use strict";n(4);var i=n(85),o=n(65),r={properties:{checked:{type:Boolean,value:!1,reflectToAttribute:!0,notify:!0,observer:"_checkedChanged"},toggles:{type:Boolean,value:!0,reflectToAttribute:!0},value:{type:String,value:"on",observer:"_valueChanged"}},observers:["_requiredChanged(required)"],created:function(){this._hasIronCheckedElementBehavior=!0},_getValidity:function(e){return this.disabled||!this.required||this.checked},_requiredChanged:function(){this.required?this.setAttribute("aria-required","true"):this.removeAttribute("aria-required")},_checkedChanged:function(){this.active=this.checked,this.fire("iron-change")},_valueChanged:function(){void 0!==this.value&&null!==this.value||(this.value="on")}},a=[i.a,o.a,r],s=n(80),l=n(81);n.d(t,"a",function(){return d});var c={_checkedChanged:function(){r._checkedChanged.call(this),this.hasRipple()&&(this.checked?this._ripple.setAttribute("checked",""):this._ripple.removeAttribute("checked"))},_buttonStateChanged:function(){l.a._buttonStateChanged.call(this),this.disabled||this.isAttached&&(this.checked=this.active)}},d=[s.a,a,c]},function(e,t,n){"use strict";n(12),n(101),n(13),n(35),n(30)},function(e,t,n){"use strict";function i(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}n.d(t,"a",function(){return u}),"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));function o(e){return{type:"unsubscribe_events",subscription:e}}var r=function(e,t){this.options=t,this.commandId=1,this.commands=new Map,this.eventListeners=new Map,this.closeRequested=!1,this.setSocket(e)};r.prototype.setSocket=function(e){var t=this,n=this.socket;if(this.socket=e,e.addEventListener("message",function(e){return t._handleMessage(e)}),e.addEventListener("close",function(e){return t._handleClose(e)}),n){var i=this.commands;this.commandId=1,this.commands=new Map,i.forEach(function(e){"subscribe"in e&&e.subscribe().then(function(t){e.unsubscribe=t,e.resolve()})}),this.fireEvent("ready")}},r.prototype.addEventListener=function(e,t){var n=this.eventListeners.get(e);n||this.eventListeners.set(e,n=[]),n.push(t)},r.prototype.removeEventListener=function(e,t){var n=this.eventListeners.get(e);if(n){var i=n.indexOf(t);-1!==i&&n.splice(i,1)}},r.prototype.fireEvent=function(e,t){var n=this;(this.eventListeners.get(e)||[]).forEach(function(e){return e(n,t)})},r.prototype.close=function(){this.closeRequested=!0,this.socket.close()},r.prototype.subscribeEvents=function(e,t){try{return this.subscribeMessage(e,function(e){var t={type:"subscribe_events"};return e&&(t.event_type=e),t}(t))}catch(e){return Promise.reject(e)}},r.prototype.ping=function(){return this.sendMessagePromise({type:"ping"})},r.prototype.sendMessage=function(e,t){t||(t=this._genCmdId()),e.id=t,this.socket.send(JSON.stringify(e))},r.prototype.sendMessagePromise=function(e){var t=this;return new Promise(function(n,i){var o=t._genCmdId();t.commands.set(o,{resolve:n,reject:i}),t.sendMessage(e,o)})},r.prototype.subscribeMessage=function(e,t){try{var n,i=this,r=i._genCmdId();return Promise.resolve(new Promise(function(a,s){n={resolve:a,reject:s,callback:e,subscribe:function(){return i.subscribeMessage(e,t)},unsubscribe:function(){try{return Promise.resolve(i.sendMessagePromise(o(r))).then(function(){i.commands.delete(r)})}catch(e){return Promise.reject(e)}}},i.commands.set(r,n);try{i.sendMessage(t,r)}catch(e){}})).then(function(){return function(){return n.unsubscribe()}})}catch(e){return Promise.reject(e)}},r.prototype._handleMessage=function(e){var t=JSON.parse(e.data),n=this.commands.get(t.id);switch(t.type){case"event":n?n.callback(t.event):(console.warn("Received event for unknown subscription "+t.id+". Unsubscribing."),this.sendMessagePromise(o(t.id)));break;case"result":n&&(t.success?(n.resolve(t.result),"subscribe"in n||this.commands.delete(t.id)):(n.reject(t.error),this.commands.delete(t.id)));break;case"pong":n?(n.resolve(),this.commands.delete(t.id)):console.warn("Received unknown pong response "+t.id)}},r.prototype._handleClose=function(e){var t=this;if(this.commands.forEach(function(e){"subscribe"in e||e.reject({type:"result",success:!1,error:{code:3,message:"Connection lost"}})}),!this.closeRequested){this.fireEvent("disconnected");var n=Object.assign({},this.options,{setupRetry:0});!function e(o){var r=t;setTimeout(function(){try{var t=i(function(){return Promise.resolve(n.createSocket(n)).then(function(e){r.setSocket(e)})},function(t){2===t?r.fireEvent("reconnect-error",t):e(o+1)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(i){return Promise.reject(i)}},1e3*Math.min(o,5))}(0)}},r.prototype._genCmdId=function(){return++this.commandId};var a=function(e,t,n){try{var i="undefined"!=typeof location&&location;if(i&&"https:"===i.protocol){var o=document.createElement("a");if(o.href=e,"http:"===o.protocol&&"localhost"!==o.hostname)throw 5}var r=new FormData;return null!==t&&r.append("client_id",t),Object.keys(n).forEach(function(e){r.append(e,n[e])}),Promise.resolve(fetch(e+"/auth/token",{method:"POST",credentials:"same-origin",body:r})).then(function(n){if(!n.ok)throw 400===n.status||403===n.status?2:new Error("Unable to fetch tokens");return Promise.resolve(n.json()).then(function(n){return n.hassUrl=e,n.clientId=t,n.expires=s(n.expires_in),n})})}catch(e){return Promise.reject(e)}},s=function(e){return 1e3*e+Date.now()};var l=function(e,t){this.data=e,this._saveTokens=t},c={wsUrl:{configurable:!0},accessToken:{configurable:!0},expired:{configurable:!0}};c.wsUrl.get=function(){return"ws"+this.data.hassUrl.substr(4)+"/api/websocket"},c.accessToken.get=function(){return this.data.access_token},c.expired.get=function(){return Date.now()>this.data.expires},l.prototype.refreshAccessToken=function(){try{var e=this;return Promise.resolve(a(e.data.hassUrl,e.data.clientId,{grant_type:"refresh_token",refresh_token:e.data.refresh_token})).then(function(t){t.refresh_token=e.data.refresh_token,e.data=t,e._saveTokens&&e._saveTokens(t)})}catch(e){return Promise.reject(e)}},l.prototype.revoke=function(){try{var e=this,t=new FormData;return t.append("action","revoke"),t.append("token",e.data.refresh_token),Promise.resolve(fetch(e.data.hassUrl+"/auth/token",{method:"POST",credentials:"same-origin",body:t})).then(function(){e._saveTokens&&e._saveTokens(null)})}catch(e){return Promise.reject(e)}},Object.defineProperties(l.prototype,c);var d=function(e,t,n,i){if(e[t])return e[t];var o,r=0,a=function(e){var t=[];function n(n,i){e=i?n:Object.assign({},e,n);for(var o=t,r=0;r\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n']);return a=function(){return e},e}var s=Object(o.a)(a());s.setAttribute("strip-whitespace",""),Object(i.a)({_template:s,is:"paper-spinner",behaviors:[r.a]})},function(e,t,n){"use strict";n(4),n(13);var i=n(128),o=n(80),r=n(7),a=n(6),s=n(78);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n\n
    \n
    \n
    \n
    \n
    \n\n
    '],['\n\n
    \n
    \n
    \n
    \n
    \n\n
    ']);return l=function(){return e},e}var c=Object(a.a)(l());c.setAttribute("strip-whitespace",""),Object(r.a)({_template:c,is:"paper-checkbox",behaviors:[i.a],hostAttributes:{role:"checkbox","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},attached:function(){Object(s.a)(this,function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-checkbox-ink-size").trim()){var e=this.getComputedStyleValue("--calculated-paper-checkbox-size").trim(),t="px",n=e.match(/[A-Za-z]+$/);null!==n&&(t=n[0]);var i=parseFloat(e),o=8/3*i;"px"===t&&(o=Math.floor(o))%2!=i%2&&o++,this.updateStyles({"--paper-checkbox-ink-size":o+t})}})},_computeCheckboxClass:function(e,t){var n="";return e&&(n+="checked "),t&&(n+="invalid"),n},_computeCheckmarkClass:function(e){return e?"":"hidden"},_createRipple:function(){return this._rippleContainer=this.$.checkboxContainer,o.b._createRipple.call(this)}})},function(e,t,n){"use strict";n(4),n(26),n(114);var i=n(112),o=n(95),r=n(7),a=n(6);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n\n \n"]);return s=function(){return e},e}Object(r.a)({_template:Object(a.a)(s()),is:"paper-radio-group",behaviors:[i.a],hostAttributes:{role:"radiogroup"},properties:{attrForSelected:{type:String,value:"name"},selectedAttribute:{type:String,value:"checked"},selectable:{type:String,value:"paper-radio-button"},allowEmptySelection:{type:Boolean,value:!1}},select:function(e){var t=this._valueToItem(e);if(!t||!t.hasAttribute("disabled")){if(this.selected){var n=this._valueToItem(this.selected);if(this.selected==e){if(!this.allowEmptySelection)return void(n&&(n.checked=!0));e=""}n&&(n.checked=!1)}o.a.select.apply(this,[e]),this.fire("paper-radio-group-changed")}},_activateFocusedItem:function(){this._itemActivate(this._valueForItem(this.focusedItem),this.focusedItem)},_onUpKey:function(e){this._focusPrevious(),e.preventDefault(),this._activateFocusedItem()},_onDownKey:function(e){this._focusNext(),e.preventDefault(),this._activateFocusedItem()},_onLeftKey:function(e){i.b._onLeftKey.apply(this,arguments),this._activateFocusedItem()},_onRightKey:function(e){i.b._onRightKey.apply(this,arguments),this._activateFocusedItem()}})},function(e,t,n){(function(e){var n,i,o,r;function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}r=function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==a(e)&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t){e.exports=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==a(Symbol.iterator)?function(e){return a(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":a(e)})(e)}function o(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\nSearch pattern: "'.concat(e,'"'));var n=this._prepareSearchers(e),i=n.tokenSearchers,o=n.fullSearcher,r=this._search(i,o),a=r.weights,s=r.results;return this._computeScore(a,s),this.options.shouldSort&&this._sort(s),t.limit&&"number"==typeof t.limit&&(s=s.slice(0,t.limit)),this._format(s)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),i=0,o=n.length;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=this.list,i={},o=[];if("string"==typeof n[0]){for(var r=0,a=n.length;r1)throw new Error("Key weight has to be > 0 and <= 1");h=h.name}else s[h]={weight:1};this._analyze({key:h,value:this.options.getFn(d,h),record:d,index:l},{resultMap:i,results:o,tokenSearchers:e,fullSearcher:t})}return{weights:s,results:o}}},{key:"_analyze",value:function(e,t){var n=e.key,i=e.arrayIndex,o=void 0===i?-1:i,r=e.value,a=e.record,s=e.index,c=t.tokenSearchers,d=void 0===c?[]:c,u=t.fullSearcher,p=void 0===u?[]:u,h=t.resultMap,f=void 0===h?{}:h,b=t.results,v=void 0===b?[]:b;if(null!=r){var m=!1,y=-1,g=0;if("string"==typeof r){this._log("\nKey: ".concat(""===n?"-":n));var _=p.search(r);if(this._log('Full text: "'.concat(r,'", score: ').concat(_.score)),this.options.tokenize){for(var w=r.split(this.options.tokenSeparator),x=[],k=0;k-1&&(j=(j+y)/2),this._log("Score average:",j);var R=!this.options.tokenize||!this.options.matchAllTokens||g>=d.length;if(this._log("\nCheck Matches: ".concat(R)),(m||_.isMatch)&&R){var B=f[s];B?B.output.push({key:n,arrayIndex:o,value:r,score:j,matchedIndices:_.matchedIndices}):(f[s]={item:a,output:[{key:n,arrayIndex:o,value:r,score:j,matchedIndices:_.matchedIndices}]},v.push(f[s]))}}else if(l(r))for(var P=0,N=r.length;P-1&&(a.arrayIndex=r.arrayIndex),t.matches.push(a)}}}),this.options.includeScore&&o.push(function(e,t){t.score=e.score});for(var r=0,a=e.length;rn)return o(e,this.pattern,i);var a=this.options,s=a.location,l=a.distance,c=a.threshold,d=a.findAllMatches,u=a.minMatchCharLength;return r(e,this.pattern,this.patternAlphabet,{location:s,distance:l,threshold:c,findAllMatches:d,minMatchCharLength:u})}}])&&i(t.prototype,n),e}();e.exports=s},function(e,t){var n=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,o=new RegExp(t.replace(n,"\\$&").replace(i,"|")),r=e.match(o),a=!!r,s=[];if(a)for(var l=0,c=r.length;l=j;P-=1){var N=P-1,L=n[e.charAt(N)];if(L&&(w[N]=1),B[P]=(B[P+1]<<1|1)&L,0!==T&&(B[P]|=(C[P+1]|C[P])<<1|1|C[P+1]),B[P]&E&&(O=i(t,{errors:T,currentLocation:N,expectedLocation:v,distance:c}))<=y){if(y=O,(g=N)<=v)break;j=Math.max(1,2*v-g)}}if(i(t,{errors:T+1,currentLocation:v,expectedLocation:v,distance:c})>y)break;C=B}return{isMatch:g>=0,score:0===O?.001:O,matchedIndices:o(w,b)}}},function(e,t){e.exports=function(e,t){var n=t.errors,i=void 0===n?0:n,o=t.currentLocation,r=void 0===o?0:o,a=t.expectedLocation,s=void 0===a?0:a,l=t.distance,c=void 0===l?100:l,d=i/e.length,u=Math.abs(s-r);return c?d+u/c:u?1:d}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],i=-1,o=-1,r=0,a=e.length;r=t&&n.push([i,o]),i=-1)}return e[r-1]&&r-i>=t&&n.push([i,r-1]),n}},function(e,t){e.exports=function(e){for(var t={},n=e.length,i=0;i\n\n\n\n\n']);return o=function(){return e},e}var r=Object(i.a)(o());document.head.appendChild(r.content);n(111);var a=n(92),s=n(112),l=n(84),c=n(7),d=n(8);function u(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n\n \n'],['\n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n\n \n']);return u=function(){return e},e}Object(c.a)({_template:Object(i.a)(u()),is:"paper-tabs",behaviors:[l.a,s.a],properties:{noink:{type:Boolean,value:!1,observer:"_noinkChanged"},noBar:{type:Boolean,value:!1},noSlide:{type:Boolean,value:!1},scrollable:{type:Boolean,value:!1},fitContainer:{type:Boolean,value:!1},disableDrag:{type:Boolean,value:!1},hideScrollButtons:{type:Boolean,value:!1},alignBottom:{type:Boolean,value:!1},selectable:{type:String,value:"paper-tab"},autoselect:{type:Boolean,value:!1},autoselectDelay:{type:Number,value:0},_step:{type:Number,value:10},_holdDelay:{type:Number,value:1},_leftHidden:{type:Boolean,value:!1},_rightHidden:{type:Boolean,value:!1},_previousTab:{type:Object}},hostAttributes:{role:"tablist"},listeners:{"iron-resize":"_onTabSizingChanged","iron-items-changed":"_onTabSizingChanged","iron-select":"_onIronSelect","iron-deselect":"_onIronDeselect"},keyBindings:{"left:keyup right:keyup":"_onArrowKeyup"},created:function(){this._holdJob=null,this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,this._bindDelayedActivationHandler=this._delayedActivationHandler.bind(this),this.addEventListener("blur",this._onBlurCapture.bind(this),!0)},ready:function(){this.setScrollDirection("y",this.$.tabsContainer)},detached:function(){this._cancelPendingActivation()},_noinkChanged:function(e){Object(d.a)(this).querySelectorAll("paper-tab").forEach(e?this._setNoinkAttribute:this._removeNoinkAttribute)},_setNoinkAttribute:function(e){e.setAttribute("noink","")},_removeNoinkAttribute:function(e){e.removeAttribute("noink")},_computeScrollButtonClass:function(e,t,n){return!t||n?"hidden":e?"not-visible":""},_computeTabsContentClass:function(e,t){return e?"scrollable"+(t?" fit-container":""):" fit-container"},_computeSelectionBarClass:function(e,t){return e?"hidden":t?"align-bottom":""},_onTabSizingChanged:function(){this.debounce("_onTabSizingChanged",function(){this._scroll(),this._tabChanged(this.selectedItem)},10)},_onIronSelect:function(e){this._tabChanged(e.detail.item,this._previousTab),this._previousTab=e.detail.item,this.cancelDebouncer("tab-changed")},_onIronDeselect:function(e){this.debounce("tab-changed",function(){this._tabChanged(null,this._previousTab),this._previousTab=null},1)},_activateHandler:function(){this._cancelPendingActivation(),a.b._activateHandler.apply(this,arguments)},_scheduleActivation:function(e,t){this._pendingActivationItem=e,this._pendingActivationTimeout=this.async(this._bindDelayedActivationHandler,t)},_delayedActivationHandler:function(){var e=this._pendingActivationItem;this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,e.fire(this.activateEvent,null,{bubbles:!0,cancelable:!0})},_cancelPendingActivation:function(){void 0!==this._pendingActivationTimeout&&(this.cancelAsync(this._pendingActivationTimeout),this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0)},_onArrowKeyup:function(e){this.autoselect&&this._scheduleActivation(this.focusedItem,this.autoselectDelay)},_onBlurCapture:function(e){e.target===this._pendingActivationItem&&this._cancelPendingActivation()},get _tabContainerScrollSize(){return Math.max(0,this.$.tabsContainer.scrollWidth-this.$.tabsContainer.offsetWidth)},_scroll:function(e,t){if(this.scrollable){var n=t&&-t.ddx||0;this._affectScroll(n)}},_down:function(e){this.async(function(){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusAsync=null)},1)},_affectScroll:function(e){this.$.tabsContainer.scrollLeft+=e;var t=this.$.tabsContainer.scrollLeft;this._leftHidden=0===t,this._rightHidden=t===this._tabContainerScrollSize},_onLeftScrollButtonDown:function(){this._scrollToLeft(),this._holdJob=setInterval(this._scrollToLeft.bind(this),this._holdDelay)},_onRightScrollButtonDown:function(){this._scrollToRight(),this._holdJob=setInterval(this._scrollToRight.bind(this),this._holdDelay)},_onScrollButtonUp:function(){clearInterval(this._holdJob),this._holdJob=null},_scrollToLeft:function(){this._affectScroll(-this._step)},_scrollToRight:function(){this._affectScroll(this._step)},_tabChanged:function(e,t){if(!e)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(0,0);var n=this.$.tabsContent.getBoundingClientRect(),i=n.width,o=e.getBoundingClientRect(),r=o.left-n.left;if(this._pos={width:this._calcPercent(o.width,i),left:this._calcPercent(r,i)},this.noSlide||null==t)return this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contract"),void this._positionBar(this._pos.width,this._pos.left);var a=t.getBoundingClientRect(),s=this.items.indexOf(t),l=this.items.indexOf(e);this.$.selectionBar.classList.add("expand");var c=s0&&(this.$.tabsContainer.scrollLeft+=n)},_calcPercent:function(e,t){return 100*e/t},_positionBar:function(e,t){e=e||0,t=t||0,this._width=e,this._left=t,this.transform("translateX("+t+"%) scaleX("+e/100+")",this.$.selectionBar)},_onBarTransitionEnd:function(e){var t=this.$.selectionBar.classList;t.contains("expand")?(t.remove("expand"),t.add("contract"),this._positionBar(this._pos.width,this._pos.left)):t.contains("contract")&&t.remove("contract")}})}]]); +//# sourceMappingURL=chunk.d4931d72592ad48ba2be.js.map \ No newline at end of file diff --git a/hassio/api/panel/chunk.12902324b918e12549ba.js.LICENSE b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.LICENSE similarity index 100% rename from hassio/api/panel/chunk.12902324b918e12549ba.js.LICENSE rename to hassio/api/panel/chunk.d4931d72592ad48ba2be.js.LICENSE index 873451899..c4da99e34 100644 --- a/hassio/api/panel/chunk.12902324b918e12549ba.js.LICENSE +++ b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.LICENSE @@ -101,50 +101,6 @@ and limitations under the License. * http://polymer.github.io/PATENTS.txt */ -/** -@license -Copyright (c) 2014 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at -http://polymer.github.io/LICENSE.txt The complete set of authors may be found at -http://polymer.github.io/AUTHORS.txt The complete set of contributors may be -found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as -part of the polymer project is also subject to an additional IP rights grant -found at http://polymer.github.io/PATENTS.txt -*/ - -/** - * @license - * Copyright 2016 Google Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/** -@license -Copyright (c) 2015 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt -*/ - /** * @license * Copyright 2019 Google Inc. @@ -191,6 +147,50 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN * THE SOFTWARE. */ +/** + * @license + * Copyright 2016 Google Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** +@license +Copyright (c) 2014 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at +http://polymer.github.io/LICENSE.txt The complete set of authors may be found at +http://polymer.github.io/AUTHORS.txt The complete set of contributors may be +found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as +part of the polymer project is also subject to an additional IP rights grant +found at http://polymer.github.io/PATENTS.txt +*/ + +/** +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ + /** @license Copyright (c) 2016 The Polymer Project Authors. All rights reserved. diff --git a/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.gz b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..4b84576918249c7e8265f2b6c5a4e00ceb63045e GIT binary patch literal 63681 zcmZtNQ*$l~uqNQxwr$(CofX@5zSy>t72CG$tk||~C$p#KoV)4ju73VO-@Hv24F&Xn z3j}maYu){jE6F#nF8@6rn8zsXcw1R*TVnCx4E{YG_jA(pWCOvETL>qh)1SOjVNVs#SqD}c_{**AT zNs&?T=Zj@R;KTN>E(5WbNg-ixPv?)7JO0;su)hgJl=>6UlwDHq_l#vrs-ihU_rt)(O*Wv)57B4F{q4{?{|eB2^g?FmPL;b*kmbgI|)d4m%a?;6|35n=NDL$j~g5y}qOa`V_fH zv2s1-h$d!gS*@AS#P@F92$9@)aSFy^g&9m^S}UDuQt;a=MIO*mlU_#sp2}%`S^Sc& zMlkid5z{rEjWox+%bdT*QzRMymC0+%;cPMn+hzqg9hdBl4yhVXJJ~LW>Fr@H{=`Iv z9E$<)xM@q%LS3^v1OO)UD`=mumq0F?%jw_8h-_4H1GO%w=`Mu@_REEVSMoKz3J{n~ z04a@8(e1u<4kosJg@<@AMkDV^N&nAmHWM7dseJm%t$p|ikA-Dtx%NTvyM<>4oUq)S)CBl@T3 zJA}&AB-Npu(+$Z4WjoI0$C^dbUR9(>e zp?O90JQdsX(78y84i#$E)VWY)W{#44*h2(Mo(80=d<;E+dUCY6<>)95q*(+5ysv$* zZPT2Js-8#6R!EiO4doJRVlE2kabW%|_WgmSGlC&l%&ZI-o?15c-5JjpE4C;B);Vld zs3RSe+PbV-ayM!{B8V;^TKA@qtP^w!?e-wGXsBaLbwUkr;-*Crj|z@B;4l2}GGuHS!ADncP`%461LXC`~m~ zt4e#Ls@pq9^C%$8yf)76kTLPj#SpJe8M)cxMLsD&nCQl$Ndar#q2w!dG$~~D3*v!* z6_`DCY9h(>v_+>K*C5&&{Kvw-*RkBzeWZKyS;l;Z%gAG~msYSgpXdaee3QQXAMu>{jPgIm-M+J^rrTQZ4?XymnEc9N{5sv?A9p}ioZA)xJ9hcw zX|3uF4av;&`;xfJb!H31(^m>Lb+J?&B|D9pIN-vOOWAGEFi001zN&C~Uw0LBX+<|j zJc7xEm*)XlYda;LZQv7u9{q9|e2?+b8_zThaN&YVz<&K#NK-sN2X2Zwe#})0aj^7p{LBL{|?o8B>ix6RL;SS02bK?F=h-lQ;`rEMAqQ~rci^BBgD`WZten#vVk z|ET+-+Gmq8%K~HIs2;6w3i02AU-yhp_m%S2XAHOpWcsclIC=S!$!M($YBg%n&o+cC zP_ynaha?vEc+g}2)tuaDygQN-F>FU4fzVm@+RT^M>N~_kRJPrQV_O&$XV98luE$(A zopJl$B%+xyuD8l{XJ;og0Q<)&I_zofKk$kfL*$1S8DZViY?wo#uK+~-N^EhW0Kg`S zoO}Z(uLMr=gZF z)YjQ^`MB{#aEm(pt6CJqIMEA3zx1TyF`9FYP?ajLTEaZXHm((J53X*lOS12rr1iKc z{@ef+c2<3_Y!b^3^D*>{Tg{1q3CqfO@dh4Cen4WNOp#1Z!K#&(*(C@89s7erWVpa% zcwGAzCYZ~Vek~p9#vE3-q{n;Q%g>#1`OV(Fgmbey z;Gq>P)pkRLHoV7)kf-)|=VBGZseVf<1J8jSk^2}sPsOX`Cwc{(%=&;_Zm7O=*s13t zCVQ^wa^EkH)|@GH0??G_Z>_)huuQtXgF{-r|7+sTW{Z%GEqKi#OBL@{pJKSnjfteDX$?8Sb6nm$n2L! zS!T0y)yPUQdN_lKSyH{XGMYIG9qvenvmazy55Iu;l&{mxz|fqdApi~yc-!)||KEVr zDjnF{cI?;#AhXcXvgG2Hr>_Gkr3bYFR$WnhQO~L&k_N(CD(m*S5A+bEvXeJT_sk-g zQ;c`x73vd`L&>A{Z-KyPt{=qhr6JXjx{zE!MuUUB-&eu=PJf3|lD_Gwx2ak39Y)G} zs-yV(EeRG(**NZ%FeUXlb6^ZX`Qh(ZzINrSt(oz@omXXk;A}63Yv&a!9&Zx6E~X8% zVw}4HBUJ*Z0e{Ga^eHUXtAA$MHm^PRQI_gqr zNi55CR+Tupod3F4niAs>iG8c|riTtl?+flHp<9pR*FD;WWb;j79t&G@@5?OkJGqoH zPcB$ZYDOrYtp8EC0QYsHSkq6MX)FJsgf}_VTWj-o&Z`ZtV-p^gjqrA(l5_7}MUR;t zmRFRY$b6V`MLYgMPOt@@>%XTGaWw9~j7qi&!V4(81$B?Z`kU!1VptU?l#JW3qlc_% zvT0JP{){Hsl7Ij7o1mO-(VLa#a<9DB=$rLfdoJfX*Xvyckn z;pH$Tir($-|T87Qm2!h%AcsaS?S2XTPbWelIi#(1M-9F5-rhceDM1^`c6?C-C1W$#5(UplD@ zW-1<`Hi{dUE-e4kXpZ8eGyy)d?C$=v+A3ijgC*ftLra!0B=~ z(lo)m7q>HhJk|wT)aMMuQzU&b2p!lH-@jNyNDi)B9biI%l^?PCO0SvKx{=?6S5X>$ z3Prc3S|5R2@^Adu2fW|ki4KIDRwuGA4O>0t`=C2A+7Zd{s_ULoO8q`ei4b}UmUHsN z7u%oL9N;h_DWI*LTXzkXNkb+qAXR}gelDRr^UKqLk~aRR*(d|r4nyGqel?9MMb^^oh_)V{GtOaD{w|j-Qr2w z#u53te=&2_L!R2QfYV@V7(D_N;oa)cOm?+6+pLH$7zCGy&j47R3K&H-U|eczg`Puu zYV!C?hR&|`eVN0D##P(uCrO&SW@p+QSfZ`4j7lsMXepQZn@rG~R(;UKOZB%~|7k5! znQ~9!>?+oFYXzczw*}G%YSF;H=-nT1@B8fqw2`v4B5WVlh4;EEnS5 z=cDfaEMV;ZbSLlr;DNU@f#}j3(?71==h&4~S-MHw%_jn)l7VxsK>=!Q)#>AJOsCEg1iJ`il4^D!U zOyLJ?yQRPTHLC{NYL(?!$f-cTZk?TLIs>RQ&)as={E%&}3k4`pczl87x9RtCd)V{3 zi}=dvr^FK)X01owDj&i$dEHvLU%2So92QDrYp9apYYt&_K1kE2zAIV)h#^QhHmIfn zF!#6@JsD?q1}*#dZvK)Q_Z~c9{69R63sq+w8kKVEe)M=Gvk>$0ZlznfVMFfXxtg)M zp7by>_O%9VjXXuV;-bhFEcDvX=j>7pxuUOPqi+M?&tZLCb$H`w(-KRO(}#$0&=~Z- z4}fp3b5>$b^|*R;ey-vVawW?ZHzx+#2+ijR>@J@YYzQ}W9Zi7lB*V)LFh=W2#FEx? zW%hlqhV%S`fTPML>@}*ZZA*!~4;gZ_OE$vAm8<@x42JSf@i!T}CVUU+$ehBI?RkG1ki zVXvM#X#%Zz8nq&_%o=_tpC1-_<``q4$bAHy&shXjLdL!f&sQ{Cw+7F2%kp$Kur}%Q zgXRULw(P;}@83Xku7|O6x~VD`YUj{~?j~dr4ypTZgc6$*SjQ%9Dq%zZd^UN+D&)Sr zOn$Ffh+nKkC{(ns>*R-^dla_gUh!~Cpie`;zO_kwpk8A3rf8*r`x$;Ft-NlktSd30 zMaqo7evS5-lu?3-$M-SHe9cxjh0k=UT&X(dg;N!K%In}RygtfnFAe9<67k5+XFE8a zbH0#sk?|Vy?PxXa`xp04$r&r}2t4r|8ZqPy+&;(033Gsx&%_!W^21P?p-t81eB$31 zK~LvFXVBqVADf1xyBiyXBb5N(?WFL~!AlGc%&}71Q9B+e^naB84XwH?Epk0ubumEU zp!D4qj=?!-XbaV9XV|ngOGB{uW~$6ZIWBXmiKKV{M5yb;RumKvVx;x>m6YD4-NzYyz^eXAN-yr_G#i# zlkMm>?#*JFQ>Fh!mH*1>Y469T?{{R~&s6WvlE$y60i(~exX(tL=BM@-?nRdcm!m{7 zuA712>hO_yJ%c!1#0>K6%i*^N^WuGFyvnV1t}ScF0^$6Dzf0Phd%By?w=Nb2P<}L; z5%tL#t-boiPl;{Xus7iCtJItpdD*fo-HU`@yT>;5_}2<+^xYeTi}1_=kyLul>KlNV zV-6Nq?eUEWBq_kMH*SH0s8uE@2!-d3SMb)p3}$9oWMrq)Ani{QBKt~GXuCXSI|+g( z<3%}&;tll`3&D$F)s{2!K9&ijk&t+w+_)@xN7zW`fLVr%4Ianqb4xM5cl-n~^Bc7& z20GBZiAJfC(+RD~6@r9(GB`(-NE3qMls@E#Av8TCYr=b80glvVCqw$_N#bLOUC(`G z?J%QcbL{DEW1eQox79oplEH*jQi`vat==JJo=<=LPsC?VC>i!9Uq{LpL47h+ftP7U zr0#{0u`E}sRzN=%l&E$WekfbmdepmKr&hgerv%B<#X>c^=TK!MhtkCTrn<`IPOw4r zwKs{Ux9mHUim%&AR$9CjoeEwA4=YQe_A8&Kvj;?bJv?Aq{J1*sv0FbnwpLC4TGAX+ zCI{aUtJEGLUDuV-z1l6T-qFk<~!uOMa`|5 zNma(^;cPLgX|Es$$#3IFboK?YiPH+gzel+ScC^i^2`92Udev9cqU_7e{Ibei)z&EE<2gePA~;>f~FLFX={_9t=pqH_n?FC*MigqK-$^ zb`8>V6zbpnPTMhkj%&vUzxV1uNqb!NZ&bQ`{j510{#fpla~!4J4tuMmYh43(<6i{4 zpHEfk&;(2LAn(7ii~PW9d6m6MG6Ritw6g;JA~U?t%m>?_f%LcmNUmLs#r!cGOf>)&*6C67y4V^gH+!0&99c_5Y84luLZ72#k~NjB$%k77>t@dM!QAKmZ6K} z&K)KuS_@Md>WX$l8ki=j7hw!|GHjvw1)^0kCN7-_UxOK5ezsR2o`6E%#Dv`R-KM3f zR((d?Og{KxVB*PiY9BT%hF`}prUZBBR)PXt2KAKwJ_38TprnKq0G}w`SrQMhG>N5q zd8_7YO}aLQ{1IaWe~c6masKrXlkgg3;#jMOB{_s0ffFZw*&C}C|GZzHdq!o8*8DvK z>GMK{o|Ii+am-BxK&D-`ryn*5c{4b$-U;l?Y zDDFE+?zWNA&>Me?)g%*C(sUDZ&>GnbY(2dY^2QZl)-zRF$8!hJ|B~g^a0*68WeT!6 z&Vx!SrWS^x-%##MklOO6boL_k_+P1dHA)fl{Y$}$i`RDldqaho2prNEBO{$1Sro%Y zCUnjom4>3GsfvG0d`y`d9bI&chKv=6rQbGZ>z)rpP8gRKK4_zLM}ej{!FgGG>M|3t z5HgfJ!8G)57Mg%UDnuI!9ja}S%Gx%g2ohUF=^lW?49(YZq-zT$%0w&HC6KB+!n-x- z12d*zZd|@Q8196&x+qonvxq&T`8%$OT51`vPc{5|HpLVCPc)!sRgE>QXsV|5%C0wn zSOO|l6*vMT@)#3h0jO9Wd1#^VFSrB@iWsaF$DH|K=#fJ?FcvWa@`cyHhqF@(nlY3D zTT}uB)?cHTQZ#~5ODyUav0rDsS3cn3^+W83{14Q*b2zKXoxYz#GVoM_wsYdCXZ{#+ z<^iJ<({!>I({K=CLZO8SLqV@bP8`2ZQC9#;|Ge`8Iv(d>Z#${xIJU6|%)8hSX#E`- z$<^LI-+>(Ayi&h7j(k!1!1Ej8-d5i4pHHtJQS>PV9HoQH9CJ5V@Z+ww0TZYqoLp`hh=v>jSFSGcGDC7#J&tSyXzU6Pxn;uic}&) z!niCpo6laoPAm2-P#UI?)WRAYvcpm3&%cqL+X5sI`l3V~)j7m2;S&m4o_eb-)e*rG z4Rphx4!S3>rTp2&=cnN8Yt!$jRdN&Wk{qGZ`9R+#HAkk(CfE=#gqFx*$haK7e)Qq7 zq+EvI55%D-z+SzVr^a>%JYZ6Ki&Ha$n3g zu!qBrD;h0lr+i8CtaEYr7?z!*P0{cNm^5 z7x%i#n<9}n%^vaw*MZ})R#!)A#V+N9%$*r=E^7H!vF+ubF9Dij=E#7FjuI7U6Q&ih zk2e@A)}Y6Kg(Q^)e=A=%#ng#=)l>4xmiVM881~tGkXu}Ii23#qc*rybnMseqC=dB{ z{T>?wHd?>f7f}pO;9#6G$f8UNGqe_ze|Q+Lg1zS!$yI`*ot|CgIBIGB4esezm3u%g z>w~jlWk?QK=rapjv;f&FP>6XaIH*^XH5%KdHiN{GOGS0Dh05(X{t)WLT|A46LoYhu z^KWx~YRBpY9tU``$#VobW!JR+e#=84aOFI$MY!j=AO`VMI&44W>!4(GbOjmsUV{*uBO$LT6-=1PSnx`7($BrQL-c7M zD!fU!2lcE-T{z($AXZ_2olvgK2?{yj)DpoVR{BLWlCc0{YX87O>4yi19siSg<8N{n zB30*XTfM`r#Z?nkn^uSJQ(OK5)q(yqh+yf{%bGb+cc}ocqe6_Cc*JJ_U@9FjK@~HA zi1G1-Q*KvaZ}4oWjoiwxJcXGRKI}`V_*dtDox?SLBzWT*cI0-Ga&r0qYej!8JMRnc z@v@4Z(&sWi!$c*A;RixGwvDenM5odO?sLgE#Sbksd39FR_+Lwc%bTxo-LdPR{r4x% zau+6o?(pQSKuW?{;7Hi0Hio*$ys9A~H-aBQb z&kV5DJ)jvZg9v(4kK8qN{q0Ij7eoisD-pTgk&K=uuelkX?2=Dee)tNGHUXM;%)sDt z-u3NgmC34C&~K*zl1EkypOz&2pS`ksMa0m~O_lDb(TQyOm={oB;K5tfh9LFCUWJ`RBUt8CRi*Ro#QzKyGPIsu6EKI+JBn3 zoNU~VhHGvVe}`*Amv!iWuq36YbBc;j(z#?{3XNYVUyR37e;V`SF>qqVf!U!cndR7hiV8RuH1HVFi5Bj}EOkOn{qvp4= zjhB9`mEin};#q>y>GWRO|6(CXcqCMI`dd%AL4rwqqPCf-?44n6%O19dXV1Qd+c4p= zxu}zPq14*;U-FE(d|TPrPG7XN7gzKpf25Er!G(#GIp)3RWdv9Fp0f&O4bjiJ0l~Pn$1lrD)6Ym|w(r&WlOgphg8=>R~$erHx z(OOw!dA|~Aj`0HRo{2Wh3a;;v)-xyE+G&|d@;Or5@?763aJ%i zu@#JeRKkI1`4fH-ukZXjCYNhTC(LbJPAECjjg(WMDTztLNKf5Rh4;I|F8v^z7rAlC+K)er&f@Sec^ZQKZ zegB$G9(yQb-exR8l9BI_#u<+o4xI-x!C!QVP!GaAGQ4GkErP+H#=Uj>Gz|_TSPcNYX&X=0UCgVB$nwZMD&1q_Je?bhoK)}f@PL68uC%^Vnk*~p~(`6!q-PE zvK~gujhEOw9yMM-&W59J7YJB!k;^S4U*EwTJQc!vwFIkE7!WwJo42#P4 zHd_Vk?W2v(UEx@Ulzcue*l>sAHik3l>NpuNH1nd`ra!Rb@jV({zyoAA;fSO$TM@%y zkRaiq*=~!>%kKR%sSFn z0m;$<5wqfSXe{T^e+62`=zTf=B%tT6+>z@vk=Wx%5qAFOWx*Xsq5tE>fcHseJ$U^V z-d#7)2YtQE?u_`(DgBM`;c<}tlQ0ASBVTLD^UAA=nuNH5iSvFs^KeE#bUb|B{We6(o68}a5?X8Pd8Xl)n-uUurYatHkv zC|n9Tu38o|D0MR;F>5orU?cexZ7iXeub&u{YWGGG$)^z)G;yx%9%p9{_p)$F(VWaw zZTSIFZN{sdM;iQA367=^Q^UT_#{@vuC3v7>i(|zxzSB&w_lg9+^?sjj661ui-ZPEg z40SUTU*d8(_-LjQ3G_-_;Q}qF^b92IjM;`U++4NFL{59aEH6ejJMo9nlv~Hc|=VRZ+pGIDdW$T zPpy~*-4Lsu`+GWm2E)!BFM5 zE7v1i@V|IBLBirU3Yc#5vbJQJcexc?LLxm``wi&oAbCG|J$?HQn-VBv_iclY0M)`U z(+PzIHJC$(Op3O5gXAaFuC}(*kM3r$&F=AHKeFZF%e$Um3nm~arF^QfYj+1m?^Vs= zAwwWI2v9=;wt9+);X<0$xzmCb>1((qriBG`*F8w5f?AbUCEP+{4CxjcAi*;-)AVG= zM13+N{(*8~P62p)oz0La@v)D>hmh^3v%oE)80Z^7iy7gIZ2C$|101i(e8W5suf;rk zB|yG+>M>NRF*E0mRrZorjmJH^ITHI%lT2YiBs@L%=tl#Q}_)xkS+T?6qHQagZ*&pB$m1B>;3Z$S)}e?$`&Jt zpf0vc`@{V5Sj2r-RE5|iJd`A0e;Mph=QQvNzrM#$g4+%0jRBDHGl=&wJvQ@M+xsmp z-gBF`mX+1-D{!4=+MY?bHZk~xbmh2P?9!NRTsPDA$eMZhXMkQZ@Lp9FeY$22BdmdEZt7v`P|^=O5jILe>Y}`+I7QO^);u0cd07nri>+?M?LA!1g+BX z-6qJLf(`UJuI9fCsM-uYTo?82e>O7fP#+;|-GzM4N$9BRIUC$VA)Dp;0?kaJP+G#u zGggjf8q6P`$HFk@QoH<)ck=M@;hCySV-i%mm}Ma)2{NRlBwlZKPxFWHDCe0dw5E~z z+fej{m=QkWsf58=eW*Dk01SuhIfxb|&2)zu_=&7Flxd7Q5zbFz>ubXC?~z0?KUUT9 z$nFL7YgFtZr&#s46st9SDbtgYN08$khJH=Hfti4);10+iH1kRHAG97CXlFm)m>k^U zChP=`^yOLl6T$Z!-1(B&toj5u1?3qnF+HVG6NgAI+vf5Sgt?lJgZsR<_!Yld(&{t@8zbwADVAyvHi zAsDL9no3;Y`G+CB(2j{J7RGrMlf5$zKC}t=IF#~_$f`s&oSa7cv&i}F$J@7 zTqBSZW>nlBv_`jnu1-$#E$NV%EnF?DBy1z*Qsx9|fLNdm<^hbD@Dw%@8Z@>Bc{P8? z@QqQ^YOhFGfP3$zn`QS-0kV5}GN4vxGzq^*J0nkEp0bwM?x4KfV4Z0Jr1G7j^@6jH zJr=2WhXX-`6fz{~`<-K@_6KQuWvj2_<07;m*U+#Dk{GW_to$H%wcBL&*;OqMlAY+= zMC1;=2QOs5I4dK-kIW+4Jswfud*Af!`34+Olml#@xu(z&(~sfNY#6VbXKV-`DZ0R8 zg(9(t4yBAK-GNLcr5_=4H~HjLq5Uf&S@g@C)sV(Sv=j|o+ll$I4WxI*iQ)!3(MPU2 zw%l+rhGNK!w_TgRI^wreR&%Bu=y5;z%teE>u`CjDHKxsDQ9JRP`P*8ZuJEoZhaHL6 zAoPkBkrc-+mPe`FBL1abvq}jvO>>UH-LS~cLaI8_pc%m0C*I?b;DHV>;%IT=4T*AE zR;b6oYm@yg=a_GQAlqoM8OcuW>UP9e6`vf_U<< zqGP+}IxQq7h>n4(*6ZMleccmr!=%Rl&YReMy?cEF!_>l~cRtQe6I)cwa|PKp8JKsb z+}ef*$gvRQuPcONs>aGOMc6C zs>oL%Svpxt$}H)7v2X+SuP9^FaOl zZSLX)AisiZ1_Xcb?hxA`1aCz8Rs_TBX?NCA>=X5|#!A1r@WLs-iSRo+(cgMDgLb>n z-@gA_eduqHZQ#FqfA$D>FuKwIY(q0We@Eek!Jb>=btGN3KQ~sU9h(APK?tb-ScoDq z0ru?(kN@!vVJ7JnPhDzh-ISVjpd8=4ZTdQ&Ui7j44zBk)wsyI2bZR)%AiC>7oB|(P zxLnQn)V8Je=(IJyV%J>lcBX#MS{@J7=y={?*YI__(IR#c0^PNd7xJ$!7v@}ocWxbl zdm(Rfc9CCb)7{*Fd(DGsOcmbul7G+qXz5D@vt`l$acNKn>Ai-v7MyL%CI?SzBdh9{ z5WHoEc0Xf` zbV%JP+@8I_4R;oja=1`@{BX`nw`3!)SIL1?@JH5YNeJ_ieS*FzRe-B%)=seT>B8J- z*8Lc&ceHwvQnpx{X;@YQjmR)EdtXf)Rjwmui!$4MfxX{u)Dg}0!im@!bNnTJeIdOb zn__C1DAolsWsVPPtTbQPjQQ#eZxue#tp|N=e?d|e72I;L5TSk1l5lMl4<4n%F+jJY1x1qA_HrDB0_L}LVRPBaAvZ^3> zF+&bBn=}s7lFt!0qo&tPZ_Kdv?Oi}$(m^$^%Axqm-nU=Ad1+DkXa*f;-gqOiUEh1@Cjrpyo0(_N>o(EQ7~* zsS)*92XlF_5U9$obSNEFSEVr?-;E9hK0Yjtv{2PSN6~SO#;PxbNS1L$&Wo7J=N#(( zm5E|@%PT+gF@k)rAjS4$E|x8$wcWGW{hc#9Vx7|cT~fy2ZYqua4#?x!jGccQ@!_&y zAMv5?EEjr&A*H6-(+iWsov)vg!C zWB?AyXk$0?MzmNrNcH;C4R~6AJq>kB>R9Y{G5EE&@=TPgmhcpHo!qzX0poAU3k%0Y z_;|S^yAq**FN%FW9jjQ??$D0QJEP^EN2G7#htw{G+RC<__BNJgUvE!kpx;X$N!$kG zjkaVX@Ni9JHP);t4q7AVqMp{0|1+a`V%(!MzIWy*yKv^fE6McYKJM7TA|;|qyOx0m zkTTx1k@jR?LLAU7v8K}&PA=-!t%?7h9-MKO2#l5pXJCS1YaqgzY(iCFd!ZuSNwr&o zGz9fwiU9K&-6(X9b<%X8=_6$Yi58deiBPlr{Na}vH6tqQ8!`&1S%`c{iHNV(`?hkg zV})-5zSSTg2L$p9k?yvlG!d;~8&iK|aBs>Ctd))6FH{NVx&j>&9ktu+1#IzOdQ7U3 z5QslIK<4_A;4_QhUq(O{@*%VcFerHq!)kOg#71OX=;RWiI>TW8+UTngzu0+WBOAq% zwqA@f2bLJK;eX$t4kyDN`A}`6_Mke{`BcZ>>$UK!**Ivi=CxF&8H&iesF8ETyQ>2^ zfe5>Lg-w$b^CFs0MKj|R^PcJ={w6U&lo-cEaUZ~P%@!}# z3e+_|*iB{4;N<%g43QXMjQSDPKnhNya31gP2So2lPqfwp`Zq4!OkGR?$E#NiZz(~Pl( zVw%3Bv9TtYmrzw&oE^c?+64=Bq3iaApJVe>5!WlEC(wT67v71)O4dMV`!>REz`p{{ zX5_o@m;2h8tnA%}3josZP~tu}LG}At z7g!_sF!D4yJ9Oa|koMGW;Li#vRU=-WcyetZrG^c#V*L}I>WO&Nfka(Ft#tN*yHT(V zVk-UB3Vd(cPol;9lz3SLVQ7v*KgBq^(u%%`T>^Cde>A@O>GjDC>+PzcONn*T!98&X z?B8(;q}?Z0^!xdAHmyjJ7k8-V*p%u)eIvs-Y`G3*%JWO?GV5f(Z-2gh>6rf!AtK^H z617mOqgW*W7Yyg4N>q+w7bWDTUapV}utc8K z4l*va%Fk!kOH6R@Vo)cBIQCG!+HNl9X~zgw=eLfYc)$ zCL(%*1qaKTc*vCUH)6+AEOEQGc_}TsMr# zs`V_;rG@_8zIToVrMAQ5?DXHw29=}G9LHZHL`|1GtD!8b88hvON$BbxJ`R=`^y<5B z4ljE68?-{;DusxLry=?kQk#)?h=e7Q8`?R=Ig<| z#6IG#e(F4nh$aQn5_Pm2x+8at^+OXFvLssVU3wV{7o}p@yWcJI883`^zVMw}V84SR zhCJbi`mj%IxyAu4_jQ-b;~O6-4RRVBc#oqP=g|^fi!&!?Q>YUi2hyDGqkGvNKMks9dy`InsIjJlsyQlI26&aUV=I_c0d zGnt5};ol#4#L^+YEM=UZ{tz>jv~$LkQoq9{{6G;1**W2>@pU%Jb@kbnbcF5o+f0ib z`(ipi)K05=WIE39R!h6B9_I8hK$C|&3C8>T*_2DxcE6ydpSAfZ14IUASG;b0r20sy zkIn;k)c5N5{AMsN`!;F;W$xmzan#3%)5kvQ?~=UmpVwY9Kp%M-zr%#*tPWt|h_d&q z@s!?cR)>GEtZ`;+~iFx9mV5D8ifK-W#1emyK#&B>sDL-`PQn>jSEW}Hm;j-Ji z)A-LO@8DAX$)N!t6mU~a<{oK-?zi?Bk*@Kwg!8)W{SDY(sG48qBeN?O8+Vu6HUJ@Q z#^>-p%j-X{`v5*ILyWfg%}^wNX^dMVU-ONB@$s*(9Z$Al`f6$S5eB2d%!1*B7EWe6 zWPX9Wu42n|{-=t5%6u3Q{R@d&M4|O{9>uVsmsOS$ag=MARzW%{C zVz|>)1_vG|zX>mII(tSKvzm6=vcCjVeqfcrNIDjSbtH(n#0s~rjb;41@oV`OnWrNW>>-rPc*)T>(kvX6x zpPTu0+r;z7FPJ{Vp8CwXgY7e}xA(&{oj1n7U-P@&uMqLE-|t7L)|&gNJVC!l6hEI& z7N|ZioZoKm#vvc}-Zz&l{g8@3(Z|X9oXvrA6J=~R|ZIc zwO=>Wsw!6jgLd(m#gRcby4ZUSCUsn+ax;>?jAafvl^^};)e=`dTzb{|wB6Shb$JTa zf9V3NtD4yh>Ylsfe+%O{x_0v`X5(8Vjrgx#i|2|s^$eXWo=f37Yd6?Ro6)k(wrc-q zYyH!vF4HKKVQZln61yx=7R|tR9wBXrRZ%mV-cV3I2L~375JMqAR6(msS})0HO5g=2 z)3yNzV!n1n_p3ECS>z$~?*dnNJAY-=7x+96FIv=?-RWjKI52*m@xxkKY z9B05Y8E=r9c!7VmzgyX_)>Ce^h#LX@u(L)Wj$Qc)1c07`Fv=fC+ zG=Qpj9}O>GQIZvL9H5{i%RK6YF0UnL{dn}PKM~ThKRPVc{??)D4)sNUR-X~@Lb%d| zpxdeb=|s?IrD2xI6ta74VZn;6E)(it_7^3Hf;H2ZYmTh^?=Lb4l9YBn?gk^qH)s%) zvlKM7#I)?~X0=temeV0#UoPnO;esWO%;Akxqi`YoO5;dhsY ze%uZ3Pk=!O{H+|Af3m(tWb%*QnyFvU=GP7ynShe=0qFCuZKoN3)%KtG;9Hzm_bDGI zU-GE!o^V7$myY-ZL_RiqC=3sDp<)(+#09_(0}p5Cy&qz=Hj+OT!9DDd6)zMtgb8hdh6hryesmvuc z9KQpDw^6T|-z_eZ4IfllS&Vpl+FqugU)h-7(>%KsL<572U(A!=(D&b6)1U8#q$`to z_?_!&c+K&iHeoao=&?S}uFNe%x?1US+CLN6%!`g_D_?TD6pn83ZS3bv-20*J{i0U; zunI*wwx9PQ22+7C(R4#3;dqQuoDlYv9jDrrc99O7PolXEr*$3A=g{u+4tTi(4cKf1 zt<2zk$vN)YtiB|^)$xU#FYQW9ueBM9TeyT3Q-lH9>)-uXPRprJd+xx3)0mG%M^~w2 zcz_KlhXeALqpp!kBJd~?bgzn0(!+V=n?0~JX&6=s2@Js}dXZBD^s zK%z4$qW0N1|0Fi(;h#6`mgVu8RAw}AiFok_ob7=%vOOK6%sM39Hr^AM@&zCW6Pf;f z(JZJUr0$ipKNJt9^Xw$so}SFgGQ)m+?>Ky6LstcLZhyF%oR@uo6wfC`9&35)6IqQ( z!-7KuuLE?d#+Z1|&=l@CGM;+e^1EC{sk@$phPdiC>>{3VZW)^2JtN7^?vIfw1%MD^`(6K)cm)RXG6*)9 z%czE*&QE8T@?y#i0XrHX9gK>Xyt}mNuZ?h+oO47$FtR#;NvI%?gL_)}D7kXqFe#w=}%j&hWT5_+%s zL2Cw)4EN`#8#wjS7>sfyOCbX=W{^i|u=x7)m1ttsNQU_R{qivvfYy^GAv36EO~C-a zeFLeyh<&^;dhuZUXW7(x!3HA3{{uxpy1ykWy_y4gz_CCSyg+l{3>R#GcJl{CoPz27 zq$IpEb^vwYAX17~8GM>P04+iXM#wqFGWs!XEpS)ll#?t>9r~@(X+cqj{&3wrSabzF zzKYBPS`f0~RkDmc`iGvRG4@NZhMQRqCOZ?sp`Y-tJPb`j_>kP9o(SE>PKa+%^A(Vk zS1Pm~^U%@>G|ur!0Q7b=eWXaX#X%&F3$Rx|K^<#%P$7j)Xxicw@+2;C4zs7xK}Ach zF}50{v5#2IVA}Ct#OchH1_6fLe~&;zTxeOCr2CEXQ(g12%9k)1XL(YPfPxPZ$wh*N zI|M>4xj{80l9Z~XG{@>{@%W^cK_LNadEW%pze}YGY`GQ2H}#rCSBO#|kvWo88M(v3 zgEe$f$a`-$UvE6VEP>xx*y2-aLNCRh!t^w^h7?wsi>^wmY(q5=9l=RXgMd$d^N;H> znk4X!PEfjc45?ibkDR7U7xm7D1m5G53}nr?Y-0j+kXd`VtZ&bnQkNDM7H{TujBl8I zZ*{>p6Dpe;9K4-kYbk)uu*{3f%d-VAX@>(FbvHZ@v@;Jzlk8wHo{aI-?jqhMyGZy) za2-9xXa%lwB zg`Q$w47G@2e;LvcVkm+jk&jP!8Vgh~_FKn5V~FJ1Xtk(XTLx{C27pFnzLf-obWbWU zB&!7!l|(D%%yq0KJdU*lNcSW~;V%@VB(qL=)x@2y;COc-il*<7okIccX;HEFy5{TE z{NCiYQa(d#h=ul+M#Klq$+EG`8PC_S zMw93zeSA+@blm56xHs&vN$InRDU3~uxmHmofHN8a()TIv-`|`+#7802wa$tW@{Q7jg_P)3FzFm8tYD+gE+0>XO+S=mNmXC~z zqvL`&hj}V~i=H^Rq-|VWO*up)MT*%*v+2PjJ+-b9Q~rDEEI%Q#8JNdx6ON&be-7=; zpF_+xL0+AR0*7$!7W3c`%azv4VprG#Cxo8NJWsAtxFZj~dY7N&RsIzZzIsD{%OooY zF#qYf=hal!Ew6HT@s*F4NhTe9CZ+vM2ER5TG|T7x2nDb6OkxF>i)Fq@O8os=WD86L zD7m~H`i(FI-vJ^+E4~4kSY-&tMpwQ-79yLALS~`S;}y8%{{aqEXXyf-MYnD!%Rd0S zaG=Y_p@Hn(B%u7wVH6y+ntZWXq{}ibeYhYAz1GoPUjjZBCHe7HkD3_j@y@X_+>)k? z-XI5Xchnu_V1MN3IEV^*Bu7q8%V0Qq@IYL3YC-IwYJ+ERydB^FM|b?;qu%Ha-TmHs z)ZOn#x9RrY?Yiyn%7ce@=*swUcUK-fzC~BYzeZQ~AKaxY8+x+Uq@Yu8toCd4WbaNr z+3W7g{@ylSk)HPd(QArUyuZ&6vCsY();Qk-sSz@kl0Aw=O5jr zp7ql+i?l8FcUsAXQn3+^YgdzCwFEq8)QMgxbuPB%6Mt}$~v8FhB4G%Ucq$0g{Lo~5(FnfQAuifA-^fV#$*#e*^PQ>|_dr^jx`f=zSR zb!fvkcj!d5ob2u*CBu9U(|otQyw2uVNwy2$yR(P;-#(bn&-cXRv%Tcu?A!6cz9{;8^JOP)BaD|Q{~NV+tcT+Vj6*HY|3)%$*+YM=z3y7T^JUEe zHrTGX*E7ae?5^$(sYV`rR)-#cR)_YxI`m-c4n5e|A?(b<&+5>4bn71NsnHvZ@6@A5 z8+-Jq6Sw{@ecmKJynB}(Z|u@z-6f}y{!Y=FctDHrR^582yS0C(ZjCpy2NX^5{Brw_ z$v$E2{abbn8~X-3_TX+E+em}dr#*?}EjuO=+#lia-?C>7l?)!Hj|_)UM;q}B$jS`osc3}1Bd zl~+bnVmj1QGx-IOc9_PjX4TX!lSxpl!@4oOoE`@dB{wTkC7YB`Qt-mGR(`yImC<5|*L z<2q0dPu4KyWt=?OKd2^Z1oMObh-|ogCpo^;Tj7-=EBsvC3O{#X1Dl)BkXJum28qc#UBU;KB!Ni zL0dM4RrqQQuiO4GT~v>kb$zQdBKeJSkBY^=lIw``^rM(tIkQCy8*G6a3vAci`j2&+ z(V57!WJd+hjnWwIDxV7qFnfwuH%)k1YmX~7?Qu!GMGV=(@r9I($JYb&UAePL7zZ)Daa#AQcA1UhRn zvV%yk z&DU^mqv%#J){rmG&jl1ynq7r};;0@ev+WARJDnsQ%ZmDA$SCe8sQP)H79z6N+Ca{1 zs5-1CoZLrimS&<1xhsST+tswM010g6hZLg(tm9QlPrmpD6K2xRDx3%~y91lMAs2&_ z-MV2V*1GZ9vcdpa!I=+KpXFRm@X%(BmVbC+JwWzCHxZQRGjhfdF&fCagPFF4)=_n9 zMq8wx6x>k)L#Yjm&1l8W@LN@p_{lYFe6;EP>{TYQMT@j#R-v4rQUY?&jE*~II9|3WUr0WZi1s;fvP28tX-#TC8edlxU z8|xE~a&GCpk@NZBq5JvB1^wWG``s#Tem>ntLqPrYIdR_~03e}R7bq}LTJ3jgwRRPNo?FIPPfXJicb0ClqZqn~8w$JourDIAfF zqSr#R>7Jq^d$OTlxHPmSC?1Q~w5IvC#BWGG2zRobutoP$``Ww0Ja$3;k-8@uOCxh% z0B6$biJ$O|a(o5%2C_bN)L&W};OGX%Q{7U{HEXi*L}+VZnB(h{Mg;@fsQK}28*)4h zt1-f!VWP^5(Od-xav8ya0O%7;!;22ZP+?r;JjOt&hO1iI@-7I*7ENffhlIwCKG?tfi&>{)i6!^Z3Ru7@4-<9EXjmLb&gew@wFmUE2oa z|Mae<`z{PX6E~?Q0b1?*Jvw=miKd;UXv%Rx4`%ra*YI!enP{FCQBf@z!Ew8V?g@IG z1eMDq!>bJ9cM@x0hk8Y|~)HFr-|E$qDKt5H~cNf!MYxD4k; zXvvEHqQSacB$ZAXRyhHWnBs<3%G3qtMAwMItK=iq2&LW7P8{xrJ8lgWul+Ujw&8X+ zu4-D$W5*TjGR~rh-&iO8OS2%)Zh!QqrQvtD7mRv|o}&A0qmrc<9e@xmqgieQ06E#kCwG{ZjfX`s_fL|)8|@|L z%kk7DN?C`8>Ov1o7oI8IF4a98RwDzEU|7cf0U#01-+7w`9iNE)!B?PM(i0ed$`Iba z@R#%6p%6ZxWc^clG$$C>F%koFY~0l#QnohO}|4YH|}Xes)kC@0A$l7 zUIOR)J3?Rd#%a0zUeO>A05+1+LVO&M$I#9)9$&&Ba5=6v`*D~|O1eRf%^hqHaMX5_sIE(Dpqqf^KAWpdUaig9pJv%iH z5DuGFxW5o-?7mDt22d<0lk=oV<@JkP-*_WAQYz#D9x8UL^h(ghdkF{vei|RSTJR-K zF>1$?@KtJgZIzPK?MxHgvR;#>t=Rw(;`DB;-X-}V$(^u~NkFntjX1vw6y& zcpBM>I(P;S1Lz{B9ui;S1q4bpfK~Nc>qTri{yRiE3(i(kbqkRI${A5ruZko-oZgqQb`&qp^ zsJ>~Ydl?@qB%a^T7zjciXYiEjrFU0y?kD;F%KgJZZ2azLpWD(A!t5UzOPKB%kDe<1 zqi}aY{B{$KC-nY4_15d@*e_|R+!JW$0k@J&Wcn783EfU_Ss3^Kq!7uraB*Q?6lky0 zThTu(gqRtYei|*MrwvLbU1N8DKLYMd5X#H+DwyY@%zpl=QfbJ$Gf@H>L{|YREeA`b zVCU#ZmpO8HWbC*B6kK*50AwWUZYVhm+OYz$t1^kC)c|Pgs31R0&yj-3CzKHjr zj`(>|r;{FZEQk9gQI$a=4`y`E%<=JA9ql;!_nBP=vm^^Bo(y3Tq-D7>uAKTgqBAb0 zDU@YB$n|c&u2d|@8XAYh3oV(?2YKeZK=E9_^aJp(k+1&&LYW^IzwG?=uP-Y1zMZ0O z_-v7sWgK=s!-S+gP6Ay_Q40e7b$p!VKVXfQSRIwh?`LP_a!MNIzIL1&IBwRfd@GHVWXr(!fsayxIP?N3n zPXC;g3I>BdO08WvPS3JAH9(VMcPI!f?5VUt-d{$xv{pusq<5f*T{r`UY2JZq0qY*J zpY&BLjaO?#Z~zoEcVgXZWo#cZy(RtSw#M%n_-@YBbo8TW4-GBF))0G)A1*u81Z?l> z=B4^>egX)|?av029&U*HM3uu0@p}PVL|K7*NW8HCkjRRW`}c;P^ScUg-_%FWZFGT` z5dGJ?{(Ea`6Y#t!&@ZbSBCY-IpfLK4k16)OXkuTCx;{@R4!e6_?Tyslj~*4|0X@AS zE?Wy7+uN|ZM1I~&X}JcJMdPaQzMUjUJ?{QY_91;5-+k;||q@ ztS8G3^>Dm|dRKXYrxLuXmTm$7Z6PLl1FV)MIGOqI;luF5{xB~tc8}ieCbJoC)r0YH zy!(eMz!$JZ-|>?ElErB@Kcx|ogiMeI0~mT?i3}*7S@YVG1-f>B{$;6uS?a&fQvdnq zwZ#rezuIy~_`X5=`TzQoH}b+&r?vClU3dIqTzBv-w2Uvcma&&JxOUU_Nw(8)vVFqs zE(pDZ8SJ$Gw5+niEsZwS;+x!9K`vFAiE-Ic)db_TgKhT2(xfmWdFF&ps@IP2JvOF? zG9GsB*U^?Gcyl4l^#vDSzj6&#P$xiNhF-i~6waI~Il(s#JPciVTX0y%4^3WS+!7pB z^1-uB32zJ3uIs?AZG+vmrH8cBeTHezbQ1U4u#k~&p^(?)8!7|MU#!L{EQO1oy+C$C zZJDTR>jyVoqN%Kw_i}i~qBTHFRrlM&t{dEfv2k&&NtD33Wa|THA>_BRJ*K2~A0UbgL+^v|zAGw{^8M zD+iu#ueC#E)~LpA*rsPT=|EQ*<~s{Z^=*9?(IV_#?9bF_U&Ax`|)Anb|pD``V< z$;}1FjDN;3`;3-x;CeynF(UvrK{;?*1Khb5_2~N7>6jZ!@2W8^GG7=P^EL?E#XQ({ zQ1O%ubmPh~vZc_=V74mS){{i_?Oh(2&ZHwlMLQ-_D@oI3bYr725o)KZj0j^}OQQK= z_Xv1;I`x>p<4lmb7Ns0CKckL;VUu>>+g6+vo35`4++*y0&x@x6XT5#Xb>0%-8Xztc zz~$)~WB*{W*O-DOL_*Ys1fRC=d({MViiw~FRwUs9xqiK;T)!?*oniS zr45DAN_AHAtQe9%1_>}BEZvP-JpeJJ?fk%nZ1f7%9`MJZ|82WFvcJL2IHuoL@;-@kEfbbF3)o~|RTYvPQIeQL^Jx+=6!%3nONGoaSt*fl} zyK$70{aTb|a?x(YGMw$K{%fB5w>-(y*3>=~Q)OIf3sLzm4f6BzkcvrW&}zWC7cfPh zn{$<18EekrYJQbwWN)m}DUvv(Cm;RksXIfmWGkht#Iluyw^FSnOD&?yMHVj49G7R; zP@?XOiy)0+vP`RFftfzYc+V8-@hL>r;R2MxYL5nD3n`Ih&}6;8f`llaG?K?=hw3 zcu{QlCsc#-@-#9T^}4G1qdx2WF}|sp-o9l8a|*gZ{1XyMpsSHvET)e?M&TdA9jc(l zgt-OPv0g3_Jt8{{0~CBhd<}(LWC!q{FW*C&LIhmbNXQjQi#VP*I2@D^oCz{fr zUG<|Dd24V4X33mc>S+}#$?ur%T{uXi188;_Z|49{r_jzd3lB7QKVgtB)KTitLy3{DHts!zL zpu{5)7Cfwyf=zxIKBi<jW4~{1`FvEZ#wR>?JdabKoK+O zaxr$&a38b3^>JC_M=$|DS~604^Bguvq3m6r)5=pmo9I%9-<0{PmK z&tH{+xgS7?TDLNY(7T~5Z&~9sqim%HPYKrDP4GOiqZK;-7;c@}c;vG){bBb!C2&CJ zzI;!ZI8QcdsS@k$bgSUaSQVw4<6k)weI0Xa>mpsT8+5--9~JxuS?>9poGnCB+_5!; zu~l2iLS%DjZkf*BOCa-fhIcZzZMYX;KQaW!_15)Uxa;s^F}TYA{(H6kdpBMZz1(8X zb(J2l=>IiY+zu|)*)&n*??ow6ith8V*J~i#qMo>PL#Zp~I zl4#8;$r?R|@KA=;YAqDg!#=rT3C&++rvAVTbw7^D^b=Dp`y!9cRe(ut3oN?|jWx+) zvcY>Y1ps?&$53F9h4hI6i%|=*7RDt})t~IjAF3%!^D=m&qzXL!2Ik&3C{dj;sid6H z<)%{#DP<$2ILd^9EhzEc4Yf zUrCg2ZD za9$E9%S|$ci2QX4{f*gqrgYol&>ZN)K;JaU8u0N7Kd`udY>*lH12fcfgG^VyF`3>Q zWGel{ME%|%ll6yV#C4Nl)T1of=FP!4Dm@1pImedmhq=}oT33-a zL6zbVSb!+-7^7R)mWD1!gEsH&U47+ZCybrBnTU zD__g4ckqz=-^}5{gV~Schy1!7yk;`=q>Tt&E=)xDwKHUwxq?+NgD zRyR@N_P(VsaeHGsPMj4Pv-lT_jA=TV*w@+jfXZ})K>$`n6|*t9r!lDxT)*R1+!t0| z7Ws#OqS7cEmKVsrqEKG`Tqb4q6-Z1%V9?66N`U~-Ol1(1D_Eitb4tt-ls7^v24jR5 z*mXPLqM4^Mwjv+ib0ZwWN>D%WG3LPfJ!ume(ZzbO&FQ_ZVn_;(1Ba1sU=$+}LkeS4 zyBAmjANx{jt3L!}$}3Ypm-x$nsXdGiIaFdNqdt84WY6-#BISiYGUu|C>KA5DDid~eXGc>@g^GshP=G3`C~y~v?T=5NK&dFjm3y9EtSBGe z_(HOiNwWY|<YxZLCX1uw=>UQQVW1mSJcpvGE=Fg+kS9B1rh*XWLopN|#VjfqM3B(|aZAv#jIx8v z2`o=GDTZKx56wp-UJ@|2Qyz~`;GeydoqTu(Klbs*xgHXLYAG&IwF}z3n-q^ zLfpE8FKU^|;;2J;g^6QN4XcTWkV@(k{1<+nS-jAq3QIyFsz5SJ=+`2u{PA)d{Z9?Y ztY6<&WB6$0U(AQNZ3N<@jL3vYU9HM05TKC&$!8+K+Cg48t9xokGIj$PLwk12;u~wL z)uN-|dX=Kqp;^)Njk=uxgZNzytLB{XWmNT(IgLs9r2OULsacg}w1_Np7;gZOnUB$P zfUGCGvM&1^g7G!fuIypQEOA04Nj08|00t2uahNemC=bp zrb0^1fdgnrNDCNjH>@yt=d*qX~n zB*Q;uyl}OLC2Lqyv$gf3wbrFyQQB5NRj?Z6(<;BXScuXE-UG1aq$<#>eB4!C-BC+@ zqyApikUA64-dq|dy@VH1h#Gg6C&h*_sX5+TJd=3p#{DX%SZ<)kCA7!N1Hg=%b7V%9 zODK!`pi*$zijMAsIohuVyWWTriVHH~~?Lt3U9XY+qS0$;nyc3h%|CXP--0JPx-GCxH zWzz)33)vgo!bri5I?5*2hg9)$2Fj!CKNl4coT3jR7|7&8YoSPyU6jhit>(T8ej9>! zT|}rbwul-Ivk2PmmIKr36tGA%wXnPC#Hgby%8(&Ei@^LS{@9=pp#;9(WlHSr&{(4H znLTe?Sf2Zb*GE)dgFY3=`@KSeOiVM|SrQ6lQbSkinkqxdA5bX(Pn!6~n_-+sylV2q zc?52sFJE0Zhaw-+WFsf%hb@FVQo~v@pOS_UA+> zbSLpK2v)o}se5iMx0O!EB+*y`riti{QeWh`n=wiHLZq@UL;yWlAg!bs-1*5n5UJ8R z#IPJGzOxPSwFF9ADa)j&^vV0_*gB7?vlzM{|C@vb$o`GI+2E|xne0rEN18MXDpSz% zUK0R^FeR}BK4%5krmkX&4nrkK+X%zxWJ95}FLPWUQHA`V7|NF3;Nwr`3eR}sL6DMI z6+?S_UdHlv4eFanvI|6_WbzLTOQI+}S~Nvwn5Wpr_bfxbyY5PVqnbp{S>^S*}&u zSW8)Tt-vlRpziMPqjsdPf1_<0hR5tQ8_@ebF02Y$sW6z}(^v z0dos&=WH#d5ZR#l-yQZ->o(}DXTP=f**xB~w>E;Sq)c^JW8HA-QArhBm#2oh=7k5W z=b;ZIyi{&qxE*|c*VCS^=cem7HT3xAE^U>!cuWmikB4-jl+wi#q*?A9;t{7CE0w2Y z4+b&ao#^cu1ZR&0{9~>i>pDU&B(0`e53@n4_dQuSJkI3@w5DeA1U-thpZrXOWcApm zqrwxCGQ2({w%TVm-rH*(96zaWX;i4HRxa@t2ALr640=2=0$T`R?Z?}H=C>(qx!m-a z#BT2Cq~GEN&wZvkJw-thoea^p=0tJTex1rFAzvb#GEQYj5aCi07p{CBWwE-_C)+Rg zW}OJmkT8yBiZ4`oOuS->mT!963ZBF^j>j!3J&D-#9<&z~aWc%rN4%sR&ht#LDMF@p z%DAAnx2d@~2E!#h%qg#4xH=ez#ZoKNw{sY9sE)j@hDpR&ZqgtRo{s4)D;diE!nghv zF;f!XuGQS+G}j9RHp5=deZ5@qnLHbZpg zt-dXE-4lP4u&$B=hrslSM8A^^C6qV$T;Lta#Jtpz z`H@WDRG&7J4Cy$D-GXvhdD(vaJ1T_uOR{*6p2#=^*yA_?9B-T!F-{ncQi&r@jl*z1 zNi+*#FcczAju$7~?AUW=c=UAkM9{P5l+D2MFg$wk`o|xh9lb!dIUi;K4^LhA?m+Ij z=8Ts^Fd8XDCR>9-#_6ScK#g2%7*uwv0H}N!u@=_y(Imtc8z)diGppEL;6u_vLgl9y z=G8E=*F2l9pjW7=_v{>~Q#LS{7h-9?Di71M1u%b?uTb|^tTv|B%W32iJdt(T$}?WB0a{*6TEs4 zLeESWMIv*g408e#lGsm$`1VuEG+xqc@g2m7#3QowiW$(g0{%XLV{zh0ab@fxqB&(k zXM5{m4>}MTNfq5M^2&LbOq3v3O8EKE9FP;3p^GfK(Tnh9f-l9_lVW&Q%kZwdUK_y>SXTlxI=IwZuVH={EtW%^p4X=i@2cIdTT$>87x>y!xVLz@ zd5k1XLX8@V|NS1sRJP~RlAfege#r5n(sx1WDXYC=8cZy4`Tl)S*tmwvY+AXd2-E># z{XfjGuFno>FvwaBWS>U_VX7F?1nz0}x<K0hTMV`#@;qs;th>^-2wLlBAMO|+ImTnIyML=sk zjmOAD@5Vx1PVg8R0kLzNZ5MGqyh33~!2P88shtqWr2Ox%J*lN9G54gA0ic_KqV5f9 z9VBOGI6k=NlpdM+*c{~4HGaOp`c5@TNBZs`DCxWFBV}z6Rj4D%)AFTK==QF#LhEXV z%22zMIP$=_Y7UecX`obM*+ElhlI2dgd|)q4W^#N9tn-8i2uA--&kNkbgJW$W0cpod z`gt*@qt!{s5O3j*0wkXLfc0US;fo($yngZK z==9Co?_a>7b-hbW@uxAp4gldJq04ffzD7Ap48>DG_GvtVAtHGxNBKHbGlSA(PEU_- zDVcmFKw4y#j;iJER^{zPS(- zaaj*=@(Xe37EXDN=&LM$AKaT6AxPm$Ej?jjg2g(J|LyeI^P^Y)@$Bf;+czEcfM$iNmyqra^h{R${>5!7&xKw6-P^ZE-Z~-w>CJa< ze|qzMXGd1q83L5rcJuh=Kc2li1!NANKl|auBpeK^I_DRI62?x1To-!vU%oQw-G5DD&v;kFC5a zUqX*p@r^z1r$?_|zj*u8(dp~M$==?>_OxK~_~D4Zdh_b&)w3T?-@beGZ?E2{!5Ti| zKR)~Z`&V!NZ89G5qh~)t)gPYy73=JeMzvg-%lJ5~a)=_M@DA1E9I8&im()yCzqRJu z3BS~paEwfq)lyfGzf@>JSeYxRat<7^Tdmxf;0Vi;TZsq7n!^r4I!Vvw$r74Du1<#! z>vqFX-m@&F05jm&`vnrwDc(@pC5}?yKp0aH^1X82A^mzFat55>4)pyA}U6u4{sQh`J7xNOpQWzx;WI!M_ zW~6!oP*O7zt(=Ih_wYH4BeH~3`}EW|Qixcw%Is13=|6wSFVfkob7`{(OQ zIJypq6|91?lI6eQv549rK z)_cvBk!vaC4boBcw?7y9F6?_Hro2L4naGkJby2&<_9fpD_4*0{W`B{A)sM*q*xa3$ z-huuI-Mf}OOUuJmah}WsDe(DwWeR<-4#Zu>e$rgdU*NW5v+c-iF)nm3=%Frp-y@<* zv2#v#-B0xP(=l!fHZy4q+jyo7zZ4ZqUB-7P2_V~>>Z7>nNuF1#ALVJ3vBqk(8a6zJ z=dekj=*0{8VFaxyddv`IWmvx4mTdJ_F-&MFo(}bz!*j8fY|Ukak2Jm-1=JumNi&II z+9JkkR@cs`%mJ4ozxEG|>AHVp=rVY1KL?DYGb8*$F6}MExHmZ-QM&1nMH`VlyhBHx zW(3YJMfkDmE8h?CR=C=dqBccx=_QRbqL)0*Zc8s71X9NRIYdkQY5S?6)8=0*OnJ>$Rwom9^Fqk$MLi<3F|(2*f~MNn4}3R*vztq_}rN zJnN2&mJnLE&@V-0*0eKN>x5#_2E9diR)5AO-K3ehZQBxC$N2SjSziu$P;pRiPR^_~ z0+tkbcO=|i-wF>OtMkdA?(q7>pcajG9T{Seuw{yn!(F;{!M85=Jn(LnP4G-rDwtwU zpCI2|!0_Ne%`oLd(v z&8>jZ!Z_F-FEWzTOnzT<)l{>5l)}Q7~d!fS`h{jYopWhSu&u z#ZxM-wXUAIn-NuuQcF2PYE2{7_l*7*bKv527ADyHQrtW`KwfLdlWE>vE56qT1pAGR zNkkW)E+_o-$-Y{(lkH2^xIv%WAkWQ{5&lL8***g>iy3;X zGgY#_;scw-Z$vyBdNy^UXbMfZmWTB^s%Zuzg)Y(Hj52MnK!z91ez-93X7+Isf)G26 ztLy&#{XPBrc|M2CsH;Pt)f;bDSSOZIwSMICmw8Cl$Pkt=D_q5KK=-vEYL#+Pg zt{}FgO;1OA*&H20y$>yPEcHFy@WMUECUMa|@bZ$*Qn#AJjz<>SUD{_UIy=wM z^UxgrAvV~(LpqA6u#8?_9MSs_j)T1KPcs-LdBR=BtD$5NlGSk3cox}QeoSZaa`lw;ILOcQil^b*SmXap*oe zChbhmoh}0KpGwQFOP^9yssq0BT<3ENQvAZD`i)Z@d&0taH%43%?Hy^Vj%E#kOhgQq zwGpf$|4wz#ev3y^6|8m5OONtAm&@oQPvGBcTrWG>5bwNUp(OCL%9lv#-c5`;GmFJE zjb}q;UwwoHMF~0#L+}+K{&P_ByfgQ&gGHk~J(qyyR<*e)WN=Rb_q?v7tTor3EAD73 znqd=wisjVP-ca83@9yzyCzbB~clT;G{5Zf2=e1837sG2`PR;dN?r6yi&fmHhzRUJ| z-tIbC@uqu2p8CmEUN!sf2Jq_H7Q?1d4!T=~IW}}ZK;m`jtvQ8t{nUSX>RFBEnkySl}5KaI568TXc=y4_FPJ&d{& zB@%3E-t76d3Pk4xaMv=ay3aG!`f(u0ch%!zs}ox;x)80I`!?hS;X92A|MrI->bz3*G^)tcBaTb2j)RMmD-CX3 zA4)}Ji-kCCsp74(e7?3{FlxloB-tQ@9%K^1e zYe#7k@wHuux^TY8^CHT=ZYuaxl89<8y_#^R)uY`t_;yhKALLA!2PAi%d}Vx-WzHQ) zE0*FIPt`Z-ZSfpGNKcCwrXY1=+9yY6>%%0a^nMAva7U=;B95rWuS!I-UtmtOrR2d- z`N&hRR}R66=skaUah3AsmSdB5fB>Wk0-{mNXp8(8knV^Di5*TqJ7{Xw?d%5O@$ueT3fC(uDe`mAemlh2T)h&KNX0VZ8QdY zuIwdGThzU#Q%%K?0X{!Gl&-1cVX3DY&n$m1pl zy()w7JAm{uS&pM@)#Q?HyaoeQCm)FUg+L6!ug*otE8vUCT-kh*)7wnjVu^J- ziA-B*!UbE3kpyzILX6>KcqYRp9_33}veEBfCfXDlhQj)C9PJ|9THeGWBTM3x@wAS# zO8tj8g8&&9(n?SISiArjq^ut89wz6&V0Rh+h)0O`j;!?ohV$e7`xc==p^@yKkj9+9 z4A0h$VSgFE2RanCA*>pF8ZE{}V-tIUU&ba@$wfF{YSgi-a;Hw4cNa**i^*w*1B~x= zWD}0&CT{rJ1GveGpW#a5Cgs2R@*Q*?NNBMZd#i??9(UfqhI?D zO%5_1PLdg+x|J$kpp19XrcxDxiu&N}H9Bj2qu~J?ax8_p{wh=yGQEnDzS`MP7lgzf zJwH##fNah71G9M^p-3lsZ~IxOx!^a} zPB6)8#`vM~Q=T$jH9JYptk+DN$D$#>t?L$9dG?#D;*Q=5ItyCAM=YFJ@Ih`K%_9a% zOjZ^`nG2KK@9NQG$L)A>fF%H=sF*0ZP@v&bUK#ufV`yBSBGbryb%+{kp5kH#8lnuhkkPNm=*vf9K> z?_xD{SZ^Bqvpj>}zD26HU6XXqZ`%ApocFdk+6pwD^)0|4>i#-#@d7}BRkz4LIz(%D zq-~LnfSDyuPn%d=jUjrh4AH*_y-jI}{_@?ke={cO(ri@>(e)zZLSZ0{#KoW8brC7s zda_@Ccl3k&4yC~f3aB!twU!tm6yl)C7iav{Tbe*>`y^jUh39E`nXeXeJyK>SB3~V) z1>me_eV6Jo2v}TlO}TQYk$kNofYGzQ;;^U|Vccn8PSd444Cfi+p0;C8n!?;q7zCun z4FE5)UXOdRAlx^G77l92+6R^O2==Rq5EuS>NG4+ zb7&j8X|(~D*M_6JxG4a-fNTLiY;No?P9LZ)_)$+1o)#f5QoqhS`c;2sB~`#F6Y|$$k!q3lRi4VuXvbpR;^Jn68qI zots62#^KhDh8K8sDPSLnAXBCB@d%xdU>Snr7E+0-RL#i&E>VRkD29{_+mQw*(O)m| z&H~11l-3JI0j4cjcJ_VLT`r*N9R^*F?9Eqwk8|H*s(IezAN4^PaEcgbfan&r8 z7Qd3U+S{XIi4LFB2(&MfAiOZTIp|%kaY$Ew14zN*4mXO!(b7r9HA{(8Ye+jJA{tWc z1{8Q>9O1}J&nC%u)>B?dV2r0ONh*ToxweWIB(mN6@CTf}~4K$48q~@f;u< zt9?D@)Usco;_LDV&pDl`P#I9Sj(Xjv zUhe3QuxZjf;bu;&rhdW~19#9AM>K2bgV9o|5@4*p)dWbz4&<~aC5`77o`iT#ir4d6sa>lj`ck1D;(`F4zoSU5!p9Xsu zy1PahccB@9x*wjO6R=zI6S_v<$Rwu1%+IBgH`EYf^7kM|X5=cBca98~LIl?$0}pAI zvHKb}EvR15o?+r7UT`H%@KBPajCbgQajrjg*iv76RzAS!2SPzbT{7Xxwyd&@6~^d1 z>>#0mm?UbjQ5hLBQs6X;10ZpTRyq;jwwur6LUGmO1?X_3Cwvu$xxCm2cXH)b`FM3Q zSR)8XoOW&hAuLd+egdm$K9~*EYT_iq|H>=LnbIi&6wYdbPkWvbaQA9(t41A*&9lBd zYp8!wY`+t(^-G(vNcKIbB+H62HQVq_KiKZxwAF`{=7Qk41EZc$u@49W{{T#)q(Mc0 z38LHGoIs*%>FJ0!$TQGl*MkAPQ8iaGC_J}aV^EfLxuy1dCxci6$=044#6mnZ>WS!@ zEY&-_^_vw!WX}qb_+xuFyZMOAQD-|=irL{K+G)&WF`m0MvDWKP(- zcR#8`&9`d|2V&dSXwWnzZ`mwOQcpM4Oqzw)-{rftt$OWm{Ej1VVtiqk>-omVAbE4w z&pqJ9eKuX_2oUqwIw`JXBrEXg&gQT~#P|z$ic-61ukj&>B(3AI{IL_~dY8h$)hcga z{utPK4^HGDLgpj-1vRNhkonMLenY)vPAVRWCQ(qLzz2NVqU7}g zFm{FYb`(ifdq{GpHNpqFf0GfjDP@pq)w!MA{PNEm<1U*0R79BGf{X^g0oF2-b$FG| z=L@=o=^k$?)X#ASsX`0eZ+_l>QTiuJd1gX&=zc`~>$V@$JFMWrCX^Z1*x@p0D4jfF z-nKtf`A!|WExkw%18fL*k6}ZG1tG^+psT>8drZf^@^eUS^#FU_*wxvugQ$b%j3Pt; z0i7gvlf=vESpm=EH8yw_L)}lGE>SJ^o&X&%hTztqefo4Jh1}&Zx5NfZsCUJQXvs5P zFpiHGtt$8LpV>GhaRSjrq=@-TyXYWszo*eJPe$ZP^%p?*60t?R0UE3I<4uA9i$HY0 zH-q>POo0xfy?rJ4eAJfX_04xT$0lD01M5br-OEB9-xjPv*0Q9O&23nfz=&S1yCQioZdd% zofogpU~kb7rY93~7TkDH+|W}?D|HC8(-VtuTRaDZ&F4pyoA*SNTlgc&%`kbcBg%PE z3%RXCL3mDXJ~P$@RriNAZ)ibeb1a)3*(qVoN$u44l1FggCFgXH?t4Y0qEt}5y}IZ` zRsmK+uLVADcS0bpYO9yp@8jk$c$UwvnWNx}^#DG?=>Q%}*Ncn16rBaeq=&T-Raco$ zpIQilNaA4i>649ct1wfFWDd&hDREB1FaX-`fqJP{qpb171E)LUZSVQ&$wZBO#HPl; zb@PiRn}#D5kGCPB?^i`a+Nz^_kfD|>j*5$ua@kL>*Eq3Jo2DR1weIym)-KMtmnbRO zdP8wP*DI+udri!|t#K<*HCaK1R3PLQjks^?tXBH(E8H$0F}_6WkH-w8khSI%muMoy zonEDY;p*zY;_+y#k~9lZ7a@e$a+pM2S0y~GlBMf$obhf4@O0n6qIlv> zZ^t&%&^j1BWBz#~m6y2?OH!*=$wpXehQ-d7;w>@-J3^t#y9W#mkQOdOg7q%rJh+^c z(pU>P6LEi`W*dl7kgTE8siAx{`g-cZN6pb_n1AZ?OPveYHGr4Qps6)D`TK^TX)~ch^gb7ykUx4nD zIM+=}*~8SWcn(ATB%89ej;?imXMDm1L_%BZT8w(Ps0IJFkVfJ{fp_-=#b>lrGt+C~ zgqLbk2_k*=PK@!}BGUdb9>br|RsQx9ur1U^S!0zq>PRJ!ABjw7RrbMg%tl-aW!t)4J*UmG$p( z@wv1QEYn*M0y@Yu2li;RmbNFo1NIv{sB+ z8;nM>pFq0CmSLWyC_f;JeQhk?(nL1al#hi;P=iRYsU9g_9HAbcdx<= z@?%S(D;~AuW@CS0-eCliEV&ScI_Kzt#JrlfBvJ1u`lk-S6YFCdhm7a0n1d?UfJ~Id z>(r>&x7)=iX8@5*_F9;c&$VQ+$Un&Mqf5BIxwvE?77PY8Z^^=*e)u^~1$eXtX}Pnn z3B|Vo8Lfs1`jl(v}H>mR!>b=>nP7X?z@h zxD;Zcqr&J9&~$!{--mc|!~{G341M6n8=f@xnjdh0-&I2>aH0r3^R82mnWvdcdk733E_N+?M z#l!-%=gT$#_1%?nv!=H-HyNLLr>4Ct#czosRX@mH1cS8KjuWYui>9L>R!xTj4~ z%s!OHM&BW0Pn(a5@f;RJ-fU61emp9G;&VED9%N5O2Sszu^mH__zMkmcq$@HghBK)j zqE+loT~Z1*mFd&emMSQwvixEu(sCVL@Jth4riO^&P)NzDkoV=^lYI&B`mU*{d{d!j zAg8?rr->$FtjZlS1sh$M}q! z0*@cojBn#;<1oJQJuY-U82BF;Y}-WIr&>TL(E?M5Wd1f=U==^en%k1H1I*6w;)T|r z&w&4v*yJ~k#4^t%R&O(qQ$QBkqTt(ARi<+#R{D$6vw^hAPRcxUEichfqRN#>_BMMC zB}FHkHMy{DWon5x?JVL7&v4S)cB@)+_8HUu0@)OMkzPuiGVWUu-C!!ScKKHH3KHJY zcdcHWu;g)gdP)}WBrmN?Vx{oF*fi@whoRQ#ZvSWX;eHpJ? zS3XZl8ywx*9Kv|wh1T8Q6ct!aoF02x%F>fXr8D_O@N9ENAJ0cswRNbg%m-It(Z*_R zj+pYdVlJx|dyi zy|`q1bFvMk_p$YrP>PC}E)>KFy3W(9^+B(={q_6bcKfT1_2#yIeF#fXv>tWzmKUN2 z2>LJ~)`r@emt-$|Dvmq|jM@mGyPOPIb&Bj%GZyFC?K4?I&F!@|>3VFGxe8Y|5eC(^ z`^Z-nTH3{A4{7Hpn`4!;`9WG7SWgsI;C6JIGEiZ?)iVZ+o4){_$cq)U#68c<9;Q2L zjErH;MB%B6pXy616)D-3aXd`QkqhGWB(#p?>&Zh6m#XNmnz!U2f1`F8tub+#l-?-# z2az61UpB|k{A}}9|I*EJW7F{G%lqB~OMZh0yX|J@MQ(mU$6*P+Gf(M;K zZemry^HSl$(5LZTL8W_Sx~4&}o7_;(o+@yArn6J@Z{U2JYR(wEOfRfTX#1 z!YNlY_oIl2E7SY?t;9{AP!=)wpo;gwo>QvtpjkLz*d*#X@%F7Bwp zoln()J?lQEV;1B1Z+~c9ET#DE5G{2HZAWpm<{g)8Yu2Q=(-_iC%l|;?qB_s0Tn4-^ zT;#L&((!C_N-C3I6!6C77XP5y*QAlm6)=6HUCKH5=-w^RB&-*#xetQZxZAoglBw-P ze7sDC=gd{tn2IUe-Z>h1M#I5!VVidb}^8)iD zhcx;;KF&Ev2>cKvk8R!4y04xlMgkm-&eMz5n;l?MT$|n5d5Lth+_y;m-X=b#mA|%~ z$(0h`-Bx*~rTQAinDG8>F~TMsgfO8CpIN@V zZj3!!!kJOz!_|6sjEo(VPO9+jQ6e2xWh2XeKO-S(nNYG9Mf<}VYRAU-wx@I(euD{T~I*3Utw3oDtF=lA>`)b^%)gUW6EQLmvLP5DBamP_GKU zY61ER#tzTo0W<`$iHZP?x6uBqDub_@h4fXB%O!)QE0N5xc)qH1&9oYZtkG*qV{zca z8id`6FP%RtisTx%fBYMz@CXYqK(CDP)QEXGFHj>VPLGR|X+cVAxq^hJ6=r`7H_cd- ztMIWjVH#~nPE~}o1n3CAPNvC0lnfQQ09GoQNZzJ0RQorz823_B!qE-529ejY-OMPi z@ixkS+O2sOTbi_KkP`83?lN_iS4_26;pmz`9(BDjbW5%@N^+PJegoY?*dQ>O);tQV zfFmJ_I!DIuJ2PlY{i>97sVv>94x_4ci2Q;fumYyzjj+NDswtZmLyZ{Dl=bC{EG#dr zaLTN5Xi}nv2a1(&-!Mrye-1)`K(Nq8ZaFy%P9# zH$(;zEf}k3GS141-7M%7>hvajjxRM?6=3m@hf&C9s#9zj@)fHAex(M?9iF)!w;4}N z;-YqR(CH!Qxi+-*E2?6gbQr6wQN+t=>4$W2E#}Z^9w_tnGt!dBKz#_<`wB*pdz?Z8$7a9?xe zH|VztFg_QU9<%mko3m-lsGPk8n3%Dw<~#@xbdHuAF1bW{3H#>a{n*YDyw!H`RV33$u1n4`f& zEU)Eh+o7`SH>+?K89GIx#!Lw|^*Btk_aPVVJG*gz6QVajH+m6drp0U_FsH83d0IM5 zI7l+`*pr;p{d3hd7loP&o<-x)-uje0#u;(WN?D#}ZQV!fOe3?6cL}b>Pdz!cln(KD z1D&r_G}W$?gqlt7!~p~}`t}9oNrz`cJF~euMR{GjIVd|I<2>65YZpFkic!c?hc%OR zsen5qB}a zeAVgHD#cauOpjDeu}176bjZ)U6fJl)HzT|uDwtKnU7r4GT_*X<1c-bQj9i1e7^>e0NB;i&xTdd|HRwGv~ zrPIrS%q+vFuIrp95TY;{>PT6lbXdaA-(nG!16ctqP253odz_g6@3 z?Bpa2>lo8c1kEmPlz5NVlW(l+$9QKz%4=y8FV{f!bO3Oo(v>^ zQ5+6PG-cFRKWKE)b_dwzxB2x|bEHc)MeZyeHjrTC&bDqClJRoz;WDj6xlCq)b}w`5 z?fN?^rGq1vR2EP(%p)`&M`oR+BZeOUd(cN_tm({<#HvX;hz z=ki8~r%)>==sX83rm*|Q9(jA(ibk5MgD)@Ss}r6k6mX9Om#zgm*)S*?D`tH>Mk62zU$6yD3yC%3Vouaxx-($vtqQuV6xulhPG}i+Ro9{ zt*gt{-H^2}PB(avlYmPEJd@MV$UgxZ9r_J-yDQ_QM@&Bf8148uQ4WsW_PgpW_9kIy zRk-cdT<^c1Rge3_CHGTcm%5_W$l7}MuQAJsBQb=2;jWuajJRu*)iockv@(&pi1hnT zf^=H5PJIMC3cFUjO1ixtV0xf7^%p-Frl*fNvkJ-4|ZL z8&%qYmnHhkVvW3CO1oPzmw}N>Rb8HtxEX@3puxu{bpzlPoIjoVw&nSDuv}wit!Am< zM=qvHt|;*uTIP6ot?a5==4Ae;ff=WK8Yt?X*(2lGcBv>N5nLTLu8k&B#>(_C@{^V6 zP$em@Iyij#Qima6$*G?0J0o4W_MwIIP6Iy;BJ~78a(ne9eZkAB}<3R zIhq_PIV6;|5uhzZYQ6`oW&y0%2ZRPjsDdckBtw6%twT98Bhx=5W`18|im%ITVi(g8 z-ICa%1;*=hizFbm^~=Rj9_4Zbp%j+bW*peGO_MUBYg9FkKj@vdvfpXjbxKiT!%biC zZsy)d0Y6U`3$*k%#7pY)4g?u8*!I?=MBh<(bSsUNS82k zrU#pQbBub#fxxKuawlXHHSnF#@KLr49#rqF)>(_%t$B-a`44I?t-2>PbZmn~=$sh3 z1w*bGA+gi-{EDM&=@ROsgEE_FEZxkYO(5p5j$3DZEZ^FIqs#lQjgOy;p2yFb(vn%Y zyQF&K!nPe1K`Y(wI>lC0Oo-=T;iI%#v_*({Dh)Q~{hRSA6?NRipT2(k{i~O+Uc5W~ z_ZNRXgpKgoq6#_w`)@_Eyo8^iAYJ}|%E~;%tNS8fz^|8?{70q#85+hn&ex(!;175# zR2gp%;U7|kRVjyPpoD){RORsc>I@;$4=M#uy@xNJy?g%W(|0cpUmTqty?XuP?N3Li zuMa0 zwM>dSiZb4jL0bH3Px38Ja&hR|v1^(Qne9yBWwU_r6kaHnWM7h->vd#o?aq5x`)!35 z9k2eo?JctX^iJlQ2-)RH&Gv%cCKj}Q^C;B~^r`}G)F)En(*PGI+tJ{MbtN6!rH7%Z5p#tq> zO6}tMxLdbt*b8_KjWEyh>Nr%;*`bl)GK$)IcBBp3N{E=NJ_eci>;GznR)I z9aV#DN3cJM6FK&2&uklSv?bnBrVJ4g<53{nHMM+&;{ipzZbeKy2p8nmzUvgTqG&<+waox=s2wu$p@$#uj$C zb@upp!RTXR!}cl%P$ys%iEel!0B5@#@yI(4f7gCN@s>@@$-qz_yqWqWnJS>Ft%kAT6+Lbo zTEzAUxy}v|F|LW!^=iH5hCsqZg7iZ*7~B#f$@yL)cbP0n$>fs*YwEMeIxd^MbFY>G zRtkU$%-Zje)FR=1=c+kr7$=qRDQXgTQw6-rntqtAL#hMQT#2-gfbnJzSTeV2j*ET% zs@P;BJQ}X<1@A=>`_@{}7y++j)$01%3e$Ig7MXd5rt?4`q-QBtxFUTEvze-86%? zz_XF#xmlTCJ28$b2A7IO{vkkpB((H@Q54WoxS`0<&<1HMNJxh+NJ{vr0fwx0HH7uK z35}HOl;`SNFs>xBGQhPl5{w0ppu!EF3PRwvVb|+I;N^-~M9JK2;wF<{83HWjTo*La zz8{kJlo`=ZZ=^K#WMnQu+qba%-dGGR11K&VW&H2GuGp%ks0ZH{- zX&-0>lVvLAHmUqISi$VFxD%;q2513zH{XQYfiduqfhzANN}OxcL(23|m`eq8x2kt8 zx;wrXW2Ynk)R^p-HMdhRozqjl(i2CTW>hva_dYnUS5S$CyQjrI#BGCf^i z<093WeW2-vkcv64pl0*v9*MPgiteK6-Je9!23+cX&*gQ%o8(HA&hU0szA@^+V;;`) zs{w9>q5eqE&CfzCMN+|M?RkLpJg`MAnqeXLKh^3y5OHSjU+Sg0{>&4ebgO(K(l6y} z7}Aw?rDPJ;6*`-31b3uF=Cx0BR;_OBP1{Yd^C@L!r%gCO85Iqg;t(n+diFGN|NdvX zGA4;>bMuPjcJ3IGOb?o$7LT3`#{Mg5_w8Jl@!jooUtfs9SSfe|&vhV5W$#E`Z@Aae zh+5(g-H$vhT2u-I; z7BWZ4nmlYDe?kO6i>MpMD%%E%v+VpgLjE=D<0D83)|h%$REHn^@6%FkVRLn%R@&4_ zM~U$3kWED__oPOoAiV>1A{5-mfvwkS{ffS|`iU(ew6#j?wKSgn z&($L>T6WX*DCUBkRtK$}$1GAd@hfRC-lbpBG;glr^rews(ZMs0KFBDJTHB^i16fw| z2pi~cP=CN_*dB>qH2~{6$ip)Qv*BTq-}JLBZ>W}Z5I*Nosr|Z>ooELIJ_2KasRozT z++nD6!` z7I|Ts9uT9>4zh`Gu6F&^dN1vBh9;nYB*j%_#{1Q+*NEToP0iG#Ks)C@=R3O{uZ6lq-r#An<1j zttiLq0azTCt4L&sb{P+i+C!py81fr)5*Az%Kvi!Obi$V21iOpo?>EYI1LFyrEn7E@ z@lBKR?1TwjSo zi&wj3X=`k2chj<5iE?-U!7z9W%oE7xImqKzA~=JaQdq7fZ$JiL2lDU>R|i1?W#=M@ z(A6}2m?6<4!pJ3w2(F-$3+d@A$pT4Y4!}!VhCwJT8H&}iDnqE3R8-dFM_^ApyM#}4 zX;20bc~F9PV3D1Dkd}cuqX$4}b8!VASn&0(J%O^dfo!6jV7HqotZ5VtNkqqq_T72H zf*WUqk1nCHLO_>)5qM)vu7PoUavP!kd) z^6nj4CwhT#lGgMAFy25~W9wlMM6ZCv+CX6hK_0-I5}AC!V_R?rZ71`gGt1h<-$VqM z1oGzs+3bj8;K8P_uh9M+i&04rb^HOv)(bh@+@yVg>1fu>5I+Yq?Xtj44{mxWvXA3z z&ow?^=*LMg9*zEFrCw4rNlNbTpda&mnatAan%Z+g_{Rfl_cKEaM*krCS?@!CuV_&Z z$w>lpJLxY%ow##Lt$u7b4D`cwnqj%kXpnc^J(vO#b(QD3c_=&GJdh&tJf)YjmXk`J zn&`cQj2Ce=NHs+12DkkGiYm&#&UcEh3s&PY zyYQLii@ZCEv0zky%HlM3IXDbqYC~qqH6Bv7t)Rl7G_>?wVutx`9NI3ZFwNVxr=Ugq zjX#hA&j#z&J-&-D-$YKrI~`=0DC;UmQ4yAPp&zxwGg-XD$lygf#RASYvG#{ijpx+tZOj67d3;bHoOoY~G~(w3I1$)jf#qWYri$TaghV;^w%RJJ1f? zwyhilK@3iJgi$%ZTkfd!8LkT<7X6GgmW z&hT!cTC?mG`*3Gz&^_}sAii0l+hG5Eub@{d#Z1_6|Lg8%Xj)7|PFD$SHR{AqRmam( zHS!WJ^awk9@!Ald3`b*it44(MG&T@16`qv7IK40(cHj86VPuIsc`G*$v zA75ni1NtR)OqO-kBWhcezOCLd!6i=$qbH9?m11XQM&@ zUZ}NS^zbAwZ3~cUnK-MRi`XWssGF{K_n77sNKAtbjDB}d-^*T8$!@+5MLoi4M^wP( zdLZ1XcEaUH9)vp?{$OD@n92iSf9`;wA0rz|7Y-#F(m-Xg6LR^lr&8q>r`AjbK4u|I zoA$WrSA6du+wKvaZW6-1)J%dE$e5UnK(+coWa%@Sx90AmxUA#q@o zsz3S($36JTyOhntWiW8TUvC2*?`}2^wi+}eg{xOoTIp5O(O-Aac#BE-aqK=Kb+yJe zETeoGN1MiC(9Jv8?jA0&?nNr+QGxeQgt!|*Pj%{FU;Ub|mYx+YYgt>*iA>Czy;TKbF@|y76`VeWt_Ygxjj0 zuE?cy3h7Z@=@bt49@g9^%6bbwuDMxIUEXmx<#%Qi-j2%TM&(HJir_+Y)GP~ej<0S< zxp@GFRI5$xaC{46eOC`sq`<6@hcLp&Bi9#{+n`1vbJVQ6S!PtGWt9Xy*Dldp1FuQnoA&ug%Aqz8OOa87p={A zYixzO)OQA%jA1O5$!5u+b(YYA19iiDq_Cj5E`8hyb-k==-=z`b9^wT8^58SZ*;F&@ z@fK-KqB*Tfy}QjEBXawIPLhUr_KmzF>mGQA_N^GN{MR&iUEsZ?QR~(oVALj(i7pRR z%M(?;J>Af+Xa3N^vVyahtE&&sx`>z&SO}rMEgtz>YeR0YEjJ2;!!;?}a1+TX?ajLv znp=Lg^pqyxs;p);e$D4btsdVO4%+OPOj-Gs)W;AtChk~7Rs@TIgU`fXrmQg;7sU@Psn zXEcy^X+l`a>3CkTXR~&4=K@A6zit(%kuo{oCdfh8yRJTNg>0Ix1!cIFE_k$38)=w? zjHg2xbm7lOuYZWcCun4KmCsiTf!YH>Vy^(>JfWI&tCRxi?Du)k%HY!C3EQe~P;>;OIxP!OfnS7osOXtetfAndc@ z_V7SiJ4k|W9H>0_Ac8BrG70AS_Mou+Z?JuwqlXWMdygNj4gKMt-@SVC@6ve?lzK24 zU6rN?Qdz&UXqsV|#6h>tXdz(Hz{swvXYD;+e)OnkQL>}jiG2Z-HQnt7kxer@K?L~& zMdFOPT5$t+O`H3s0TKbCIG6)lBV5N1A3eS*-NsF`8^IE-4>X-yFll+TVLk}9gL@7F z)nIlF%hCe*aDRVq4WvDnJtL4WaC>h6(!_i9+1hc6f}2}v*|qdXMW7%8DGSp5M2${h z64#PRpgN$f=!lufOU_)?*K?&Nni3C~r-dN#fi&aGVeoA6A-TrYEP_P^3o|FEZ5>+4 z#G$R?eTh%Ks6~pP7S}-7sA+r|U~Kr()wDFtO%V20ze$AKZ7GqeNb|+qFjn=lI5_!b&A^fy1W2g4);8En2u8 zCbOy?^X@%c^fLkytkeGTeY+AZRc7nKufi^sRy@e>VdZ@6nHX! zOT;{FIq%i$AK$(^diLfhc=Pt?Meyu9@cb7%KRgVcy?OQe+0m=FZ-O7+z5VgUyQ5bi zVn**pl7WaTm?aik(9*Yu!C`Wq6e$RCqEvESDYgw*aqDa2K2i*aT%(0sj{ zQ>;hclYtF_bLjYBmEj-7tfu}-F7H*8)h{Nnjo?7)g+UzX!`B1`=`5WM&cxqSQADHR z10IZqBm8HN2jk7KQkX3IHN%s{#JBt0s`tNAuYZl+-maI1mydmG*iS1q|GhoU@IW)< z^JFdtX*K{U#=_`s5Vl8u?{4Vt-5LG8JE6aSH}v=KjQ;+e(0_0@^dHA0rahdoY4% zz!pjmyePROcw5rDGs)eV)b31TcP6bnlhmC_>CPl{chd22FW;tV)6fV|x5R;XhyJ|2&f{wA%o}@QdOA4rcko}Y zV?8ss{}~;8;Lq#r1ah&?yhnHJ;J;qSdS>pyXLRt9pEP?r(a$(~I`O|5`Jo#=|JQ!F zdDwri*=y?Vxz+kHsnko~MY5#ZA5;KJ3b_5RJ_wP?yy`<9B=i4CP+b*z^GmC*cy&r| zm=o0-z^`h+vmNuANpuzqq~#`*sKhZ{&92#r#5e?|$5)*kppYR?b+f2aQSa z)mLlo3LZTClkdiu5*@4iDqqq|^du1&X(;4n+{ET-=g4amF+LHp&t^h?v4z`-Z93^U!gC9{?2#` z`L0xe-3*qhGp%)cTp&l_!f56u42#_75B za1TCXyl*?)gZ}aE>%eUg-xlG1m_0feTJz-}t%bn@JUZaHfk5>sXL;&B*Y?5=I|Lhm7#D`^Yj#H2Fh%(>8oWiat&oxuF~Xo_13kqp#ZCigOIQc zCt=9pOVcKPpA7#ePqQct&@#pCj^78kG`}d)vh9 z8L3nPfRdgVY!vWrk(`MI#!3>C$csjZfHW#)7XU7O&9~}q8Nigz>HfH-{-W3vg`!)t zK%ikpt0LdnVL*$1|EfHL!-%43@~)bbchv&DtCEw|@p$wv;%3#p48co_ml!YrZ$Jjf zGw5uOjH}8?D-!)<;$~J>V5b8kOVx8AM`uF_ajgp^(9d4Q<%uBy^_TRL=8Ekj75%x3tU`YO|uB;%__vs*>pb{1s^# zNll`1wZx;Km^+Y@S&^5eanwbfAV|aGrh?bG)wcH8xKDC)Td|r_UzzC96m3vO=riejd0&5bCA%3m#>PG*z z1BHrMXA2?bn-|D0$WCX;V%k4S{q5*J@t!jNnYt^Q3-Qs1XLmcK0RLS11zu;`=p@;2 z?gU*3qjU(&ySW1gT96Ez=z92T@x1?cCFW@oEJ2nt8`a$xfsfFCNz3$XVPj^C(><tEQ~{&l*vL%7RQw@%hM+o{axb(i*70Z&~O-;-=gXjJGg59V_iGFOy?aDKYOG)VHfXLl;TeaTZ z0|mBCGRo)32Xq*y?||p(hjL^v)iIdz^K%&8Kg+#$+SN`ZY!`oF$n`hA#$W=Q_#L9O z#)^8<70gze9p%edA(9Q3$sD_hX*f!elcG!Mid3k+o2!#W&00a|A2@fI zdn!`Y{vP8c{@rJM5u-mqenZ~Hq{BYBF`n6+NL z9^dS6TIMQaV;RQ^XFfkrV90+eg z{g6Q6rN0;DOh|*ncQ{?-REV+&L-nlS@65D!m5c6a#g_a?*p01mPr_b??vZw)vPyF1 z^;)JmEs;6h3D1%e%XXBklC$pP#pE0|zS23tz=+`3 z_l8h|LhteH;~NxTwILufP%Srsw#z*?_7|pfno#}N4UhKYvg<*AY@YM| zM01%J>ECe+U-T0p{n?TNyQfi)-iGM}UK0)F_Si%N51x9*-gV3{d<;;xX?(ECH0XY^ z>TP#yby$-02Sp9vj7HlcB-`?1W4j~nabSQDfugySsGK7tK%0#967^H-Iwnyoqkq1; zS3+;NFm)`naKO`>|Lo>Jt<8E)Yl;7~w!q|>KCPJnbWUj?D{++aiuP#@8OLqUXGm2# z31JjaZxUjYHMgWl=~ggQBG8*08VY%pETv!Iqhz^BJhUsB2=a8DOlf)#ZA(DRcJQlQ z&Z6Q3{6j8NYi`4CH%w*Xd-rS~tLn>czvk2jZ^&>QQv1k5vDjanp9`f4LiZ|Bn1qai zI5WZ&KXhQ+IF3!SJORz1)7zg8&U~kXyk>mU>7i(!9=_c}>E^~i-yjFC&XOW*`H{wx zn4IDt;0HL13^|^}DCr&k!ZbO4KP}?XK`>6S?l(71|Dma~JSpbVq497@F?GKu zAA`zEB`SRU>VSy?)AHTX4`#f=qFRJ;+!q09?9#^xZzZzsj?yRtm~e(Xe5exyYC$NxO~K1Oo4rS={pE17U9+_=Vm ze@}k7cx!sZ46}0WgjVisHe{Z1nzY5cD3AZH~IJ9*mbCgS5meYnW^3 z%L3i$kQX+hIP$-Pae`qCW-=)7-}KJ%H+@Upj~sCAJ_L0Uj#v?rB!BoNc#rh1O8-HE zb#JWu4qpA@?1p2KV;I#xNqYQ=Y;Iq#=Ln^{;sZk;Ms3&`H5h+ARQ^{yG7Ym0xR8}t z-^5ku$?Nt*1MT~V=k|47sn=6}l>zox?J*zXVsho71J)k7ma#)pn=p=%)L z`q}fJ68yG=F1m!IU3?P2#RXXbZbK5=l0)NBeXu>fwJUMkXpSJeCwS@t6-M3r$EDk2 zJuA1yNnzAa3tm#DNMGjOp(ls>vJNK@NhzpTp5mRwC@%Ye+=E)>*7ppvN>~?h{3_$r z)3BbSzR?^$^pB^V=WKF6pqjXX>&hY-)J+zBJC|3q>Dy*7lipRN@n`qYkrulYgwV18 z)-mquUKz&GJN`cS`DhA< zyjFdgAYfmn8AS-$d`k_&Wa|0UVfWq4 ztd&Q9UFfEBP|UuXqq3+_`Q@;+?O_X5EA?>;ettP{eK~M_IdFYBaD6#&eK~M_IdFYB zaD6#&eK~M_IdE;p@5_O!Ut=9#-4=0ML4CSt$6D$&EwCU)HMATYcwJjK0PC9L#9ps!Nsum$nKiA` z?9QcM&B9hG!D`%%^BLlKD~w|T*?!vo55zJGx0S#{HiX_?MNGe)f@D*Qmy0~9qPxI% zVe=}6=j6*F==!B>hhZ`lK!%0qW3j!b{bdDL9DVe(w* zf{|*zZo5k#jIUep7;VaDDCT)N6bdF`hlUu}Vq$l7IP-PZ21M+LxflnOV5m;ke749- zvAKx67a|LqR!)|inq_CS{sdJG->#}MoeMJd=qPGCA6lXXV_ykGqN3{YYy%ed>JaFcK2dz16^504uAiDsiXmcukF*H}! zI8KCkTLaNGsPP+CA(I~QEEYO2boC^g0&ixh`F32Ln9%>Q^I(nPiyvORe(~n$^v&Dv zUof={uwd7gNS0F+I2hSvJB{|U^@%zNff!S?bHUS2sO=`OkyOlMB+E`^MY`Caafh9z zouuqi2pczxuxXDlX**#|dePD1EXihKVaSA3u9gBoNP_d!pj?HW7CR3tU=f={e%RdB z$ZRb-$SsCvL$~pvJPVOj0o|0QTqQ#s3z5w+jJL>K6iLC-UYH8g#BEM? zuN2SX(KLHfX(p8cgQ|`*;!d%c`X)EN!8Rvdt<#n@>1?;Ixu381n@5pFlV#D>xea*~ zKox`2aoAmEdH+6fL&d@RnX6)=Y~sn1kR*CYo-c8G?l79Owr*sFo(Z1{>bqfUW(k7m zC_x_x0u#{!u^R1I9x6us%5`OECiw_G2)i-{i2$Bh=Eid|1XtuDDY0VcF>En@DnpKe zfhHk_e+_H+A5TkXsiKEO3PtWP9%C?jmd~#hL4tEaZMOI!DS%PD!9a#*f$2#Z%ta+F zMuy}qMbMa1U_^9)qFaEJ>Jpv4By9-Gd~uB^4{<`tx$?^*zamm@>%@y8m0)@mSNLdX zQr*Qw;|v>otP0?7Eff2S*1QxIXf4b0hYmbHX&=vY( zo;pH4O7c1sgzmj7&96>OynGjwHuOfu<&5H~kmd++CO!oJu6&h}g+f&E;~RZ%6pq50 zH(%qhJ|T|Zo^)u8aT_u$DDLkCP}D!X8)K&%qg!=js&&QpA6kd=~G*liPr)*j!?&bm@3=QGt$wViuA0uj}7bz;Hq5E+qg#5@-KfE_!6>KvXsJ_x~ z$J}>^r9g#24vi*D9Pf*Zg=k-9weGKUE&u(M`f}G0Hl{zqfF!m!yt$!Ybsbt)4|=4J zk6ZT@Cnurv_(+8)#VRtt27J?5Q$i)E0!~xp`~(ZNuRg5C>|&H;7s~QMF2(gF=4bg^ z`oJvgopr@S`x=(=91gI&JQR2<_>K#zaZ|j+g7yg%3rGQYK<0#)f2wEUIngYZk!OWL zPKO2MW(mu#pCPa`I$_8QF(Al@CE|wVRgRRf-)8b`hZUd*5`!A0>j7OZ;QXJ$ar6~r zspHObm0`$_2o-6}b9+j*ww?^CeW$zFwofI8nB6fulK*sc`pfu@ej+X5Ey z>!zf%igCgqkeYLt9*3<5u~6N9H;e!0yi>sK&cXMN=qc+y}sYq#*n;&X0mOc(ykT7qM#(ekC>b9(SQ zMb3)tzzu)G`&euW*apsFv@3k@%dy@w3f{G_Bwn-*QTpq#4iBeY`Yn(V_(oqvh{0NHYY7rQ+-F zIwRUFi>T(E5~X&=GFW%N5L|WLG4;4y79i#q|2_V4N*3R66byX+dOYj&= z`jbB#^o?lIajPmVp~#a@O@^F+B4Yq-+5W86)ycl|ec_0+);d+W<~e4jfn%|Xa;E`d z(yuGj?xqC@y1)G?+njHpm$38Nd72ECTx2$f?F8pdO-k?bJdnh)lNXh^eLtP=BVUE; z4U#BzId_W7zc{i_BHM$JY3Y;YreYdcuON@q?CDPAV;qNt@$WYj1ojk*=xA>ozr3J} zON>B*!d0cI%Gnny)e^OYA3iT;Jv3!kh5C){*gp?JJ|T((>Yof(zra}THN>`%_;SCA zw*1#qIW2mH@(R+q@ggx}5?dz&++qn-@BU^$(~4(nJp7)tvrvDGpTkZ*W}%Miy_(_| z7_Ugd9`#Z%eyv3QSfz%QjZBOW{Now>o*e%=i%(i7HB`YbW72%73F4dgOj6A^+U~f@hJt=%8#BB2V+WBoh=^IHHnuR(y!vtyKRxf z6H^5WiN$mh;qt75D!HQvdJaP_P=7ji(wlzT@r}KfDAuOQ#wN+fwEKxQB+c`aDIlmW zxbPmw@Q%f?Jm}-#1Z;%Eo09PNq8#hbTifaoS*e65HECX88m!?YD_BV7c?cG_zs zb{k+TnAu8K-y?^ab7H)fc5-(Yz@vn`y_q~?t30iGK{xZsL5XikwaqvC&QMi_;^?9Y zd3J0B>^5(>kClYB=P=Nn&0ksDw8{5I!BNNEzLTn+xZYGfW9AyP(>6)o*TAL6upYH! zTB*);FZU0>STu`3Y-?*}1`7KQR;3YF1#0F%eJpm0s*=hvOA?qt)HZMYwCN1yZ1Fka zq1aW}m=te>anjf5Ed?Lqppj{HazyEscnRD-vZoM)Ph?)9Rb2gcmQcNx>`OFmNO+!< zfP!CUHAr!6fH4g+P-wx#FeJlcYFXev{8CQSfap2x<+A_cd=)vSu|Y^Eji+4izJo)2 zU;$LtL6=ihyTLw#f6qR%K-UCs>pk9L-T%;NAxS|5u_A0q-xQ zK;ja0%oK$XA=2;0NCC?v2rF*4Cw(YqcTHWofInSA_VndyKc5?szR?_hxH9?%{vh2n zumA{(1q@-OR~Q<@>y5+Mg4zJxxmqdq^eiY!!j>pu3-6OQXd`jQtNg^MQHjp7UE7Fj z?%`^A^_e)_kZurc{G@L5q#O%yIRbua-BG97fY8)7OoO*3Cxl!+a2Z~ZVs7FBt*f0)6h`#8_IE{;KmKo zU(LpvJ`d)dc#o+U*QS1C1Z0}qdCQ1fh0`4471brv4bl<~mG|C`DgTa=&`rU#ivRFx zv-HS59X145fUQzowPuBD7hL-9kG`>lF0JSQ5#rYuUWW+2$e$~DKu2||Aw~gBxhI!u zPux)ktsyZgN|#f^r!yw=x|z@Qo4U}=HI|Yea!?m?ZL)#92#7Krxr$k^_^T&=>;jfM z`gvV;eg!JBtu$z+eRDdf1+;fB5HtnE_};(Rd?OT@s8sz2KpEeWO_O!TgT$0-C^S^h zfZ#I?ekmwT-vK0@!l@7?Fppxon;se{u-lPio@7m)BQ|-iBTJN)x75#|#B@9&aS2Ej zVe>#h2Gw@dbOcsdM&DUd3=i%QnaPzIT&u?4|Fm9RwX05hh|fgeImvQ(+-+`VJ4K6Zr^wH^v&U^_silAaW|wW z{SsaO{QF_xykcZ!c|5QABG1#U`Af0o*GY?kN~qgrqu+Yvr^EYa6|h*Xib8YGQ(L|I z{2+Je_7>)>lJpP09Rk?r#d9ZLjOs8C(&u)+>-X>t?*6*=8jKM?t$kD=fCh#L_)zD@ zNL+!d>gTNpVF&s``fj;`Zrd7*a-2MHt}pwzzEH4l^Hx2xN}Lm#cRHtOV^X%D4E#%c z7TcJ+U=;x#A9xey#K4c#?JVk2;93z zY|ji)dAfBSar7t~OgK>wdZ6_-{ic;($##iPz`$$9lJ*hh!@;#a$RvpU*2-v>o2a>Y z)k8+lXPjE2%qN?S^!})~5rY?kt!On<8ZxChyd4}AO*6=LNskmMq5ACyWi|RhpGE9# z#`_M_3YLn-IjIS#IK$SPtzmiub{-c--W1KOjGp0C8Dm;tZYP}sF9tTcWIVn7q4`~X z#LySyH+oG>g;SA7C1a_tF=>E_CP}DELzRM-Xc66#CgvL`(foQt(L@_z1eRK5tJv0Ar!_j*ZIlr_!4%RQCpYL-1vu1U-=@0Rpr6`kve zU79Lo;_>Ek!z^H2s2e;{*s82X22a4=^|W6EtkThcv9%}}y~hlwaZhc!<|Y0YAnSJ8 z&ouEPu_JF;iqhSIMXHzT%h$ui{oC@-Y1w+qEo$7#2gR&>THChtCTG%jRO&tWu#DIDwjR4z}tBlAj%pINWpJ~Tc zQ?7nY#;S}{vJfK%D=R%@L6>%qRxzfr^eZvKyL1Y}-BgJrCL~(fdr#pVIvIC0C;nM- zh@Xrbfe4o2=uu8cYBN>ah<>UBKw1WvPupa69Pea}c{DU5W*JdL%Y+|se;1ciqAy05 zm>9jz$;>~ualv+JmCZr*c_<@LEJF9ZcFj|(taF@mguPpD9>R_M0&pF({RDrw9xO0h%_h?wNfJ~tou~5MGDueiPK%eXo zKaG|H{kKSAP|MI-^7=qe48M9ajjuOAEF7ckcdSb?%LpXt`ww1^4-4rgahxZJrQd&c zR6Lu%2$=NlstXI0hg8YahZ7^#T9$G`lN6^MRzmX3a)+E!j=G!ff)dVZZu2328dG{x z;eL0-a(JR!T&y<3o0&nWSLBg!72)E|N0beFmiEMLBV%q~N$+JS>BH0yY9fz3jDLNa z5+%Tl>3>8SEm=04{eckq8r^6_tGq7e6?<5j#9DG6io-B4db(b53ei=iChX1Zym9Nyc{|izx%u|A+W(*i@N5uRp96BIe)W0cR%Bw`fTBc1%`4;MUHg-&!HCM; zS2?j|3Ka)ZE;juRR|#@-J6y)m%H%GKmP#rI8O~Na0P)}m$a$ky^GDm z;t0a{Mf$1@&F0`sEI41BsJTynVKmQ>-KRK%h<|6sx2FTgwnH^`*U$0Oo_6J&u$V`> zb!-wqsv}qlZB13P^>7t*RYEs3wdf?ie8*YLI-DG1s+3|dkH5XNh3>{>WnG(c14=tL z4k;J)66Fn7B=SdbXt@dXUXMWET-U5Hgt|Ggle4HpNoB#lrRBi!spEjDvYl?}dLQjo zXn(@CV)PGJ4pC0fuLnFt3vNxeoqPB>Bgj{$l@YNS>yVj=60Q#HxU*6 z|A4fqEBs5Z_n8)n-}>qKan};YRQL z=hd0a9a0kwJ_0@T*RokML?{vt#$T-L&26H{-Jx8sFnperA_<`vMZuc~GVXe>_?%@q z2rf?`i+Q!dcR}$5dr32n;O(|Wxo==n%Br`pw(M3Tn-AXfM>%yUK=R59r`CzxNZKO~ z^@5J6)5P1+)=&u|y};@GW7H?J0c38*vE)t)Ksqng3P(v)(?X-+x1P&$zvPBO9-eq} zz)LYiq0i-qfqg)s;0o)$Jl4+Nyn+@{hB%F6!&V)p&s=2eC&Tx0ZXD^jHnv)ZmRk`lAZFELnG{GR^Ed(LF{Sau!>~2mzxc za)O>)ns^_OxmcQy;p?nOdU3`Kr5d@E9LJN3qPi%hqfaggVwb+AuDI_n0mu}*{b%nZ zzT5(O8MDct(CJm>etaySye}PIg>fH87#zjnVP)a%b73R~gxv~fQ04dcID{l#-F8Ln ztm3HZKW3?(*#oM&`zp%?*a!$V*u?nGdK@4%$IwlpxIm&hddA7F6k+tUh;uswBt_#E z52R}F(DHd)9xHcrGIsjz3;zYhAX7|V50$8Y=%vtR0;AcI`cQ0$Bco?=az^W5s7(G= z1fuFbn*762?({b8oE<-|k?}Gv2&E_D3jP)?^F$#_po@&apJo1dJZsM>6bCzWWkv4H zJBQhbD*orYA=)fysuKAK+RO?s8r3Gt91u2c1ASRqqO6a{1caFiwRIoj-R9XwQ2H(6 zVZRTeByJ;VVm*tll-`pcx9Wzhgqu0kD$wIz=z0b%C{O1U#V6{2W*}U>zFqVPOW(p9 zbC{j|d)aTVmv=<_Gw97;?p!aP0aIV}Z{$(9i<@S8_AW096)$l2MP~a%Q!qJD2#4zd z=I5^eSMA!v$IHXhe5zZX&MwnC5`8-FWFk!M@&@*4d%rP$u}%qdr8-w-t8@0_9#VIK zcjJi=6mtY-BffU(_xO!%vN*e?P{uTRWqVjMMYR)^k07jx85X~bt`*KOKy`|Dm4;#X zPf}*_$MGW8FefWnjxj%>q`V4mA9A}|r_q_fIy?$F^Etcb#ez``y9x^!xEz#>eGVcM zW+_vh}s`IT$WjjaVHI!Ol_>Q?y3OC|sn-AfPaLX9I#)=cY5PV4UN_uY>1!FSoQ z!kk&$oSDKwYBvV0?`(J98hNMd_;(of_uer##5w=;f4iEu9M?HV_99L2m&4H8 zt)5KIja&tRYj3{`a|<0Q^umrY&5BT!<hM*Mwyck^aQuiuvdqm z=Y?psmmX$3&qJ6vn%hQ2=&6XoSuU)s(GL6L`|$QV^C{Hf<#+u+Yb%XIX4aO%o8Yq5 zz$f{K861CTMZgN~xv-GLajKmFXD2+fBat}^VIVeE7iTr0ge{~#1QIKyY({{807V+pgETQ?ZfF3~Q>))OGiBFu(8TlO>p{+2tj(;v$G5mARCn)=D{EjgKgrb( zN%B!^ts9grvwUP(8G6P?oakL_u4P2$@qugA$Udm!B~J4Wlk(uPX;Qx|0)k3ep`QcZ zJ9Gl$qP?!XDLF{hIv{4gKI@TAb0kIiCVY5Vu*JVMZV8TQ;)`F5@cxkDr`M7xnjC|BIhQYDyM3#Kh3D~_D zd=oM&{y5<2L$Y^MXz5uy{?%;dx&0UL&oye>2j`DK^u8C`dy&pf5%&0e?qjXNwj+EM z=N_Lhx3i&8{NzU)1j6ZoFp1t`?wth3g8G}Rz zPZRrdT&E^`!}I-@gr61DnZ3?;Rn01Ds;jfY7Lo5c>7m)NOll{2c&*jV)+U|+Y|oC9 z0Kh+fwYXE{G8dGk#0vXNH2harrEoW-h{tL)fN#nG9SZ(Dms{WcT`4LUW5*{tI=H{nXv-A15%A zm!!MfRuoHX0e*hZ^YuYsSa|8E?-4KS6;^`;f;LLLnFCeY#)Ev1-wajfmRU zpd7S~orG!v&&u;*f``_Ef|gwD%KdWUBEenzco+M5M;Z#%R6CHahq;-L7Apk^QOa!V z4r=!GJM;U!L-^sh%iN!s=OxkMUhe%LbvpyU@Aa+zfmw#uI(<9C-mL-O_TVokn2%%h z=SjM&RPD9@-v-3?0QU68F!}aj`U;<%Lbygo|CC*!mrfHP);tARKeC|6FE?M?BS73s zUmJLDy=!a{r%z_SAT?v6!lUXXbtoy~(fkkK-yL!K1vFK~GcT zAQ^BXoTETjoMS()@ifu9w4zuZ5vZ%RBN%3A(RnxSdY};bVewF&u%r}}RCV(0ast=k zix`p^=bC{?ozTwrwsZ;L)EToGlmNVbuz?Rg?61#(SaJjH7easqVjsvg>(T z>>pg$)#SldA}YO50XO*EHY065R)BSFcAfoUtM9wq%IWMv(nw}>uR7@iyC zCri29MzmBvG30=%@4^O55S?^v%q69|a>~z_;hW(KqWcC?-Wae8pwdXdHG`1{??s>}2-H0P1wdtV-w~Q=LG-O0z~O*!9t7ulR%MznsASj)B+p21(X* zYVp4`uF86mXUtb~4YCdwzXAz(s3uM2z+d@}TS(SXtp7X2qffnk;)t-cPquL2rVAU3&v>N_S{*f46!-^yC1<1rHV3u*^Yhyzg zqGsdAiQd9`>SxmSqi`}YJtut5ILt6)>~(`wfk_#W)PsszU+GX%Gf!vyQ^CdLztQrz z(a)9$MbF8-B`>?3qJ`x{#oY_CIiJ;h1mb%S7x0wYufwt3#5juSB%>R3#MtCrSObwY z!s?^HFKr6d!PL!UUE`bX?affinM@IEgG?oDgW~!rS@#ITbW7$<2T3#CCE`)BD?)-$2)Q=W%su_Ep3jG1+>5IXCBUAMg*F{>8hBs zY2TcRMgzOy?R7haClo9J3AkS#7pr#zx^?^em&yD&?H)80DeGLhhP#r~-hzrVoA2gD z&v4zmLnwf<_)QM+Q`*ZZzOTCcqGqu@5bf?Llo^L;(Rg~fx!jHozk{YtklPRbh5XBi zR!E0lu#SFZVL0}0QQE%FKm1r+thBKz&j=Ftn_?v2`6>RP}F)#Fgw z2v%k{#m)^eD5JE>1rOhR5Qbim8Yw+4AM8#^-7{sn)GSf+2@rzn`J`I4;Rw)))vA1jTHdYq9!~J0jE@mm-iK^ zO7@2bZ)fsClX)1a+lZ?H!845Yy>)le1F`nNOGr5%(WOZ5`O!qb6=WK65+NXW!R@9h~^$dMrzrP8)?ni^6kLJ zZl-Q=Y-Ytl?lMuPJvgCC>O>pB7%X8mm%7%RyqL6%nAik4Tn5G$&~w%mwj>df{@T3* zBsq>VEZx>R=N~@aJko@G8>g8NjeH+0Ex4$!i*7&ji=DLF;wVHHW#-?Pu*X){T0N}S z%nEU8w3O?i>TN66ZI&1nI6Ski^vaI|SweAA5Vmy?bZ<)$bk(prhEUlXNz7;d#=bZH z$zLgYy_^p@_=ibTOXDSC1P5h8wzr>r0YU0c=udExbqM)M{7HB`GcS^M9!N{tWQ$vRc8e2<*%t~WmZs?VLJK99w9qBH)pWQ>Hy z+x)YS-kYN08+>mruB>5h?n%PBp@X=D+{b^D6sD}+nSDL|-e=jetr%|!|I0%`PS~9B zgnGbGiaI&?_MwrUjr2U7UeT_chiAH=6diN&d5%qAnW6#BPjFJ_@%f*?ncM&gK@5H? zf_SWG>jm-lA)v`~5}|Jad%ec0)gqT7N!Mg8 z`8c47XXjdC5>T&FqnqA^7`5#{VryZfp!8F)(q$C0{tcVid6tU8jO$pDDKJmfb?INR zoBc_4kz?ji$~jDKF_w%c;SVY|1wHCA1>rDusG~Q!8CrPQK~lp4$YNpTqR(n5rSnp1 zxKa;x?5Wgx_E>LVVD@q}W{}CWb+$rMIsB0Par%H+5{@tOAs4i1e}G`azV~Nq~Kt_KHWh&*}{^ZWOzX3IJtjo7r=yF ze`%b*g+n6i`j;|w4{_tgZ;r)O8sS{Qjpb!$G)*+o5-cI}*fD2CT&T*2 zm%J}v3m)M5h^Ac0?lQGhg?@d>q4+fH(lfdumr6-(gG<$2I?1jQxGZQ(VF&Nmep56B zdX(7Cmr#MnDn$Su`?syc`y-JFoTzjmT?u43W525l0SF*g6?;$;E}x-XW?|Y#F;-i> zMgb&&ZxBTRXdl{`6J4;xF7m7ASbC&WJVa$ToChecQW?5!K=CvRl#@ZNFBy_Aql~@3K=qL-4@nx2~qLfmup# zd&@8JLR^p6{&yYmM^Y zm`FXV&(JcFTqe-f<=0V1o$(Jl+>0=9P!y|fPhd~PWg-WOikEiUe){o*Yp(QEM-!{w zz1KKlC=j^qVkOhjjSk8A@Nt%#aKl1@!-4-s#nokY0=Hn=W7o>;*X+a z2jE}~oiX_UoFj_+bU2!xAZxp$^Z~p;n4FWh7eL4TKkI*?*PHWyqDQ}u3?p9Nj6Sra zu4t-9_NC(VC3SGeO>vdI1H4Cc{!A$Ju&a}9r%SO;Vyd<=XXe+|84=<*gz-Jnp8Fft zd-bRB@4hu|He>S@H%4A%yo8+m3VZh(3auMt=xD8*4c*+t=qAd_hn#6)5H~OOIRd%3 zCE3Novk{0%n_kn5uI~gMlCQMP^AX%ixP=M~6n+&nH!kw@IVS-@a13`Ovs)DSv5d_j z-MUACas5y^csm_pH)X@xE8YKeYj(;x&+Y2xfk#C=SxyiiE+bVj1P_VxcNE{IfUQZ2 zeIkL89KREynO>}lHMt91X0Awq!iUaWT)B8;SBg;$yzgPF*4EHjk(D>tq7rjS(e&A^ z^~CnsR~FNR6V2kXg>0W9-UEio8;8V4N$)Eut7W7-WIUq*Jmq*8nT3t_?;5x0!BMd{YMQMbm3+Tp_Tt<4IFa{%%lzG}46(bgbYgEHGU0~X+ZFv9kBItXF@ z`M(gDUNHe8P61>%@on4~z_uGph9iyX$JS6YMS5h%^nkRx&Arx=J;yE8-W-TrJ^#s; ztSA@O+1hO=0-cn)`bGH_ZSIht?*ziJ^jbhs1u^a;F0@ex9@ ziailwHEl>XDh*@Hml?G6n5~Ud;tsr3r8XLpxDgiCaHt6c4}MQCPG96F`N&C)xaAhE zC=*7jKWD)jtiyN;8P<9R^W!$KUM1}S{FjQ1&+6_7S>s-|eA#r`g$U>EQFN@QszNA1 zo6R%^mvY1@RG_eR zou35pnjJFw(O`L>guo^*FQF1SPkHD6Zlix6tE-pYEl+cUy|gE$XSu9Qj&0ho;@1-K zLMaWM*Lg(qMbzEkc}?=fouOKng=3>kmJ-bZLgO;*qcSmpI%C2Om3TMT6%N39B>-XvYx-Fn7Djcw)5IOlrf?ZueyD3I(O;N z;&gv*2FY?aTisY4?ayZ;zI7fzbmovY`1lgN=icR!I$$h)gOwizlGRm8;c>bh>DwNX zb0-}0(~2G_QEfz*sphZlYA?>*n=*9d-<-Mt&wCl|s}3?R`CWmRb{vb2kg@BF-QH2- zu`FBZd4?L}gwYtYvnCo`EyY1!pIQ1`w56o!JJwMAX{mHEb)h_;6>Bs7{N!18o5Ucw z1NYf-=6;#E(P`}aP4)eubysDZsv*mAyXg(tdbN_hqQcyd8CUY_c;EZ=BBuK($iJ-r z`BV)n+)!Sy6!0rA@rXu4{d*eFECymfDau8MU?0($xrA2KOW$R4Tk}M)sb<-g!*91t zTjtNgsO*6uWT9ORVg=%Kbp?^E8N#9iUK!d=NV$Dvkd?3<`s|DDrQoF*Ok--vA(YiU zwMaH4R4-s+0kaMn-1@AY4S)2LI2N-#nmq5zI)$F75n{3xm!O`so*ar$Q0d?p&c`L; zdTc&}uvd|bPvrkTYy*>WC5IEZS(xRWV;QYQqboSXP|QQiiYhi7;RVwQl0Dy%w=1`*BCYLCOECCw5IFO^s)_DSV-R)P2XU;%TfEqP8UTlU;E)H! zAFqLR8URj#a*m^Ah;EQ>>R2rnWqFXs2Xh{9Q@zt-XEDk)%_61@U$HOipGE9S1(OUJDCKX+ zBfccwllaeue~+>t$+CTiWK{GI^gx<4f$ux;f!~=`S1|dZg@x+DgS6|3cWchPMf#u+ z$u`PPC7M-+Fmw;e!-5toUZpl%YG!g$^swJ;%bPi(f}q!MeplXoEM9)9K!`Fv9~<;8Tc6()Ypdv9Qpeb7x8V#AfnHCt zNoz{lY^%!n{F+mui$^NIgk|2urfe?LjCcZ_#ww{~13eSZD%HZmz1+#peMQS=ZWHyO z3dGA9bmv$uP0COM!S3y=QGrW#lFsx_7AnBR9#g_u@R(D=ui`(DilL~x9Inlx2!ZMB zg|?b4!V=WtA*08r5_*!FQVk|fE3`^W*T0QeA-4NXtqnCGb>>mF3wE(Y?kuzBr)00r|_p5F#ptJ^%`vr>7!q^pJKa!>7{3oGAfo|(?oU%-?t!aThY)3bC zog?s-6pt1y_mhFNdt+W2mU2Cx^-MjO$EasH>xH1@`5>B-n5okTx)nfDiBR} zApWyXT*B_Dz1b$ct7Md39}RTJtNFXVHrL#J>2xitisHFe-n7`+(DWOzlW<{IN(P$l zkn!IN71=#0f=rLj?Xwu_hR07&9M^vy)%AHuEOPyPK$A8XB8L4-NK4 z?c@grjOqnxlzUxtZW`p5K@YYl0GyqLE#O>0C~|D6S1mg1nW07^DD<9!8hIG`4Px8V zchfT`cQaGI>*I9W*LU;(UKyeNlW=9djb=;wxe2LU7qv+8P(Y3|uQiJ~)LW>xby6)r7T+t`td;yKh{tRclKtb$ywWlDk zk+37tvA)u05XlxbF-)%flT6I|Bo)(~i|vaas%l{&!kGE{UdOozYROx=buI{$TZ>;n!B z0?->3D!F@YJxh>5B}{HYZ14?^`8xzrJ|2Qa+bdR*&v1^2Vcc0!j>V zol!fk)|V$bsAAd{vRi7qXwJtf_ra_&Vw)_rf_wAa1*S!4nCin~fMu|ITB)^)l7GEB z>r1O5=T%JeY1?~*Umw$6CLyk1JA1Y~w%10D1Obyg6}Nfodd`bb(f97B5utHtE^#M^ z$hmT5;-fPTH2#ReJT)*sCt9}cn^5(nwJYRNoFNv!cx2}&K;9H?p!=g`Vo;%@uNA*U zowsngm7(q9_}2p=fDvKT;|N4OYSTH$Hu-Oxj^c0R_$V9KrYvgpvYvdOqqI$c|K zD$gUnz6WoRmEF)D8FkggT0yJtGMLmy^Vg2HnWr{1(op*#)~W*?Ur!E0?~0s z7&bkeJOQJeKncjxFAXSZy&O z>uLvl4R29A4L$EZNg1jcaj~1~R$CFlsvIVZWm!$S&sJEgwj_q1MKT{z>rKfB#oTrQV43?yVfc635-7R((+fyJ8|)Io!0~z*W__Oe@4K za^{q;2*-|SC6#8%l}dn5b#j%=$)UBtJBL-p)$6e8-qILWh6jFJObverl8tnrwOgLJ zsup85X$V&C&IcpE3Mx*tj@roZfRedg~`ek2_IfDv3QRhs}uf_eW1r z-H5fDL%kN4u`GQ4O`t4iK~_^2a_kHi)}|p-{A;0RL66c8b`GDpFW1C_qcx=eN@EC+ zb1m9omJ5<>l^4b&FVc8+81`vh@OVQzO)U1(zoo1WU6;^|EVD#7c3mGV2QH-CVNi(i zR`Q>4y3odJB=K5Mn@WI-s}SMd{Bt_0-$v&~R`=eDx6?DsGp7qI_lf@>lh2fotZGih z#G5_js)c$-N(Isr+qG@O)BdwT*Sup8eQ*j& zrY@sT0nnx<=G_pg#L-V|^mR9~)e`&}QAH9A(aD za_q--ZMR|jL!%tqcBa-fT+(T~Vwa&X1h# z(c84fa=NB`(UKYZk!%exA^vm!d~L5K)ii|kj^@VBIr{T;#FD#BJ6QYm_K~{-cPe1x g^J+Pn+52<1u-Sq7#SkRl@#?obbua)G0{ZKJ0R1<`Z2$lO literal 0 HcmV?d00001 diff --git a/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.map b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.map new file mode 100644 index 000000000..7a5c6e634 --- /dev/null +++ b/hassio/api/panel/chunk.d4931d72592ad48ba2be.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///../src/lib/modify-template.ts","webpack:///../src/lib/shady-render.ts","webpack:///../src/lib/updating-element.ts","webpack:///../src/lib/decorators.ts","webpack:///../src/lib/css-tag.ts","webpack:///src/lit-element.ts","webpack:///./node_modules/@polymer/iron-flex-layout/iron-flex-layout.js","webpack:///./node_modules/@polymer/paper-styles/default-theme.js","webpack:///../src/lib/default-template-processor.ts","webpack:///src/lit-html.ts","webpack:///src/mwc-button-base.ts","webpack:///src/mwc-button-css.ts","webpack:///src/mwc-button.ts","webpack:///./node_modules/@polymer/iron-image/iron-image.js","webpack:///./node_modules/@polymer/paper-styles/element-styles/paper-material-styles.js","webpack:///./node_modules/@polymer/paper-card/paper-card.js","webpack:///../src/lib/parts.ts","webpack:///../src/lib/template.ts","webpack:///./node_modules/@polymer/iron-icon/iron-icon.js","webpack:///./node_modules/@polymer/paper-icon-button/paper-icon-button.js","webpack:///./node_modules/@polymer/iron-behaviors/iron-control-state.js","webpack:///./node_modules/@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.js","webpack:///../src/lib/dom.ts","webpack:///./node_modules/@polymer/paper-styles/typography.js","webpack:///./node_modules/@polymer/paper-styles/shadow.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@polymer/iron-a11y-announcer/iron-a11y-announcer.js","webpack:///./node_modules/@polymer/iron-input/iron-input.js","webpack:///./node_modules/@polymer/paper-input/paper-input-addon-behavior.js","webpack:///./node_modules/@polymer/paper-input/paper-input-char-counter.js","webpack:///./node_modules/@polymer/paper-input/paper-input-container.js","webpack:///./node_modules/@polymer/paper-input/paper-input-error.js","webpack:///./node_modules/@polymer/paper-input/paper-input-behavior.js","webpack:///./node_modules/@polymer/paper-input/paper-input.js","webpack:///../src/lib/template-result.ts","webpack:///../src/lib/template-factory.ts","webpack:///./node_modules/@polymer/iron-behaviors/iron-button-state.js","webpack:///../src/directives/class-map.ts","webpack:///./node_modules/@polymer/app-layout/app-toolbar/app-toolbar.js","webpack:///../src/lib/directive.ts","webpack:///../src/lib/part.ts","webpack:///../src/lib/template-instance.ts","webpack:///../src/lib/render.ts","webpack:///./node_modules/@polymer/iron-validatable-behavior/iron-validatable-behavior.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-focusables-helper.js","webpack:///events.ts","webpack:///ponyfill.ts","webpack:///util.ts","webpack:///constants.ts","webpack:///foundation.ts","webpack:///src/mwc-ripple-global-css.ts","webpack:///src/ripple-directive.ts","webpack:///./node_modules/@polymer/iron-fit-behavior/iron-fit-behavior.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-overlay-backdrop.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-overlay-manager.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-scroll-manager.js","webpack:///./node_modules/@polymer/iron-overlay-behavior/iron-overlay-behavior.js","webpack:///./node_modules/@polymer/neon-animation/neon-animatable-behavior.js","webpack:///./node_modules/@polymer/neon-animation/neon-animation-runner-behavior.js","webpack:///./node_modules/@polymer/paper-behaviors/paper-inky-focus-behavior.js","webpack:///./node_modules/@polymer/paper-behaviors/paper-ripple-behavior.js","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner-lite.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js","webpack:///./node_modules/@polymer/iron-form-element-behavior/iron-form-element-behavior.js","webpack:///./node_modules/@polymer/iron-selector/iron-multi-selectable.js","webpack:///./node_modules/@polymer/iron-menu-behavior/iron-menu-behavior.js","webpack:///./node_modules/@polymer/iron-selector/iron-selection.js","webpack:///./node_modules/@polymer/iron-selector/iron-selectable.js","webpack:///./node_modules/@polymer/paper-ripple/paper-ripple.js","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner-styles.js","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner-behavior.js","webpack:///./node_modules/@polymer/app-layout/app-header-layout/app-header-layout.js","webpack:///./node_modules/@polymer/app-layout/app-layout-behavior/app-layout-behavior.js","webpack:///./node_modules/@polymer/paper-tabs/paper-tab.js","webpack:///./node_modules/@polymer/iron-menu-behavior/iron-menubar-behavior.js","webpack:///./node_modules/@polymer/paper-radio-button/paper-radio-button.js","webpack:///./node_modules/@polymer/iron-dropdown/iron-dropdown.js","webpack:///./node_modules/@polymer/neon-animation/neon-animation-behavior.js","webpack:///./node_modules/@polymer/neon-animation/animations/fade-in-animation.js","webpack:///./node_modules/@polymer/neon-animation/animations/fade-out-animation.js","webpack:///./node_modules/@polymer/paper-menu-button/paper-menu-button-animations.js","webpack:///./node_modules/@polymer/paper-menu-button/paper-menu-button.js","webpack:///./node_modules/@polymer/iron-scroll-target-behavior/iron-scroll-target-behavior.js","webpack:///./node_modules/@polymer/app-layout/helpers/helpers.js","webpack:///./node_modules/@polymer/app-layout/app-scroll-effects/app-scroll-effects-behavior.js","webpack:///./node_modules/@polymer/app-layout/app-header/app-header.js","webpack:///./node_modules/@polymer/iron-checked-element-behavior/iron-checked-element-behavior.js","webpack:///./node_modules/@polymer/paper-behaviors/paper-checked-element-behavior.js","webpack:///./node_modules/@polymer/paper-styles/paper-styles.js","webpack:///../node_modules/babel-plugin-transform-async-to-promises/helpers.js","webpack:///../lib/errors.ts","webpack:///../lib/messages.ts","webpack:///../lib/socket.ts","webpack:///../lib/connection.ts","webpack:///../lib/auth.ts","webpack:///../lib/store.ts","webpack:///../lib/collection.ts","webpack:///./node_modules/@polymer/paper-spinner/paper-spinner.js","webpack:///./node_modules/@polymer/paper-checkbox/paper-checkbox.js","webpack:///./node_modules/@polymer/paper-radio-group/paper-radio-group.js","webpack:///./node_modules/fuse.js/dist/fuse.js","webpack:///../src/directives/repeat.ts","webpack:///./node_modules/@polymer/paper-tabs/paper-tabs-icons.js","webpack:///./node_modules/@polymer/paper-tabs/paper-tabs.js"],"names":["walkerNodeFilter","removeNodesFromTemplate","template","nodesToRemove","content","element","parts","walker","document","createTreeWalker","partIndex","modify_template_nextActiveIndexInTemplateParts","part","nodeIndex","removeCount","nodesToRemoveInTemplate","currentRemovingNode","nextNode","node","currentNode","previousSibling","has","push","undefined","index","forEach","n","parentNode","removeChild","countNodes","count","nodeType","i","arguments","length","Object","lib_template","getTemplateCacheKey","type","scopeName","concat","compatibleShadyCSSVersion","window","ShadyCSS","prepareTemplateDom","console","warn","shady_render_shadyTemplateFactory","result","cacheKey","templateCache","template_factory","get","stringsArray","WeakMap","keyString","Map","set","strings","key","join","getTemplateElement","TEMPLATE_TYPES","shadyRenderSet","Set","shady_render_prepareTemplateStyles","renderedDOM","add","templateElement","createElement","styles","querySelectorAll","condensedStyle","_style","textContent","templates","Array","from","s","shady_render_removeStylesFromLitTemplates","refNode","insertCount","walkerIndex","insertBefore","appendChild","insertNodeIntoTemplate","firstChild","prepareTemplateStyles","style","querySelector","nativeShadow","cloneNode","removes","JSCompiler_renameProperty","prop","_obj","defaultConverter","toAttribute","value","Boolean","JSON","stringify","fromAttribute","Number","parse","notEqual","old","defaultPropertyDeclaration","attribute","String","converter","reflect","hasChanged","microtaskPromise","Promise","resolve","UpdatingElement","_HTMLElement","_this","_classCallCheck","this","_possibleConstructorReturn","_getPrototypeOf","call","_updateState","_instanceProperties","_updatePromise","_hasConnectedResolver","_changedProperties","_reflectingProperties","initialize","_inherits","_wrapNativeSuper","HTMLElement","_this6","hasOwnProperty","_classProperties","superProperties","getPrototypeOf","v","k","name","options","_ensureClassProperties","noAccessor","prototype","updating_element_typeof","Symbol","defineProperty","oldValue","_requestUpdate","configurable","enumerable","superCtor","finalize","_attributeToPropertyMap","props","properties","propKeys","_toConsumableArray","getOwnPropertyNames","getOwnPropertySymbols","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","p","createProperty","err","toLowerCase","_this7","attributes","attr","_attributeNameForProperty","_saveInstanceProperties","_this2","constructor","_v","_this3","_attributeToProperty","ctor","attrValue","_propertyValueToAttribute","removeAttribute","setAttribute","propName","_propertyValueFromAttribute","shouldRequestUpdate","_valueHasChanged","_hasRequestedUpdate","_enqueueUpdate","updateComplete","reject","previousUpdatePromise","_this4","regeneratorRuntime","async","_context","prev","res","rej","awrap","t0","_hasConnected","performUpdate","t1","stop","_applyInstanceProperties","shouldUpdate","changedProperties","update","e","_markUpdated","firstUpdated","updated","_this5","size","_propertyToAttribute","_getUpdateComplete","customElement","tagName","classOrDescriptor","clazz","customElements","define","legacyCustomElement","descriptor","kind","elements","finisher","standardCustomElement","standardProperty","placement","initializer","assign","legacyProperty","proto","property","protoOrDescriptor","query","selector","renderRoot","legacyQuery","standardQuery","supportsAdoptingStyleSheets","Document","CSSStyleSheet","constructionToken","CSSResult","cssText","safeToken","css_tag_classCallCheck","Error","_styleSheet","replaceSync","css","_len","values","_key","reduce","acc","idx","textFromCSSResult","flattenStyles","flat","Infinity","arrayFlat","isArray","lit_element_LitElement","_UpdatingElement","LitElement","lit_element_classCallCheck","lit_element_possibleConstructorReturn","lit_element_getPrototypeOf","apply","lit_element_inherits","_get","_styles","_getUniqueStyles","userStyles","reduceRight","unshift","createRenderRoot","ShadowRoot","adoptStyles","attachShadow","mode","adoptedStyleSheets","map","styleSheet","_needsShimAdoptedStyleSheets","ScopingShim","prepareAdoptedCssText","localName","hasUpdated","styleElement","templateResult","render","lit_html","eventContext","container","_typeof","hasRendered","lib_render","needsScoping","host","firstScopeRender","renderContainer","createDocumentFragment","templateFactory","template_instance","dom","html","_templateObject","head","defaultTemplateProcessor","DefaultTemplateProcessor","prefix","slice","__webpack_require__","d","__webpack_exports__","lit_html_html","directive","template_result","mwc_button_base_ButtonBase","_LitElement","ButtonBase","raised","unelevated","outlined","dense","disabled","trailingIcon","icon","label","lit_element","delegatesFocus","buttonElement","_ripple","ripple","handleFocus","focus","_ripple2","handleBlur","blur","classes","mdc-button--raised","mdc-button--unelevated","mdc-button--outlined","mdc-button--dense","mdcButtonIcon","buttonRipple","ripple_directive","unbounded","_templateObject2","class_map","tslib_es6","mwc_button_css_templateObject","Button","_ButtonBase","mwc_button_classCallCheck","mwc_button_possibleConstructorReturn","mwc_button_getPrototypeOf","mwc_button_inherits","Polymer","_template","is","src","alt","crossorigin","preventLoad","sizing","reflectToAttribute","position","preload","placeholder","observer","fade","loaded","notify","readOnly","loading","error","width","height","observers","created","_resolvedSrc","_imgOnLoad","$","img","_resolveSrc","_setLoading","_setLoaded","_setError","_imgOnError","sizedImgDiv","backgroundImage","_computePlaceholderHidden","_computePlaceholderClassName","_computeImgDivHidden","_computeImgDivARIAHidden","_computeImgDivARIALabel","replace","split","pop","_computeImgHidden","_widthChanged","isNaN","_heightChanged","_loadStateObserver","newResolvedSrc","_placeholderChanged","_transformChanged","sizedImgDivStyle","placeholderStyle","backgroundSize","backgroundPosition","backgroundRepeat","testSrc","resolved","resolveUrl","baseURIAnchor","href","location","origin","protocol","paper_material_styles_templateObject","paper_card_templateObject","heading","image","preloadImage","fadeImage","placeholderImage","elevation","animatedShadow","animated","computed","_isHidden","_headingChanged","currentHeading","getAttribute","currentLabel","_computeHeadingClass","_computeAnimated","isPrimitive","isIterable","AttributeCommitter","dirty","_createPart","_createClass","AttributePart","l","text","t","_getValue","committer","_part_js__WEBPACK_IMPORTED_MODULE_2__","_directive_js__WEBPACK_IMPORTED_MODULE_0__","commit","NodePart","__pendingValue","startNode","_template_js__WEBPACK_IMPORTED_MODULE_5__","endNode","ref","nextSibling","__insert","__commitText","_template_result_js__WEBPACK_IMPORTED_MODULE_4__","__commitTemplateResult","Node","__commitNode","__commitIterable","clear","valueAsString","data","createTextNode","_template_instance_js__WEBPACK_IMPORTED_MODULE_3__","instance","processor","fragment","_clone","itemPart","itemParts","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","item","appendIntoPart","insertAfterPart","setValue","_dom_js__WEBPACK_IMPORTED_MODULE_1__","BooleanAttributePart","PropertyCommitter","_AttributeCommitter","single","PropertyPart","_AttributePart","eventOptionsSupported","capture","addEventListener","removeEventListener","_e","EventPart","eventName","__boundHandleEvent","handleEvent","newListener","oldListener","shouldRemoveListener","once","passive","shouldAddListener","__options","getOptions","event","o","marker","Math","random","nodeMarker","markerRegex","RegExp","boundAttributeSuffix","Template","stack","lastPartIndex","hasAttributes","_length","endsWith","stringForPart","lastAttributeNameRegex","exec","attributeLookupName","attributeValue","statics","indexOf","parent","_strings","lastIndex","_i","insert","createMarker","match","_parent","_i2","_i3","_nodesToRemove","str","suffix","isTemplatePartActive","createComment","theme","_meta","Base","create","_DEFAULT_ICONSET","_iconChanged","_iconName","_iconsetName","_updateIcon","_srcChanged","_usesIconset","_img","root","_iconset","removeIcon","byKey","applyIcon","unlisten","listen","draggable","hostAttributes","role","tabindex","behaviors","PaperInkyFocusBehavior","registered","_altChanged","newValue","IronControlState","focused","_oldTabIndex","_boundFocusBlurHandler","Function","_focusBlurHandler","bind","ready","_setFocused","_disabledChanged","pointerEvents","tabIndex","_changedControlState","_controlStateChanged","IronA11yKeysBehavior","KEY_IDENTIFIER","U+0008","U+0009","U+001B","U+0020","U+007F","KEY_CODE","8","9","13","27","33","34","35","36","32","37","38","39","40","46","106","MODIFIER_KEYS","shift","ctrl","meta","KEY_CHAR","IDENT_CHAR","ARROW_KEY","SPACE_KEY","ESC_KEY","transformKey","noSpecialChars","validKey","lKey","test","normalizedKeyForEvent","keyEvent","detail","keyIdent","keyIdentifier","parseInt","fromCharCode","keyCode","transformKeyCode","keyComboMatchesEvent","keyCombo","hasModifiers","shiftKey","ctrlKey","altKey","metaKey","parseEventString","eventString","trim","keyComboString","combo","parsedKeyCombo","keyComboPart","eventParts","keyName","parseKeyComboString","keyEventTarget","stopKeyboardEventPropagation","_boundKeyHandlers","_imperativeKeyBindings","keyBindings","_prepKeyBindings","attached","_listenKeyEventListeners","detached","_unlistenKeyEventListeners","addOwnKeyBinding","handlerName","_resetKeyEventListeners","removeOwnKeyBindings","keyboardEventMatchesKeys","keyCombos","_collectKeyBindings","behavior","_keyBindings","_addKeyBinding","sort","kb1","kb2","b1","isAttached","keys","boundKeyHandler","_onKeyBindingEvent","keyHandlerTuple","stopPropagation","defaultPrevented","_triggerKeyHandler","keyboardEvent","CustomEvent","cancelable","preventDefault","isCEPolyfill","reparentNodes","removeNodes","polyfillWrapFlushCallback","start","end","before","extendStatics","b","setPrototypeOf","__proto__","__extends","__","__assign","__decorate","decorators","target","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","IronA11yAnnouncer","_text","body","_onIronAnnounce","announce","requestAvailability","iron_input_templateObject","IronValidatableBehavior","bindValue","allowedPattern","autoValidate","_inputElement","listeners","input","keypress","_previousValidInput","_patternAlreadyChecked","_observer","observeNodes","info","_initSlottedInput","unobserveNodes","inputElement","getEffectiveChildren","fire","_patternRegExp","pattern","_bindValueChanged","validate","_onInput","_checkPatternValidity","_announceInvalidCharacter","_isPrintable","anyNonPrintable","mozNonPrintable","charCode","_onKeypress","regexp","thisChar","invalid","valid","checkValidity","required","hasValidator","message","_computeValue","PaperInputAddonBehavior","state","paper_input_char_counter_templateObject","_charCounterStr","counter","toString","hasAttribute","paper_input_container_templateObject","noLabelFloat","alwaysFloatLabel","attrForValue","_addons","_inputHasContent","_inputSelector","_boundOnFocus","_onFocus","_boundOnBlur","_onBlur","_boundOnInput","_boundValueChanged","_onValueChanged","addon-attached","iron-input-validate","_valueChangedEvent","_propertyForValue","dashToCamelCase","_inputElementValue","__isFirstValueUpdate","_handleValueAndAutoValidate","_handleValue","_onAddonAttached","updateAddons","_onIronInputValidate","_invalidChanged","addon","_computeInputContentClass","cls","labelAndInputContainer","_computeUnderlineClass","_computeAddOnContentClass","paper_input_error_templateObject","_setInvalid","PaperInputHelper","PaperInputBehaviorImpl","list","errorMessage","charCounter","validator","autocomplete","autofocus","inputmode","minlength","maxlength","min","max","step","readonly","autocapitalize","autocorrect","autosave","results","accept","multiple","_ariaDescribedBy","_ariaLabelledBy","_inputId","shift+tab:keydown","_generateInputId","$$","_focusableElement","_typesThatHaveText","_updateAriaLabelledBy","PolymerElement","_appendStringWithSpace","more","rootTarget","id","NextAddonID","_shiftTabPressed","_onShiftTabDown","oldTabIndex","_handleAutoValidate","updateValueAndPreserveCaret","selectionStart","selectionEnd","_computeAlwaysFloatLabel","labelledBy","NextLabelID","NextInputID","_onChange","shadowRoot","sourceEvent","bubbles","_autofocusChanged","activeElement","documentElement","PaperInputBehavior","paper_input_templateObject","IronFormElementBehavior","iron-input-ready","_onIronInputReady","nativeInput","commentMarker","_template_js__WEBPACK_IMPORTED_MODULE_1__","TemplateResult","isCommentBinding","commentOpen","lastIndexOf","attributeMatch","substr","innerHTML","getHTML","SVGTemplateResult","_TemplateResult","svgElement","_dom_js__WEBPACK_IMPORTED_MODULE_0__","templateCaches","_template_js__WEBPACK_IMPORTED_MODULE_0__","IronButtonStateImpl","IronButtonState","_polymer_iron_a11y_keys_behavior_iron_a11y_keys_behavior_js__WEBPACK_IMPORTED_MODULE_2__","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_3__","pressed","toggles","active","pointerDown","receivedFocusFromKeyboard","ariaActiveAttribute","down","up","tap","enter:keydown","space:keydown","space:keyup","_mouseEventRe","_tapHandler","_userActivate","_focusChanged","_detectKeyboardFocus","_setPressed","_setReceivedFocusFromKeyboard","_downHandler","_setPointerDown","_upHandler","_spaceKeyDownHandler","localTarget","isLightDescendant","stopImmediatePropagation","_spaceKeyUpHandler","_asyncClick","click","_pressedChanged","_changedButtonState","_ariaActiveAttributeChanged","_activeChanged","_buttonStateChanged","classMap","_lit_html_js__WEBPACK_IMPORTED_MODULE_0__","classMapCache","classInfo","className","classList","oldInfo","remove","_name","isDirective","directives","f","noChange","nothing","TemplateInstance","__parts","_part","importNode","nodeName","_part2","handleTextExpression","insertAfterNode","_this$__parts","handleAttributeExpressions","adoptNode","upgrade","_parts_js__WEBPACK_IMPORTED_MODULE_1__","_template_factory_js__WEBPACK_IMPORTED_MODULE_2__","appendInto","_polymer_iron_meta_iron_meta_js__WEBPACK_IMPORTED_MODULE_1__","IronValidatableBehaviorMeta","IronMeta","_validator","_getValidity","module","exports","webpackPolyfill","deprecate","paths","children","IronFocusablesHelper","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_1__","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getTabbableNodes","_collectTabbableNodes","_sortByTabIndex","isFocusable","isTabbable","_isVisible","_normalizedTabIndex","ELEMENT_NODE","needsSort","getDistributedNodes","visibility","display","getComputedStyle","tabbables","len","pivot","ceil","left","right","_mergeSortByTabIndex","_hasLowerTabOrder","a","ati","bti","supportsPassive_","applyPassive","globalObj","forceRefresh","isSupported_1","supportsCssVariables_","cssClasses","BG_FOCUSED","FG_ACTIVATION","FG_DEACTIVATION","ROOT","UNBOUNDED","VAR_FG_SCALE","VAR_FG_SIZE","VAR_FG_TRANSLATE_END","VAR_FG_TRANSLATE_START","VAR_LEFT","VAR_TOP","numbers","DEACTIVATION_TIMEOUT_MS","FG_DEACTIVATION_MS","INITIAL_ORIGIN_SCALE","PADDING","TAP_DELAY_MS","ACTIVATION_EVENT_TYPES","POINTER_DEACTIVATION_EVENT_TYPES","activatedTargets","ripple_foundation","_super","MDCRippleFoundation","adapter","defaultAdapter","activationAnimationHasEnded_","activationTimer_","fgDeactivationRemovalTimer_","fgScale_","frame_","initialSize_","layoutFrame_","maxRadius_","unboundedCoords_","top","activationState_","defaultActivationState_","activationTimerCallback_","runDeactivationUXLogicIfReady_","activateHandler_","activate_","deactivateHandler_","deactivate_","focusHandler_","blurHandler_","resizeHandler_","layout","addClass","browserSupportsCssVars","computeBoundingRect","bottom","containsEventTarget","deregisterDocumentInteractionHandler","deregisterInteractionHandler","deregisterResizeHandler","getWindowPageOffset","x","y","isSurfaceActive","isSurfaceDisabled","isUnbounded","registerDocumentInteractionHandler","registerInteractionHandler","registerResizeHandler","removeClass","updateCssVariable","init","supportsPressRipple","supportsPressRipple_","registerRootHandlers_","_a","ROOT_1","UNBOUNDED_1","requestAnimationFrame","adapter_","layoutInternal_","destroy","clearTimeout","ROOT_2","UNBOUNDED_2","removeCssVars_","deregisterRootHandlers_","deregisterDeactivationHandlers_","activate","evt","deactivate","cancelAnimationFrame","setUnbounded","activationEvent","hasDeactivationUXRun","isActivated","isProgrammatic","wasActivatedByPointer","wasElementMadeActive","evtType","registerDeactivationHandlers_","rippleStrings","activationState","previousActivationEvent","previousActivationEvent_","some","resetActivationState_","checkElementMadeActive_","animateActivation_","_b","translateStart","translateEnd","_c","getFgTranslationCoordinates_","startPoint","endPoint","rmBoundedActivationClasses_","setTimeout","pageOffset","clientRect","normalizedX","normalizedY","documentX","documentY","touchEvent","changedTouches","pageX","pageY","mouseEvent","getNormalizedEventCoords","animateDeactivation_","maxDim","sqrt","pow","floor","updateLayoutCssVars_","round","foundation","supportsCssVariablesWin","windowObj","CSS","supportsCssVars","supports","explicitlySupportsCssVars","weAreFeatureDetectingSafari10plus","computedStyle","hasPseudoVarBug","borderTopStyle","detectEdgePseudoVarBug","supportsCssVariables","isSafari","navigator","userAgent","didApplyRippleStyle","ripple_directive_rippleNode","ripple_directive_applyRippleStyle","surfaceNode","interactionNode","getRootNode","rippleFoundation","contains","handler","varName","setProperty","getBoundingClientRect","pageXOffset","pageYOffset","rippleInteractionNodes","existingInteractionNode","IronFitBehavior","sizingTarget","fitInto","noOverlap","positionTarget","horizontalAlign","verticalAlign","dynamicAlign","horizontalOffset","verticalOffset","autoFitOnAttach","_fitInfo","_fitWidth","innerWidth","_fitHeight","innerHeight","_fitLeft","_fitTop","_defaultPositionTarget","DOCUMENT_FRAGMENT_NODE","_localeHorizontalAlign","_isRTL","__shouldPosition","direction","fit","ShadyDOM","flush","__deferredFit","constrain","center","_discoverInfo","sizer","inlineStyle","sizerInlineStyle","maxWidth","maxHeight","boxSizing","positionedBy","vertically","horizontally","sizedBy","minWidth","minHeight","margin","marginTop","marginRight","marginBottom","marginLeft","resetFit","refit","scrollLeft","scrollTop","rect","positionRect","__getNormalizedRect","fitRect","__getPosition","__sizeDimension","_sizeDimension","extent","flip","offset","offsetExtent","sizingOffset","__getOffscreenArea","verticalCrop","horizontalCrop","abs","hAlign","vAlign","sizeNoMargins","positions","copy","candidate","vAlignOk","hAlignOk","alignOk","offscreenArea","diff","opened","transitionend","__openedRaf","_openedChanged","prepare","open","close","complete","_onTransitionend","cs","transitionDuration","opacity","toggleClass","IronOverlayManagerClass","_overlays","_minimumZ","_backdropElement","gestures","_onCaptureClick","_onCaptureFocus","_onCaptureKeyDown","backdropElement","deepActiveElement","_bringOverlayAtIndexToFront","overlay","lastI","currentOverlay","_shouldBeBehindOverlay","minimumZ","currentOverlayZ","_getZ","_applyOverlayZ","addOrRemoveOverlay","addOverlay","removeOverlay","trackBackdrop","insertionIndex","newZ","previousOverlay","splice","ensureMinimumZ","focusOverlay","current","_applyFocus","_overlayWithBackdrop","zIndex","getBackdrops","backdrops","withBackdrop","backdropZ","z","z1","_setZ","aboveZ","_overlayInPath","path","_manager","allowClickThrough","_onCaptureEsc","_onCaptureTab","overlay1","overlay2","alwaysOnTop","_boundScrollHandler","currentLockingElement","IronOverlayManager","lastTouchPosition","lastRootTarget","lastScrollableNodes","scrollEvents","pushScrollLock","_lockingElements","nodes","scrollables","lockingIndex","overflow","_getScrollableNodes","deltaX","deltaY","wheelDeltaX","wheelDeltaY","wheelDelta","axis","targetTouches","touch","_getScrollInfo","verticalScroll","scrollHeight","clientHeight","scrollWidth","clientWidth","_getScrollingNode","_shouldPreventScrolling","_lockScrollInteractions","removeScrollLock","_unlockScrollInteractions","IronOverlayBehaviorImpl","IronOverlayBehavior","canceled","noAutoFocus","noCancelOnEscKey","noCancelOnOutsideClick","closingReason","restoreFocusOnClose","scrollAction","_focusedChild","iron-resize","_focusNode","_focusableNodes","__isAnimating","__shouldRemoveTabIndex","__firstFocusableNode","__lastFocusableNode","__rafs","__restoreFocusNode","__scrollTop","__scrollLeft","__onCaptureScroll","__rootNodes","_ensureSetup","_onNodesChange","cb","_finishRenderOpened","_finishRenderClosed","toggle","_setCanceled","cancel","invalidateTabbables","_overlaySetup","outline","__deraf","__openedChanged","_canceledChanged","_withBackdropChanged","_prepareRenderOpened","_preparePositioning","_finishPositioning","_renderOpened","_renderClosed","notifyResize","transition","webkitTransition","transform","webkitTransform","deepContains","__ensureFirstLastFocusables","nodeToCheck","nodeToSet","shouldWrap","focusedNode","_onIronResize","focusableNodes","jobname","callback","rafs","__updateScrollObservers","__isValidScrollAction","__saveScrollPosition","__addScrollListeners","__removeScrollListeners","useShadow","assignedSlot","el","__restoreScrollPosition","scrollingElement","IronResizableBehavior","NeonAnimatableBehavior","animationConfig","entryAnimation","exitAnimation","_entryAnimationChanged","_exitAnimationChanged","_copyProperties","config1","config2","_cloneConfig","config","clone","isClone","_getAnimationConfigRecursive","allConfigs","thisConfig","_warn","_logf","animatable","cachedConfig","getAnimationConfig","NeonAnimationRunnerBehavior","_configureAnimations","configs","resultsToPlay","neonAnimation","isNeonAnimation","configure","timeline","play","animation","_shouldComplete","activeEntries","finished","playState","_complete","playAnimation","cookie","_active","onfinish","cancelAnimation","entries","j","PaperInkyFocusBehaviorImpl","_polymer_iron_behaviors_iron_button_state_js__WEBPACK_IMPORTED_MODULE_1__","_polymer_iron_behaviors_iron_control_state_js__WEBPACK_IMPORTED_MODULE_2__","_paper_ripple_behavior_js__WEBPACK_IMPORTED_MODULE_3__","_focusedChanged","ensureRipple","hasRipple","holdDown","_createRipple","PaperRippleBehavior","_polymer_iron_behaviors_iron_button_state_js__WEBPACK_IMPORTED_MODULE_2__","noink","_rippleContainer","optTriggeringEvent","rippleContainer","domContainer","uiDownAction","getRipple","_noinkChanged","PaperSpinnerBehavior","simpleIsEqual","newArgs","lastArgs","every","newArg","resultFn","isEqual","lastThis","lastResult","calledOnce","_polymer_polymer_lib_utils_settings_js__WEBPACK_IMPORTED_MODULE_2__","ORPHANS","_parentResizable","_notifyingDescendant","iron-request-resize-notifications","_interestedResizables","_boundNotifyResize","_boundOnDescendantIronResize","_onDescendantIronResize","_requestResizeNotifications","stopResizeNotificationsFor","resizable","resizerShouldNotify","_notifyDescendant","_fireResize","assignParentResizable","parentResizable","_subscribeIronResize","_unsubscribeIronResize","_onIronRequestResizeNotifications","_parentResizableChanged","descendant","readyState","readystatechanged","_findParent","orphan","IronMultiSelectableBehaviorImpl","multi","selectedValues","selectedItems","select","_toggleSelected","selected","multiChanged","_selection","_updateSelected","_shouldUpdateSelection","_updateAttrForSelected","selectedItem","_indexToValue","filter","unfilteredValue","IronSelectableBehavior","_selectMulti","_selectSelected","_valuesToItems","setItemSelected","fallbackSelection","_valueToItem","_selectionChange","_setSelectedItems","_setSelectedItem","IronMultiSelectableBehavior","IronMenuBehaviorImpl","IronMenuBehavior","focusedItem","attrForItemTitle","_MODIFIER_KEYS","_SEARCH_RESET_TIMEOUT_MS","_previousTabIndex","keydown","iron-items-changed","esc","_resetTabindices","_defaultFocusAsync","cancelAsync","_setFocusedItem","firstSelectedItem","items","isSelected","_updateMultiselectable","_focusWithKeyboardEvent","cancelDebouncer","searchText","_searchText","searchLength","toLocaleLowerCase","title","debounce","_clearSearchText","_focusPrevious","curFocusIndex","owner","getOwnerRoot","_focusNext","_applySelection","_focusedItemChanged","_onIronItemsChanged","addedNodes","_onUpKey","_onDownKey","_onEscKey","_onKeydown","_activateHandler","IronSelection","selectCallback","selection","excludes","attrForSelected","activateEvent","selectable","selectedClass","selectedAttribute","_excludedLocalNames","dom-bind","dom-if","dom-repeat","_bindFilterItem","_filterItem","_observeItems","_addListener","_removeListener","selectPrevious","_valueToIndex","selectNext","selectIndex","forceSynchronousItemUpdate","_updateItems","_checkFallback","_activateEventChanged","queryDistributedElements","_setItems","_valueForItem","propValue","toggleAttribute","mutation","_itemActivate","Utility","distance","x1","y1","x2","y2","xDelta","yDelta","now","performance","Date","ElementMetrics","boundingRect","Ripple","color","wave","waveContainer","backgroundColor","resetInteractionState","furthestCornerDistanceFrom","topLeft","topRight","bottomLeft","bottomRight","MAX_RADIUS","recenters","mouseDownElapsed","elapsed","mouseDownStart","mouseUpStart","mouseUpElapsed","mouseDownElapsedSeconds","mouseUpElapsedSeconds","mouseInteractionSeconds","initialOpacity","opacityDecayVelocity","radius","width2","containerMetrics","height2","waveRadius","duration","timeNow","outerOpacity","waveOpacity","isOpacityFullyDecayed","maxRadius","isRestingAtMaxRadius","isAnimationComplete","translationFraction","xNow","xEnd","xStart","yNow","yEnd","yStart","isMouseDown","slideDistance","draw","scale","dx","dy","downAction","xCenter","yCenter","upAction","ripples","animating","_animating","_boundAnimate","animate","shouldKeepAnimating","simulatedRipple","addRipple","uiUpAction","onAnimationComplete","background","waves","_setAnimating","removeRipple","rippleIndex","animateRipple","_onEnterKeydown","_onSpaceKeydown","_onSpaceKeyup","_holdDownChanged","newVal","oldVal","MDCFoundation","$_documentContainer","__coolingDown","__computeContainerClasses","coolingDown","__activeChanged","__setAriaHidden","__altChanged","hidden","__reset","AppLayoutBehavior","hasScrollingRegion","header","headerSlot","_updateLayoutStates","wrapper","scrollTarget","contentContainer","ownerDocument","headerHeight","offsetHeight","rightOffset","containerStyle","fixed","condenses","paddingTop","_polymer_iron_resizable_behavior_iron_resizable_behavior_js__WEBPACK_IMPORTED_MODULE_1__","_polymer_polymer_lib_legacy_polymer_dom_js__WEBPACK_IMPORTED_MODULE_2__","_polymer_polymer_lib_utils_async_js__WEBPACK_IMPORTED_MODULE_3__","_polymer_polymer_lib_utils_debounce_js__WEBPACK_IMPORTED_MODULE_4__","_polymer_polymer_lib_utils_flush_js__WEBPACK_IMPORTED_MODULE_5__","app-reset-layout","_appResetLayoutHandler","resetLayout","_layoutDebouncer","Debouncer","animationFrame","enqueueDebouncer","_notifyDescendantResize","_notifyLayoutChanged","self","link","_updateNoink","_parentNoink","_onTap","anchor","queryEffectiveChildren","IronMenubarBehaviorImpl","IronMenubarBehavior","_iron_menu_behavior_js__WEBPACK_IMPORTED_MODULE_1__","_onLeftKey","_onRightKey","PaperCheckedElementBehavior","aria-checked","radioContainer","afterNextRender","getComputedStyleValue","parseFloat","defaultInkSize","updateStyles","--paper-radio-button-ink-size","openAnimationConfig","closeAnimationConfig","focusTarget","noAnimations","allowOutsideScroll","neon-animation-finish","containedElement","_readied","_updateAnimationConfig","contentWrapper","_onNeonAnimationFinish","animationNode","animations","_updateOverlayPosition","_allowOutsideScrollChanged","NeonAnimationBehavior","animationTiming","easing","fill","timingFromConfig","timing","setPrefixedProperty","prefixes","transformOrigin","_effect","KeyframeEffect","ANIMATION_CUBIC_BEZIER","MAX_ANIMATION_TIME_MS","PaperMenuButton","paper_menu_button_templateObject","ignoreSelect","closeOnActivate","delay","_dropdownContent","aria-haspopup","iron-activate","iron-select","contentElement","dropdown","_onIronSelect","_onIronActivate","oldOpened","__onIronOverlayCanceled","uiEvent","trigger","IronScrollTargetBehavior","_defaultScrollTarget","_shouldHaveListener","_scrollTargetChanged","_oldScrollTarget","_toggleScrollListener","_doc","domHost","_isValidScrollTarget","_scrollHandler","_scrollTop","_scrollLeft","scrollTo","scroll","leftOrOptions","_scrollTargetWidth","offsetWidth","_scrollTargetHeight","yes","eventTarget","toggleScrollListener","_scrollEffects","AppScrollEffectsBehavior","effects","effectsConfig","threshold","thresholdTriggered","_updateScrollState","isOnScreen","isContentBelow","_effectsRunFn","_effects","_clampedScrollTop","_scrollStateChanged","_tearDownEffects","createEffect","effectName","effectConfig","effectDef","ReferenceError","_getUndefinedMsg","_boundEffect","setUp","_effectsChanged","_setUpEffect","_layoutIfDirty","startsAt","endsAt","deltaS","noop","runFn","run","progress","tearDown","_runEffects","_setThresholdTriggered","_getDOMRef","reveals","shadow","_height","_dHeight","_stickyElTop","_stickyElRef","_top","_progress","_wasScrollingDown","_initScrollTop","_initTimestamp","_lastTimestamp","_lastScrollTop","_maxHeaderTop","_stickyEl","slot","_configChanged","firstSetup","currentDisabled","_mayMove","offsetTop","forceUpdate","lastTop","maxHeaderTop","dScrollTop","absDScrollTop","isScrollingDown","_clamp","scrollVelocity","_transformHeader","willCondense","translate3d","_ensureBgContainers","_bgContainer","_bgRear","_bgFront","getScrollState","IronCheckedElementBehaviorImpl","checked","_hasIronCheckedElementBehavior","_value","_requiredChanged","_checkedChanged","_valueChanged","IronCheckedElementBehavior","PaperCheckedElementBehaviorImpl","_catch","recover","then","asyncIterator","unsubscribeEvents","subscription","const","Connection","socket","commandId","commands","eventListeners","closeRequested","setSocket","oldSocket","ev","_handleMessage","_handleClose","oldCommands","subscribe","unsub","unsubscribe","fireEvent","eventType","eventData","subscribeEvents","subscribeMessage","event_type","ping","sendMessagePromise","sendMessage","_genCmdId","send","messages","success","code","setupRetry","reconnect","tries","createSocket","tokenRequest","hassUrl","clientId","hostname","formData","FormData","append","fetch","method","credentials","resp","ok","status","json","tokens","expires","genExpires","expires_in","Auth","saveTokens","_saveTokens","prototypeAccessors","wsUrl","accessToken","access_token","expired","refreshAccessToken","grant_type","refresh_token","revoke","defineProperties","getCollection","conn","fetchCollection","subscribeUpdates","unsubProm","store","setState","overwrite","currentListeners","action","args","ret","listener","out","refresh","refreshSwallow","catch","OPEN","subscriber","createCollection","onChange","checkboxSizeText","units","unitsMatches","checkboxSize","--paper-checkbox-ink-size","_computeCheckboxClass","_computeCheckmarkClass","checkboxContainer","allowEmptySelection","newItem","oldItem","_activateFocusedItem","m","toStringTag","__esModule","writable","h","maxPatternLength","u","caseSensitive","tokenSeparator","g","findAllMatches","minMatchCharLength","S","M","_","shouldSort","L","w","getFn","A","C","sortFn","I","score","O","tokenize","P","matchAllTokens","F","T","includeMatches","E","includeScore","K","verbose","J","TypeError","isCaseSensitive","setCollection","limit","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","_computeScore","_sort","_format","_analyze","record","resultMap","weight","arrayIndex","search","isMatch","output","matchedIndices","nScore","indices","log","patternAlphabet","errors","currentLocation","expectedLocation","charAt","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","repeat","createAndInsertPart","containerPart","beforePart","beforeNode","newPart","updatePart","insertPartBefore","removePart","generateMap","partListCache","keyListCache","keyFnOrTemplate","keyFn","newKeyToIndexMap","oldKeyToIndexMap","oldParts","oldKeys","newParts","newValues","newKeys","oldHead","oldTail","newHead","newTail","oldIndex","oldPart","_newPart","_oldPart","paper_tabs_templateObject","noBar","noSlide","scrollable","fitContainer","disableDrag","hideScrollButtons","alignBottom","autoselect","autoselectDelay","_holdDelay","_leftHidden","_rightHidden","_previousTab","iron-deselect","left:keyup right:keyup","_holdJob","_pendingActivationItem","_pendingActivationTimeout","_bindDelayedActivationHandler","_delayedActivationHandler","_onBlurCapture","setScrollDirection","tabsContainer","_cancelPendingActivation","_setNoinkAttribute","_removeNoinkAttribute","_computeScrollButtonClass","hideThisButton","_computeTabsContentClass","_computeSelectionBarClass","_onTabSizingChanged","_scroll","_tabChanged","_onIronDeselect","_scheduleActivation","_onArrowKeyup","_tabContainerScrollSize","ddx","_affectScroll","_down","_onLeftScrollButtonDown","_scrollToLeft","setInterval","_onRightScrollButtonDown","_scrollToRight","_onScrollButtonUp","clearInterval","tab","selectionBar","_positionBar","tabsContent","tabRect","tabOffsetLeft","_pos","_calcPercent","oldRect","moveRight","_left","_scrollToSelectedIfNeeded","tabWidth","w0","_width","_onBarTransitionEnd","cl"],"mappings":"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","file":"chunk.d4931d72592ad48ba2be.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module shady-render\n */\n\nimport {isTemplatePartActive, Template, TemplatePart} from './template.js';\n\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n * div#1 (remove) <-- start removing (removing node is div#1)\n * div\n * div#2 (remove) <-- continue removing (removing node is still div#1)\n * div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(\n template: Template, nodesToRemove: Set) {\n const {element: {content}, parts} = template;\n const walker =\n document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let part = parts[partIndex];\n let nodeIndex = -1;\n let removeCount = 0;\n const nodesToRemoveInTemplate = [];\n let currentRemovingNode: Node|null = null;\n while (walker.nextNode()) {\n nodeIndex++;\n const node = walker.currentNode as Element;\n // End removal if stepped past the removing node\n if (node.previousSibling === currentRemovingNode) {\n currentRemovingNode = null;\n }\n // A node to remove was found in the template\n if (nodesToRemove.has(node)) {\n nodesToRemoveInTemplate.push(node);\n // Track node we're removing\n if (currentRemovingNode === null) {\n currentRemovingNode = node;\n }\n }\n // When removing, increment count by which to adjust subsequent part indices\n if (currentRemovingNode !== null) {\n removeCount++;\n }\n while (part !== undefined && part.index === nodeIndex) {\n // If part is in a removed node deactivate it by setting index to -1 or\n // adjust the index as needed.\n part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n // go to the next active part.\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n part = parts[partIndex];\n }\n }\n nodesToRemoveInTemplate.forEach((n) => n.parentNode!.removeChild(n));\n}\n\nconst countNodes = (node: Node) => {\n let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n while (walker.nextNode()) {\n count++;\n }\n return count;\n};\n\nconst nextActiveIndexInTemplateParts =\n (parts: TemplatePart[], startIndex: number = -1) => {\n for (let i = startIndex + 1; i < parts.length; i++) {\n const part = parts[i];\n if (isTemplatePartActive(part)) {\n return i;\n }\n }\n return -1;\n };\n\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(\n template: Template, node: Node, refNode: Node|null = null) {\n const {element: {content}, parts} = template;\n // If there's no refNode, then put node at end of template.\n // No part indices need to be shifted in this case.\n if (refNode === null || refNode === undefined) {\n content.appendChild(node);\n return;\n }\n const walker =\n document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let insertCount = 0;\n let walkerIndex = -1;\n while (walker.nextNode()) {\n walkerIndex++;\n const walkerNode = walker.currentNode as Element;\n if (walkerNode === refNode) {\n insertCount = countNodes(node);\n refNode.parentNode!.insertBefore(node, refNode);\n }\n while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n // If we've inserted the node, simply adjust all subsequent parts\n if (insertCount > 0) {\n while (partIndex !== -1) {\n parts[partIndex].index += insertCount;\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n return;\n }\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n }\n}\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * Module to add shady DOM/shady CSS polyfill support to lit-html template\n * rendering. See the [[render]] method for details.\n *\n * @module shady-render\n * @preferred\n */\n\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport {removeNodes} from './dom.js';\nimport {insertNodeIntoTemplate, removeNodesFromTemplate} from './modify-template.js';\nimport {RenderOptions} from './render-options.js';\nimport {parts, render as litRender} from './render.js';\nimport {templateCaches} from './template-factory.js';\nimport {TemplateInstance} from './template-instance.js';\nimport {TemplateResult} from './template-result.js';\nimport {marker, Template} from './template.js';\n\nexport {html, svg, TemplateResult} from '../lit-html.js';\n\n// Get a key to lookup in `templateCaches`.\nconst getTemplateCacheKey = (type: string, scopeName: string) =>\n `${type}--${scopeName}`;\n\nlet compatibleShadyCSSVersion = true;\n\nif (typeof window.ShadyCSS === 'undefined') {\n compatibleShadyCSSVersion = false;\n} else if (typeof window.ShadyCSS.prepareTemplateDom === 'undefined') {\n console.warn(\n `Incompatible ShadyCSS version detected. ` +\n `Please update to at least @webcomponents/webcomponentsjs@2.0.2 and ` +\n `@webcomponents/shadycss@1.3.1.`);\n compatibleShadyCSSVersion = false;\n}\n\n/**\n * Template factory which scopes template DOM using ShadyCSS.\n * @param scopeName {string}\n */\nconst shadyTemplateFactory = (scopeName: string) =>\n (result: TemplateResult) => {\n const cacheKey = getTemplateCacheKey(result.type, scopeName);\n let templateCache = templateCaches.get(cacheKey);\n if (templateCache === undefined) {\n templateCache = {\n stringsArray: new WeakMap(),\n keyString: new Map()\n };\n templateCaches.set(cacheKey, templateCache);\n }\n\n let template = templateCache.stringsArray.get(result.strings);\n if (template !== undefined) {\n return template;\n }\n\n const key = result.strings.join(marker);\n template = templateCache.keyString.get(key);\n if (template === undefined) {\n const element = result.getTemplateElement();\n if (compatibleShadyCSSVersion) {\n window.ShadyCSS!.prepareTemplateDom(element, scopeName);\n }\n template = new Template(result, element);\n templateCache.keyString.set(key, template);\n }\n templateCache.stringsArray.set(result.strings, template);\n return template;\n };\n\nconst TEMPLATE_TYPES = ['html', 'svg'];\n\n/**\n * Removes all style elements from Templates for the given scopeName.\n */\nconst removeStylesFromLitTemplates = (scopeName: string) => {\n TEMPLATE_TYPES.forEach((type) => {\n const templates = templateCaches.get(getTemplateCacheKey(type, scopeName));\n if (templates !== undefined) {\n templates.keyString.forEach((template) => {\n const {element: {content}} = template;\n // IE 11 doesn't support the iterable param Set constructor\n const styles = new Set();\n Array.from(content.querySelectorAll('style')).forEach((s: Element) => {\n styles.add(s);\n });\n removeNodesFromTemplate(template, styles);\n });\n }\n });\n};\n\nconst shadyRenderSet = new Set();\n\n/**\n * For the given scope name, ensures that ShadyCSS style scoping is performed.\n * This is done just once per scope name so the fragment and template cannot\n * be modified.\n * (1) extracts styles from the rendered fragment and hands them to ShadyCSS\n * to be scoped and appended to the document\n * (2) removes style elements from all lit-html Templates for this scope name.\n *\n * Note, \n \n
    \n
    horizontal layout center alignment
    \n
    \n `;\n document.body.appendChild(template.content);\n ```\n\n2. [Custom CSS\nmixins](https://github.com/PolymerElements/iron-flex-layout/blob/master/iron-flex-layout.html).\nThe mixin stylesheet includes custom CSS mixins that can be applied inside a CSS\nrule using the `@apply` function.\n\nPlease note that the old [/deep/ layout\nclasses](https://github.com/PolymerElements/iron-flex-layout/tree/master/classes)\nare deprecated, and should not be used. To continue using layout properties\ndirectly in markup, please switch to using the new `dom-module`-based\n[layout\nclasses](https://github.com/PolymerElements/iron-flex-layout/tree/master/iron-flex-layout-classes.html).\nPlease note that the new version does not use `/deep/`, and therefore requires\nyou to import the `dom-modules` in every element that needs to use them.\n\n@group Iron Elements\n@pseudoElement iron-flex-layout\n@demo demo/index.html\n*/\nconst template = html`\n\n \n\n\n \n`;\n\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n\nvar style = document.createElement('style');\nstyle.textContent = '[hidden] { display: none !important; }';\ndocument.head.appendChild(style);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/* Taken from\n * https://www.google.com/design/spec/style/color.html#color-ui-color-application\n */\nimport '@polymer/polymer/polymer-legacy.js';\nimport './color.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {Part} from './part.js';\nimport {AttributeCommitter, BooleanAttributePart, EventPart, NodePart, PropertyCommitter} from './parts.js';\nimport {RenderOptions} from './render-options.js';\nimport {TemplateProcessor} from './template-processor.js';\n\n/**\n * Creates Parts when a template is instantiated.\n */\nexport class DefaultTemplateProcessor implements TemplateProcessor {\n /**\n * Create parts for an attribute-position binding, given the event, attribute\n * name, and string literals.\n *\n * @param element The element containing the binding\n * @param name The attribute name\n * @param strings The string literals. There are always at least two strings,\n * event for fully-controlled bindings with a single expression.\n */\n handleAttributeExpressions(\n element: Element, name: string, strings: string[],\n options: RenderOptions): ReadonlyArray {\n const prefix = name[0];\n if (prefix === '.') {\n const committer = new PropertyCommitter(element, name.slice(1), strings);\n return committer.parts;\n }\n if (prefix === '@') {\n return [new EventPart(element, name.slice(1), options.eventContext)];\n }\n if (prefix === '?') {\n return [new BooleanAttributePart(element, name.slice(1), strings)];\n }\n const committer = new AttributeCommitter(element, name, strings);\n return committer.parts;\n }\n /**\n * Create parts for a text-position binding.\n * @param templateFactory\n */\n handleTextExpression(options: RenderOptions) {\n return new NodePart(options);\n }\n}\n\nexport const defaultTemplateProcessor = new DefaultTemplateProcessor();\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n *\n * Main lit-html module.\n *\n * Main exports:\n *\n * - [[html]]\n * - [[svg]]\n * - [[render]]\n *\n * @module lit-html\n * @preferred\n */\n\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport {defaultTemplateProcessor} from './lib/default-template-processor.js';\nimport {SVGTemplateResult, TemplateResult} from './lib/template-result.js';\n\nexport {DefaultTemplateProcessor, defaultTemplateProcessor} from './lib/default-template-processor.js';\nexport {directive, DirectiveFn, isDirective} from './lib/directive.js';\n// TODO(justinfagnani): remove line when we get NodePart moving methods\nexport {removeNodes, reparentNodes} from './lib/dom.js';\nexport {noChange, nothing, Part} from './lib/part.js';\nexport {AttributeCommitter, AttributePart, BooleanAttributePart, EventPart, isIterable, isPrimitive, NodePart, PropertyCommitter, PropertyPart} from './lib/parts.js';\nexport {RenderOptions} from './lib/render-options.js';\nexport {parts, render} from './lib/render.js';\nexport {templateCaches, templateFactory} from './lib/template-factory.js';\nexport {TemplateInstance} from './lib/template-instance.js';\nexport {TemplateProcessor} from './lib/template-processor.js';\nexport {SVGTemplateResult, TemplateResult} from './lib/template-result.js';\nexport {createMarker, isTemplatePartActive, Template} from './lib/template.js';\n\ndeclare global {\n interface Window {\n litHtmlVersions: string[];\n }\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litHtmlVersions'] || (window['litHtmlVersions'] = [])).push('1.1.2');\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n */\nexport const html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n new TemplateResult(strings, values, 'html', defaultTemplateProcessor);\n\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n */\nexport const svg = (strings: TemplateStringsArray, ...values: unknown[]) =>\n new SVGTemplateResult(strings, values, 'svg', defaultTemplateProcessor);\n","/**\n@license\nCopyright 2019 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport {HTMLElementWithRipple} from '@material/mwc-base/form-element';\nimport {ripple} from '@material/mwc-ripple/ripple-directive.js';\nimport {html, LitElement, property, query} from 'lit-element';\nimport {classMap} from 'lit-html/directives/class-map';\n\nexport class ButtonBase extends LitElement {\n @property({type: Boolean}) raised = false;\n\n @property({type: Boolean}) unelevated = false;\n\n @property({type: Boolean}) outlined = false;\n\n @property({type: Boolean}) dense = false;\n\n @property({type: Boolean, reflect: true}) disabled = false;\n\n @property({type: Boolean}) trailingIcon = false;\n\n @property() icon = '';\n\n @property() label = '';\n\n @query('#button') buttonElement!: HTMLElementWithRipple;\n\n protected createRenderRoot() {\n return this.attachShadow({mode: 'open', delegatesFocus: true});\n }\n\n focus() {\n const buttonElement = this.buttonElement;\n if (buttonElement) {\n const ripple = buttonElement.ripple;\n if (ripple) {\n ripple.handleFocus();\n }\n\n buttonElement.focus();\n }\n }\n\n blur() {\n const buttonElement = this.buttonElement;\n if (buttonElement) {\n const ripple = buttonElement.ripple;\n if (ripple) {\n ripple.handleBlur();\n }\n\n buttonElement.blur();\n }\n }\n\n protected render() {\n const classes = {\n 'mdc-button--raised': this.raised,\n 'mdc-button--unelevated': this.unelevated,\n 'mdc-button--outlined': this.outlined,\n 'mdc-button--dense': this.dense,\n };\n const mdcButtonIcon =\n html`${this.icon}`;\n const buttonRipple = ripple({unbounded: false});\n return html`\n `;\n }\n}\n","/**\n@license\nCopyright 2018 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport {css} from 'lit-element';\n\nexport const style = css`.mdc-button{font-family:Roboto, sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;line-height:2.25rem;font-weight:500;letter-spacing:.0892857143em;text-decoration:none;text-transform:uppercase;padding:0 8px 0 8px;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;border-radius:4px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{background-color:transparent;color:rgba(0,0,0,.37);cursor:default;pointer-events:none}.mdc-button .mdc-button__ripple{border-radius:4px}.mdc-button:not(:disabled){background-color:transparent}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;width:18px;height:18px;font-size:18px;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__touch{position:absolute;top:50%;right:0;left:0;height:48px;transform:translateY(-50%)}.mdc-button:not(:disabled){color:#6200ee;color:var(--mdc-theme-primary, #6200ee)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--raised .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon,.mdc-button--outlined .mdc-button__icon{margin-left:-4px;margin-right:8px}[dir=rtl] .mdc-button--raised .mdc-button__icon,.mdc-button--raised .mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--unelevated .mdc-button__icon,.mdc-button--unelevated .mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--outlined .mdc-button__icon,.mdc-button--outlined .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mdc-button--raised .mdc-button__label+.mdc-button__icon,.mdc-button--unelevated .mdc-button__label+.mdc-button__icon,.mdc-button--outlined .mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mdc-button--raised .mdc-button__label+.mdc-button__icon,.mdc-button--raised .mdc-button__label+.mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--unelevated .mdc-button__label+.mdc-button__icon,.mdc-button--unelevated .mdc-button__label+.mdc-button__icon[dir=rtl],[dir=rtl] .mdc-button--outlined .mdc-button__label+.mdc-button__icon,.mdc-button--outlined .mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mdc-button--raised,.mdc-button--unelevated{padding:0 16px 0 16px}.mdc-button--raised:disabled,.mdc-button--unelevated:disabled{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.37)}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){background-color:#6200ee}@supports not (-ms-ime-align: auto){.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){background-color:var(--mdc-theme-primary, #6200ee)}}.mdc-button--raised:not(:disabled),.mdc-button--unelevated:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary, #fff)}.mdc-button--raised{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2),0px 2px 2px 0px rgba(0, 0, 0, 0.14),0px 1px 5px 0px rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--raised:hover,.mdc-button--raised:focus{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0,0,0,.12)}.mdc-button--raised:active{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2),0px 8px 10px 1px rgba(0, 0, 0, 0.14),0px 3px 14px 2px rgba(0,0,0,.12)}.mdc-button--raised:disabled{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2),0px 0px 0px 0px rgba(0, 0, 0, 0.14),0px 0px 0px 0px rgba(0,0,0,.12)}.mdc-button--outlined{border-style:solid;padding:0 15px 0 15px;border-width:1px}.mdc-button--outlined:disabled{border-color:rgba(0,0,0,.37)}.mdc-button--outlined .mdc-button__ripple{top:-1px;left:-1px;border:1px solid transparent}.mdc-button--outlined:not(:disabled){border-color:#6200ee;border-color:var(--mdc-theme-primary, #6200ee)}.mdc-button--touch{margin-top:6px;margin-bottom:6px}@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface--test-edge-var-bug{--mdc-ripple-surface-test-edge-var: 1px solid #000;visibility:hidden}.mdc-ripple-surface--test-edge-var-bug::before{border:var(--mdc-ripple-surface-test-edge-var)}.mdc-button{--mdc-ripple-fg-size: 0;--mdc-ripple-left: 0;--mdc-ripple-top: 0;--mdc-ripple-fg-scale: 1;--mdc-ripple-fg-translate-end: 0;--mdc-ripple-fg-translate-start: 0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-button .mdc-button__ripple::before{transition:opacity 15ms linear,background-color 15ms linear;z-index:1}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-button.mdc-ripple-upgraded--unbounded .mdc-button__ripple::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-button.mdc-ripple-upgraded--foreground-activation .mdc-button__ripple::after{animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-button.mdc-ripple-upgraded--foreground-deactivation .mdc-button__ripple::after{animation:mdc-ripple-fg-opacity-out 150ms;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{background-color:#6200ee}@supports not (-ms-ime-align: auto){.mdc-button .mdc-button__ripple::before,.mdc-button .mdc-button__ripple::after{background-color:var(--mdc-theme-primary, #6200ee)}}.mdc-button:hover .mdc-button__ripple::before{opacity:.04}.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:.12}.mdc-button:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:.12}.mdc-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: 0.12}.mdc-button .mdc-button__ripple{position:absolute;width:100%;height:100%;overflow:hidden}.mdc-button:not(.mdc-button--outlined) .mdc-button__ripple{top:0;left:0}.mdc-button--raised .mdc-button__ripple::before,.mdc-button--raised .mdc-button__ripple::after,.mdc-button--unelevated .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after{background-color:#fff}@supports not (-ms-ime-align: auto){.mdc-button--raised .mdc-button__ripple::before,.mdc-button--raised .mdc-button__ripple::after,.mdc-button--unelevated .mdc-button__ripple::before,.mdc-button--unelevated .mdc-button__ripple::after{background-color:var(--mdc-theme-on-primary, #fff)}}.mdc-button--raised:hover .mdc-button__ripple::before,.mdc-button--unelevated:hover .mdc-button__ripple::before{opacity:.08}.mdc-button--raised.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--raised:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before,.mdc-button--unelevated.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{transition-duration:75ms;opacity:.24}.mdc-button--raised:not(.mdc-ripple-upgraded) .mdc-button__ripple::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{transition:opacity 150ms linear}.mdc-button--raised:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after,.mdc-button--unelevated:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{transition-duration:75ms;opacity:.24}.mdc-button--raised.mdc-ripple-upgraded,.mdc-button--unelevated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity: 0.24}.mdc-button{height:36px}.material-icons{font-family:var(--mdc-icon-font, \"Material Icons\");font-weight:normal;font-style:normal;font-size:var(--mdc-icon-size, 24px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}:host{display:inline-flex;outline:none}:host([disabled]){pointer-events:none}.mdc-button{flex:auto}`;\n","/**\n@license\nCopyright 2018 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport {customElement} from 'lit-element';\n\nimport {ButtonBase} from './mwc-button-base.js';\nimport {style} from './mwc-button-css.js';\n\n@customElement('mwc-button')\nexport class Button extends ButtonBase {\n static styles = style;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mwc-button': Button;\n }\n}\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nimport {resolveUrl} from '@polymer/polymer/lib/utils/resolve-url.js';\n\n/**\n`iron-image` is an element for displaying an image that provides useful sizing and\npreloading options not found on the standard `` tag.\n\nThe `sizing` option allows the image to be either cropped (`cover`) or\nletterboxed (`contain`) to fill a fixed user-size placed on the element.\n\nThe `preload` option prevents the browser from rendering the image until the\nimage is fully loaded. In the interim, either the element's CSS `background-color`\ncan be be used as the placeholder, or the `placeholder` property can be\nset to a URL (preferably a data-URI, for instant rendering) for an\nplaceholder image.\n\nThe `fade` option (only valid when `preload` is set) will cause the placeholder\nimage/color to be faded out once the image is rendered.\n\nExamples:\n\n Basically identical to `` tag:\n\n \n\n Will letterbox the image to fit:\n\n \n\n Will crop the image to fit:\n\n \n\n Will show light-gray background until the image loads:\n\n \n\n Will show a base-64 encoded placeholder image until the image loads:\n\n \n\n Will fade the light-gray background out once the image is loaded:\n\n \n\nCustom property | Description | Default\n----------------|-------------|----------\n`--iron-image-placeholder` | Mixin applied to #placeholder | `{}`\n`--iron-image-width` | Sets the width of the wrapped image | `auto`\n`--iron-image-height` | Sets the height of the wrapped image | `auto`\n\n@group Iron Elements\n@element iron-image\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n\n \n
    \n \n
    \n`,\n\n is: 'iron-image',\n\n properties: {\n /**\n * The URL of an image.\n */\n src: {type: String, value: ''},\n\n /**\n * A short text alternative for the image.\n */\n alt: {type: String, value: null},\n\n /**\n * CORS enabled images support:\n * https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image\n */\n crossorigin: {type: String, value: null},\n\n /**\n * When true, the image is prevented from loading and any placeholder is\n * shown. This may be useful when a binding to the src property is known to\n * be invalid, to prevent 404 requests.\n */\n preventLoad: {type: Boolean, value: false},\n\n /**\n * Sets a sizing option for the image. Valid values are `contain` (full\n * aspect ratio of the image is contained within the element and\n * letterboxed) or `cover` (image is cropped in order to fully cover the\n * bounds of the element), or `null` (default: image takes natural size).\n */\n sizing: {type: String, value: null, reflectToAttribute: true},\n\n /**\n * When a sizing option is used (`cover` or `contain`), this determines\n * how the image is aligned within the element bounds.\n */\n position: {type: String, value: 'center'},\n\n /**\n * When `true`, any change to the `src` property will cause the\n * `placeholder` image to be shown until the new image has loaded.\n */\n preload: {type: Boolean, value: false},\n\n /**\n * This image will be used as a background/placeholder until the src image\n * has loaded. Use of a data-URI for placeholder is encouraged for instant\n * rendering.\n */\n placeholder: {type: String, value: null, observer: '_placeholderChanged'},\n\n /**\n * When `preload` is true, setting `fade` to true will cause the image to\n * fade into place.\n */\n fade: {type: Boolean, value: false},\n\n /**\n * Read-only value that is true when the image is loaded.\n */\n loaded: {notify: true, readOnly: true, type: Boolean, value: false},\n\n /**\n * Read-only value that tracks the loading state of the image when the\n * `preload` option is used.\n */\n loading: {notify: true, readOnly: true, type: Boolean, value: false},\n\n /**\n * Read-only value that indicates that the last set `src` failed to load.\n */\n error: {notify: true, readOnly: true, type: Boolean, value: false},\n\n /**\n * Can be used to set the width of image (e.g. via binding); size may also\n * be set via CSS.\n */\n width: {observer: '_widthChanged', type: Number, value: null},\n\n /**\n * Can be used to set the height of image (e.g. via binding); size may also\n * be set via CSS.\n *\n * @attribute height\n * @type number\n * @default null\n */\n height: {observer: '_heightChanged', type: Number, value: null},\n },\n\n observers: [\n '_transformChanged(sizing, position)',\n '_loadStateObserver(src, preventLoad)'\n ],\n\n created: function() {\n this._resolvedSrc = '';\n },\n\n _imgOnLoad: function() {\n if (this.$.img.src !== this._resolveSrc(this.src)) {\n return;\n }\n\n this._setLoading(false);\n this._setLoaded(true);\n this._setError(false);\n },\n\n _imgOnError: function() {\n if (this.$.img.src !== this._resolveSrc(this.src)) {\n return;\n }\n\n this.$.img.removeAttribute('src');\n this.$.sizedImgDiv.style.backgroundImage = '';\n\n this._setLoading(false);\n this._setLoaded(false);\n this._setError(true);\n },\n\n _computePlaceholderHidden: function() {\n return !this.preload || (!this.fade && !this.loading && this.loaded);\n },\n\n _computePlaceholderClassName: function() {\n return (this.preload && this.fade && !this.loading && this.loaded) ?\n 'faded-out' :\n '';\n },\n\n _computeImgDivHidden: function() {\n return !this.sizing;\n },\n\n _computeImgDivARIAHidden: function() {\n return this.alt === '' ? 'true' : undefined;\n },\n\n _computeImgDivARIALabel: function() {\n if (this.alt !== null) {\n return this.alt;\n }\n\n // Polymer.ResolveUrl.resolveUrl will resolve '' relative to a URL x to\n // that URL x, but '' is the default for src.\n if (this.src === '') {\n return '';\n }\n\n // NOTE: Use of `URL` was removed here because IE11 doesn't support\n // constructing it. If this ends up being problematic, we should\n // consider reverting and adding the URL polyfill as a dev dependency.\n var resolved = this._resolveSrc(this.src);\n // Remove query parts, get file name.\n return resolved.replace(/[?|#].*/g, '').split('/').pop();\n },\n\n _computeImgHidden: function() {\n return !!this.sizing;\n },\n\n _widthChanged: function() {\n this.style.width = isNaN(this.width) ? this.width : this.width + 'px';\n },\n\n _heightChanged: function() {\n this.style.height = isNaN(this.height) ? this.height : this.height + 'px';\n },\n\n _loadStateObserver: function(src, preventLoad) {\n var newResolvedSrc = this._resolveSrc(src);\n if (newResolvedSrc === this._resolvedSrc) {\n return;\n }\n\n this._resolvedSrc = '';\n this.$.img.removeAttribute('src');\n this.$.sizedImgDiv.style.backgroundImage = '';\n\n if (src === '' || preventLoad) {\n this._setLoading(false);\n this._setLoaded(false);\n this._setError(false);\n } else {\n this._resolvedSrc = newResolvedSrc;\n this.$.img.src = this._resolvedSrc;\n this.$.sizedImgDiv.style.backgroundImage =\n 'url(\"' + this._resolvedSrc + '\")';\n\n this._setLoading(true);\n this._setLoaded(false);\n this._setError(false);\n }\n },\n\n _placeholderChanged: function() {\n this.$.placeholder.style.backgroundImage =\n this.placeholder ? 'url(\"' + this.placeholder + '\")' : '';\n },\n\n _transformChanged: function() {\n var sizedImgDivStyle = this.$.sizedImgDiv.style;\n var placeholderStyle = this.$.placeholder.style;\n\n sizedImgDivStyle.backgroundSize = placeholderStyle.backgroundSize =\n this.sizing;\n\n sizedImgDivStyle.backgroundPosition = placeholderStyle.backgroundPosition =\n this.sizing ? this.position : '';\n\n sizedImgDivStyle.backgroundRepeat = placeholderStyle.backgroundRepeat =\n this.sizing ? 'no-repeat' : '';\n },\n\n _resolveSrc: function(testSrc) {\n var resolved = resolveUrl(testSrc, this.$.baseURIAnchor.href);\n // NOTE: Use of `URL` was removed here because IE11 doesn't support\n // constructing it. If this ends up being problematic, we should\n // consider reverting and adding the URL polyfill as a dev dependency.\n if (resolved.length >= 2 && resolved[0] === '/' && resolved[1] !== '/') {\n // In IE location.origin might not work\n // https://connect.microsoft.com/IE/feedback/details/1763802/location-origin-is-undefined-in-ie-11-on-windows-10-but-works-on-windows-7\n resolved = (location.origin || location.protocol + '//' + location.host) +\n resolved;\n }\n return resolved;\n }\n});\n","/**\n@license\nCopyright (c) 2017 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/**\nMaterial design:\n[Cards](https://www.google.com/design/spec/components/cards.html)\n\nShared styles that you can apply to an element to renders two shadows on top\nof each other,that create the effect of a lifted piece of paper.\n\nExample:\n\n \n \n \n\n
    \n ... content ...\n
    \n\n@group Paper Elements\n@demo demo/index.html\n*/\n\nimport '@polymer/polymer/polymer-legacy.js';\nimport '../shadow.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/iron-image/iron-image.js';\nimport '@polymer/paper-styles/element-styles/paper-material-styles.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design:\n[Cards](https://www.google.com/design/spec/components/cards.html)\n\n`paper-card` is a container with a drop shadow.\n\nExample:\n\n \n
    Some content
    \n
    \n Some action\n
    \n
    \n\nExample - top card image:\n\n \n ...\n \n\n### Accessibility\n\nBy default, the `aria-label` will be set to the value of the `heading`\nattribute.\n\n### Styling\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-card-background-color` | The background color of the card | `--primary-background-color`\n`--paper-card-header-color` | The color of the header text | `#000`\n`--paper-card-header` | Mixin applied to the card header section | `{}`\n`--paper-card-header-text` | Mixin applied to the title in the card header section | `{}`\n`--paper-card-header-image` | Mixin applied to the image in the card header section | `{}`\n`--paper-card-header-image-text` | Mixin applied to the text overlapping the image in the card header section | `{}`\n`--paper-card-content` | Mixin applied to the card content section| `{}`\n`--paper-card-actions` | Mixin applied to the card action section | `{}`\n`--paper-card` | Mixin applied to the card | `{}`\n\n@group Paper Elements\n@element paper-card\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n\n
    \n \n
    [[heading]]
    \n
    \n\n \n`,\n\n is: 'paper-card',\n\n properties: {\n /**\n * The title of the card.\n */\n heading: {type: String, value: '', observer: '_headingChanged'},\n\n /**\n * The url of the title image of the card.\n */\n image: {type: String, value: ''},\n\n /**\n * The text alternative of the card's title image.\n */\n alt: {type: String},\n\n /**\n * When `true`, any change to the image url property will cause the\n * `placeholder` image to be shown until the image is fully rendered.\n */\n preloadImage: {type: Boolean, value: false},\n\n /**\n * When `preloadImage` is true, setting `fadeImage` to true will cause the\n * image to fade into place.\n */\n fadeImage: {type: Boolean, value: false},\n\n /**\n * This image will be used as a background/placeholder until the src image\n * has loaded. Use of a data-URI for placeholder is encouraged for instant\n * rendering.\n */\n placeholderImage: {type: String, value: null},\n\n /**\n * The z-depth of the card, from 0-5.\n */\n elevation: {type: Number, value: 1, reflectToAttribute: true},\n\n /**\n * Set this to true to animate the card shadow when setting a new\n * `z` value.\n */\n animatedShadow: {type: Boolean, value: false},\n\n /**\n * Read-only property used to pass down the `animatedShadow` value to\n * the underlying paper-material style (since they have different names).\n */\n animated: {\n type: Boolean,\n reflectToAttribute: true,\n readOnly: true,\n computed: '_computeAnimated(animatedShadow)'\n }\n },\n\n /**\n * Format function for aria-hidden. Use the ! operator results in the\n * empty string when given a falsy value.\n */\n _isHidden: function(image) {\n return image ? 'false' : 'true';\n },\n\n _headingChanged: function(heading) {\n var currentHeading = this.getAttribute('heading'),\n currentLabel = this.getAttribute('aria-label');\n\n if (typeof currentLabel !== 'string' || currentLabel === currentHeading) {\n this.setAttribute('aria-label', heading);\n }\n },\n\n _computeHeadingClass: function(image) {\n return image ? ' over-image' : '';\n },\n\n _computeAnimated: function(animatedShadow) {\n return animatedShadow;\n }\n});\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {isDirective} from './directive.js';\nimport {removeNodes} from './dom.js';\nimport {noChange, nothing, Part} from './part.js';\nimport {RenderOptions} from './render-options.js';\nimport {TemplateInstance} from './template-instance.js';\nimport {TemplateResult} from './template-result.js';\nimport {createMarker} from './template.js';\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\nexport type Primitive = null|undefined|boolean|number|string|Symbol|bigint;\nexport const isPrimitive = (value: unknown): value is Primitive => {\n return (\n value === null ||\n !(typeof value === 'object' || typeof value === 'function'));\n};\nexport const isIterable = (value: unknown): value is Iterable => {\n return Array.isArray(value) ||\n // tslint:disable-next-line:no-any\n !!(value && (value as any)[Symbol.iterator]);\n};\n\n/**\n * Writes attribute values to the DOM for a group of AttributeParts bound to a\n * single attibute. The value is only set once even if there are multiple parts\n * for an attribute.\n */\nexport class AttributeCommitter {\n readonly element: Element;\n readonly name: string;\n readonly strings: ReadonlyArray;\n readonly parts: ReadonlyArray;\n dirty = true;\n\n constructor(element: Element, name: string, strings: ReadonlyArray) {\n this.element = element;\n this.name = name;\n this.strings = strings;\n this.parts = [];\n for (let i = 0; i < strings.length - 1; i++) {\n (this.parts as AttributePart[])[i] = this._createPart();\n }\n }\n\n /**\n * Creates a single part. Override this to create a differnt type of part.\n */\n protected _createPart(): AttributePart {\n return new AttributePart(this);\n }\n\n protected _getValue(): unknown {\n const strings = this.strings;\n const l = strings.length - 1;\n let text = '';\n\n for (let i = 0; i < l; i++) {\n text += strings[i];\n const part = this.parts[i];\n if (part !== undefined) {\n const v = part.value;\n if (isPrimitive(v) || !isIterable(v)) {\n text += typeof v === 'string' ? v : String(v);\n } else {\n for (const t of v) {\n text += typeof t === 'string' ? t : String(t);\n }\n }\n }\n }\n\n text += strings[l];\n return text;\n }\n\n commit(): void {\n if (this.dirty) {\n this.dirty = false;\n this.element.setAttribute(this.name, this._getValue() as string);\n }\n }\n}\n\n/**\n * A Part that controls all or part of an attribute value.\n */\nexport class AttributePart implements Part {\n readonly committer: AttributeCommitter;\n value: unknown = undefined;\n\n constructor(committer: AttributeCommitter) {\n this.committer = committer;\n }\n\n setValue(value: unknown): void {\n if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n this.value = value;\n // If the value is a not a directive, dirty the committer so that it'll\n // call setAttribute. If the value is a directive, it'll dirty the\n // committer if it calls setValue().\n if (!isDirective(value)) {\n this.committer.dirty = true;\n }\n }\n }\n\n commit() {\n while (isDirective(this.value)) {\n const directive = this.value;\n this.value = noChange;\n directive(this);\n }\n if (this.value === noChange) {\n return;\n }\n this.committer.commit();\n }\n}\n\n/**\n * A Part that controls a location within a Node tree. Like a Range, NodePart\n * has start and end locations and can set and update the Nodes between those\n * locations.\n *\n * NodeParts support several value types: primitives, Nodes, TemplateResults,\n * as well as arrays and iterables of those types.\n */\nexport class NodePart implements Part {\n readonly options: RenderOptions;\n startNode!: Node;\n endNode!: Node;\n value: unknown = undefined;\n private __pendingValue: unknown = undefined;\n\n constructor(options: RenderOptions) {\n this.options = options;\n }\n\n /**\n * Appends this part into a container.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n appendInto(container: Node) {\n this.startNode = container.appendChild(createMarker());\n this.endNode = container.appendChild(createMarker());\n }\n\n /**\n * Inserts this part after the `ref` node (between `ref` and `ref`'s next\n * sibling). Both `ref` and its next sibling must be static, unchanging nodes\n * such as those that appear in a literal section of a template.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n insertAfterNode(ref: Node) {\n this.startNode = ref;\n this.endNode = ref.nextSibling!;\n }\n\n /**\n * Appends this part into a parent part.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n appendIntoPart(part: NodePart) {\n part.__insert(this.startNode = createMarker());\n part.__insert(this.endNode = createMarker());\n }\n\n /**\n * Inserts this part after the `ref` part.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n insertAfterPart(ref: NodePart) {\n ref.__insert(this.startNode = createMarker());\n this.endNode = ref.endNode;\n ref.endNode = this.startNode;\n }\n\n setValue(value: unknown): void {\n this.__pendingValue = value;\n }\n\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n const value = this.__pendingValue;\n if (value === noChange) {\n return;\n }\n if (isPrimitive(value)) {\n if (value !== this.value) {\n this.__commitText(value);\n }\n } else if (value instanceof TemplateResult) {\n this.__commitTemplateResult(value);\n } else if (value instanceof Node) {\n this.__commitNode(value);\n } else if (isIterable(value)) {\n this.__commitIterable(value);\n } else if (value === nothing) {\n this.value = nothing;\n this.clear();\n } else {\n // Fallback, will render the string representation\n this.__commitText(value);\n }\n }\n\n private __insert(node: Node) {\n this.endNode.parentNode!.insertBefore(node, this.endNode);\n }\n\n private __commitNode(value: Node): void {\n if (this.value === value) {\n return;\n }\n this.clear();\n this.__insert(value);\n this.value = value;\n }\n\n private __commitText(value: unknown): void {\n const node = this.startNode.nextSibling!;\n value = value == null ? '' : value;\n // If `value` isn't already a string, we explicitly convert it here in case\n // it can't be implicitly converted - i.e. it's a symbol.\n const valueAsString: string =\n typeof value === 'string' ? value : String(value);\n if (node === this.endNode.previousSibling &&\n node.nodeType === 3 /* Node.TEXT_NODE */) {\n // If we only have a single text node between the markers, we can just\n // set its value, rather than replacing it.\n // TODO(justinfagnani): Can we just check if this.value is primitive?\n (node as Text).data = valueAsString;\n } else {\n this.__commitNode(document.createTextNode(valueAsString));\n }\n this.value = value;\n }\n\n private __commitTemplateResult(value: TemplateResult): void {\n const template = this.options.templateFactory(value);\n if (this.value instanceof TemplateInstance &&\n this.value.template === template) {\n this.value.update(value.values);\n } else {\n // Make sure we propagate the template processor from the TemplateResult\n // so that we use its syntax extension, etc. The template factory comes\n // from the render function options so that it can control template\n // caching and preprocessing.\n const instance =\n new TemplateInstance(template, value.processor, this.options);\n const fragment = instance._clone();\n instance.update(value.values);\n this.__commitNode(fragment);\n this.value = instance;\n }\n }\n\n private __commitIterable(value: Iterable): void {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n\n // If _value is an array, then the previous render was of an\n // iterable and _value will contain the NodeParts from the previous\n // render. If _value is not an array, clear this part and make a new\n // array for NodeParts.\n if (!Array.isArray(this.value)) {\n this.value = [];\n this.clear();\n }\n\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this.value as NodePart[];\n let partIndex = 0;\n let itemPart: NodePart|undefined;\n\n for (const item of value) {\n // Try to reuse an existing part\n itemPart = itemParts[partIndex];\n\n // If no existing part, create a new one\n if (itemPart === undefined) {\n itemPart = new NodePart(this.options);\n itemParts.push(itemPart);\n if (partIndex === 0) {\n itemPart.appendIntoPart(this);\n } else {\n itemPart.insertAfterPart(itemParts[partIndex - 1]);\n }\n }\n itemPart.setValue(item);\n itemPart.commit();\n partIndex++;\n }\n\n if (partIndex < itemParts.length) {\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n this.clear(itemPart && itemPart.endNode);\n }\n }\n\n clear(startNode: Node = this.startNode) {\n removeNodes(\n this.startNode.parentNode!, startNode.nextSibling!, this.endNode);\n }\n}\n\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart implements Part {\n readonly element: Element;\n readonly name: string;\n readonly strings: ReadonlyArray;\n value: unknown = undefined;\n private __pendingValue: unknown = undefined;\n\n constructor(element: Element, name: string, strings: ReadonlyArray) {\n if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n throw new Error(\n 'Boolean attributes can only contain a single expression');\n }\n this.element = element;\n this.name = name;\n this.strings = strings;\n }\n\n setValue(value: unknown): void {\n this.__pendingValue = value;\n }\n\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n if (this.__pendingValue === noChange) {\n return;\n }\n const value = !!this.__pendingValue;\n if (this.value !== value) {\n if (value) {\n this.element.setAttribute(this.name, '');\n } else {\n this.element.removeAttribute(this.name);\n }\n this.value = value;\n }\n this.__pendingValue = noChange;\n }\n}\n\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n readonly single: boolean;\n\n constructor(element: Element, name: string, strings: ReadonlyArray) {\n super(element, name, strings);\n this.single =\n (strings.length === 2 && strings[0] === '' && strings[1] === '');\n }\n\n protected _createPart(): PropertyPart {\n return new PropertyPart(this);\n }\n\n protected _getValue() {\n if (this.single) {\n return this.parts[0].value;\n }\n return super._getValue();\n }\n\n commit(): void {\n if (this.dirty) {\n this.dirty = false;\n // tslint:disable-next-line:no-any\n (this.element as any)[this.name] = this._getValue();\n }\n }\n}\n\nexport class PropertyPart extends AttributePart {}\n\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\n\ntry {\n const options = {\n get capture() {\n eventOptionsSupported = true;\n return false;\n }\n };\n // tslint:disable-next-line:no-any\n window.addEventListener('test', options as any, options);\n // tslint:disable-next-line:no-any\n window.removeEventListener('test', options as any, options);\n} catch (_e) {\n}\n\n\ntype EventHandlerWithOptions =\n EventListenerOrEventListenerObject&Partial;\nexport class EventPart implements Part {\n readonly element: Element;\n readonly eventName: string;\n readonly eventContext?: EventTarget;\n value: undefined|EventHandlerWithOptions = undefined;\n private __options?: AddEventListenerOptions;\n private __pendingValue: undefined|EventHandlerWithOptions = undefined;\n private readonly __boundHandleEvent: (event: Event) => void;\n\n constructor(element: Element, eventName: string, eventContext?: EventTarget) {\n this.element = element;\n this.eventName = eventName;\n this.eventContext = eventContext;\n this.__boundHandleEvent = (e) => this.handleEvent(e);\n }\n\n setValue(value: undefined|EventHandlerWithOptions): void {\n this.__pendingValue = value;\n }\n\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange as EventHandlerWithOptions;\n directive(this);\n }\n if (this.__pendingValue === noChange) {\n return;\n }\n\n const newListener = this.__pendingValue;\n const oldListener = this.value;\n const shouldRemoveListener = newListener == null ||\n oldListener != null &&\n (newListener.capture !== oldListener.capture ||\n newListener.once !== oldListener.once ||\n newListener.passive !== oldListener.passive);\n const shouldAddListener =\n newListener != null && (oldListener == null || shouldRemoveListener);\n\n if (shouldRemoveListener) {\n this.element.removeEventListener(\n this.eventName, this.__boundHandleEvent, this.__options);\n }\n if (shouldAddListener) {\n this.__options = getOptions(newListener);\n this.element.addEventListener(\n this.eventName, this.__boundHandleEvent, this.__options);\n }\n this.value = newListener;\n this.__pendingValue = noChange as EventHandlerWithOptions;\n }\n\n handleEvent(event: Event) {\n if (typeof this.value === 'function') {\n this.value.call(this.eventContext || this.element, event);\n } else {\n (this.value as EventListenerObject).handleEvent(event);\n }\n }\n}\n\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o: AddEventListenerOptions|undefined) => o &&\n (eventOptionsSupported ?\n {capture: o.capture, passive: o.passive, once: o.once} :\n o.capture as AddEventListenerOptions);\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {TemplateResult} from './template-result.js';\n\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = ``;\n\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n readonly parts: TemplatePart[] = [];\n readonly element: HTMLTemplateElement;\n\n constructor(result: TemplateResult, element: HTMLTemplateElement) {\n this.element = element;\n\n const nodesToRemove: Node[] = [];\n const stack: Node[] = [];\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(\n element.content,\n 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */,\n null,\n false);\n // Keeps track of the last index associated with a part. We try to delete\n // unnecessary nodes, but we never want to associate two different parts\n // to the same index. They must have a constant node between.\n let lastPartIndex = 0;\n let index = -1;\n let partIndex = 0;\n const {strings, values: {length}} = result;\n while (partIndex < length) {\n const node = walker.nextNode() as Element | Comment | Text | null;\n if (node === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop()!;\n continue;\n }\n index++;\n\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n if ((node as Element).hasAttributes()) {\n const attributes = (node as Element).attributes;\n const {length} = attributes;\n // Per\n // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n // attributes are not guaranteed to be returned in document order.\n // In particular, Edge/IE can return them out of order, so we cannot\n // assume a correspondence between part index and attribute index.\n let count = 0;\n for (let i = 0; i < length; i++) {\n if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n count++;\n }\n }\n while (count-- > 0) {\n // Get the template literal section leading up to the first\n // expression in this attribute\n const stringForPart = strings[partIndex];\n // Find the attribute name\n const name = lastAttributeNameRegex.exec(stringForPart)![2];\n // Find the corresponding attribute\n // All bound attributes have had a suffix added in\n // TemplateResult#getHTML to opt out of special attribute\n // handling. To look up the attribute value we also need to add\n // the suffix.\n const attributeLookupName =\n name.toLowerCase() + boundAttributeSuffix;\n const attributeValue =\n (node as Element).getAttribute(attributeLookupName)!;\n (node as Element).removeAttribute(attributeLookupName);\n const statics = attributeValue.split(markerRegex);\n this.parts.push({type: 'attribute', index, name, strings: statics});\n partIndex += statics.length - 1;\n }\n }\n if ((node as Element).tagName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = (node as HTMLTemplateElement).content;\n }\n } else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n const data = (node as Text).data;\n if (data.indexOf(marker) >= 0) {\n const parent = node.parentNode!;\n const strings = data.split(markerRegex);\n const lastIndex = strings.length - 1;\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n for (let i = 0; i < lastIndex; i++) {\n let insert: Node;\n let s = strings[i];\n if (s === '') {\n insert = createMarker();\n } else {\n const match = lastAttributeNameRegex.exec(s);\n if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n s = s.slice(0, match.index) + match[1] +\n match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n }\n insert = document.createTextNode(s);\n }\n parent.insertBefore(insert, node);\n this.parts.push({type: 'node', index: ++index});\n }\n // If there's no text, we must insert a comment to mark our place.\n // Else, we can trust it will stick around after cloning.\n if (strings[lastIndex] === '') {\n parent.insertBefore(createMarker(), node);\n nodesToRemove.push(node);\n } else {\n (node as Text).data = strings[lastIndex];\n }\n // We have a part for each match found\n partIndex += lastIndex;\n }\n } else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n if ((node as Comment).data === marker) {\n const parent = node.parentNode!;\n // Add a new marker node to be the startNode of the Part if any of\n // the following are true:\n // * We don't have a previousSibling\n // * The previousSibling is already the start of a previous part\n if (node.previousSibling === null || index === lastPartIndex) {\n index++;\n parent.insertBefore(createMarker(), node);\n }\n lastPartIndex = index;\n this.parts.push({type: 'node', index});\n // If we don't have a nextSibling, keep this node so we have an end.\n // Else, we can remove it to save future costs.\n if (node.nextSibling === null) {\n (node as Comment).data = '';\n } else {\n nodesToRemove.push(node);\n index--;\n }\n partIndex++;\n } else {\n let i = -1;\n while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n // TODO (justinfagnani): consider whether it's even worth it to\n // make bindings in comments work\n this.parts.push({type: 'node', index: -1});\n partIndex++;\n }\n }\n }\n }\n\n // Remove text binding nodes after the walk to not disturb the TreeWalker\n for (const n of nodesToRemove) {\n n.parentNode!.removeChild(n);\n }\n }\n}\n\nconst endsWith = (str: string, suffix: string): boolean => {\n const index = str.length - suffix.length;\n return index >= 0 && str.slice(index) === suffix;\n};\n\n/**\n * A placeholder for a dynamic expression in an HTML template.\n *\n * There are two built-in part types: AttributePart and NodePart. NodeParts\n * always represent a single dynamic expression, while AttributeParts may\n * represent as many expressions are contained in the attribute.\n *\n * A Template's parts are mutable, so parts can be replaced or modified\n * (possibly to implement different template semantics). The contract is that\n * parts can only be replaced, not removed, added or reordered, and parts must\n * always consume the correct number of values in their `update()` method.\n *\n * TODO(justinfagnani): That requirement is a little fragile. A\n * TemplateInstance could instead be more careful about which values it gives\n * to Part.update().\n */\nexport type TemplatePart = {\n readonly type: 'node',\n index: number\n}|{readonly type: 'attribute', index: number, readonly name: string, readonly strings: ReadonlyArray};\n\nexport const isTemplatePartActive = (part: TemplatePart) => part.index !== -1;\n\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n * * The name: any character except a control character, space character, ('),\n * (\"), \">\", \"=\", or \"/\"\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nexport const lastAttributeNameRegex =\n /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\n\nimport {IronMeta} from '@polymer/iron-meta/iron-meta.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nimport {Base} from '@polymer/polymer/polymer-legacy.js';\n\n/**\n\nThe `iron-icon` element displays an icon. By default an icon renders as a 24px\nsquare.\n\nExample using src:\n\n \n\nExample setting size to 32px x 32px:\n\n \n\n \n\nThe iron elements include several sets of icons. To use the default set of\nicons, import `iron-icons.js` and use the `icon` attribute to specify an icon:\n\n \n\n \n\nTo use a different built-in set of icons, import the specific\n`iron-icons/-icons.js`, and specify the icon as `:`.\nFor example, to use a communication icon, you would use:\n\n \n\n \n\nYou can also create custom icon sets of bitmap or SVG icons.\n\nExample of using an icon named `cherry` from a custom iconset with the ID\n`fruit`:\n\n \n\nSee `` and `` for more information about how to\ncreate a custom iconset.\n\nSee the `iron-icons` demo to see the icons available in the various iconsets.\n\n### Styling\n\nThe following custom properties are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--iron-icon` | Mixin applied to the icon | {}\n`--iron-icon-width` | Width of the icon | `24px`\n`--iron-icon-height` | Height of the icon | `24px`\n`--iron-icon-fill-color` | Fill color of the svg icon | `currentcolor`\n`--iron-icon-stroke-color` | Stroke color of the svg icon | none\n\n@group Iron Elements\n@element iron-icon\n@demo demo/index.html\n@hero hero.svg\n@homepage polymer.github.io\n*/\nPolymer({\n _template: html`\n \n`,\n\n is: 'iron-icon',\n\n properties: {\n\n /**\n * The name of the icon to use. The name should be of the form:\n * `iconset_name:icon_name`.\n */\n icon: {type: String},\n\n /**\n * The name of the theme to used, if one is specified by the\n * iconset.\n */\n theme: {type: String},\n\n /**\n * If using iron-icon without an iconset, you can set the src to be\n * the URL of an individual icon image file. Note that this will take\n * precedence over a given icon attribute.\n */\n src: {type: String},\n\n /**\n * @type {!IronMeta}\n */\n _meta: {value: Base.create('iron-meta', {type: 'iconset'})}\n\n },\n\n observers: [\n '_updateIcon(_meta, isAttached)',\n '_updateIcon(theme, isAttached)',\n '_srcChanged(src, isAttached)',\n '_iconChanged(icon, isAttached)'\n ],\n\n _DEFAULT_ICONSET: 'icons',\n\n _iconChanged: function(icon) {\n var parts = (icon || '').split(':');\n this._iconName = parts.pop();\n this._iconsetName = parts.pop() || this._DEFAULT_ICONSET;\n this._updateIcon();\n },\n\n _srcChanged: function(src) {\n this._updateIcon();\n },\n\n _usesIconset: function() {\n return this.icon || !this.src;\n },\n\n /** @suppress {visibility} */\n _updateIcon: function() {\n if (this._usesIconset()) {\n if (this._img && this._img.parentNode) {\n dom(this.root).removeChild(this._img);\n }\n if (this._iconName === '') {\n if (this._iconset) {\n this._iconset.removeIcon(this);\n }\n } else if (this._iconsetName && this._meta) {\n this._iconset = /** @type {?Polymer.Iconset} */ (\n this._meta.byKey(this._iconsetName));\n if (this._iconset) {\n this._iconset.applyIcon(this, this._iconName, this.theme);\n this.unlisten(window, 'iron-iconset-added', '_updateIcon');\n } else {\n this.listen(window, 'iron-iconset-added', '_updateIcon');\n }\n }\n } else {\n if (this._iconset) {\n this._iconset.removeIcon(this);\n }\n if (!this._img) {\n this._img = document.createElement('img');\n this._img.style.width = '100%';\n this._img.style.height = '100%';\n this._img.draggable = false;\n }\n this._img.src = this.src;\n dom(this.root).appendChild(this._img);\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-icon/iron-icon.js';\nimport '@polymer/paper-styles/default-theme.js';\n\nimport {PaperInkyFocusBehavior} from '@polymer/paper-behaviors/paper-inky-focus-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\nMaterial design: [Icon\ntoggles](https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons)\n\n`paper-icon-button` is a button with an image placed at the center. When the\nuser touches the button, a ripple effect emanates from the center of the button.\n\n`paper-icon-button` does not include a default icon set. To use icons from the\ndefault set, include `PolymerElements/iron-icons/iron-icons.html`, and use the\n`icon` attribute to specify which icon from the icon set to use.\n\n \n\nSee [`iron-iconset`](iron-iconset) for more information about\nhow to use a custom icon set.\n\nExample:\n\n \n\n \n \n\nTo use `paper-icon-button` as a link, wrap it in an anchor tag. Since\n`paper-icon-button` will already receive focus, you may want to prevent the\nanchor tag from receiving focus as well by setting its tabindex to -1.\n\n \n \n \n\n### Styling\n\nStyle the button with CSS as you would a normal DOM element. If you are using\nthe icons provided by `iron-icons`, they will inherit the foreground color of\nthe button.\n\n /* make a red \"favorite\" button *\\/\n \n\nBy default, the ripple is the same color as the foreground at 25% opacity. You\nmay customize the color using the `--paper-icon-button-ink-color` custom\nproperty.\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-icon-button-disabled-text` | The color of the disabled button | `--disabled-text-color`\n`--paper-icon-button-ink-color` | Selected/focus ripple color | `--primary-text-color`\n`--paper-icon-button` | Mixin for a button | `{}`\n`--paper-icon-button-disabled` | Mixin for a disabled button | `{}`\n`--paper-icon-button-hover` | Mixin for button on hover | `{}`\n\n@group Paper Elements\n@element paper-icon-button\n@demo demo/index.html\n*/\nPolymer({\n is: 'paper-icon-button',\n\n _template: html`\n \n\n \n `,\n\n hostAttributes: {role: 'button', tabindex: '0'},\n\n behaviors: [PaperInkyFocusBehavior],\n\n registered: function() {\n this._template.setAttribute('strip-whitespace', '');\n },\n\n properties: {\n /**\n * The URL of an image for the icon. If the src property is specified,\n * the icon property should not be.\n */\n src: {type: String},\n\n /**\n * Specifies the icon name or index in the set of icons available in\n * the icon's icon set. If the icon property is specified,\n * the src property should not be.\n */\n icon: {type: String},\n\n /**\n * Specifies the alternate text for the button, for accessibility.\n */\n alt: {type: String, observer: '_altChanged'}\n },\n\n _altChanged: function(newValue, oldValue) {\n var label = this.getAttribute('aria-label');\n\n // Don't stomp over a user-set aria-label.\n if (!label || oldValue == label) {\n this.setAttribute('aria-label', newValue);\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\n\n/**\n * @demo demo/index.html\n * @polymerBehavior\n */\nexport const IronControlState = {\n\n properties: {\n\n /**\n * If true, the element currently has focus.\n */\n focused: {\n type: Boolean,\n value: false,\n notify: true,\n readOnly: true,\n reflectToAttribute: true\n },\n\n /**\n * If true, the user cannot interact with this element.\n */\n disabled: {\n type: Boolean,\n value: false,\n notify: true,\n observer: '_disabledChanged',\n reflectToAttribute: true\n },\n\n /**\n * Value of the `tabindex` attribute before `disabled` was activated.\n * `null` means the attribute was not present.\n * @type {?string|undefined}\n */\n _oldTabIndex: {type: String},\n\n _boundFocusBlurHandler: {\n type: Function,\n value: function() {\n return this._focusBlurHandler.bind(this);\n }\n }\n },\n\n observers: ['_changedControlState(focused, disabled)'],\n\n /**\n * @return {void}\n */\n ready: function() {\n this.addEventListener('focus', this._boundFocusBlurHandler, true);\n this.addEventListener('blur', this._boundFocusBlurHandler, true);\n },\n\n _focusBlurHandler: function(event) {\n // Polymer takes care of retargeting events.\n this._setFocused(event.type === 'focus');\n return;\n },\n\n _disabledChanged: function(disabled, old) {\n this.setAttribute('aria-disabled', disabled ? 'true' : 'false');\n this.style.pointerEvents = disabled ? 'none' : '';\n if (disabled) {\n // Read the `tabindex` attribute instead of the `tabIndex` property.\n // The property returns `-1` if there is no `tabindex` attribute.\n // This distinction is important when restoring the value because\n // leaving `-1` hides shadow root children from the tab order.\n this._oldTabIndex = this.getAttribute('tabindex');\n this._setFocused(false);\n this.tabIndex = -1;\n this.blur();\n } else if (this._oldTabIndex !== undefined) {\n if (this._oldTabIndex === null) {\n this.removeAttribute('tabindex');\n } else {\n this.setAttribute('tabindex', this._oldTabIndex);\n }\n }\n },\n\n _changedControlState: function() {\n // _controlStateChanged is abstract, follow-on behaviors may implement it\n if (this._controlStateChanged) {\n this._controlStateChanged();\n }\n }\n\n};\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\n/**\n * Chrome uses an older version of DOM Level 3 Keyboard Events\n *\n * Most keys are labeled as text, but some are Unicode codepoints.\n * Values taken from:\n * http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/keyset.html#KeySet-Set\n */\nvar KEY_IDENTIFIER = {\n 'U+0008': 'backspace',\n 'U+0009': 'tab',\n 'U+001B': 'esc',\n 'U+0020': 'space',\n 'U+007F': 'del'\n};\n\n/**\n * Special table for KeyboardEvent.keyCode.\n * KeyboardEvent.keyIdentifier is better, and KeyBoardEvent.key is even better\n * than that.\n *\n * Values from:\n * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyCode#Value_of_keyCode\n */\nvar KEY_CODE = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 27: 'esc',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 32: 'space',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 46: 'del',\n 106: '*'\n};\n\n/**\n * MODIFIER_KEYS maps the short name for modifier keys used in a key\n * combo string to the property name that references those same keys\n * in a KeyboardEvent instance.\n */\nvar MODIFIER_KEYS = {\n 'shift': 'shiftKey',\n 'ctrl': 'ctrlKey',\n 'alt': 'altKey',\n 'meta': 'metaKey'\n};\n\n/**\n * KeyboardEvent.key is mostly represented by printable character made by\n * the keyboard, with unprintable keys labeled nicely.\n *\n * However, on OS X, Alt+char can make a Unicode character that follows an\n * Apple-specific mapping. In this case, we fall back to .keyCode.\n */\nvar KEY_CHAR = /[a-z0-9*]/;\n\n/**\n * Matches a keyIdentifier string.\n */\nvar IDENT_CHAR = /U\\+/;\n\n/**\n * Matches arrow keys in Gecko 27.0+\n */\nvar ARROW_KEY = /^arrow/;\n\n/**\n * Matches space keys everywhere (notably including IE10's exceptional name\n * `spacebar`).\n */\nvar SPACE_KEY = /^space(bar)?/;\n\n/**\n * Matches ESC key.\n *\n * Value from: http://w3c.github.io/uievents-key/#key-Escape\n */\nvar ESC_KEY = /^escape$/;\n\n/**\n * Transforms the key.\n * @param {string} key The KeyBoardEvent.key\n * @param {Boolean} [noSpecialChars] Limits the transformation to\n * alpha-numeric characters.\n */\nfunction transformKey(key, noSpecialChars) {\n var validKey = '';\n if (key) {\n var lKey = key.toLowerCase();\n if (lKey === ' ' || SPACE_KEY.test(lKey)) {\n validKey = 'space';\n } else if (ESC_KEY.test(lKey)) {\n validKey = 'esc';\n } else if (lKey.length == 1) {\n if (!noSpecialChars || KEY_CHAR.test(lKey)) {\n validKey = lKey;\n }\n } else if (ARROW_KEY.test(lKey)) {\n validKey = lKey.replace('arrow', '');\n } else if (lKey == 'multiply') {\n // numpad '*' can map to Multiply on IE/Windows\n validKey = '*';\n } else {\n validKey = lKey;\n }\n }\n return validKey;\n}\n\nfunction transformKeyIdentifier(keyIdent) {\n var validKey = '';\n if (keyIdent) {\n if (keyIdent in KEY_IDENTIFIER) {\n validKey = KEY_IDENTIFIER[keyIdent];\n } else if (IDENT_CHAR.test(keyIdent)) {\n keyIdent = parseInt(keyIdent.replace('U+', '0x'), 16);\n validKey = String.fromCharCode(keyIdent).toLowerCase();\n } else {\n validKey = keyIdent.toLowerCase();\n }\n }\n return validKey;\n}\n\nfunction transformKeyCode(keyCode) {\n var validKey = '';\n if (Number(keyCode)) {\n if (keyCode >= 65 && keyCode <= 90) {\n // ascii a-z\n // lowercase is 32 offset from uppercase\n validKey = String.fromCharCode(32 + keyCode);\n } else if (keyCode >= 112 && keyCode <= 123) {\n // function keys f1-f12\n validKey = 'f' + (keyCode - 112 + 1);\n } else if (keyCode >= 48 && keyCode <= 57) {\n // top 0-9 keys\n validKey = String(keyCode - 48);\n } else if (keyCode >= 96 && keyCode <= 105) {\n // num pad 0-9\n validKey = String(keyCode - 96);\n } else {\n validKey = KEY_CODE[keyCode];\n }\n }\n return validKey;\n}\n\n/**\n * Calculates the normalized key for a KeyboardEvent.\n * @param {KeyboardEvent} keyEvent\n * @param {Boolean} [noSpecialChars] Set to true to limit keyEvent.key\n * transformation to alpha-numeric chars. This is useful with key\n * combinations like shift + 2, which on FF for MacOS produces\n * keyEvent.key = @\n * To get 2 returned, set noSpecialChars = true\n * To get @ returned, set noSpecialChars = false\n */\nfunction normalizedKeyForEvent(keyEvent, noSpecialChars) {\n // Fall back from .key, to .detail.key for artifical keyboard events,\n // and then to deprecated .keyIdentifier and .keyCode.\n if (keyEvent.key) {\n return transformKey(keyEvent.key, noSpecialChars);\n }\n if (keyEvent.detail && keyEvent.detail.key) {\n return transformKey(keyEvent.detail.key, noSpecialChars);\n }\n return transformKeyIdentifier(keyEvent.keyIdentifier) ||\n transformKeyCode(keyEvent.keyCode) || '';\n}\n\nfunction keyComboMatchesEvent(keyCombo, event) {\n // For combos with modifiers we support only alpha-numeric keys\n var keyEvent = normalizedKeyForEvent(event, keyCombo.hasModifiers);\n return keyEvent === keyCombo.key &&\n (!keyCombo.hasModifiers ||\n (!!event.shiftKey === !!keyCombo.shiftKey &&\n !!event.ctrlKey === !!keyCombo.ctrlKey &&\n !!event.altKey === !!keyCombo.altKey &&\n !!event.metaKey === !!keyCombo.metaKey));\n}\n\nfunction parseKeyComboString(keyComboString) {\n if (keyComboString.length === 1) {\n return {combo: keyComboString, key: keyComboString, event: 'keydown'};\n }\n return keyComboString.split('+')\n .reduce(function(parsedKeyCombo, keyComboPart) {\n var eventParts = keyComboPart.split(':');\n var keyName = eventParts[0];\n var event = eventParts[1];\n\n if (keyName in MODIFIER_KEYS) {\n parsedKeyCombo[MODIFIER_KEYS[keyName]] = true;\n parsedKeyCombo.hasModifiers = true;\n } else {\n parsedKeyCombo.key = keyName;\n parsedKeyCombo.event = event || 'keydown';\n }\n\n return parsedKeyCombo;\n }, {combo: keyComboString.split(':').shift()});\n}\n\nfunction parseEventString(eventString) {\n return eventString.trim().split(' ').map(function(keyComboString) {\n return parseKeyComboString(keyComboString);\n });\n}\n\n/**\n * `Polymer.IronA11yKeysBehavior` provides a normalized interface for processing\n * keyboard commands that pertain to [WAI-ARIA best\n * practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). The\n * element takes care of browser differences with respect to Keyboard events and\n * uses an expressive syntax to filter key presses.\n *\n * Use the `keyBindings` prototype property to express what combination of keys\n * will trigger the callback. A key binding has the format\n * `\"KEY+MODIFIER:EVENT\": \"callback\"` (`\"KEY\": \"callback\"` or\n * `\"KEY:EVENT\": \"callback\"` are valid as well). Some examples:\n *\n * keyBindings: {\n * 'space': '_onKeydown', // same as 'space:keydown'\n * 'shift+tab': '_onKeydown',\n * 'enter:keypress': '_onKeypress',\n * 'esc:keyup': '_onKeyup'\n * }\n *\n * The callback will receive with an event containing the following information\n * in `event.detail`:\n *\n * _onKeydown: function(event) {\n * console.log(event.detail.combo); // KEY+MODIFIER, e.g. \"shift+tab\"\n * console.log(event.detail.key); // KEY only, e.g. \"tab\"\n * console.log(event.detail.event); // EVENT, e.g. \"keydown\"\n * console.log(event.detail.keyboardEvent); // the original KeyboardEvent\n * }\n *\n * Use the `keyEventTarget` attribute to set up event handlers on a specific\n * node.\n *\n * See the [demo source\n * code](https://github.com/PolymerElements/iron-a11y-keys-behavior/blob/master/demo/x-key-aware.html)\n * for an example.\n *\n * @demo demo/index.html\n * @polymerBehavior\n */\nexport const IronA11yKeysBehavior = {\n properties: {\n /**\n * The EventTarget that will be firing relevant KeyboardEvents. Set it to\n * `null` to disable the listeners.\n * @type {?EventTarget}\n */\n keyEventTarget: {\n type: Object,\n value: function() {\n return this;\n }\n },\n\n /**\n * If true, this property will cause the implementing element to\n * automatically stop propagation on any handled KeyboardEvents.\n */\n stopKeyboardEventPropagation: {type: Boolean, value: false},\n\n _boundKeyHandlers: {\n type: Array,\n value: function() {\n return [];\n }\n },\n\n // We use this due to a limitation in IE10 where instances will have\n // own properties of everything on the \"prototype\".\n _imperativeKeyBindings: {\n type: Object,\n value: function() {\n return {};\n }\n }\n },\n\n observers: ['_resetKeyEventListeners(keyEventTarget, _boundKeyHandlers)'],\n\n\n /**\n * To be used to express what combination of keys will trigger the relative\n * callback. e.g. `keyBindings: { 'esc': '_onEscPressed'}`\n * @type {!Object}\n */\n keyBindings: {},\n\n registered: function() {\n this._prepKeyBindings();\n },\n\n attached: function() {\n this._listenKeyEventListeners();\n },\n\n detached: function() {\n this._unlistenKeyEventListeners();\n },\n\n /**\n * Can be used to imperatively add a key binding to the implementing\n * element. This is the imperative equivalent of declaring a keybinding\n * in the `keyBindings` prototype property.\n *\n * @param {string} eventString\n * @param {string} handlerName\n */\n addOwnKeyBinding: function(eventString, handlerName) {\n this._imperativeKeyBindings[eventString] = handlerName;\n this._prepKeyBindings();\n this._resetKeyEventListeners();\n },\n\n /**\n * When called, will remove all imperatively-added key bindings.\n */\n removeOwnKeyBindings: function() {\n this._imperativeKeyBindings = {};\n this._prepKeyBindings();\n this._resetKeyEventListeners();\n },\n\n /**\n * Returns true if a keyboard event matches `eventString`.\n *\n * @param {KeyboardEvent} event\n * @param {string} eventString\n * @return {boolean}\n */\n keyboardEventMatchesKeys: function(event, eventString) {\n var keyCombos = parseEventString(eventString);\n for (var i = 0; i < keyCombos.length; ++i) {\n if (keyComboMatchesEvent(keyCombos[i], event)) {\n return true;\n }\n }\n return false;\n },\n\n _collectKeyBindings: function() {\n var keyBindings = this.behaviors.map(function(behavior) {\n return behavior.keyBindings;\n });\n\n if (keyBindings.indexOf(this.keyBindings) === -1) {\n keyBindings.push(this.keyBindings);\n }\n\n return keyBindings;\n },\n\n _prepKeyBindings: function() {\n this._keyBindings = {};\n\n this._collectKeyBindings().forEach(function(keyBindings) {\n for (var eventString in keyBindings) {\n this._addKeyBinding(eventString, keyBindings[eventString]);\n }\n }, this);\n\n for (var eventString in this._imperativeKeyBindings) {\n this._addKeyBinding(\n eventString, this._imperativeKeyBindings[eventString]);\n }\n\n // Give precedence to combos with modifiers to be checked first.\n for (var eventName in this._keyBindings) {\n this._keyBindings[eventName].sort(function(kb1, kb2) {\n var b1 = kb1[0].hasModifiers;\n var b2 = kb2[0].hasModifiers;\n return (b1 === b2) ? 0 : b1 ? -1 : 1;\n })\n }\n },\n\n _addKeyBinding: function(eventString, handlerName) {\n parseEventString(eventString).forEach(function(keyCombo) {\n this._keyBindings[keyCombo.event] =\n this._keyBindings[keyCombo.event] || [];\n\n this._keyBindings[keyCombo.event].push([keyCombo, handlerName]);\n }, this);\n },\n\n _resetKeyEventListeners: function() {\n this._unlistenKeyEventListeners();\n\n if (this.isAttached) {\n this._listenKeyEventListeners();\n }\n },\n\n _listenKeyEventListeners: function() {\n if (!this.keyEventTarget) {\n return;\n }\n Object.keys(this._keyBindings).forEach(function(eventName) {\n var keyBindings = this._keyBindings[eventName];\n var boundKeyHandler = this._onKeyBindingEvent.bind(this, keyBindings);\n\n this._boundKeyHandlers.push(\n [this.keyEventTarget, eventName, boundKeyHandler]);\n\n this.keyEventTarget.addEventListener(eventName, boundKeyHandler);\n }, this);\n },\n\n _unlistenKeyEventListeners: function() {\n var keyHandlerTuple;\n var keyEventTarget;\n var eventName;\n var boundKeyHandler;\n\n while (this._boundKeyHandlers.length) {\n // My kingdom for block-scope binding and destructuring assignment..\n keyHandlerTuple = this._boundKeyHandlers.pop();\n keyEventTarget = keyHandlerTuple[0];\n eventName = keyHandlerTuple[1];\n boundKeyHandler = keyHandlerTuple[2];\n\n keyEventTarget.removeEventListener(eventName, boundKeyHandler);\n }\n },\n\n _onKeyBindingEvent: function(keyBindings, event) {\n if (this.stopKeyboardEventPropagation) {\n event.stopPropagation();\n }\n\n // if event has been already prevented, don't do anything\n if (event.defaultPrevented) {\n return;\n }\n\n for (var i = 0; i < keyBindings.length; i++) {\n var keyCombo = keyBindings[i][0];\n var handlerName = keyBindings[i][1];\n if (keyComboMatchesEvent(keyCombo, event)) {\n this._triggerKeyHandler(keyCombo, handlerName, event);\n // exit the loop if eventDefault was prevented\n if (event.defaultPrevented) {\n return;\n }\n }\n }\n },\n\n _triggerKeyHandler: function(keyCombo, handlerName, keyboardEvent) {\n var detail = Object.create(keyCombo);\n detail.keyboardEvent = keyboardEvent;\n var event =\n new CustomEvent(keyCombo.event, {detail: detail, cancelable: true});\n this[handlerName].call(this, event);\n if (event.defaultPrevented) {\n keyboardEvent.preventDefault();\n }\n }\n};\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\ninterface MaybePolyfilledCe extends CustomElementRegistry {\n readonly polyfillWrapFlushCallback?: object;\n}\n\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n (window.customElements as MaybePolyfilledCe).polyfillWrapFlushCallback !==\n undefined;\n\n/**\n * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive),\n * into another container (could be the same container), before `before`. If\n * `before` is null, it appends the nodes to the container.\n */\nexport const reparentNodes =\n (container: Node,\n start: Node|null,\n end: Node|null = null,\n before: Node|null = null): void => {\n while (start !== end) {\n const n = start!.nextSibling;\n container.insertBefore(start!, before);\n start = n;\n }\n };\n\n/**\n * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from\n * `container`.\n */\nexport const removeNodes =\n (container: Node, start: Node|null, end: Node|null = null): void => {\n while (start !== end) {\n const n = start!.nextSibling;\n container.removeChild(start!);\n start = n;\n }\n };\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n/*\nTypographic styles are provided matching the Material Design standard styles:\nhttp://www.google.com/design/spec/style/typography.html#typography-standard-styles\n\nNote that these are English/Latin centric styles. You may need to further adjust\nline heights and weights for CJK typesetting. See the notes in the Material\nDesign typography section.\n*/\n\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/font-roboto/roboto.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\n\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n\n \n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\n`iron-a11y-announcer` is a singleton element that is intended to add a11y\nto features that require on-demand announcement from screen readers. In\norder to make use of the announcer, it is best to request its availability\nin the announcing element.\n\nExample:\n\n Polymer({\n\n is: 'x-chatty',\n\n attached: function() {\n // This will create the singleton element if it has not\n // been created yet:\n Polymer.IronA11yAnnouncer.requestAvailability();\n }\n });\n\nAfter the `iron-a11y-announcer` has been made available, elements can\nmake announces by firing bubbling `iron-announce` events.\n\nExample:\n\n this.fire('iron-announce', {\n text: 'This is an announcement!'\n }, { bubbles: true });\n\nNote: announcements are only audible if you have a screen reader enabled.\n\n@group Iron Elements\n@demo demo/index.html\n*/\nexport const IronA11yAnnouncer = Polymer({\n _template: html`\n \n
    [[_text]]
    \n`,\n\n is: 'iron-a11y-announcer',\n\n properties: {\n\n /**\n * The value of mode is used to set the `aria-live` attribute\n * for the element that will be announced. Valid values are: `off`,\n * `polite` and `assertive`.\n */\n mode: {type: String, value: 'polite'},\n\n _text: {type: String, value: ''}\n },\n\n created: function() {\n if (!IronA11yAnnouncer.instance) {\n IronA11yAnnouncer.instance = this;\n }\n\n document.body.addEventListener(\n 'iron-announce', this._onIronAnnounce.bind(this));\n },\n\n /**\n * Cause a text string to be announced by screen readers.\n *\n * @param {string} text The text that should be announced.\n */\n announce: function(text) {\n this._text = '';\n this.async(function() {\n this._text = text;\n }, 100);\n },\n\n _onIronAnnounce: function(event) {\n if (event.detail && event.detail.text) {\n this.announce(event.detail.text);\n }\n }\n});\n\nIronA11yAnnouncer.instance = null;\n\nIronA11yAnnouncer.requestAvailability = function() {\n if (!IronA11yAnnouncer.instance) {\n IronA11yAnnouncer.instance = document.createElement('iron-a11y-announcer');\n }\n\n document.body.appendChild(IronA11yAnnouncer.instance);\n};\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {IronA11yAnnouncer} from '@polymer/iron-a11y-announcer/iron-a11y-announcer.js';\nimport {IronValidatableBehavior} from '@polymer/iron-validatable-behavior/iron-validatable-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\n`` is a wrapper to a native `` element, that adds two-way\nbinding and prevention of invalid input. To use it, you must distribute a native\n`` yourself. You can continue to use the native `input` as you would\nnormally:\n\n \n \n \n\n \n \n \n\n### Two-way binding\n\nBy default you can only get notified of changes to a native ``'s `value`\ndue to user input:\n\n \n\nThis means that if you imperatively set the value (i.e. `someNativeInput.value =\n'foo'`), no events will be fired and this change cannot be observed.\n\n`iron-input` adds the `bind-value` property that mirrors the native `input`'s\n'`value` property; this property can be used for two-way data binding.\n`bind-value` will notify if it is changed either by user input or by script.\n\n \n \n \n\nNote: this means that if you want to imperatively set the native `input`'s, you\n_must_ set `bind-value` instead, so that the wrapper `iron-input` can be\nnotified.\n\n### Validation\n\n`iron-input` uses the native `input`'s validation. For simplicity, `iron-input`\nhas a `validate()` method (which internally just checks the distributed\n`input`'s validity), which sets an `invalid` attribute that can also be used for\nstyling.\n\nTo validate automatically as you type, you can use the `auto-validate`\nattribute.\n\n`iron-input` also fires an `iron-input-validate` event after `validate()` is\ncalled. You can use it to implement a custom validator:\n\n var CatsOnlyValidator = {\n validate: function(ironInput) {\n var valid = !ironInput.bindValue || ironInput.bindValue === 'cat';\n ironInput.invalid = !valid;\n return valid;\n }\n }\n ironInput.addEventListener('iron-input-validate', function() {\n CatsOnly.validate(input2);\n });\n\nYou can also use an element implementing an\n[`IronValidatorBehavior`](/element/PolymerElements/iron-validatable-behavior).\nThis example can also be found in the demo for this element:\n\n \n \n \n\n### Preventing invalid input\n\nIt may be desirable to only allow users to enter certain characters. You can use\nthe `allowed-pattern` attribute to accomplish this. This feature is separate\nfrom validation, and `allowed-pattern` does not affect how the input is\nvalidated.\n\n // Only allow typing digits, but a valid input has exactly 5 digits.\n \n \n \n\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n \n`,\n\n is: 'iron-input',\n behaviors: [IronValidatableBehavior],\n\n /**\n * Fired whenever `validate()` is called.\n *\n * @event iron-input-validate\n */\n\n properties: {\n\n /**\n * Use this property instead of `value` for two-way data binding, or to\n * set a default value for the input. **Do not** use the distributed\n * input's `value` property to set a default value.\n */\n bindValue: {type: String, value: ''},\n\n /**\n * Computed property that echoes `bindValue` (mostly used for Polymer 1.0\n * backcompatibility, if you were one-way binding to the Polymer 1.0\n * `input is=\"iron-input\"` value attribute).\n */\n value: {type: String, computed: '_computeValue(bindValue)'},\n\n /**\n * Regex-like list of characters allowed as input; all characters not in the\n * list will be rejected. The recommended format should be a list of allowed\n * characters, for example, `[a-zA-Z0-9.+-!;:]`.\n *\n * This pattern represents the allowed characters for the field; as the user\n * inputs text, each individual character will be checked against the\n * pattern (rather than checking the entire value as a whole). If a\n * character is not a match, it will be rejected.\n *\n * Pasted input will have each character checked individually; if any\n * character doesn't match `allowedPattern`, the entire pasted string will\n * be rejected.\n *\n * Note: if you were using `iron-input` in 1.0, you were also required to\n * set `prevent-invalid-input`. This is no longer needed as of Polymer 2.0,\n * and will be set automatically for you if an `allowedPattern` is provided.\n *\n */\n allowedPattern: {type: String},\n\n /**\n * Set to true to auto-validate the input value as you type.\n */\n autoValidate: {type: Boolean, value: false},\n\n /**\n * The native input element.\n */\n _inputElement: Object,\n },\n\n observers: ['_bindValueChanged(bindValue, _inputElement)'],\n listeners: {'input': '_onInput', 'keypress': '_onKeypress'},\n\n created: function() {\n IronA11yAnnouncer.requestAvailability();\n this._previousValidInput = '';\n this._patternAlreadyChecked = false;\n },\n\n attached: function() {\n // If the input is added at a later time, update the internal reference.\n this._observer = dom(this).observeNodes(function(info) {\n this._initSlottedInput();\n }.bind(this));\n },\n\n detached: function() {\n if (this._observer) {\n dom(this).unobserveNodes(this._observer);\n this._observer = null;\n }\n },\n\n /**\n * Returns the distributed input element.\n */\n get inputElement() {\n return this._inputElement;\n },\n\n _initSlottedInput: function() {\n this._inputElement = this.getEffectiveChildren()[0];\n\n if (this.inputElement && this.inputElement.value) {\n this.bindValue = this.inputElement.value;\n }\n\n this.fire('iron-input-ready');\n },\n\n get _patternRegExp() {\n var pattern;\n if (this.allowedPattern) {\n pattern = new RegExp(this.allowedPattern);\n } else {\n switch (this.inputElement.type) {\n case 'number':\n pattern = /[0-9.,e-]/;\n break;\n }\n }\n return pattern;\n },\n\n /**\n * @suppress {checkTypes}\n */\n _bindValueChanged: function(bindValue, inputElement) {\n // The observer could have run before attached() when we have actually\n // initialized this property.\n if (!inputElement) {\n return;\n }\n\n if (bindValue === undefined) {\n inputElement.value = null;\n } else if (bindValue !== inputElement.value) {\n this.inputElement.value = bindValue;\n }\n\n if (this.autoValidate) {\n this.validate();\n }\n\n // manually notify because we don't want to notify until after setting value\n this.fire('bind-value-changed', {value: bindValue});\n },\n\n _onInput: function() {\n // Need to validate each of the characters pasted if they haven't\n // been validated inside `_onKeypress` already.\n if (this.allowedPattern && !this._patternAlreadyChecked) {\n var valid = this._checkPatternValidity();\n if (!valid) {\n this._announceInvalidCharacter(\n 'Invalid string of characters not entered.');\n this.inputElement.value = this._previousValidInput;\n }\n }\n this.bindValue = this._previousValidInput = this.inputElement.value;\n this._patternAlreadyChecked = false;\n },\n\n _isPrintable: function(event) {\n // What a control/printable character is varies wildly based on the browser.\n // - most control characters (arrows, backspace) do not send a `keypress`\n // event\n // in Chrome, but the *do* on Firefox\n // - in Firefox, when they do send a `keypress` event, control chars have\n // a charCode = 0, keyCode = xx (for ex. 40 for down arrow)\n // - printable characters always send a keypress event.\n // - in Firefox, printable chars always have a keyCode = 0. In Chrome, the\n // keyCode\n // always matches the charCode.\n // None of this makes any sense.\n\n // For these keys, ASCII code == browser keycode.\n var anyNonPrintable = (event.keyCode == 8) || // backspace\n (event.keyCode == 9) || // tab\n (event.keyCode == 13) || // enter\n (event.keyCode == 27); // escape\n\n // For these keys, make sure it's a browser keycode and not an ASCII code.\n var mozNonPrintable = (event.keyCode == 19) || // pause\n (event.keyCode == 20) || // caps lock\n (event.keyCode == 45) || // insert\n (event.keyCode == 46) || // delete\n (event.keyCode == 144) || // num lock\n (event.keyCode == 145) || // scroll lock\n (event.keyCode > 32 &&\n event.keyCode < 41) || // page up/down, end, home, arrows\n (event.keyCode > 111 && event.keyCode < 124); // fn keys\n\n return !anyNonPrintable && !(event.charCode == 0 && mozNonPrintable);\n },\n\n _onKeypress: function(event) {\n if (!this.allowedPattern && this.inputElement.type !== 'number') {\n return;\n }\n var regexp = this._patternRegExp;\n if (!regexp) {\n return;\n }\n\n // Handle special keys and backspace\n if (event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n // Check the pattern either here or in `_onInput`, but not in both.\n this._patternAlreadyChecked = true;\n\n var thisChar = String.fromCharCode(event.charCode);\n if (this._isPrintable(event) && !regexp.test(thisChar)) {\n event.preventDefault();\n this._announceInvalidCharacter(\n 'Invalid character ' + thisChar + ' not entered.');\n }\n },\n\n _checkPatternValidity: function() {\n var regexp = this._patternRegExp;\n if (!regexp) {\n return true;\n }\n for (var i = 0; i < this.inputElement.value.length; i++) {\n if (!regexp.test(this.inputElement.value[i])) {\n return false;\n }\n }\n return true;\n },\n\n /**\n * Returns true if `value` is valid. The validator provided in `validator`\n * will be used first, then any constraints.\n * @return {boolean} True if the value is valid.\n */\n validate: function() {\n if (!this.inputElement) {\n this.invalid = false;\n return true;\n }\n\n // Use the nested input's native validity.\n var valid = this.inputElement.checkValidity();\n\n // Only do extra checking if the browser thought this was valid.\n if (valid) {\n // Empty, required input is invalid\n if (this.required && this.bindValue === '') {\n valid = false;\n } else if (this.hasValidator()) {\n valid = IronValidatableBehavior.validate.call(this, this.bindValue);\n }\n }\n\n this.invalid = !valid;\n this.fire('iron-input-validate');\n return valid;\n },\n\n _announceInvalidCharacter: function(message) {\n this.fire('iron-announce', {text: message});\n },\n\n _computeValue: function(bindValue) {\n return bindValue;\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\n/**\n * Use `Polymer.PaperInputAddonBehavior` to implement an add-on for\n * ``. A add-on appears below the input, and may display\n * information based on the input value and validity such as a character counter\n * or an error message.\n * @polymerBehavior\n */\nexport const PaperInputAddonBehavior = {\n attached: function() {\n this.fire('addon-attached');\n },\n\n /**\n * The function called by `` when the input value or\n * validity changes.\n * @param {{\n * invalid: boolean,\n * inputElement: (Element|undefined),\n * value: (string|undefined)\n * }} state -\n * inputElement: The input element.\n * value: The input value.\n * invalid: True if the input value is invalid.\n */\n update: function(state) {}\n\n};\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/paper-styles/typography.js';\n\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\nimport {PaperInputAddonBehavior} from './paper-input-addon-behavior.js';\n\n/*\n`` is a character counter for use with\n``. It shows the number of characters entered in the\ninput and the max length if it is specified.\n\n \n \n \n \n\n### Styling\n\nThe following mixin is available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-input-char-counter` | Mixin applied to the element | `{}`\n*/\nPolymer({\n _template: html`\n \n\n [[_charCounterStr]]\n`,\n\n is: 'paper-input-char-counter',\n behaviors: [PaperInputAddonBehavior],\n properties: {_charCounterStr: {type: String, value: '0'}},\n\n /**\n * This overrides the update function in PaperInputAddonBehavior.\n * @param {{\n * inputElement: (Element|undefined),\n * value: (string|undefined),\n * invalid: boolean\n * }} state -\n * inputElement: The input element.\n * value: The input value.\n * invalid: True if the input value is invalid.\n */\n update: function(state) {\n if (!state.inputElement) {\n return;\n }\n\n state.value = state.value || '';\n\n var counter = state.value.toString().length.toString();\n\n if (state.inputElement.hasAttribute('maxlength')) {\n counter += '/' + state.inputElement.getAttribute('maxlength');\n }\n\n this._charCounterStr = counter;\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport '@polymer/paper-styles/typography.js';\n\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\nimport {dashToCamelCase} from '@polymer/polymer/lib/utils/case-map.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\nconst template = html`\n\n \n\n`;\ntemplate.setAttribute('style', 'display: none;');\ndocument.head.appendChild(template.content);\n\n/*\n`` is a container for a `
    \n'],['\n \n\n \x3c!-- the mirror sizes the input/textarea so it grows with typing --\x3e\n \x3c!-- use   instead   of to allow this element to be used in XHTML --\x3e\n \n\n \x3c!-- size the input/textarea with a div, because the textarea has intrinsic size in ff --\x3e\n
    \n \n
    \n']);return u=function(){return t},t}Object(s.a)({_template:Object(o.a)(u()),is:"iron-autogrow-textarea",behaviors:[r.a,n.a],properties:{value:{observer:"_valueChanged",type:String,notify:!0},bindValue:{observer:"_bindValueChanged",type:String,notify:!0},rows:{type:Number,value:1,observer:"_updateCached"},maxRows:{type:Number,value:0,observer:"_updateCached"},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,value:!1},inputmode:{type:String},placeholder:{type:String},readonly:{type:String},required:{type:Boolean},minlength:{type:Number},maxlength:{type:Number},label:{type:String}},listeners:{input:"_onInput"},get textarea(){return this.$.textarea},get selectionStart(){return this.$.textarea.selectionStart},get selectionEnd(){return this.$.textarea.selectionEnd},set selectionStart(t){this.$.textarea.selectionStart=t},set selectionEnd(t){this.$.textarea.selectionEnd=t},attached:function(){navigator.userAgent.match(/iP(?:[oa]d|hone)/)&&(this.$.textarea.style.marginLeft="-3px")},validate:function(){var t=this.$.textarea.validity.valid;return t&&(this.required&&""===this.value?t=!1:this.hasValidator()&&(t=r.a.validate.call(this,this.value))),this.invalid=!t,this.fire("iron-input-validate"),t},_bindValueChanged:function(t){this.value=t},_valueChanged:function(t){var e=this.textarea;e&&(e.value!==t&&(e.value=t||0===t?t:""),this.bindValue=t,this.$.mirror.innerHTML=this._valueForMirror(),this.fire("bind-value-changed",{value:this.bindValue}))},_onInput:function(t){var e=Object(a.a)(t).path;this.value=e?e[0].value:t.target.value},_constrain:function(t){var e;for(t=t||[""],e=this.maxRows>0&&t.length>this.maxRows?t.slice(0,this.maxRows):t.slice(0);this.rows>0&&e.length")+" "},_valueForMirror:function(){var t=this.textarea;if(t)return this.tokens=t&&t.value?t.value.replace(/&/gm,"&").replace(/"/gm,""").replace(/'/gm,"'").replace(//gm,">").split("\n"):[""],this._constrain(this.tokens)},_updateCached:function(){this.$.mirror.innerHTML=this._constrain(this.tokens)}})},function(t,e,i){"use strict";var n=i(140);t.exports=n},function(t,e,i){"use strict";var n=i(141),r=i(165);function s(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}t.exports.Type=i(14),t.exports.Schema=i(39),t.exports.FAILSAFE_SCHEMA=i(86),t.exports.JSON_SCHEMA=i(121),t.exports.CORE_SCHEMA=i(120),t.exports.DEFAULT_SAFE_SCHEMA=i(52),t.exports.DEFAULT_FULL_SCHEMA=i(68),t.exports.load=n.load,t.exports.loadAll=n.loadAll,t.exports.safeLoad=n.safeLoad,t.exports.safeLoadAll=n.safeLoadAll,t.exports.dump=r.dump,t.exports.safeDump=r.safeDump,t.exports.YAMLException=i(51),t.exports.MINIMAL_SCHEMA=i(86),t.exports.SAFE_SCHEMA=i(52),t.exports.DEFAULT_SCHEMA=i(68),t.exports.scan=s("scan"),t.exports.parse=s("parse"),t.exports.compose=s("compose"),t.exports.addConstructor=s("addConstructor")},function(t,e,i){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r=i(38),s=i(51),a=i(142),o=i(52),u=i(68),h=Object.prototype.hasOwnProperty,c=1,l=2,p=3,f=4,d=1,m=2,y=3,x=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/[\x85\u2028\u2029]/,v=/[,\[\]\{\}]/,D=/^(?:!|!!|![a-z\-]+!)$/i,E=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function A(t){return Object.prototype.toString.call(t)}function C(t){return 10===t||13===t}function b(t){return 9===t||32===t}function w(t){return 9===t||32===t||10===t||13===t}function S(t){return 44===t||91===t||93===t||123===t||125===t}function F(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function k(t){return 48===t?"\0":97===t?"":98===t?"\b":116===t?"\t":9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"…":95===t?" ":76===t?"\u2028":80===t?"\u2029":""}function _(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var T=new Array(256),B=new Array(256),N=0;N<256;N++)T[N]=k(N)?1:0,B[N]=k(N);function P(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||u,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function I(t,e){return new s(e,new a(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function M(t,e){throw I(t,e)}function O(t,e){t.onWarning&&t.onWarning.call(null,I(t,e))}var R={YAML:function(t,e,i){var n,r,s;null!==t.version&&M(t,"duplication of %YAML directive"),1!==i.length&&M(t,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&M(t,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),s=parseInt(n[2],10),1!==r&&M(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=s<2,1!==s&&2!==s&&O(t,"unsupported YAML version of the document")},TAG:function(t,e,i){var n,r;2!==i.length&&M(t,"TAG directive accepts exactly two arguments"),n=i[0],r=i[1],D.test(n)||M(t,"ill-formed tag handle (first argument) of the TAG directive"),h.call(t.tagMap,n)&&M(t,'there is a previously declared suffix for "'+n+'" tag handle'),E.test(r)||M(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[n]=r}};function L(t,e,i,n){var r,s,a,o;if(e1&&(t.result+=r.repeat("\n",e-1))}function H(t,e){var i,n,r=t.tag,s=t.anchor,a=[],o=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),n=t.input.charCodeAt(t.position);0!==n&&45===n&&w(t.input.charCodeAt(t.position+1));)if(o=!0,t.position++,j(t,!0,-1)&&t.lineIndent<=e)a.push(null),n=t.input.charCodeAt(t.position);else if(i=t.line,q(t,e,p,!1,!0),a.push(t.result),j(t,!0,-1),n=t.input.charCodeAt(t.position),(t.line===i||t.lineIndent>e)&&0!==n)M(t,"bad indentation of a sequence entry");else if(t.lineIndente?A=1:t.lineIndent===e?A=0:t.lineIndente?A=1:t.lineIndent===e?A=0:t.lineIndente)&&(q(t,e,f,!0,r)&&(x?m=t.result:y=t.result),x||(z(t,c,p,d,m,y,s,a),d=m=y=null),j(t,!0,-1),o=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==o)M(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===s?M(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?M(t,"repeat of an indentation width identifier"):(l=e+s-1,c=!0)}if(b(a)){do{a=t.input.charCodeAt(++t.position)}while(b(a));if(35===a)do{a=t.input.charCodeAt(++t.position)}while(!C(a)&&0!==a)}for(;0!==a;){for(X(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!c||t.lineIndentl&&(l=t.lineIndent),C(a))p++;else{if(t.lineIndent0){for(r=a,s=0;r>0;r--)(a=F(o=t.input.charCodeAt(++t.position)))>=0?s=(s<<4)+a:M(t,"expected hexadecimal character");t.result+=_(s),t.position++}else M(t,"unknown escape sequence");i=n=t.position}else C(o)?(L(t,i,n,!0),K(t,j(t,!1,e)),i=n=t.position):t.position===t.lineStart&&J(t)?M(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}M(t,"unexpected end of the stream within a double quoted scalar")}(t,D)?N=!0:!function(t){var e,i,n;if(42!==(n=t.input.charCodeAt(t.position)))return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!w(n)&&!S(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&M(t,"name of an alias node must contain at least one character"),i=t.input.slice(e,t.position),t.anchorMap.hasOwnProperty(i)||M(t,'unidentified alias "'+i+'"'),t.result=t.anchorMap[i],j(t,!0,-1),!0}(t)?function(t,e,i){var n,r,s,a,o,u,h,c,l=t.kind,p=t.result;if(w(c=t.input.charCodeAt(t.position))||S(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c)return!1;if((63===c||45===c)&&(w(n=t.input.charCodeAt(t.position+1))||i&&S(n)))return!1;for(t.kind="scalar",t.result="",r=s=t.position,a=!1;0!==c;){if(58===c){if(w(n=t.input.charCodeAt(t.position+1))||i&&S(n))break}else if(35===c){if(w(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&J(t)||i&&S(c))break;if(C(c)){if(o=t.line,u=t.lineStart,h=t.lineIndent,j(t,!1,-1),t.lineIndent>=e){a=!0,c=t.input.charCodeAt(t.position);continue}t.position=s,t.line=o,t.lineStart=u,t.lineIndent=h;break}}a&&(L(t,r,s,!1),K(t,t.line-o),r=s=t.position,a=!1),b(c)||(s=t.position+1),c=t.input.charCodeAt(++t.position)}return L(t,r,s,!1),!!t.result||(t.kind=l,t.result=p,!1)}(t,D,c===i)&&(N=!0,null===t.tag&&(t.tag="?")):(N=!0,null===t.tag&&null===t.anchor||M(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===A&&(N=u&&H(t,E))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(x=0,g=t.implicitTypes.length;x tag; it should be "'+v.kind+'", not "'+t.kind+'"'),v.resolve(t.result)?(t.result=v.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):M(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):M(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||N}function G(t){var e,i,n,r,s=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(r=t.input.charCodeAt(t.position))&&(j(t,!0,-1),r=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==r));){for(a=!0,r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!w(r);)r=t.input.charCodeAt(++t.position);for(n=[],(i=t.input.slice(e,t.position)).length<1&&M(t,"directive name must not be less than one character in length");0!==r;){for(;b(r);)r=t.input.charCodeAt(++t.position);if(35===r){do{r=t.input.charCodeAt(++t.position)}while(0!==r&&!C(r));break}if(C(r))break;for(e=t.position;0!==r&&!w(r);)r=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==r&&X(t),h.call(R,i)?R[i](t,i,n):O(t,'unknown document directive "'+i+'"')}j(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,j(t,!0,-1)):a&&M(t,"directives end mark is expected"),q(t,t.lineIndent-1,f,!1,!0),j(t,!0,-1),t.checkLineBreaks&&g.test(t.input.slice(s,t.position))&&O(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&J(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,j(t,!0,-1)):t.position0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(r-1));)if(r-=1,this.position-r>e/2-1){i=" ... ",r+=5;break}for(s="",a=this.position;ae/2-1){s=" ... ",a-=5;break}return o=this.buffer.slice(r,a),n.repeat(" ",t)+i+o+s+"\n"+n.repeat(" ",t+this.position-r+i.length)+"^"},r.prototype.toString=function(t){var e,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(i+=":\n"+e),i},t.exports=r},function(t,e,i){"use strict";var n=i(14);t.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}})},function(t,e,i){"use strict";var n=i(14);t.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}})},function(t,e,i){"use strict";var n=i(14);t.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})},function(t,e,i){"use strict";var n=i(14);t.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)},construct:function(){return null},predicate:function(t){return null===t},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(t,e,i){"use strict";var n=i(14);t.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)},construct:function(t){return"true"===t||"True"===t||"TRUE"===t},predicate:function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})},function(t,e,i){"use strict";var n=i(38),r=i(14);function s(t){return 48<=t&&t<=55}function a(t){return 48<=t&&t<=57}t.exports=new r("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,n=t.length,r=0,o=!1;if(!n)return!1;if("-"!==(e=t[r])&&"+"!==e||(e=t[++r]),"0"===e){if(r+1===n)return!0;if("b"===(e=t[++r])){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(t,e,i){"use strict";var n=i(38),r=i(14),s=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;t.exports=new r("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!s.test(t)||"_"===t[t.length-1])},construct:function(t){var e,i,n,r;return i="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(t){r.unshift(parseFloat(t,10))}),e=0,n=1,r.forEach(function(t){e+=t*n,n*=60}),i*e):i*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||n.isNegativeZero(t))},represent:function(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(t))return"-0.0";return i=t.toString(10),a.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"})},function(t,e,i){"use strict";var n=i(14),r=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");t.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==r.exec(t)||null!==s.exec(t))},construct:function(t){var e,i,n,a,o,u,h,c,l=0,p=null;if(null===(e=r.exec(t))&&(e=s.exec(t)),null===e)throw new Error("Date resolve error");if(i=+e[1],n=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(i,n,a));if(o=+e[4],u=+e[5],h=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(p=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(p=-p)),c=new Date(Date.UTC(i,n,a,o,u,h,l)),p&&c.setTime(c.getTime()-p),c},instanceOf:Date,represent:function(t){return t.toISOString()}})},function(t,e,i){"use strict";var n=i(14);t.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}})},function(t,e,i){"use strict";var n;try{n=i(153).Buffer}catch(a){}var r=i(14),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new r("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,i,n=0,r=t.length,a=s;for(i=0;i64)){if(e<0)return!1;n+=6}return n%8==0},construct:function(t){var e,i,r=t.replace(/[\r\n=]/g,""),a=r.length,o=s,u=0,h=[];for(e=0;e>16&255),h.push(u>>8&255),h.push(255&u)),u=u<<6|o.indexOf(r.charAt(e));return 0==(i=a%4*6)?(h.push(u>>16&255),h.push(u>>8&255),h.push(255&u)):18===i?(h.push(u>>10&255),h.push(u>>2&255)):12===i&&h.push(u>>4&255),n?n.from?n.from(h):new n(h):h},predicate:function(t){return n&&n.isBuffer(t)},represent:function(t){var e,i,n="",r=0,a=t.length,o=s;for(e=0;e>18&63],n+=o[r>>12&63],n+=o[r>>6&63],n+=o[63&r]),r=(r<<8)+t[e];return 0==(i=a%3)?(n+=o[r>>18&63],n+=o[r>>12&63],n+=o[r>>6&63],n+=o[63&r]):2===i?(n+=o[r>>10&63],n+=o[r>>4&63],n+=o[r<<2&63],n+=o[64]):1===i&&(n+=o[r>>2&63],n+=o[r<<4&63],n+=o[64],n+=o[64]),n}})},function(t,e,i){"use strict";(function(t){var n=i(155),r=i(156),s=i(157);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(t,e){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var i=t.length;if(0===i)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return z(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return X(t).length;default:if(n)return z(t).length;e=(""+e).toLowerCase(),n=!0}}function m(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function y(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:x(t,e,i,n,r);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):x(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function x(t,e,i,n,r){var s,a=1,o=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,o/=2,u/=2,i/=2}function h(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var c=-1;for(s=i;so&&(i=o-u),s=i;s>=0;s--){for(var l=!0,p=0;pr&&(n=r):n=r;var s=e.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var a=0;a>8,r=i%256,s.push(r),s.push(n);return s}(e,t.length-i),t,i,n)}function b(t,e,i){return 0===e&&i===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,i))}function w(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r239?4:h>223?3:h>191?2:1;if(r+l<=i)switch(l){case 1:h<128&&(c=h);break;case 2:128==(192&(s=t[r+1]))&&(u=(31&h)<<6|63&s)>127&&(c=u);break;case 3:s=t[r+1],a=t[r+2],128==(192&s)&&128==(192&a)&&(u=(15&h)<<12|(63&s)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:s=t[r+1],a=t[r+2],o=t[r+3],128==(192&s)&&128==(192&a)&&128==(192&o)&&(u=(15&h)<<18|(63&s)<<12|(63&a)<<6|63&o)>65535&&u<1114112&&(c=u)}null===c?(c=65533,l=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),r+=l}return function(t){var e=t.length;if(e<=S)return String.fromCharCode.apply(String,t);var i="",n=0;for(;nthis.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return _(this,e,i);case"utf8":case"utf-8":return w(this,e,i);case"ascii":return F(this,e,i);case"latin1":case"binary":return k(this,e,i);case"base64":return b(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",i=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(t+=" ... ")),""},u.prototype.compare=function(t,e,i,n,r){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(e>>>=0),o=Math.min(s,a),h=this.slice(n,r),c=t.slice(e,i),l=0;lr)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return g(this,t,e,i);case"utf8":case"utf-8":return v(this,t,e,i);case"ascii":return D(this,t,e,i);case"latin1":case"binary":return E(this,t,e,i);case"base64":return A(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var S=4096;function F(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;rn)&&(i=n);for(var r="",s=e;si)throw new RangeError("Trying to access beyond buffer length")}function N(t,e,i,n,r,s){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||et.length)throw new RangeError("Index out of range")}function P(t,e,i,n){e<0&&(e=65535+e+1);for(var r=0,s=Math.min(t.length-i,2);r>>8*(n?r:1-r)}function I(t,e,i,n){e<0&&(e=4294967295+e+1);for(var r=0,s=Math.min(t.length-i,4);r>>8*(n?r:3-r)&255}function M(t,e,i,n,r,s){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function O(t,e,i,n,s){return s||M(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function R(t,e,i,n,s){return s||M(t,0,i,8),r.write(t,e,i,n,52,8),i+8}u.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(r*=256);)n+=this[t+--e]*r;return n},u.prototype.readUInt8=function(t,e){return e||B(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||B(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||B(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||B(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||B(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,i){t|=0,e|=0,i||B(t,e,this.length);for(var n=this[t],r=1,s=0;++s=(r*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,i){t|=0,e|=0,i||B(t,e,this.length);for(var n=e,r=1,s=this[t+--n];n>0&&(r*=256);)s+=this[t+--n]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*e)),s},u.prototype.readInt8=function(t,e){return e||B(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||B(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},u.prototype.readInt16BE=function(t,e){e||B(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},u.prototype.readInt32LE=function(t,e){return e||B(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||B(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||B(t,4,this.length),r.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||B(t,4,this.length),r.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||B(t,8,this.length),r.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||B(t,8,this.length),r.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,i,n){(t=+t,e|=0,i|=0,n)||N(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,s=0;for(this[e]=255&t;++s=0&&(s*=256);)this[e+r]=t/s&255;return e+i},u.prototype.writeUInt8=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):P(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):P(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):I(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):I(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e|=0,!n){var r=Math.pow(2,8*i-1);N(this,t,e,i,r-1,-r)}var s=0,a=1,o=0;for(this[e]=255&t;++s>0)-o&255;return e+i},u.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e|=0,!n){var r=Math.pow(2,8*i-1);N(this,t,e,i,r-1,-r)}var s=i-1,a=1,o=0;for(this[e+s]=255&t;--s>=0&&(a*=256);)t<0&&0===o&&0!==this[e+s+1]&&(o=1),this[e+s]=(t/a>>0)-o&255;return e+i},u.prototype.writeInt8=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):P(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):P(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):I(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):I(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,i){return O(this,t,e,!0,i)},u.prototype.writeFloatBE=function(t,e,i){return O(this,t,e,!1,i)},u.prototype.writeDoubleLE=function(t,e,i){return R(this,t,e,!0,i)},u.prototype.writeDoubleBE=function(t,e,i){return R(this,t,e,!1,i)},u.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--r)t[r+e]=this[r+i];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function X(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(L,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function j(t,e,i,n){for(var r=0;r=e.length||r>=t.length);++r)e[r+i]=t[r];return r}}).call(this,i(154))},function(t,e){function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===("undefined"==typeof window?"undefined":i(window))&&(n=window)}t.exports=n},function(t,e,i){"use strict";e.byteLength=function(t){var e=h(t),i=e[0],n=e[1];return 3*(i+n)/4-n},e.toByteArray=function(t){for(var e,i=h(t),n=i[0],a=i[1],o=new s(function(t,e,i){return 3*(e+i)/4-i}(0,n,a)),u=0,c=a>0?n-4:n,l=0;l>16&255,o[u++]=e>>8&255,o[u++]=255&e;2===a&&(e=r[t.charCodeAt(l)]<<2|r[t.charCodeAt(l+1)]>>4,o[u++]=255&e);1===a&&(e=r[t.charCodeAt(l)]<<10|r[t.charCodeAt(l+1)]<<4|r[t.charCodeAt(l+2)]>>2,o[u++]=e>>8&255,o[u++]=255&e);return o},e.fromByteArray=function(t){for(var e,i=t.length,r=i%3,s=[],a=0,o=i-r;ao?o:a+16383));1===r?(e=t[i-1],s.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(t[i-2]<<8)+t[i-1],s.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return s.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,u=a.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,i){for(var r,s,a=[],o=e;o>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,i,n,r){var s,a,o=8*r-n-1,u=(1<>1,c=-7,l=i?r-1:0,p=i?-1:1,f=t[e+l];for(l+=p,s=f&(1<<-c)-1,f>>=-c,c+=o;c>0;s=256*s+t[e+l],l+=p,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+t[e+l],l+=p,c-=8);if(0===s)s=1-h;else{if(s===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),s-=h}return(f?-1:1)*a*Math.pow(2,s-n)},e.write=function(t,e,i,n,r,s){var a,o,u,h=8*s-r-1,c=(1<>1,p=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:s-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=c?(o=0,a=c):a+l>=1?(o=(e*u-1)*Math.pow(2,r),a+=l):(o=e*Math.pow(2,l-1)*Math.pow(2,r),a=0));r>=8;t[i+f]=255&o,f+=d,o/=256,r-=8);for(a=a<0;t[i+f]=255&a,f+=d,a/=256,h-=8);t[i+f-d]|=128*m}},function(t,e){var i={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==i.call(t)}},function(t,e,i){"use strict";var n=i(14),r=Object.prototype.hasOwnProperty,s=Object.prototype.toString;t.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,i,n,a,o,u=[],h=t;for(e=0,i=h.length;e3)return!1;if("/"!==e[e.length-n.length-1])return!1}return!0},construct:function(t){var e=t,i=/\/([gim]*)$/.exec(t),n="";return"/"===e[0]&&(i&&(n=i[1]),e=e.slice(1,e.length-n.length-1)),new RegExp(e,n)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}})},function(t,e,i){"use strict";var n;try{n=i(164)}catch(s){"undefined"!=typeof window&&(n=window.esprima)}var r=i(14);t.exports=new r("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",i=n.parse(e,{range:!0});return"Program"===i.type&&1===i.body.length&&"ExpressionStatement"===i.body[0].type&&("ArrowFunctionExpression"===i.body[0].expression.type||"FunctionExpression"===i.body[0].expression.type)}catch(r){return!1}},construct:function(t){var e,i="("+t+")",r=n.parse(i,{range:!0}),s=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"ArrowFunctionExpression"!==r.body[0].expression.type&&"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(t){s.push(t.name)}),e=r.body[0].expression.body.range,"BlockStatement"===r.body[0].expression.body.type?new Function(s,i.slice(e[0]+1,e[1]-1)):new Function(s,"return "+i.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}})},function(t,e,i){(function(t){var i,n,r,s;function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}s=function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}return i.m=t,i.c=e,i.p="",i(0)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),r=i(3),s=i(8),a=i(15);function o(t,e,i){var a=null,o=function(t,e){i&&i(t,e),a&&a.visit(t,e)},u="function"==typeof i?o:null,h=!1;if(e){h="boolean"==typeof e.comment&&e.comment;var c="boolean"==typeof e.attachComment&&e.attachComment;(h||c)&&((a=new n.CommentHandler).attach=c,e.comment=!0,u=o)}var l,p=!1;e&&"string"==typeof e.sourceType&&(p="module"===e.sourceType),l=e&&"boolean"==typeof e.jsx&&e.jsx?new r.JSXParser(t,e,u):new s.Parser(t,e,u);var f=p?l.parseModule():l.parseScript();return h&&a&&(f.comments=a.comments),l.config.tokens&&(f.tokens=l.tokens),l.config.tolerant&&(f.errors=l.errorHandler.errors),f}e.parse=o,e.parseModule=function(t,e,i){var n=e||{};return n.sourceType="module",o(t,n,i)},e.parseScript=function(t,e,i){var n=e||{};return n.sourceType="script",o(t,n,i)},e.tokenize=function(t,e,i){var n,r=new a.Tokenizer(t,e);n=[];try{for(;;){var s=r.getNextToken();if(!s)break;i&&(s=i(s)),n.push(s)}}catch(o){r.errorHandler.tolerate(o)}return r.errorHandler.tolerant&&(n.errors=r.errors()),n};var u=i(2);e.Syntax=u.Syntax,e.version="4.0.1"},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2),r=function(){function t(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return t.prototype.insertInnerComments=function(t,e){if(t.type===n.Syntax.BlockStatement&&0===t.body.length){for(var i=[],r=this.leading.length-1;r>=0;--r){var s=this.leading[r];e.end.offset>=s.start&&(i.unshift(s.comment),this.leading.splice(r,1),this.trailing.splice(r,1))}i.length&&(t.innerComments=i)}},t.prototype.findTrailingComments=function(t){var e=[];if(this.trailing.length>0){for(var i=this.trailing.length-1;i>=0;--i){var n=this.trailing[i];n.start>=t.end.offset&&e.unshift(n.comment)}return this.trailing.length=0,e}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var s=r.node.trailingComments[0];s&&s.range[0]>=t.end.offset&&(e=r.node.trailingComments,delete r.node.trailingComments)}return e},t.prototype.findLeadingComments=function(t){for(var e,i=[];this.stack.length>0;){if(!((s=this.stack[this.stack.length-1])&&s.start>=t.start.offset))break;e=s.node,this.stack.pop()}if(e){for(var n=(e.leadingComments?e.leadingComments.length:0)-1;n>=0;--n){var r=e.leadingComments[n];r.range[1]<=t.start.offset&&(i.unshift(r),e.leadingComments.splice(n,1))}return e.leadingComments&&0===e.leadingComments.length&&delete e.leadingComments,i}for(n=this.leading.length-1;n>=0;--n){var s;(s=this.leading[n]).start<=t.start.offset&&(i.unshift(s.comment),this.leading.splice(n,1))}return i},t.prototype.visitNode=function(t,e){if(!(t.type===n.Syntax.Program&&t.body.length>0)){this.insertInnerComments(t,e);var i=this.findTrailingComments(e),r=this.findLeadingComments(e);r.length>0&&(t.leadingComments=r),i.length>0&&(t.trailingComments=i),this.stack.push({node:t,start:e.start.offset})}},t.prototype.visitComment=function(t,e){var i="L"===t.type[0]?"Line":"Block",n={type:i,value:t.value};if(t.range&&(n.range=t.range),t.loc&&(n.loc=t.loc),this.comments.push(n),this.attach){var r={comment:{type:i,value:t.value,range:[e.start.offset,e.end.offset]},start:e.start.offset};t.loc&&(r.comment.loc=t.loc),t.type=i,this.leading.push(r),this.trailing.push(r)}},t.prototype.visit=function(t,e){"LineComment"===t.type?this.visitComment(t,e):"BlockComment"===t.type?this.visitComment(t,e):this.attach&&this.visitNode(t,e)},t}();e.CommentHandler=r},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(t,e,i){"use strict";var n,r=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(e,"__esModule",{value:!0});var s=i(4),a=i(5),o=i(6),u=i(7),h=i(8),c=i(13),l=i(14);function p(t){var e;switch(t.type){case o.JSXSyntax.JSXIdentifier:e=t.name;break;case o.JSXSyntax.JSXNamespacedName:var i=t;e=p(i.namespace)+":"+p(i.name);break;case o.JSXSyntax.JSXMemberExpression:var n=t;e=p(n.object)+"."+p(n.property)}return e}c.TokenName[100]="JSXIdentifier",c.TokenName[101]="JSXText";var f=function(t){function e(e,i,n){return t.call(this,e,i,n)||this}return r(e,t),e.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():t.prototype.parsePrimaryExpression.call(this)},e.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},e.prototype.finishJSX=function(){this.nextToken()},e.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},e.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},e.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},e.prototype.scanXHTMLEntity=function(t){for(var e="&",i=!0,n=!1,r=!1,a=!1;!this.scanner.eof()&&i&&!n;){var o=this.scanner.source[this.scanner.index];if(o===t)break;if(n=";"===o,e+=o,++this.scanner.index,!n)switch(e.length){case 2:r="#"===o;break;case 3:r&&(i=(a="x"===o)||s.Character.isDecimalDigit(o.charCodeAt(0)),r=r&&!a);break;default:i=(i=i&&!(r&&!s.Character.isDecimalDigit(o.charCodeAt(0))))&&!(a&&!s.Character.isHexDigit(o.charCodeAt(0)))}}if(i&&n&&e.length>2){var u=e.substr(1,e.length-2);r&&u.length>1?e=String.fromCharCode(parseInt(u.substr(1),10)):a&&u.length>2?e=String.fromCharCode(parseInt("0"+u.substr(1),16)):r||a||!l.XHTMLEntities[u]||(e=l.XHTMLEntities[u])}return e},e.prototype.lexJSX=function(){var t=this.scanner.source.charCodeAt(this.scanner.index);if(60===t||62===t||47===t||58===t||61===t||123===t||125===t)return{type:7,value:o=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===t||39===t){for(var e=this.scanner.index,i=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof();){if((u=this.scanner.source[this.scanner.index++])===i)break;n+="&"===u?this.scanXHTMLEntity(i):u}return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index}}if(46===t){var r=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),o=46===r&&46===a?"...":".";e=this.scanner.index;return this.scanner.index+=o.length,{type:7,value:o,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index}}if(96===t)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(s.Character.isIdentifierStart(t)&&92!==t){e=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(s.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(e,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index}}return this.scanner.lex()},e.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var t=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(t)),t},e.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var t=this.scanner.index,e="";!this.scanner.eof();){var i=this.scanner.source[this.scanner.index];if("{"===i||"<"===i)break;++this.scanner.index,e+=i,s.Character.isLineTerminator(i.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===i&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:e,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index};return e.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},e.prototype.peekJSXToken=function(){var t=this.scanner.saveState();this.scanner.scanComments();var e=this.lexJSX();return this.scanner.restoreState(t),e},e.prototype.expectJSX=function(t){var e=this.nextJSXToken();7===e.type&&e.value===t||this.throwUnexpectedToken(e)},e.prototype.matchJSX=function(t){var e=this.peekJSXToken();return 7===e.type&&e.value===t},e.prototype.parseJSXIdentifier=function(){var t=this.createJSXNode(),e=this.nextJSXToken();return 100!==e.type&&this.throwUnexpectedToken(e),this.finalize(t,new a.JSXIdentifier(e.value))},e.prototype.parseJSXElementName=function(){var t=this.createJSXNode(),e=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=e;this.expectJSX(":");var n=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(i,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var r=e;this.expectJSX(".");var s=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXMemberExpression(r,s))}return e},e.prototype.parseJSXAttributeName=function(){var t,e=this.createJSXNode(),i=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=i;this.expectJSX(":");var r=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(n,r))}else t=i;return t},e.prototype.parseJSXStringLiteralAttribute=function(){var t=this.createJSXNode(),e=this.nextJSXToken();8!==e.type&&this.throwUnexpectedToken(e);var i=this.getTokenRaw(e);return this.finalize(t,new u.Literal(e.value,i))},e.prototype.parseJSXExpressionAttribute=function(){var t=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var e=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(t,new a.JSXExpressionContainer(e))},e.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},e.prototype.parseJSXNameValueAttribute=function(){var t=this.createJSXNode(),e=this.parseJSXAttributeName(),i=null;return this.matchJSX("=")&&(this.expectJSX("="),i=this.parseJSXAttributeValue()),this.finalize(t,new a.JSXAttribute(e,i))},e.prototype.parseJSXSpreadAttribute=function(){var t=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var e=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(t,new a.JSXSpreadAttribute(e))},e.prototype.parseJSXAttributes=function(){for(var t=[];!this.matchJSX("/")&&!this.matchJSX(">");){var e=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();t.push(e)}return t},e.prototype.parseJSXOpeningElement=function(){var t=this.createJSXNode();this.expectJSX("<");var e=this.parseJSXElementName(),i=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(t,new a.JSXOpeningElement(e,n,i))},e.prototype.parseJSXBoundaryElement=function(){var t=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var e=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(t,new a.JSXClosingElement(e))}var i=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(t,new a.JSXOpeningElement(i,r,n))},e.prototype.parseJSXEmptyExpression=function(){var t=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(t,new a.JSXEmptyExpression)},e.prototype.parseJSXExpressionContainer=function(){var t,e=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new a.JSXExpressionContainer(t))},e.prototype.parseJSXChildren=function(){for(var t=[];!this.scanner.eof();){var e=this.createJSXChildNode(),i=this.nextJSXText();if(i.start0))break;s=this.finalize(t.node,new a.JSXElement(t.opening,t.children,t.closing));(t=e[e.length-1]).children.push(s),e.pop()}}return t},e.prototype.parseJSXElement=function(){var t=this.createJSXNode(),e=this.parseJSXOpeningElement(),i=[],n=null;if(!e.selfClosing){var r=this.parseComplexJSXElement({node:t,opening:e,closing:n,children:i});i=r.children,n=r.closing}return this.finalize(t,new a.JSXElement(e,i,n))},e.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var t=this.parseJSXElement();return this.finishJSX(),t},e.prototype.isStartOfExpression=function(){return t.prototype.isStartOfExpression.call(this)||this.match("<")},e}(h.Parser);e.JSXParser=f},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};e.Character={fromCodePoint:function(t){return t<65536?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10))+String.fromCharCode(56320+(t-65536&1023))},isWhiteSpace:function(t){return 32===t||9===t||11===t||12===t||160===t||t>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0},isLineTerminator:function(t){return 10===t||13===t||8232===t||8233===t},isIdentifierStart:function(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||92===t||t>=128&&i.NonAsciiIdentifierStart.test(e.Character.fromCodePoint(t))},isIdentifierPart:function(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||92===t||t>=128&&i.NonAsciiIdentifierPart.test(e.Character.fromCodePoint(t))},isDecimalDigit:function(t){return t>=48&&t<=57},isHexDigit:function(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102},isOctalDigit:function(t){return t>=48&&t<=55}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),r=function(){return function(t){this.type=n.JSXSyntax.JSXClosingElement,this.name=t}}();e.JSXClosingElement=r;var s=function(){return function(t,e,i){this.type=n.JSXSyntax.JSXElement,this.openingElement=t,this.children=e,this.closingElement=i}}();e.JSXElement=s;var a=function(){return function(){this.type=n.JSXSyntax.JSXEmptyExpression}}();e.JSXEmptyExpression=a;var o=function(){return function(t){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=t}}();e.JSXExpressionContainer=o;var u=function(){return function(t){this.type=n.JSXSyntax.JSXIdentifier,this.name=t}}();e.JSXIdentifier=u;var h=function(){return function(t,e){this.type=n.JSXSyntax.JSXMemberExpression,this.object=t,this.property=e}}();e.JSXMemberExpression=h;var c=function(){return function(t,e){this.type=n.JSXSyntax.JSXAttribute,this.name=t,this.value=e}}();e.JSXAttribute=c;var l=function(){return function(t,e){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=t,this.name=e}}();e.JSXNamespacedName=l;var p=function(){return function(t,e,i){this.type=n.JSXSyntax.JSXOpeningElement,this.name=t,this.selfClosing=e,this.attributes=i}}();e.JSXOpeningElement=p;var f=function(){return function(t){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=t}}();e.JSXSpreadAttribute=f;var d=function(){return function(t,e){this.type=n.JSXSyntax.JSXText,this.value=t,this.raw=e}}();e.JSXText=d},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2),r=function(){return function(t){this.type=n.Syntax.ArrayExpression,this.elements=t}}();e.ArrayExpression=r;var s=function(){return function(t){this.type=n.Syntax.ArrayPattern,this.elements=t}}();e.ArrayPattern=s;var a=function(){return function(t,e,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=t,this.body=e,this.generator=!1,this.expression=i,this.async=!1}}();e.ArrowFunctionExpression=a;var o=function(){return function(t,e,i){this.type=n.Syntax.AssignmentExpression,this.operator=t,this.left=e,this.right=i}}();e.AssignmentExpression=o;var u=function(){return function(t,e){this.type=n.Syntax.AssignmentPattern,this.left=t,this.right=e}}();e.AssignmentPattern=u;var h=function(){return function(t,e,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=t,this.body=e,this.generator=!1,this.expression=i,this.async=!0}}();e.AsyncArrowFunctionExpression=h;var c=function(){return function(t,e,i){this.type=n.Syntax.FunctionDeclaration,this.id=t,this.params=e,this.body=i,this.generator=!1,this.expression=!1,this.async=!0}}();e.AsyncFunctionDeclaration=c;var l=function(){return function(t,e,i){this.type=n.Syntax.FunctionExpression,this.id=t,this.params=e,this.body=i,this.generator=!1,this.expression=!1,this.async=!0}}();e.AsyncFunctionExpression=l;var p=function(){return function(t){this.type=n.Syntax.AwaitExpression,this.argument=t}}();e.AwaitExpression=p;var f=function(){return function(t,e,i){var r="||"===t||"&&"===t;this.type=r?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=t,this.left=e,this.right=i}}();e.BinaryExpression=f;var d=function(){return function(t){this.type=n.Syntax.BlockStatement,this.body=t}}();e.BlockStatement=d;var m=function(){return function(t){this.type=n.Syntax.BreakStatement,this.label=t}}();e.BreakStatement=m;var y=function(){return function(t,e){this.type=n.Syntax.CallExpression,this.callee=t,this.arguments=e}}();e.CallExpression=y;var x=function(){return function(t,e){this.type=n.Syntax.CatchClause,this.param=t,this.body=e}}();e.CatchClause=x;var g=function(){return function(t){this.type=n.Syntax.ClassBody,this.body=t}}();e.ClassBody=g;var v=function(){return function(t,e,i){this.type=n.Syntax.ClassDeclaration,this.id=t,this.superClass=e,this.body=i}}();e.ClassDeclaration=v;var D=function(){return function(t,e,i){this.type=n.Syntax.ClassExpression,this.id=t,this.superClass=e,this.body=i}}();e.ClassExpression=D;var E=function(){return function(t,e){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=t,this.property=e}}();e.ComputedMemberExpression=E;var A=function(){return function(t,e,i){this.type=n.Syntax.ConditionalExpression,this.test=t,this.consequent=e,this.alternate=i}}();e.ConditionalExpression=A;var C=function(){return function(t){this.type=n.Syntax.ContinueStatement,this.label=t}}();e.ContinueStatement=C;var b=function(){return function(){this.type=n.Syntax.DebuggerStatement}}();e.DebuggerStatement=b;var w=function(){return function(t,e){this.type=n.Syntax.ExpressionStatement,this.expression=t,this.directive=e}}();e.Directive=w;var S=function(){return function(t,e){this.type=n.Syntax.DoWhileStatement,this.body=t,this.test=e}}();e.DoWhileStatement=S;var F=function(){return function(){this.type=n.Syntax.EmptyStatement}}();e.EmptyStatement=F;var k=function(){return function(t){this.type=n.Syntax.ExportAllDeclaration,this.source=t}}();e.ExportAllDeclaration=k;var _=function(){return function(t){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=t}}();e.ExportDefaultDeclaration=_;var T=function(){return function(t,e,i){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=t,this.specifiers=e,this.source=i}}();e.ExportNamedDeclaration=T;var B=function(){return function(t,e){this.type=n.Syntax.ExportSpecifier,this.exported=e,this.local=t}}();e.ExportSpecifier=B;var N=function(){return function(t){this.type=n.Syntax.ExpressionStatement,this.expression=t}}();e.ExpressionStatement=N;var P=function(){return function(t,e,i){this.type=n.Syntax.ForInStatement,this.left=t,this.right=e,this.body=i,this.each=!1}}();e.ForInStatement=P;var I=function(){return function(t,e,i){this.type=n.Syntax.ForOfStatement,this.left=t,this.right=e,this.body=i}}();e.ForOfStatement=I;var M=function(){return function(t,e,i,r){this.type=n.Syntax.ForStatement,this.init=t,this.test=e,this.update=i,this.body=r}}();e.ForStatement=M;var O=function(){return function(t,e,i,r){this.type=n.Syntax.FunctionDeclaration,this.id=t,this.params=e,this.body=i,this.generator=r,this.expression=!1,this.async=!1}}();e.FunctionDeclaration=O;var R=function(){return function(t,e,i,r){this.type=n.Syntax.FunctionExpression,this.id=t,this.params=e,this.body=i,this.generator=r,this.expression=!1,this.async=!1}}();e.FunctionExpression=R;var L=function(){return function(t){this.type=n.Syntax.Identifier,this.name=t}}();e.Identifier=L;var U=function(){return function(t,e,i){this.type=n.Syntax.IfStatement,this.test=t,this.consequent=e,this.alternate=i}}();e.IfStatement=U;var z=function(){return function(t,e){this.type=n.Syntax.ImportDeclaration,this.specifiers=t,this.source=e}}();e.ImportDeclaration=z;var X=function(){return function(t){this.type=n.Syntax.ImportDefaultSpecifier,this.local=t}}();e.ImportDefaultSpecifier=X;var j=function(){return function(t){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=t}}();e.ImportNamespaceSpecifier=j;var J=function(){return function(t,e){this.type=n.Syntax.ImportSpecifier,this.local=t,this.imported=e}}();e.ImportSpecifier=J;var K=function(){return function(t,e){this.type=n.Syntax.LabeledStatement,this.label=t,this.body=e}}();e.LabeledStatement=K;var H=function(){return function(t,e){this.type=n.Syntax.Literal,this.value=t,this.raw=e}}();e.Literal=H;var Y=function(){return function(t,e){this.type=n.Syntax.MetaProperty,this.meta=t,this.property=e}}();e.MetaProperty=Y;var W=function(){return function(t,e,i,r,s){this.type=n.Syntax.MethodDefinition,this.key=t,this.computed=e,this.value=i,this.kind=r,this.static=s}}();e.MethodDefinition=W;var q=function(){return function(t){this.type=n.Syntax.Program,this.body=t,this.sourceType="module"}}();e.Module=q;var G=function(){return function(t,e){this.type=n.Syntax.NewExpression,this.callee=t,this.arguments=e}}();e.NewExpression=G;var $=function(){return function(t){this.type=n.Syntax.ObjectExpression,this.properties=t}}();e.ObjectExpression=$;var V=function(){return function(t){this.type=n.Syntax.ObjectPattern,this.properties=t}}();e.ObjectPattern=V;var Z=function(){return function(t,e,i,r,s,a){this.type=n.Syntax.Property,this.key=e,this.computed=i,this.value=r,this.kind=t,this.method=s,this.shorthand=a}}();e.Property=Z;var Q=function(){return function(t,e,i,r){this.type=n.Syntax.Literal,this.value=t,this.raw=e,this.regex={pattern:i,flags:r}}}();e.RegexLiteral=Q;var tt=function(){return function(t){this.type=n.Syntax.RestElement,this.argument=t}}();e.RestElement=tt;var et=function(){return function(t){this.type=n.Syntax.ReturnStatement,this.argument=t}}();e.ReturnStatement=et;var it=function(){return function(t){this.type=n.Syntax.Program,this.body=t,this.sourceType="script"}}();e.Script=it;var nt=function(){return function(t){this.type=n.Syntax.SequenceExpression,this.expressions=t}}();e.SequenceExpression=nt;var rt=function(){return function(t){this.type=n.Syntax.SpreadElement,this.argument=t}}();e.SpreadElement=rt;var st=function(){return function(t,e){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=t,this.property=e}}();e.StaticMemberExpression=st;var at=function(){return function(){this.type=n.Syntax.Super}}();e.Super=at;var ot=function(){return function(t,e){this.type=n.Syntax.SwitchCase,this.test=t,this.consequent=e}}();e.SwitchCase=ot;var ut=function(){return function(t,e){this.type=n.Syntax.SwitchStatement,this.discriminant=t,this.cases=e}}();e.SwitchStatement=ut;var ht=function(){return function(t,e){this.type=n.Syntax.TaggedTemplateExpression,this.tag=t,this.quasi=e}}();e.TaggedTemplateExpression=ht;var ct=function(){return function(t,e){this.type=n.Syntax.TemplateElement,this.value=t,this.tail=e}}();e.TemplateElement=ct;var lt=function(){return function(t,e){this.type=n.Syntax.TemplateLiteral,this.quasis=t,this.expressions=e}}();e.TemplateLiteral=lt;var pt=function(){return function(){this.type=n.Syntax.ThisExpression}}();e.ThisExpression=pt;var ft=function(){return function(t){this.type=n.Syntax.ThrowStatement,this.argument=t}}();e.ThrowStatement=ft;var dt=function(){return function(t,e,i){this.type=n.Syntax.TryStatement,this.block=t,this.handler=e,this.finalizer=i}}();e.TryStatement=dt;var mt=function(){return function(t,e){this.type=n.Syntax.UnaryExpression,this.operator=t,this.argument=e,this.prefix=!0}}();e.UnaryExpression=mt;var yt=function(){return function(t,e,i){this.type=n.Syntax.UpdateExpression,this.operator=t,this.argument=e,this.prefix=i}}();e.UpdateExpression=yt;var xt=function(){return function(t,e){this.type=n.Syntax.VariableDeclaration,this.declarations=t,this.kind=e}}();e.VariableDeclaration=xt;var gt=function(){return function(t,e){this.type=n.Syntax.VariableDeclarator,this.id=t,this.init=e}}();e.VariableDeclarator=gt;var vt=function(){return function(t,e){this.type=n.Syntax.WhileStatement,this.test=t,this.body=e}}();e.WhileStatement=vt;var Dt=function(){return function(t,e){this.type=n.Syntax.WithStatement,this.object=t,this.body=e}}();e.WithStatement=Dt;var Et=function(){return function(t,e){this.type=n.Syntax.YieldExpression,this.argument=t,this.delegate=e}}();e.YieldExpression=Et},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(9),r=i(10),s=i(11),a=i(7),o=i(12),u=i(2),h=i(13),c=function(){function t(t,e,i){void 0===e&&(e={}),this.config={range:"boolean"==typeof e.range&&e.range,loc:"boolean"==typeof e.loc&&e.loc,source:null,tokens:"boolean"==typeof e.tokens&&e.tokens,comment:"boolean"==typeof e.comment&&e.comment,tolerant:"boolean"==typeof e.tolerant&&e.tolerant},this.config.loc&&e.source&&null!==e.source&&(this.config.source=String(e.source)),this.delegate=i,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new o.Scanner(t,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return t.prototype.throwError=function(t){for(var e=[],i=1;i0&&this.delegate)for(var e=0;e>="===t||">>>="===t||"&="===t||"^="===t||"|="===t},t.prototype.isolateCoverGrammar=function(t){var e=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=t.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=e,this.context.isAssignmentTarget=i,this.context.firstCoverInitializedNameError=n,r},t.prototype.inheritCoverGrammar=function(t){var e=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=t.call(this);return this.context.isBindingElement=this.context.isBindingElement&&e,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&i,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,r},t.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},t.prototype.parsePrimaryExpression=function(){var t,e,i,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),t=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,e=this.nextToken(),i=this.getTokenRaw(e),t=this.finalize(n,new a.Literal(e.value,i));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,e=this.nextToken(),i=this.getTokenRaw(e),t=this.finalize(n,new a.Literal("true"===e.value,i));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,e=this.nextToken(),i=this.getTokenRaw(e),t=this.finalize(n,new a.Literal(null,i));break;case 10:t=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,t=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":t=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":t=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,e=this.nextRegexToken(),i=this.getTokenRaw(e),t=this.finalize(n,new a.RegexLiteral(e.regex,i,e.pattern,e.flags));break;default:t=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?t=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?t=this.finalize(n,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?t=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),t=this.finalize(n,new a.ThisExpression)):t=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:t=this.throwUnexpectedToken(this.nextToken())}return t},t.prototype.parseSpreadElement=function(){var t=this.createNode();this.expect("...");var e=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(t,new a.SpreadElement(e))},t.prototype.parseArrayInitializer=function(){var t=this.createNode(),e=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),e.push(null);else if(this.match("...")){var i=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),e.push(i)}else e.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(t,new a.ArrayExpression(e))},t.prototype.parsePropertyMethod=function(t){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var e=this.context.strict,i=this.context.allowStrictDirective;this.context.allowStrictDirective=t.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&t.firstRestricted&&this.tolerateUnexpectedToken(t.firstRestricted,t.message),this.context.strict&&t.stricted&&this.tolerateUnexpectedToken(t.stricted,t.message),this.context.strict=e,this.context.allowStrictDirective=i,n},t.prototype.parsePropertyMethodFunction=function(){var t=this.createNode(),e=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters(),n=this.parsePropertyMethod(i);return this.context.allowYield=e,this.finalize(t,new a.FunctionExpression(null,i.params,n,!1))},t.prototype.parsePropertyMethodAsyncFunction=function(){var t=this.createNode(),e=this.context.allowYield,i=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),r=this.parsePropertyMethod(n);return this.context.allowYield=e,this.context.await=i,this.finalize(t,new a.AsyncFunctionExpression(null,n.params,r))},t.prototype.parseObjectPropertyKey=function(){var t,e=this.createNode(),i=this.nextToken();switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,s.Messages.StrictOctalLiteral);var n=this.getTokenRaw(i);t=this.finalize(e,new a.Literal(i.value,n));break;case 3:case 1:case 5:case 4:t=this.finalize(e,new a.Identifier(i.value));break;case 7:"["===i.value?(t=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):t=this.throwUnexpectedToken(i);break;default:t=this.throwUnexpectedToken(i)}return t},t.prototype.isPropertyKey=function(t,e){return t.type===u.Syntax.Identifier&&t.name===e||t.type===u.Syntax.Literal&&t.value===e},t.prototype.parseObjectProperty=function(t){var e,i=this.createNode(),n=this.lookahead,r=null,o=null,u=!1,h=!1,c=!1,l=!1;if(3===n.type){var p=n.value;this.nextToken(),u=this.match("["),r=(l=!(this.hasLineTerminator||"async"!==p||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(i,new a.Identifier(p))}else this.match("*")?this.nextToken():(u=this.match("["),r=this.parseObjectPropertyKey());var f=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!l&&"get"===n.value&&f)e="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,o=this.parseGetterMethod();else if(3===n.type&&!l&&"set"===n.value&&f)e="set",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&f)e="init",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseGeneratorMethod(),h=!0;else if(r||this.throwUnexpectedToken(this.lookahead),e="init",this.match(":")&&!l)!u&&this.isPropertyKey(r,"__proto__")&&(t.value&&this.tolerateError(s.Messages.DuplicateProtoProperty),t.value=!0),this.nextToken(),o=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))o=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),h=!0;else if(3===n.type){p=this.finalize(i,new a.Identifier(n.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),c=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);o=this.finalize(i,new a.AssignmentPattern(p,d))}else c=!0,o=p}else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new a.Property(e,r,u,o,h,c))},t.prototype.parseObjectInitializer=function(){var t=this.createNode();this.expect("{");for(var e=[],i={value:!1};!this.match("}");)e.push(this.parseObjectProperty(i)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(t,new a.ObjectExpression(e))},t.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var t=this.createNode(),e=this.nextToken(),i=e.value,r=e.cooked;return this.finalize(t,new a.TemplateElement({raw:i,cooked:r},e.tail))},t.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var t=this.createNode(),e=this.nextToken(),i=e.value,n=e.cooked;return this.finalize(t,new a.TemplateElement({raw:i,cooked:n},e.tail))},t.prototype.parseTemplateLiteral=function(){var t=this.createNode(),e=[],i=[],n=this.parseTemplateHead();for(i.push(n);!n.tail;)e.push(this.parseExpression()),n=this.parseTemplateElement(),i.push(n);return this.finalize(t,new a.TemplateLiteral(i,e))},t.prototype.reinterpretExpressionAsPattern=function(t){switch(t.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:t.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(t.argument);break;case u.Syntax.ArrayExpression:t.type=u.Syntax.ArrayPattern;for(var e=0;e")||this.expect("=>"),t={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var e=this.lookahead,i=[];if(this.match("..."))t=this.parseRestElement(i),this.expect(")"),this.match("=>")||this.expect("=>"),t={type:"ArrowParameterPlaceHolder",params:[t],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,t=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(t);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var s=0;s")||this.expect("=>"),this.context.isBindingElement=!1;for(s=0;s")&&(t.type===u.Syntax.Identifier&&"yield"===t.name&&(n=!0,t={type:"ArrowParameterPlaceHolder",params:[t],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),t.type===u.Syntax.SequenceExpression)for(s=0;s")){for(var u=0;u0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var r=[t,this.lookahead],s=e,o=this.isolateCoverGrammar(this.parseExponentiationExpression),u=[s,i.value,o],h=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;u.length>2&&n<=h[h.length-1];){o=u.pop();var c=u.pop();h.pop(),s=u.pop(),r.pop();var l=this.startNode(r[r.length-1]);u.push(this.finalize(l,new a.BinaryExpression(c,s,o)))}u.push(this.nextToken().value),h.push(n),r.push(this.lookahead),u.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=u.length-1;e=u[p];for(var f=r.pop();p>1;){var d=r.pop(),m=f&&f.lineStart;l=this.startNode(d,m),c=u[p-1];e=this.finalize(l,new a.BinaryExpression(c,u[p-2],e)),p-=2,f=d}}return e},t.prototype.parseConditionalExpression=function(){var t=this.lookahead,e=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var i=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=i,this.expect(":");var r=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.ConditionalExpression(e,n,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return e},t.prototype.checkPatternParam=function(t,e){switch(e.type){case u.Syntax.Identifier:this.validateParam(t,e,e.name);break;case u.Syntax.RestElement:this.checkPatternParam(t,e.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(t,e.left);break;case u.Syntax.ArrayPattern:for(var i=0;i")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=t.async,o=this.reinterpretAsCoverFormalsList(t);if(o){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var h=this.context.strict,c=this.context.allowStrictDirective;this.context.allowStrictDirective=o.simple;var l=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=r;var f=this.startNode(e);this.expect("=>");var d=void 0;if(this.match("{")){var m=this.context.allowIn;this.context.allowIn=!0,d=this.parseFunctionSourceElements(),this.context.allowIn=m}else d=this.isolateCoverGrammar(this.parseAssignmentExpression);var y=d.type!==u.Syntax.BlockStatement;this.context.strict&&o.firstRestricted&&this.throwUnexpectedToken(o.firstRestricted,o.message),this.context.strict&&o.stricted&&this.tolerateUnexpectedToken(o.stricted,o.message),t=r?this.finalize(f,new a.AsyncArrowFunctionExpression(o.params,d,y)):this.finalize(f,new a.ArrowFunctionExpression(o.params,d,y)),this.context.strict=h,this.context.allowStrictDirective=c,this.context.allowYield=l,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(s.Messages.InvalidLHSInAssignment),this.context.strict&&t.type===u.Syntax.Identifier){var x=t;this.scanner.isRestrictedWord(x.name)&&this.tolerateUnexpectedToken(i,s.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(x.name)&&this.tolerateUnexpectedToken(i,s.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(t):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var g=(i=this.nextToken()).value,v=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.AssignmentExpression(g,t,v)),this.context.firstCoverInitializedNameError=null}}return t},t.prototype.parseExpression=function(){var t=this.lookahead,e=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var i=[];for(i.push(e);2!==this.lookahead.type&&this.match(",");)this.nextToken(),i.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(t),new a.SequenceExpression(i))}return e},t.prototype.parseStatementListItem=function(){var t;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalExportDeclaration),t=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalImportDeclaration),t=this.parseImportDeclaration();break;case"const":t=this.parseLexicalDeclaration({inFor:!1});break;case"function":t=this.parseFunctionDeclaration();break;case"class":t=this.parseClassDeclaration();break;case"let":t=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:t=this.parseStatement()}else t=this.parseStatement();return t},t.prototype.parseBlock=function(){var t=this.createNode();this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseStatementListItem());return this.expect("}"),this.finalize(t,new a.BlockStatement(e))},t.prototype.parseLexicalBinding=function(t,e){var i=this.createNode(),n=this.parsePattern([],t);this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(s.Messages.StrictVarName);var r=null;return"const"===t?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(s.Messages.DeclarationMissingInitializer,"const")):(!e.inFor&&n.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(i,new a.VariableDeclarator(n,r))},t.prototype.parseBindingList=function(t,e){for(var i=[this.parseLexicalBinding(t,e)];this.match(",");)this.nextToken(),i.push(this.parseLexicalBinding(t,e));return i},t.prototype.isLexicalDeclaration=function(){var t=this.scanner.saveState();this.scanner.scanComments();var e=this.scanner.lex();return this.scanner.restoreState(t),3===e.type||7===e.type&&"["===e.value||7===e.type&&"{"===e.value||4===e.type&&"let"===e.value||4===e.type&&"yield"===e.value},t.prototype.parseLexicalDeclaration=function(t){var e=this.createNode(),i=this.nextToken().value;n.assert("let"===i||"const"===i,"Lexical declaration must be either let or const");var r=this.parseBindingList(i,t);return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(r,i))},t.prototype.parseBindingRestElement=function(t,e){var i=this.createNode();this.expect("...");var n=this.parsePattern(t,e);return this.finalize(i,new a.RestElement(n))},t.prototype.parseArrayPattern=function(t,e){var i=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(t,e));break}n.push(this.parsePatternWithDefault(t,e)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(i,new a.ArrayPattern(n))},t.prototype.parsePropertyPattern=function(t,e){var i,n,r=this.createNode(),s=!1,o=!1;if(3===this.lookahead.type){var u=this.lookahead;i=this.parseVariableIdentifier();var h=this.finalize(r,new a.Identifier(u.value));if(this.match("=")){t.push(u),o=!0,this.nextToken();var c=this.parseAssignmentExpression();n=this.finalize(this.startNode(u),new a.AssignmentPattern(h,c))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(t,e)):(t.push(u),o=!0,n=h)}else s=this.match("["),i=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(t,e);return this.finalize(r,new a.Property("init",i,s,n,!1,o))},t.prototype.parseObjectPattern=function(t,e){var i=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(t,e)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(i,new a.ObjectPattern(n))},t.prototype.parsePattern=function(t,e){var i;return this.match("[")?i=this.parseArrayPattern(t,e):this.match("{")?i=this.parseObjectPattern(t,e):(!this.matchKeyword("let")||"const"!==e&&"let"!==e||this.tolerateUnexpectedToken(this.lookahead,s.Messages.LetInLexicalBinding),t.push(this.lookahead),i=this.parseVariableIdentifier(e)),i},t.prototype.parsePatternWithDefault=function(t,e){var i=this.lookahead,n=this.parsePattern(t,e);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var s=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,n=this.finalize(this.startNode(i),new a.AssignmentPattern(n,s))}return n},t.prototype.parseVariableIdentifier=function(t){var e=this.createNode(),i=this.nextToken();return 4===i.type&&"yield"===i.value?this.context.strict?this.tolerateUnexpectedToken(i,s.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(i):3!==i.type?this.context.strict&&4===i.type&&this.scanner.isStrictModeReservedWord(i.value)?this.tolerateUnexpectedToken(i,s.Messages.StrictReservedWord):(this.context.strict||"let"!==i.value||"var"!==t)&&this.throwUnexpectedToken(i):(this.context.isModule||this.context.await)&&3===i.type&&"await"===i.value&&this.tolerateUnexpectedToken(i),this.finalize(e,new a.Identifier(i.value))},t.prototype.parseVariableDeclaration=function(t){var e=this.createNode(),i=this.parsePattern([],"var");this.context.strict&&i.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(s.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):i.type===u.Syntax.Identifier||t.inFor||this.expect("="),this.finalize(e,new a.VariableDeclarator(i,n))},t.prototype.parseVariableDeclarationList=function(t){var e={inFor:t.inFor},i=[];for(i.push(this.parseVariableDeclaration(e));this.match(",");)this.nextToken(),i.push(this.parseVariableDeclaration(e));return i},t.prototype.parseVariableStatement=function(){var t=this.createNode();this.expectKeyword("var");var e=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(e,"var"))},t.prototype.parseEmptyStatement=function(){var t=this.createNode();return this.expect(";"),this.finalize(t,new a.EmptyStatement)},t.prototype.parseExpressionStatement=function(){var t=this.createNode(),e=this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new a.ExpressionStatement(e))},t.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(s.Messages.StrictFunction),this.parseStatement()},t.prototype.parseIfStatement=function(){var t,e=this.createNode(),i=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),t=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),i=this.parseIfClause())),this.finalize(e,new a.IfStatement(n,t,i))},t.prototype.parseDoWhileStatement=function(){var t=this.createNode();this.expectKeyword("do");var e=this.context.inIteration;this.context.inIteration=!0;var i=this.parseStatement();this.context.inIteration=e,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(t,new a.DoWhileStatement(i,n))},t.prototype.parseWhileStatement=function(){var t,e=this.createNode();this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,t=this.parseStatement(),this.context.inIteration=n}return this.finalize(e,new a.WhileStatement(i,t))},t.prototype.parseForStatement=function(){var t,e,i,n=null,r=null,o=null,h=!0,c=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===p.length&&this.matchKeyword("in")){var f=p[0];f.init&&(f.id.type===u.Syntax.ArrayPattern||f.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(s.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new a.VariableDeclaration(p,"var")),this.nextToken(),t=n,e=this.parseExpression(),n=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(p,"var")),this.nextToken(),t=n,e=this.parseAssignmentExpression(),n=null,h=!1):(n=this.finalize(n,new a.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var d=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){l=this.context.allowIn;this.context.allowIn=!1;p=this.parseBindingList(d,{inFor:!0});this.context.allowIn=l,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new a.VariableDeclaration(p,d)),this.nextToken(),t=n,e=this.parseExpression(),n=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(p,d)),this.nextToken(),t=n,e=this.parseAssignmentExpression(),n=null,h=!1):(this.consumeSemicolon(),n=this.finalize(n,new a.VariableDeclaration(p,d)))}else n=this.finalize(n,new a.Identifier(d)),this.nextToken(),t=n,e=this.parseExpression(),n=null}else{var m=this.lookahead;l=this.context.allowIn;if(this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(s.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),t=n,e=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(s.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),t=n,e=this.parseAssignmentExpression(),n=null,h=!1;else{if(this.match(",")){for(var y=[n];this.match(",");)this.nextToken(),y.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(m),new a.SequenceExpression(y))}this.expect(";")}}if(void 0===t&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(o=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var x=this.context.inIteration;this.context.inIteration=!0,i=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=x}return void 0===t?this.finalize(c,new a.ForStatement(n,r,o,i)):h?this.finalize(c,new a.ForInStatement(t,e,i)):this.finalize(c,new a.ForOfStatement(t,e,i))},t.prototype.parseContinueStatement=function(){var t=this.createNode();this.expectKeyword("continue");var e=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier();e=i;var n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(s.Messages.UnknownLabel,i.name)}return this.consumeSemicolon(),null!==e||this.context.inIteration||this.throwError(s.Messages.IllegalContinue),this.finalize(t,new a.ContinueStatement(e))},t.prototype.parseBreakStatement=function(){var t=this.createNode();this.expectKeyword("break");var e=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier(),n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(s.Messages.UnknownLabel,i.name),e=i}return this.consumeSemicolon(),null!==e||this.context.inIteration||this.context.inSwitch||this.throwError(s.Messages.IllegalBreak),this.finalize(t,new a.BreakStatement(e))},t.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(s.Messages.IllegalReturn);var t=this.createNode();this.expectKeyword("return");var e=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&2!==this.lookahead.type||8===this.lookahead.type||10===this.lookahead.type?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(t,new a.ReturnStatement(e))},t.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(s.Messages.StrictModeWith);var t,e=this.createNode();this.expectKeyword("with"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),t=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),t=this.parseStatement()),this.finalize(e,new a.WithStatement(i,t))},t.prototype.parseSwitchCase=function(){var t,e=this.createNode();this.matchKeyword("default")?(this.nextToken(),t=null):(this.expectKeyword("case"),t=this.parseExpression()),this.expect(":");for(var i=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)i.push(this.parseStatementListItem());return this.finalize(e,new a.SwitchCase(t,i))},t.prototype.parseSwitchStatement=function(){var t=this.createNode();this.expectKeyword("switch"),this.expect("(");var e=this.parseExpression();this.expect(")");var i=this.context.inSwitch;this.context.inSwitch=!0;var n=[],r=!1;for(this.expect("{");!this.match("}");){var o=this.parseSwitchCase();null===o.test&&(r&&this.throwError(s.Messages.MultipleDefaultsInSwitch),r=!0),n.push(o)}return this.expect("}"),this.context.inSwitch=i,this.finalize(t,new a.SwitchStatement(e,n))},t.prototype.parseLabelledStatement=function(){var t,e=this.createNode(),i=this.parseExpression();if(i.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var n=i,r="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(s.Messages.Redeclaration,"Label",n.name),this.context.labelSet[r]=!0;var o=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),o=this.parseClassDeclaration();else if(this.matchKeyword("function")){var h=this.lookahead,c=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(h,s.Messages.StrictFunction):c.generator&&this.tolerateUnexpectedToken(h,s.Messages.GeneratorInLegacyContext),o=c}else o=this.parseStatement();delete this.context.labelSet[r],t=new a.LabeledStatement(n,o)}else this.consumeSemicolon(),t=new a.ExpressionStatement(i);return this.finalize(e,t)},t.prototype.parseThrowStatement=function(){var t=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(s.Messages.NewlineAfterThrow);var e=this.parseExpression();return this.consumeSemicolon(),this.finalize(t,new a.ThrowStatement(e))},t.prototype.parseCatchClause=function(){var t=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var e=[],i=this.parsePattern(e),n={},r=0;r0&&this.tolerateError(s.Messages.BadGetterArity);var n=this.parsePropertyMethod(i);return this.context.allowYield=e,this.finalize(t,new a.FunctionExpression(null,i.params,n,!1))},t.prototype.parseSetterMethod=function(){var t=this.createNode(),e=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();1!==i.params.length?this.tolerateError(s.Messages.BadSetterArity):i.params[0]instanceof a.RestElement&&this.tolerateError(s.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(i);return this.context.allowYield=e,this.finalize(t,new a.FunctionExpression(null,i.params,n,!1))},t.prototype.parseGeneratorMethod=function(){var t=this.createNode(),e=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(i);return this.context.allowYield=e,this.finalize(t,new a.FunctionExpression(null,i.params,n,!0))},t.prototype.isStartOfExpression=function(){var t=!0,e=this.lookahead.value;switch(this.lookahead.type){case 7:t="["===e||"("===e||"{"===e||"+"===e||"-"===e||"!"===e||"~"===e||"++"===e||"--"===e||"/"===e||"/="===e;break;case 4:t="class"===e||"delete"===e||"function"===e||"let"===e||"new"===e||"super"===e||"this"===e||"typeof"===e||"void"===e||"yield"===e}return t},t.prototype.parseYieldExpression=function(){var t=this.createNode();this.expectKeyword("yield");var e=null,i=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(i=this.match("*"))?(this.nextToken(),e=this.parseAssignmentExpression()):this.isStartOfExpression()&&(e=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(t,new a.YieldExpression(e,i))},t.prototype.parseClassElement=function(t){var e=this.lookahead,i=this.createNode(),n="",r=null,o=null,u=!1,h=!1,c=!1,l=!1;if(this.match("*"))this.nextToken();else if(u=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(e=this.lookahead,c=!0,u=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()),3===e.type&&!this.hasLineTerminator&&"async"===e.value){var p=this.lookahead.value;":"!==p&&"("!==p&&"*"!==p&&(l=!0,e=this.lookahead,r=this.parseObjectPropertyKey(),3===e.type&&"constructor"===e.value&&this.tolerateUnexpectedToken(e,s.Messages.ConstructorIsAsync))}var f=this.qualifiedPropertyName(this.lookahead);return 3===e.type?"get"===e.value&&f?(n="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,o=this.parseGetterMethod()):"set"===e.value&&f&&(n="set",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseSetterMethod()):7===e.type&&"*"===e.value&&f&&(n="init",u=this.match("["),r=this.parseObjectPropertyKey(),o=this.parseGeneratorMethod(),h=!0),!n&&r&&this.match("(")&&(n="init",o=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),h=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),u||(c&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(e,s.Messages.StaticPrototype),!c&&this.isPropertyKey(r,"constructor")&&(("method"!==n||!h||o&&o.generator)&&this.throwUnexpectedToken(e,s.Messages.ConstructorSpecialMethod),t.value?this.throwUnexpectedToken(e,s.Messages.DuplicateConstructor):t.value=!0,n="constructor")),this.finalize(i,new a.MethodDefinition(r,u,o,n,c))},t.prototype.parseClassElementList=function(){var t=[],e={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():t.push(this.parseClassElement(e));return this.expect("}"),t},t.prototype.parseClassBody=function(){var t=this.createNode(),e=this.parseClassElementList();return this.finalize(t,new a.ClassBody(e))},t.prototype.parseClassDeclaration=function(t){var e=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=t&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var s=this.parseClassBody();return this.context.strict=i,this.finalize(e,new a.ClassDeclaration(n,r,s))},t.prototype.parseClassExpression=function(){var t=this.createNode(),e=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var r=this.parseClassBody();return this.context.strict=e,this.finalize(t,new a.ClassExpression(i,n,r))},t.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var t=this.createNode(),e=this.parseDirectivePrologues();2!==this.lookahead.type;)e.push(this.parseStatementListItem());return this.finalize(t,new a.Module(e))},t.prototype.parseScript=function(){for(var t=this.createNode(),e=this.parseDirectivePrologues();2!==this.lookahead.type;)e.push(this.parseStatementListItem());return this.finalize(t,new a.Script(e))},t.prototype.parseModuleSpecifier=function(){var t=this.createNode();8!==this.lookahead.type&&this.throwError(s.Messages.InvalidModuleSpecifier);var e=this.nextToken(),i=this.getTokenRaw(e);return this.finalize(t,new a.Literal(e.value,i))},t.prototype.parseImportSpecifier=function(){var t,e,i=this.createNode();return 3===this.lookahead.type?(e=t=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),e=this.parseVariableIdentifier())):(e=t=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),e=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(i,new a.ImportSpecifier(e,t))},t.prototype.parseNamedImports=function(){this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),t},t.prototype.parseImportDefaultSpecifier=function(){var t=this.createNode(),e=this.parseIdentifierName();return this.finalize(t,new a.ImportDefaultSpecifier(e))},t.prototype.parseImportNamespaceSpecifier=function(){var t=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(s.Messages.NoAsAfterImportNamespace),this.nextToken();var e=this.parseIdentifierName();return this.finalize(t,new a.ImportNamespaceSpecifier(e))},t.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalImportDeclaration);var t,e=this.createNode();this.expectKeyword("import");var i=[];if(8===this.lookahead.type)t=this.parseModuleSpecifier();else{if(this.match("{")?i=i.concat(this.parseNamedImports()):this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(i.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.match("{")?i=i.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new a.ImportDeclaration(i,t))},t.prototype.parseExportSpecifier=function(){var t=this.createNode(),e=this.parseIdentifierName(),i=e;return this.matchContextualKeyword("as")&&(this.nextToken(),i=this.parseIdentifierName()),this.finalize(t,new a.ExportSpecifier(e,i))},t.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalExportDeclaration);var t,e=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var i=this.parseFunctionDeclaration(!0);t=this.finalize(e,new a.ExportDefaultDeclaration(i))}else if(this.matchKeyword("class")){i=this.parseClassDeclaration(!0);t=this.finalize(e,new a.ExportDefaultDeclaration(i))}else if(this.matchContextualKeyword("async")){i=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();t=this.finalize(e,new a.ExportDefaultDeclaration(i))}else{this.matchContextualKeyword("from")&&this.throwError(s.Messages.UnexpectedToken,this.lookahead.value);i=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new a.ExportDefaultDeclaration(i))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new a.ExportAllDeclaration(r))}else if(4===this.lookahead.type){i=void 0;switch(this.lookahead.value){case"let":case"const":i=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":i=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new a.ExportNamedDeclaration(i,[],null))}else if(this.matchAsyncFunction()){i=this.parseFunctionDeclaration();t=this.finalize(e,new a.ExportNamedDeclaration(i,[],null))}else{var o=[],u=null,h=!1;for(this.expect("{");!this.match("}");)h=h||this.matchKeyword("default"),o.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon();else if(h){n=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}else this.consumeSemicolon();t=this.finalize(e,new a.ExportNamedDeclaration(null,o,u))}return t},t}();e.Parser=c},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.assert=function(t,e){if(!t)throw new Error("ASSERT: "+e)}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(){this.errors=[],this.tolerant=!1}return t.prototype.recordError=function(t){this.errors.push(t)},t.prototype.tolerate=function(t){if(!this.tolerant)throw t;this.recordError(t)},t.prototype.constructError=function(t,e){var i=new Error(t);try{throw i}catch(n){Object.create&&Object.defineProperty&&(i=Object.create(n),Object.defineProperty(i,"column",{value:e}))}return i},t.prototype.createError=function(t,e,i,n){var r="Line "+e+": "+n,s=this.constructError(r,i);return s.index=t,s.lineNumber=e,s.description=n,s},t.prototype.throwError=function(t,e,i,n){throw this.createError(t,e,i,n)},t.prototype.tolerateError=function(t,e,i,n){var r=this.createError(t,e,i,n);if(!this.tolerant)throw r;this.recordError(r)},t}();e.ErrorHandler=i},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(9),r=i(4),s=i(11);function a(t){return"0123456789abcdef".indexOf(t.toLowerCase())}function o(t){return"01234567".indexOf(t)}var u=function(){function t(t,e){this.source=t,this.errorHandler=e,this.trackComment=!1,this.isModule=!1,this.length=t.length,this.index=0,this.lineNumber=t.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return t.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},t.prototype.restoreState=function(t){this.index=t.index,this.lineNumber=t.lineNumber,this.lineStart=t.lineStart},t.prototype.eof=function(){return this.index>=this.length},t.prototype.throwUnexpectedToken=function(t){return void 0===t&&(t=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,t)},t.prototype.tolerateUnexpectedToken=function(t){void 0===t&&(t=s.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,t)},t.prototype.skipSingleLineComment=function(t){var e,i,n=[];for(this.trackComment&&(n=[],e=this.index-t,i={start:{line:this.lineNumber,column:this.index-this.lineStart-t},end:{}});!this.eof();){var s=this.source.charCodeAt(this.index);if(++this.index,r.Character.isLineTerminator(s)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[e+t,this.index-1],range:[e,this.index-1],loc:i};n.push(a)}return 13===s&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart};a={multiLine:!1,slice:[e+t,this.index],range:[e,this.index],loc:i};n.push(a)}return n},t.prototype.skipMultiLineComment=function(){var t,e,i=[];for(this.trackComment&&(i=[],t=this.index-2,e={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(r.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};var s={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:e};i.push(s)}return i}++this.index}else++this.index}if(this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};s={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:e};i.push(s)}return this.tolerateUnexpectedToken(),i},t.prototype.scanComments=function(){var t;this.trackComment&&(t=[]);for(var e=0===this.index;!this.eof();){var i=this.source.charCodeAt(this.index);if(r.Character.isWhiteSpace(i))++this.index;else if(r.Character.isLineTerminator(i))++this.index,13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,e=!0;else if(47===i)if(47===(i=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(t=t.concat(n)),e=!0}else{if(42!==i)break;this.index+=2;n=this.skipMultiLineComment();this.trackComment&&(t=t.concat(n))}else if(e&&45===i){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;n=this.skipSingleLineComment(3);this.trackComment&&(t=t.concat(n))}else{if(60!==i||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;n=this.skipSingleLineComment(4);this.trackComment&&(t=t.concat(n))}}return t},t.prototype.isFutureReservedWord=function(t){switch(t){case"enum":case"export":case"import":case"super":return!0;default:return!1}},t.prototype.isStrictModeReservedWord=function(t){switch(t){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},t.prototype.isRestrictedWord=function(t){return"eval"===t||"arguments"===t},t.prototype.isKeyword=function(t){switch(t.length){case 2:return"if"===t||"in"===t||"do"===t;case 3:return"var"===t||"for"===t||"new"===t||"try"===t||"let"===t;case 4:return"this"===t||"else"===t||"case"===t||"void"===t||"with"===t||"enum"===t;case 5:return"while"===t||"break"===t||"catch"===t||"throw"===t||"const"===t||"yield"===t||"class"===t||"super"===t;case 6:return"return"===t||"typeof"===t||"delete"===t||"switch"===t||"export"===t||"import"===t;case 7:return"default"===t||"finally"===t||"extends"===t;case 8:return"function"===t||"continue"===t||"debugger"===t;case 10:return"instanceof"===t;default:return!1}},t.prototype.codePointAt=function(t){var e=this.source.charCodeAt(t);if(e>=55296&&e<=56319){var i=this.source.charCodeAt(t+1);if(i>=56320&&i<=57343)e=1024*(e-55296)+i-56320+65536}return e},t.prototype.scanHexEscape=function(t){for(var e="u"===t?4:2,i=0,n=0;n1114111||"}"!==t)&&this.throwUnexpectedToken(),r.Character.fromCodePoint(e)},t.prototype.getIdentifier=function(){for(var t=this.index++;!this.eof();){var e=this.source.charCodeAt(this.index);if(92===e)return this.index=t,this.getComplexIdentifier();if(e>=55296&&e<57343)return this.index=t,this.getComplexIdentifier();if(!r.Character.isIdentifierPart(e))break;++this.index}return this.source.slice(t,this.index)},t.prototype.getComplexIdentifier=function(){var t,e=this.codePointAt(this.index),i=r.Character.fromCodePoint(e);for(this.index+=i.length,92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,t=this.scanUnicodeCodePointEscape()):null!==(t=this.scanHexEscape("u"))&&"\\"!==t&&r.Character.isIdentifierStart(t.charCodeAt(0))||this.throwUnexpectedToken(),i=t);!this.eof()&&(e=this.codePointAt(this.index),r.Character.isIdentifierPart(e));)i+=t=r.Character.fromCodePoint(e),this.index+=t.length,92===e&&(i=i.substr(0,i.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,t=this.scanUnicodeCodePointEscape()):null!==(t=this.scanHexEscape("u"))&&"\\"!==t&&r.Character.isIdentifierPart(t.charCodeAt(0))||this.throwUnexpectedToken(),i+=t);return i},t.prototype.octalToDecimal=function(t){var e="0"!==t,i=o(t);return!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(e=!0,i=8*i+o(this.source[this.index++]),"0123".indexOf(t)>=0&&!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(i=8*i+o(this.source[this.index++]))),{code:i,octal:e}},t.prototype.scanIdentifier=function(){var t,e=this.index,i=92===this.source.charCodeAt(e)?this.getComplexIdentifier():this.getIdentifier();if(3!==(t=1===i.length?3:this.isKeyword(i)?4:"null"===i?5:"true"===i||"false"===i?1:3)&&e+i.length!==this.index){var n=this.index;this.index=e,this.tolerateUnexpectedToken(s.Messages.InvalidEscapedReservedWord),this.index=n}return{type:t,value:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.scanPunctuator=function(){var t=this.index,e=this.source[this.index];switch(e){case"(":case"{":"{"===e&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,e="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(e=this.source.substr(this.index,4))?this.index+=4:"==="===(e=e.substr(0,3))||"!=="===e||">>>"===e||"<<="===e||">>="===e||"**="===e?this.index+=3:"&&"===(e=e.substr(0,2))||"||"===e||"=="===e||"!="===e||"+="===e||"-="===e||"*="===e||"/="===e||"++"===e||"--"===e||"<<"===e||">>"===e||"&="===e||"|="===e||"^="===e||"%="===e||"<="===e||">="===e||"=>"===e||"**"===e?this.index+=2:(e=this.source[this.index],"<>=!+-*%&|^/".indexOf(e)>=0&&++this.index)}return this.index===t&&this.throwUnexpectedToken(),{type:7,value:e,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.scanHexLiteral=function(t){for(var e="";!this.eof()&&r.Character.isHexDigit(this.source.charCodeAt(this.index));)e+=this.source[this.index++];return 0===e.length&&this.throwUnexpectedToken(),r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+e,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.scanBinaryLiteral=function(t){for(var e,i="";!this.eof()&&("0"===(e=this.source[this.index])||"1"===e);)i+=this.source[this.index++];return 0===i.length&&this.throwUnexpectedToken(),this.eof()||(e=this.source.charCodeAt(this.index),(r.Character.isIdentifierStart(e)||r.Character.isDecimalDigit(e))&&this.throwUnexpectedToken()),{type:6,value:parseInt(i,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},t.prototype.scanOctalLiteral=function(t,e){var i="",n=!1;for(r.Character.isOctalDigit(t.charCodeAt(0))?(n=!0,i="0"+this.source[this.index++]):++this.index;!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];return n||0!==i.length||this.throwUnexpectedToken(),(r.Character.isIdentifierStart(this.source.charCodeAt(this.index))||r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},t.prototype.isImplicitOctalLiteral=function(){for(var t=this.index+1;t=0&&(i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(t,e,i){var r=parseInt(e||i,16);return r>1114111&&n.throwUnexpectedToken(s.Messages.InvalidRegExp),r<=65535?String.fromCharCode(r):"￿"}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(i)}catch(r){this.throwUnexpectedToken(s.Messages.InvalidRegExp)}try{return new RegExp(t,e)}catch(a){return null}},t.prototype.scanRegExpBody=function(){var t=this.source[this.index];n.assert("/"===t,"Regular expression literal must start with a slash");for(var e=this.source[this.index++],i=!1,a=!1;!this.eof();)if(e+=t=this.source[this.index++],"\\"===t)t=this.source[this.index++],r.Character.isLineTerminator(t.charCodeAt(0))&&this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),e+=t;else if(r.Character.isLineTerminator(t.charCodeAt(0)))this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);else if(i)"]"===t&&(i=!1);else{if("/"===t){a=!0;break}"["===t&&(i=!0)}return a||this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),e.substr(1,e.length-2)},t.prototype.scanRegExpFlags=function(){for(var t="";!this.eof();){var e=this.source[this.index];if(!r.Character.isIdentifierPart(e.charCodeAt(0)))break;if(++this.index,"\\"!==e||this.eof())t+=e,e;else if("u"===(e=this.source[this.index])){++this.index;var i=this.index,n=this.scanHexEscape("u");if(null!==n)for(t+=n,"\\u";i=55296&&t<57343&&r.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},t}();e.Scanner=u},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenName={},e.TokenName[1]="Boolean",e.TokenName[2]="",e.TokenName[3]="Identifier",e.TokenName[4]="Keyword",e.TokenName[5]="Null",e.TokenName[6]="Numeric",e.TokenName[7]="Punctuator",e.TokenName[8]="String",e.TokenName[9]="RegularExpression",e.TokenName[10]="Template"},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(10),r=i(12),s=i(13),a=function(){function t(){this.values=[],this.curly=this.paren=-1}return t.prototype.beforeFunctionExpression=function(t){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(t)>=0},t.prototype.isRegexStart=function(){var t=this.values[this.values.length-1],e=null!==t;switch(t){case"this":case"]":e=!1;break;case")":var i=this.values[this.paren-1];e="if"===i||"while"===i||"for"===i||"with"===i;break;case"}":if(e=!1,"function"===this.values[this.curly-3])e=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;e=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return e},t.prototype.push=function(t){7===t.type||4===t.type?("{"===t.value?this.curly=this.values.length:"("===t.value&&(this.paren=this.values.length),this.values.push(t.value)):this.values.push(null)},t}(),o=function(){function t(t,e){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!e&&("boolean"==typeof e.tolerant&&e.tolerant),this.scanner=new r.Scanner(t,this.errorHandler),this.scanner.trackComment=!!e&&("boolean"==typeof e.comment&&e.comment),this.trackRange=!!e&&("boolean"==typeof e.range&&e.range),this.trackLoc=!!e&&("boolean"==typeof e.loc&&e.loc),this.buffer=[],this.reader=new a}return t.prototype.errors=function(){return this.errorHandler.errors},t.prototype.getNextToken=function(){if(0===this.buffer.length){var t=this.scanner.scanComments();if(this.scanner.trackComment)for(var e=0;en&&" "!==t[p+1],p=s);else if(!U(a))return Y;N=N&&z(a)}h=h||c&&s-p-1>n&&" "!==t[p+1]}return u||h?i>9&&X(t)?Y:h?H:K:N&&!r(t)?j:J}function q(t,e,i,n){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==P.indexOf(e))return"'"+e+"'";var r=t.indent*Math.max(1,i),a=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-r),o=n||t.flowLevel>-1&&i>=t.flowLevel;switch(W(e,o,t.indent,a,function(e){return function(t,e){var i,n;for(i=0,n=t.implicitTypes.length;i"+G(e,t.indent)+$(O(function(t,e){var i,n,r=/(\n+)([^\n]*)/g,s=(o=t.indexOf("\n"),o=-1!==o?o:t.length,r.lastIndex=o,V(t.slice(0,o),e)),a="\n"===t[0]||" "===t[0];var o;for(;n=r.exec(t);){var u=n[1],h=n[2];i=" "===h[0],s+=u+(a||i||""===h?"":"\n")+V(h,e),a=i}return s}(e,a),r));case Y:return'"'+function(t){for(var e,i,n,r="",s=0;s=55296&&e<=56319&&(i=t.charCodeAt(s+1))>=56320&&i<=57343?(r+=I(1024*(e-55296)+i-56320+65536),s++):(n=N[e],r+=!n&&U(e)?t[s]:n||I(e));return r}(e)+'"';default:throw new s("impossible error: invalid scalar style")}}()}function G(t,e){var i=X(t)?String(e):"",n="\n"===t[t.length-1];return i+(n&&("\n"===t[t.length-2]||"\n"===t)?"+":n?"":"-")+"\n"}function $(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function V(t,e){if(""===t||" "===t[0])return t;for(var i,n,r=/ [^ ]/g,s=0,a=0,o=0,u="";i=r.exec(t);)(o=i.index)-s>e&&(n=a>s?a:o,u+="\n"+t.slice(s,n),s=n+1),a=o;return u+="\n",t.length-s>e&&a>s?u+=t.slice(s,a)+"\n"+t.slice(a+1):u+=t.slice(s),u.slice(1)}function Z(t,e,i){var r,a,o,c,l,p;for(o=0,c=(a=i?t.explicitTypes:t.implicitTypes).length;o tag resolver accepts not "'+p+'" style');r=l.represent[p](e,p)}t.dump=r}return!0}return!1}function Q(t,e,i,n,r,a){t.tag=null,t.dump=i,Z(t,i,!1)||Z(t,i,!0);var o=u.call(t.dump);n&&(n=t.flowLevel<0||t.flowLevel>e);var h,c,p="[object Object]"===o||"[object Array]"===o;if(p&&(c=-1!==(h=t.duplicates.indexOf(i))),(null!==t.tag&&"?"!==t.tag||c||2!==t.indent&&e>0)&&(r=!1),c&&t.usedDuplicates[h])t.dump="*ref_"+h;else{if(p&&c&&!t.usedDuplicates[h]&&(t.usedDuplicates[h]=!0),"[object Object]"===o)n&&0!==Object.keys(t.dump).length?(!function(t,e,i,n){var r,a,o,u,h,c,p="",f=t.tag,d=Object.keys(i);if(!0===t.sortKeys)d.sort();else if("function"==typeof t.sortKeys)d.sort(t.sortKeys);else if(t.sortKeys)throw new s("sortKeys must be a boolean or a function");for(r=0,a=d.length;r1024)&&(t.dump&&l===t.dump.charCodeAt(0)?c+="?":c+="? "),c+=t.dump,h&&(c+=R(t,e)),Q(t,e+1,u,!0,h)&&(t.dump&&l===t.dump.charCodeAt(0)?c+=":":c+=": ",p+=c+=t.dump));t.tag=f,t.dump=p||"{}"}(t,e,t.dump,r),c&&(t.dump="&ref_"+h+t.dump)):(!function(t,e,i){var n,r,s,a,o,u="",h=t.tag,c=Object.keys(i);for(n=0,r=c.length;n1024&&(o+="? "),o+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Q(t,e,a,!1,!1)&&(u+=o+=t.dump));t.tag=h,t.dump="{"+u+"}"}(t,e,t.dump),c&&(t.dump="&ref_"+h+" "+t.dump));else if("[object Array]"===o){var f=t.noArrayIndent&&e>0?e-1:e;n&&0!==t.dump.length?(!function(t,e,i,n){var r,s,a="",o=t.tag;for(r=0,s=i.length;r "+t.dump)}return!0}function tt(t,e){var i,r,s=[],a=[];for(function t(e,i,r){var s,a,o;if(null!==e&&"object"===n(e))if(-1!==(a=i.indexOf(e)))-1===r.indexOf(a)&&r.push(a);else if(i.push(e),Array.isArray(e))for(a=0,o=e.length;a\n :host {\n display: block;\n position: absolute;\n outline: none;\n z-index: 1002;\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: default;\n }\n\n #tooltip {\n display: block;\n outline: none;\n @apply --paper-font-common-base;\n font-size: 10px;\n line-height: 1;\n background-color: var(--paper-tooltip-background, #616161);\n color: var(--paper-tooltip-text-color, white);\n padding: 8px;\n border-radius: 2px;\n @apply --paper-tooltip;\n }\n\n @keyframes keyFrameScaleUp {\n 0% {\n transform: scale(0.0);\n }\n 100% {\n transform: scale(1.0);\n }\n }\n\n @keyframes keyFrameScaleDown {\n 0% {\n transform: scale(1.0);\n }\n 100% {\n transform: scale(0.0);\n }\n }\n\n @keyframes keyFrameFadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: var(--paper-tooltip-opacity, 0.9);\n }\n }\n\n @keyframes keyFrameFadeOutOpacity {\n 0% {\n opacity: var(--paper-tooltip-opacity, 0.9);\n }\n 100% {\n opacity: 0;\n }\n }\n\n @keyframes keyFrameSlideDownIn {\n 0% {\n transform: translateY(-2000px);\n opacity: 0;\n }\n 10% {\n opacity: 0.2;\n }\n 100% {\n transform: translateY(0);\n opacity: var(--paper-tooltip-opacity, 0.9);\n }\n }\n\n @keyframes keyFrameSlideDownOut {\n 0% {\n transform: translateY(0);\n opacity: var(--paper-tooltip-opacity, 0.9);\n }\n 10% {\n opacity: 0.2;\n }\n 100% {\n transform: translateY(-2000px);\n opacity: 0;\n }\n }\n\n .fade-in-animation {\n opacity: 0;\n animation-delay: var(--paper-tooltip-delay-in, 500ms);\n animation-name: keyFrameFadeInOpacity;\n animation-iteration-count: 1;\n animation-timing-function: ease-in;\n animation-duration: var(--paper-tooltip-duration-in, 500ms);\n animation-fill-mode: forwards;\n @apply --paper-tooltip-animation;\n }\n\n .fade-out-animation {\n opacity: var(--paper-tooltip-opacity, 0.9);\n animation-delay: var(--paper-tooltip-delay-out, 0ms);\n animation-name: keyFrameFadeOutOpacity;\n animation-iteration-count: 1;\n animation-timing-function: ease-in;\n animation-duration: var(--paper-tooltip-duration-out, 500ms);\n animation-fill-mode: forwards;\n @apply --paper-tooltip-animation;\n }\n\n .scale-up-animation {\n transform: scale(0);\n opacity: var(--paper-tooltip-opacity, 0.9);\n animation-delay: var(--paper-tooltip-delay-in, 500ms);\n animation-name: keyFrameScaleUp;\n animation-iteration-count: 1;\n animation-timing-function: ease-in;\n animation-duration: var(--paper-tooltip-duration-in, 500ms);\n animation-fill-mode: forwards;\n @apply --paper-tooltip-animation;\n }\n\n .scale-down-animation {\n transform: scale(1);\n opacity: var(--paper-tooltip-opacity, 0.9);\n animation-delay: var(--paper-tooltip-delay-out, 500ms);\n animation-name: keyFrameScaleDown;\n animation-iteration-count: 1;\n animation-timing-function: ease-in;\n animation-duration: var(--paper-tooltip-duration-out, 500ms);\n animation-fill-mode: forwards;\n @apply --paper-tooltip-animation;\n }\n\n .slide-down-animation {\n transform: translateY(-2000px);\n opacity: 0;\n animation-delay: var(--paper-tooltip-delay-out, 500ms);\n animation-name: keyFrameSlideDownIn;\n animation-iteration-count: 1;\n animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);\n animation-duration: var(--paper-tooltip-duration-out, 500ms);\n animation-fill-mode: forwards;\n @apply --paper-tooltip-animation;\n }\n\n .slide-down-animation-out {\n transform: translateY(0);\n opacity: var(--paper-tooltip-opacity, 0.9);\n animation-delay: var(--paper-tooltip-delay-out, 500ms);\n animation-name: keyFrameSlideDownOut;\n animation-iteration-count: 1;\n animation-timing-function: cubic-bezier(0.4, 0.0, 1, 1);\n animation-duration: var(--paper-tooltip-duration-out, 500ms);\n animation-fill-mode: forwards;\n @apply --paper-tooltip-animation;\n }\n\n .cancel-animation {\n animation-delay: -30s !important;\n }\n\n /* Thanks IE 10. */\n\n .hidden {\n display: none !important;\n }\n \n\n \n']);return a=function(){return t},t}Object(n.a)({_template:Object(s.a)(a()),is:"paper-tooltip",hostAttributes:{role:"tooltip",tabindex:-1},properties:{for:{type:String,observer:"_findTarget"},manualMode:{type:Boolean,value:!1,observer:"_manualModeChanged"},position:{type:String,value:"bottom"},fitToVisibleBounds:{type:Boolean,value:!1},offset:{type:Number,value:14},marginTop:{type:Number,value:14},animationDelay:{type:Number,value:500,observer:"_delayChange"},animationEntry:{type:String,value:""},animationExit:{type:String,value:""},animationConfig:{type:Object,value:function(){return{entry:[{name:"fade-in-animation",node:this,timing:{delay:0}}],exit:[{name:"fade-out-animation",node:this}]}}},_showing:{type:Boolean,value:!1}},listeners:{webkitAnimationEnd:"_onAnimationEnd"},get target(){var t=Object(r.a)(this).parentNode,e=Object(r.a)(this).getOwnerRoot();return this.for?Object(r.a)(e).querySelector("#"+this.for):t.nodeType==Node.DOCUMENT_FRAGMENT_NODE?e.host:t},attached:function(){this._findTarget()},detached:function(){this.manualMode||this._removeListeners()},playAnimation:function(t){"entry"===t?this.show():"exit"===t&&this.hide()},cancelAnimation:function(){this.$.tooltip.classList.add("cancel-animation")},show:function(){if(!this._showing){if(""===Object(r.a)(this).textContent.trim()){for(var t=!0,e=Object(r.a)(this).getEffectiveChildNodes(),i=0;iwindow.innerWidth?(this.style.right="0px",this.style.left="auto"):(this.style.left=Math.max(0,e)+"px",this.style.right="auto"),n.top+i+s.height>window.innerHeight?(this.style.bottom=n.height-h+t+"px",this.style.top="auto"):(this.style.top=Math.max(-n.top,i)+"px",this.style.bottom="auto")):(this.style.left=e+"px",this.style.top=i+"px")}},_addListeners:function(){this._target&&(this.listen(this._target,"mouseenter","show"),this.listen(this._target,"focus","show"),this.listen(this._target,"mouseleave","hide"),this.listen(this._target,"blur","hide"),this.listen(this._target,"tap","hide")),this.listen(this.$.tooltip,"animationend","_onAnimationEnd"),this.listen(this,"mouseenter","hide")},_findTarget:function(){this.manualMode||this._removeListeners(),this._target=this.target,this.manualMode||this._addListeners()},_delayChange:function(t){500!==t&&this.updateStyles({"--paper-tooltip-delay-in":t+"ms"})},_manualModeChanged:function(){this.manualMode?this._removeListeners():this._addListeners()},_cancelAnimation:function(){this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add("hidden")},_onAnimationFinish:function(){this._showing&&(this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add(this._getAnimationType("exit")))},_onAnimationEnd:function(){this._animationPlaying=!1,this._showing||(this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.add("hidden"))},_getAnimationType:function(t){if("entry"===t&&""!==this.animationEntry)return this.animationEntry;if("exit"===t&&""!==this.animationExit)return this.animationExit;if(this.animationConfig[t]&&"string"==typeof this.animationConfig[t][0].name){if(this.animationConfig[t][0].timing&&this.animationConfig[t][0].timing.delay&&0!==this.animationConfig[t][0].timing.delay){var e=this.animationConfig[t][0].timing.delay;"entry"===t?this.updateStyles({"--paper-tooltip-delay-in":e+"ms"}):"exit"===t&&this.updateStyles({"--paper-tooltip-delay-out":e+"ms"})}return this.animationConfig[t][0].name}},_removeListeners:function(){this._target&&(this.unlisten(this._target,"mouseenter","show"),this.unlisten(this._target,"focus","show"),this.unlisten(this._target,"mouseleave","hide"),this.unlisten(this._target,"blur","hide"),this.unlisten(this._target,"tap","hide")),this.unlisten(this.$.tooltip,"animationend","_onAnimationEnd"),this.unlisten(this,"mouseenter","hide")}})},,,,,,function(t,e,i){"use strict";i(4),i(26),i(22),i(40),i(124),i(102),i(13),i(73);var n=document.createElement("template");n.setAttribute("style","display: none;"),n.innerHTML='\n\n\n\n',document.head.appendChild(n.content);var r=document.createElement("template");r.setAttribute("style","display: none;"),r.innerHTML='\n \n',document.head.appendChild(r.content);var s=i(45),a=i(25),o=i(85),u=i(65),h=i(7),c=i(8),l=i(58),p=i(6);function f(){var t=function(t,e){e||(e=t.slice(0));return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}(['\n \n\n \x3c!-- this div fulfills an a11y requirement for combobox, do not remove --\x3e\n \n \n \x3c!-- support hybrid mode: user might be using paper-menu-button 1.x which distributes via --\x3e\n \n \n \n']);return f=function(){return t},t}Object(h.a)({_template:Object(p.a)(f()),is:"paper-dropdown-menu",behaviors:[s.a,a.a,o.a,u.a],properties:{selectedItemLabel:{type:String,notify:!0,readOnly:!0},selectedItem:{type:Object,notify:!0,readOnly:!0},value:{type:String,notify:!0},label:{type:String},placeholder:{type:String},errorMessage:{type:String},opened:{type:Boolean,notify:!0,value:!1,observer:"_openedChanged"},allowOutsideScroll:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1,reflectToAttribute:!0},alwaysFloatLabel:{type:Boolean,value:!1},noAnimations:{type:Boolean,value:!1},horizontalAlign:{type:String,value:"right"},verticalAlign:{type:String,value:"top"},verticalOffset:Number,dynamicAlign:{type:Boolean},restoreFocusOnClose:{type:Boolean,value:!0}},listeners:{tap:"_onTap"},keyBindings:{"up down":"open",esc:"close"},hostAttributes:{role:"combobox","aria-autocomplete":"none","aria-haspopup":"true"},observers:["_selectedItemChanged(selectedItem)"],attached:function(){var t=this.contentElement;t&&t.selectedItem&&this._setSelectedItem(t.selectedItem)},get contentElement(){for(var t=Object(c.a)(this.$.content).getDistributedNodes(),e=0,i=t.length;e\n \n",document.head.appendChild(n.content);var r=i(7),s=i(6),a=i(45),o=i(25),u=[a.a,o.a,{hostAttributes:{role:"option",tabindex:"0"}}];function h(){var t=function(t,e){e||(e=t.slice(0));return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}(['\n \n \n']);return h=function(){return t},t}Object(r.a)({_template:Object(s.a)(h()),is:"paper-item",behaviors:[u]})}]]); +//# sourceMappingURL=chunk.f49e500cf58ea310d452.js.map \ No newline at end of file diff --git a/hassio/api/panel/chunk.84aaaba4c4734f1c2e21.js.LICENSE b/hassio/api/panel/chunk.f49e500cf58ea310d452.js.LICENSE similarity index 63% rename from hassio/api/panel/chunk.84aaaba4c4734f1c2e21.js.LICENSE rename to hassio/api/panel/chunk.f49e500cf58ea310d452.js.LICENSE index aae39fd08..d61be4fa6 100644 --- a/hassio/api/panel/chunk.84aaaba4c4734f1c2e21.js.LICENSE +++ b/hassio/api/panel/chunk.f49e500cf58ea310d452.js.LICENSE @@ -1,20 +1,3 @@ -/** -@license -Copyright 2018 Google Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - /** @license Copyright (c) 2015 The Polymer Project Authors. All rights reserved. @@ -26,6 +9,13 @@ part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + /** @license Copyright (c) 2016 The Polymer Project Authors. All rights reserved. diff --git a/hassio/api/panel/chunk.f49e500cf58ea310d452.js.gz b/hassio/api/panel/chunk.f49e500cf58ea310d452.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..833a98e02678b06947aa3d079c3cc1147c679c98 GIT binary patch literal 65634 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 literal 0 HcmV?d00001 diff --git a/hassio/api/panel/chunk.f49e500cf58ea310d452.js.map b/hassio/api/panel/chunk.f49e500cf58ea310d452.js.map new file mode 100644 index 000000000..a48b137e5 --- /dev/null +++ b/hassio/api/panel/chunk.f49e500cf58ea310d452.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/js-yaml/lib/js-yaml/type.js","webpack:///./node_modules/js-yaml/lib/js-yaml/common.js","webpack:///./node_modules/js-yaml/lib/js-yaml/schema.js","webpack:///./node_modules/js-yaml/lib/js-yaml/exception.js","webpack:///./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","webpack:///./node_modules/js-yaml/lib/js-yaml/schema/default_full.js","webpack:///./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","webpack:///../src/rpc-wrapper.js","webpack:///./node_modules/js-yaml/lib/js-yaml/schema/core.js","webpack:///./node_modules/js-yaml/lib/js-yaml/schema/json.js","webpack:///src/scope.js","webpack:///src/timing-utilities.js","webpack:///src/normalize-keyframes.js","webpack:///src/deprecation.js","webpack:///src/web-animations-bonus-cancel-events.js","webpack:///src/web-animations-bonus-object-form-keyframes.js","webpack:///src/timeline.js","webpack:///src/web-animations-next-animation.js","webpack:///src/keyframe-effect-constructor.js","webpack:///src/effect-callback.js","webpack:///src/group-constructors.js","webpack:///./node_modules/@polymer/paper-listbox/paper-listbox.js","webpack:///./node_modules/@polymer/iron-autogrow-textarea/iron-autogrow-textarea.js","webpack:///./node_modules/js-yaml/index.js","webpack:///./node_modules/js-yaml/lib/js-yaml.js","webpack:///./node_modules/js-yaml/lib/js-yaml/loader.js","webpack:///./node_modules/js-yaml/lib/js-yaml/mark.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/str.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/seq.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/map.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/null.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/bool.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/int.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/float.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/timestamp.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/merge.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/binary.js","webpack:///./node_modules/buffer/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/omap.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/pairs.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/set.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","webpack:///./node_modules/js-yaml/lib/js-yaml/type/js/function.js","webpack:///./node_modules/esprima/dist/esprima.js","webpack:///./node_modules/js-yaml/lib/js-yaml/dumper.js","webpack:///./node_modules/@polymer/paper-tooltip/paper-tooltip.js","webpack:///./node_modules/@polymer/paper-dropdown-menu/paper-dropdown-menu-icons.js","webpack:///./node_modules/@polymer/paper-dropdown-menu/paper-dropdown-menu-shared-styles.js","webpack:///./node_modules/@polymer/paper-dropdown-menu/paper-dropdown-menu.js","webpack:///./node_modules/@polymer/paper-item/paper-item-shared-styles.js","webpack:///./node_modules/@polymer/paper-item/paper-item-behavior.js","webpack:///./node_modules/@polymer/paper-item/paper-item.js"],"names":["YAMLException","require","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","module","exports","tag","options","map","result","Object","keys","forEach","name","indexOf","this","kind","resolve","construct","data","instanceOf","predicate","represent","defaultStyle","styleAliases","style","alias","String","isNothing","subject","isObject","_typeof","toArray","sequence","Array","isArray","repeat","string","count","cycle","isNegativeZero","number","Number","NEGATIVE_INFINITY","extend","target","source","index","length","key","sourceKeys","common","Type","compileList","schema","exclude","include","includedSchema","currentType","previousType","previousIndex","push","filter","type","Schema","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","mapping","fallback","collectType","arguments","compileMap","DEFAULT","create","schemas","types","every","reason","mark","Error","call","message","toString","captureStackTrace","constructor","stack","prototype","compact","worker","methods","c","callbacks","e","d","id","f","error","evt","document","method","Promise","a","b","params","webAnimationsShared","webAnimations1","webAnimationsNext","webAnimationsTesting","shared","testing","AnimationEffectTiming","_delay","_endDelay","_fill","_iterationStart","_iterations","_duration","_playbackRate","_direction","_easing","_easingFunction","linear","isInvalidTimingDeprecated","isDeprecated","makeTiming","timingInput","forGroup","effect","timing","fill","duration","isNaN","getOwnPropertyNames","property","fills","directions","cubic","x","m","start_gradient","end_gradient","start","end","mid","xEst","Math","abs","step","pos","stepSize","normalizeEasing","easing","styleForCleaning","createElement","animationTimingFunction","normalizedEasing","TypeError","parseEasingFunction","cubicData","cubicBezierRe","exec","apply","slice","stepData","stepRe","Start","middle","Middle","End","presets","calculatePhase","activeDuration","localTime","PhaseNone","endTime","delay","endDelay","min","PhaseBefore","PhaseAfter","PhaseActive","split","_setMember","member","value","_effect","_timingInput","_timing","normalizeTimingInput","calculateActiveDuration","_animation","_rebuildUnderlyingAnimation","playbackRate","iterationStart","direction","iterations","ease","ease-in","ease-out","ease-in-out","step-start","step-middle","step-end","numberString","RegExp","cloneTimingInput","clone","numericTimingToObject","repeatedDuration","calculateIterationProgress","phase","activeTime","fillMode","calculateActiveTime","overallProgress","iterationDuration","calculateOverallProgress","simpleIterationProgress","Infinity","calculateSimpleIterationProgress","currentIteration","floor","calculateCurrentIteration","directedProgress","playbackDirection","currentDirection","calculateDirectedProgress","antiAlias","aliases","expandShorthandAndAntiAlias","lastIndexOf","isNotAnimatable","longProperties","shorthandToLonghand","i","shorthandExpanderElem","longProperty","longhandValue","convertToArrayForm","effectInput","normalizedEffectInput","values","keyframe","numKeyframes","offset","composite","sort","background","border","borderBottom","borderColor","borderLeft","borderRadius","borderRight","borderTop","borderWidth","flex","font","margin","outline","padding","createElementNS","borderWidthAliases","thin","medium","thick","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","fontSize","xx-small","x-small","small","large","x-large","xx-large","fontWeight","normal","bold","outlineWidth","textShadow","none","boxShadow","normalizeKeyframes","window","Symbol","iterator","from","keyframes","originalKeyframe","memberValue","isFinite","DOMException","NOT_SUPPORTED_ERR","everyFrameHasOffset","previousOffset","j","spaceKeyframes","silenced","feature","date","advice","plural","auxVerb","today","Date","expiry","setMonth","getMonth","console","warn","toDateString","deprecated","animate","oncancel","performance","now","AnimationCancelEvent","currentTime","timelineTime","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","Event","AT_TARGET","timeStamp","originalElementAnimate","Element","animation","_cancelHandlers","originalCancel","cancel","event","handlers","concat","setTimeout","handler","originalAddEventListener","addEventListener","originalRemoveEventListener","removeEventListener","splice","element","documentElement","animated","testOpacity","getComputedStyle","getPropertyValue","opacity","scope","webAnimationsNextTick","t","timeline","_discardAnimations","_animations","ticking","requestAnimationFrame","originalRequestAnimationFrame","_updateAnimationsPromises","AnimationTimeline","getAnimations","animationsWithPromises","_updatePromises","playState","_play","Animation","restartWebAnimationsNextTick","play","remove","defineProperty","configurable","get","_id","_timeline","_sequenceNumber","sequenceNumber","_holdTime","_paused","_isGroup","_childAnimations","_callback","_oldPlayState","oldPlayState","newPlayState","_readyPromise","_rejectReadyPromise","_resolveReadyPromise","_finishedPromise","_rejectFinishedPromise","_resolveFinishedPromise","oldPlaybackRate","oldPaused","oldStartTime","oldCurrentTime","hadUnderlying","startTime","_wrapper","KeyframeEffect","newUnderlyingAnimationForKeyframeEffect","bindAnimationForKeyframeEffect","SequenceEffect","GroupEffect","newUnderlyingAnimationForGroup","bindAnimationForGroup","_onsample","bindAnimationForCustomEffect","pause","_updateChildren","childAnimation","_arrangeChildren","groupChildDuration","bind","_setExternalAnimation","children","_constructChildAnimations","_removeChildAnimations","child","finished","reject","ABORT_ERR","ready","onfinish","v","sign","MAX_VALUE","_register","_forEachChild","awaitStartTime","time","finish","reverse","wrapped","pop","KeyframeList","_frames","updatePendingGroups","updated","pendingGroups","shift","disassociate","removeMulti","effects","oldParents","_parent","_rebuild","_normalizedKeyframes","_keyframes","getFrames","onsample","callback","parent","nullTarget","keyframeEffect","groupAnimation","originalGetComputedStyle","enumerable","register","_registered","tick","updating","left","right","effectFunction","isKeyframeEffect","last","node","_reparent","_isAncestor","newChildren","_putChild","args","isAppend","HIERARCHY_REQUEST_ERR","unshift","append","prepend","firstChild","lastChild","clonedTiming","clonedChildren","total","max","group","underlyingAnimation","underlyingEffect","tf","Polymer","_template","html","_templateObject","is","behaviors","IronMenuBehavior","hostAttributes","role","IronValidatableBehavior","IronControlState","properties","observer","notify","bindValue","rows","maxRows","autocomplete","autofocus","Boolean","inputmode","placeholder","readonly","required","minlength","maxlength","label","listeners","input","textarea","$","selectionStart","selectionEnd","attached","navigator","userAgent","match","marginLeft","validate","valid","validity","hasValidator","invalid","fire","_bindValueChanged","_valueChanged","mirror","innerHTML","_valueForMirror","_onInput","eventPath","dom","path","_constrain","tokens","_tokens","join","replace","_updateCached","yaml","loader","dumper","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","load","loadAll","safeLoad","safeLoadAll","dump","safeDump","MINIMAL_SCHEMA","SAFE_SCHEMA","DEFAULT_SCHEMA","scan","parse","compose","addConstructor","Mark","_hasOwnProperty","hasOwnProperty","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","obj","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","simpleEscapeSequence","charFromCodepoint","fromCharCode","simpleEscapeCheck","simpleEscapeMap","State","filename","onWarning","legacy","json","listener","implicitTypes","typeMap","position","line","lineStart","lineIndent","documents","generateError","state","throwError","throwWarning","directiveHandlers","YAML","major","minor","version","parseInt","checkLineBreaks","TAG","handle","prefix","test","tagMap","captureSegment","checkJson","_position","_length","_character","_result","charCodeAt","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startPos","readLineBreak","ch","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_line","_tag","_anchor","anchor","detected","anchorMap","composeNode","readTagProperty","tagHandle","tagName","isVerbatim","isNamed","readAnchorProperty","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","following","_pos","atExplicitKey","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","readFlowCollection","captureStart","folding","tmp","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","readSingleQuotedScalar","hexLength","hexResult","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","output","buffer","column","getSnippet","indent","maxLength","head","tail","snippet","charAt","where","object","canonical","lowercase","uppercase","camelcase","isOctCode","isDecCode","hasDigits","base","digits","binary","octal","decimal","hexadecimal","toUpperCase","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","toLowerCase","POSITIVE_INFINITY","NaN","parseFloat","res","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","year","month","day","hour","minute","second","fraction","delta","UTC","setTime","getTime","toISOString","NodeBuffer","_require","Buffer","__","BASE64_MAP","code","idx","bitlen","tailbits","bits","isBuffer","global","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","allocUnsafe","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","fromString","len","checked","copy","val","fromObject","assertSize","size","isView","loweredCase","utf8ToBytes","base64ToBytes","swap","n","bidirectionalIndexOf","dir","arrayIndexOf","arr","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","base64Slice","fromByteArray","utf8Slice","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","y","list","swap16","swap32","swap64","hexSlice","asciiSlice","latin1Slice","utf16leSlice","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","stringtrim","base64clean","src","dst","g","Function","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","s","rt","log","LN2","_toString","pair","pairKey","pairHasKey","objectKeys","regexp","modifiers","multiline","ignoreCase","esprima","_","ast","range","body","expression","err","param","factory","modules","installedModules","__webpack_require__","moduleId","loaded","p","comment_handler_1","jsx_parser_1","parser_1","tokenizer_1","delegate","commentHandler","proxyDelegate","metadata","visit","parserDelegate","collectComment","comment","attachComment","CommentHandler","attach","parser","isModule","sourceType","jsx","JSXParser","Parser","parseModule","parseScript","comments","config","tolerant","errors","errorHandler","parsingOptions","tokenize","tokenizer","Tokenizer","token","getNextToken","tolerate","syntax_1","Syntax","leading","trailing","insertInnerComments","BlockStatement","innerComments","entry","findTrailingComments","trailingComments","entry_1","firstComment","findLeadingComments","leadingComments","visitNode","Program","visitComment","loc","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ConditionalExpression","ContinueStatement","DoWhileStatement","DebuggerStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForOfStatement","ForInStatement","FunctionDeclaration","FunctionExpression","Identifier","IfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","NewExpression","ObjectExpression","ObjectPattern","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchCase","SwitchStatement","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","extendStatics","__extends","setPrototypeOf","character_1","JSXNode","jsx_syntax_1","Node","token_1","xhtml_entities_1","getQualifiedElementName","elementName","qualifiedName","JSXSyntax","JSXIdentifier","JSXNamespacedName","ns","namespace","JSXMemberExpression","expr","TokenName","_super","parsePrimaryExpression","parseJSXRoot","startJSX","scanner","startMarker","lineNumber","finishJSX","nextToken","reenterJSX","expectJSX","createJSXNode","collectComments","createJSXChildNode","scanXHTMLEntity","quote","terminated","numeric","hex","eof","Character","isDecimalDigit","isHexDigit","XHTMLEntities","lexJSX","cp","n1","n2","isIdentifierStart","isIdentifierPart","lex","nextJSXToken","lastMarker","convertToken","nextJSXText","text","isLineTerminator","peekJSXToken","saveState","scanComments","next","restoreState","throwUnexpectedToken","matchJSX","parseJSXIdentifier","finalize","parseJSXElementName","name_1","parseJSXAttributeName","attributeName","identifier","name_2","parseJSXStringLiteralAttribute","raw","getTokenRaw","parseJSXExpressionAttribute","tolerateError","parseAssignmentExpression","JSXExpressionContainer","parseJSXAttributeValue","parseJSXElement","parseJSXNameValueAttribute","JSXAttribute","parseJSXSpreadAttribute","argument","JSXSpreadAttribute","parseJSXAttributes","attributes","attribute","parseJSXOpeningElement","selfClosing","JSXOpeningElement","parseJSXBoundaryElement","name_3","JSXClosingElement","parseJSXEmptyExpression","JSXEmptyExpression","parseJSXExpressionContainer","parseJSXChildren","JSXText","container","parseComplexJSXElement","el","opening","JSXElement","closing","open_1","isStartOfExpression","Regex","NonAsciiIdentifierStart","NonAsciiIdentifierPart","fromCodePoint","isWhiteSpace","isOctalDigit","openingElement","closingElement","elements","generator","async","operator","AsyncArrowFunctionExpression","AsyncFunctionDeclaration","AsyncFunctionExpression","logical","callee","superClass","ComputedMemberExpression","computed","consequent","alternate","Directive","directive","declaration","specifiers","local","exported","each","init","update","imported","meta","isStatic","Module","shorthand","RegexLiteral","pattern","flags","regex","Script","expressions","StaticMemberExpression","discriminant","cases","quasi","quasis","block","finalizer","declarations","assert_1","error_handler_1","messages_1","scanner_1","ErrorHandler","Scanner","trackComment","operatorPrecedence",")",";",",","=","]","||","&&","|","^","&","==","!=","===","!==","<",">","<=",">=","<<",">>",">>>","+","-","*","/","%","lookahead","hasLineTerminator","context","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","messageFormat","_i","msg","whole","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","marker","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","op","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","arrow","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","markers","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","opt","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","writable","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","condition","recordError","constructError","col","description","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","hexValue","octalValue","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","scanIdentifier","restore","scanPunctuator","scanHexLiteral","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","self","$0","$1","$2","exception","scanRegExpBody","classMarker","scanRegExpFlags","char","quot","amp","apos","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","lang","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","previous","check","trackRange","trackLoc","reader","define","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","CHAR_TAB","CHAR_LINE_FEED","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","encodeHex","character","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","level","isWhitespace","isPrintable","isPlainSafe","needIndentIndicator","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","writeScalar","iskey","testImplicitResolving","blockHeader","dropEndingNewline","width","moreIndented","lineRe","nextLF","lastIndex","foldLine","prevMoreIndented","foldString","nextChar","escapeSeq","escapeString","indentIndicator","clip","breakRe","curr","detectType","typeList","writeNode","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","writeBlockMapping","writeFlowMapping","arrayLevel","writeBlockSequence","writeFlowSequence","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","tabindex","for","manualMode","fitToVisibleBounds","marginTop","animationDelay","animationEntry","animationExit","animationConfig","exit","_showing","webkitAnimationEnd","parentNode","ownerRoot","getOwnerRoot","querySelector","nodeType","DOCUMENT_FRAGMENT_NODE","host","_findTarget","detached","_removeListeners","playAnimation","show","hide","cancelAnimation","tooltip","classList","add","textContent","allChildrenEmpty","effectiveChildren","getEffectiveChildNodes","_getAnimationType","updatePosition","_animationPlaying","_cancelAnimation","_onAnimationFinish","_target","offsetParent","tooltipLeft","tooltipTop","parentRect","getBoundingClientRect","targetRect","thisRect","horizontalCenterOffset","verticalCenterOffset","height","targetLeft","targetTop","top","innerWidth","innerHeight","bottom","_addListeners","listen","_delayChange","newValue","updateStyles","--paper-tooltip-delay-in","_manualModeChanged","_onAnimationEnd","timingDelay","--paper-tooltip-delay-out","unlisten","$_documentContainer","setAttribute","appendChild","content","IronButtonState","IronFormElementBehavior","selectedItemLabel","readOnly","selectedItem","errorMessage","opened","allowOutsideScroll","noLabelFloat","reflectToAttribute","alwaysFloatLabel","noAnimations","horizontalAlign","verticalAlign","verticalOffset","dynamicAlign","restoreFocusOnClose","tap","keyBindings","up down","esc","aria-autocomplete","aria-haspopup","observers","contentElement","_setSelectedItem","nodes","getDistributedNodes","l","ELEMENT_NODE","open","menuButton","close","_onIronSelect","detail","item","_onIronDeselect","_onTap","gestures","_selectedItemChanged","getAttribute","_setSelectedItemLabel","_computeMenuVerticalOffset","opt_verticalOffset","_getValidity","_value","disabled","_openedChanged","openState","PaperItemBehavior"],"mappings":";iGAEA,IAAIA,EAAgBC,EAAQ,IAExBC,EAA2B,CAC7B,OACA,UACA,YACA,aACA,YACA,YACA,eACA,gBAGEC,EAAkB,CACpB,SACA,WACA,WA0CFC,EAAOC,QAzBP,SAAcC,EAAKC,GAdnB,IAA6BC,EACvBC,EAiCJ,GAnBAF,EAAUA,GAAW,GAErBG,OAAOC,KAAKJ,GAASK,QAAQ,SAAUC,GACrC,IAAgD,IAA5CX,EAAyBY,QAAQD,GACnC,MAAM,IAAIb,EAAc,mBAAqBa,EAAO,8BAAgCP,EAAM,kBAK9FS,KAAKT,IAAeA,EACpBS,KAAKC,KAAeT,EAAO,MAAoB,KAC/CQ,KAAKE,QAAeV,EAAO,SAAoB,WAAc,OAAO,GACpEQ,KAAKG,UAAeX,EAAO,WAAoB,SAAUY,GAAQ,OAAOA,GACxEJ,KAAKK,WAAeb,EAAO,YAAoB,KAC/CQ,KAAKM,UAAed,EAAO,WAAoB,KAC/CQ,KAAKO,UAAef,EAAO,WAAoB,KAC/CQ,KAAKQ,aAAehB,EAAO,cAAoB,KAC/CQ,KAAKS,cAhCsBhB,EAgCaD,EAAO,cAAoB,KA/B/DE,EAAS,GAED,OAARD,GACFE,OAAOC,KAAKH,GAAKI,QAAQ,SAAUa,GACjCjB,EAAIiB,GAAOb,QAAQ,SAAUc,GAC3BjB,EAAOkB,OAAOD,IAAUD,MAKvBhB,IAuBqC,IAAxCN,EAAgBW,QAAQC,KAAKC,MAC/B,MAAM,IAAIhB,EAAc,iBAAmBe,KAAKC,KAAO,uBAAyBV,EAAM,2SCrD1F,SAASsB,EAAUC,GACjB,OAAQ,MAAOA,EAiDjBzB,EAAOC,QAAQuB,UAAiBA,EAChCxB,EAAOC,QAAQyB,SA9Cf,SAAkBD,GAChB,MAA2B,WAAnBE,EAAOF,IAAsC,OAAZA,GA8C3CzB,EAAOC,QAAQ2B,QA1Cf,SAAiBC,GACf,OAAIC,MAAMC,QAAQF,GAAkBA,EAC3BL,EAAUK,GAAkB,GAE9B,CAAEA,IAuCX7B,EAAOC,QAAQ+B,OAnBf,SAAgBC,EAAQC,GACtB,IAAiBC,EAAb9B,EAAS,GAEb,IAAK8B,EAAQ,EAAGA,EAAQD,EAAOC,GAAS,EACtC9B,GAAU4B,EAGZ,OAAO5B,GAaTL,EAAOC,QAAQmC,eATf,SAAwBC,GACtB,OAAmB,IAAXA,GAAkBC,OAAOC,oBAAsB,EAAIF,GAS7DrC,EAAOC,QAAQuC,OArCf,SAAgBC,EAAQC,GACtB,IAAIC,EAAOC,EAAQC,EAAKC,EAExB,GAAIJ,EAGF,IAAKC,EAAQ,EAAGC,GAFhBE,EAAaxC,OAAOC,KAAKmC,IAEWE,OAAQD,EAAQC,EAAQD,GAAS,EAEnEF,EADAI,EAAMC,EAAWH,IACHD,EAAOG,GAIzB,OAAOJ,iCC7BT,IAAIM,EAAgBlD,EAAQ,IACxBD,EAAgBC,EAAQ,IACxBmD,EAAgBnD,EAAQ,IAG5B,SAASoD,EAAYC,EAAQzC,EAAMJ,GACjC,IAAI8C,EAAU,GAgBd,OAdAD,EAAOE,QAAQ5C,QAAQ,SAAU6C,GAC/BhD,EAAS4C,EAAYI,EAAgB5C,EAAMJ,KAG7C6C,EAAOzC,GAAMD,QAAQ,SAAU8C,GAC7BjD,EAAOG,QAAQ,SAAU+C,EAAcC,GACjCD,EAAarD,MAAQoD,EAAYpD,KAAOqD,EAAa3C,OAAS0C,EAAY1C,MAC5EuC,EAAQM,KAAKD,KAIjBnD,EAAOoD,KAAKH,KAGPjD,EAAOqD,OAAO,SAAUC,EAAMhB,GACnC,OAAmC,IAA5BQ,EAAQzC,QAAQiC,KAwB3B,SAASiB,EAAOC,GACdlD,KAAKyC,QAAWS,EAAWT,SAAY,GACvCzC,KAAKmD,SAAWD,EAAWC,UAAY,GACvCnD,KAAKoD,SAAWF,EAAWE,UAAY,GAEvCpD,KAAKmD,SAAStD,QAAQ,SAAUmD,GAC9B,GAAIA,EAAKK,UAA8B,WAAlBL,EAAKK,SACxB,MAAM,IAAIpE,EAAc,qHAI5Be,KAAKsD,iBAAmBhB,EAAYtC,KAAM,WAAY,IACtDA,KAAKuD,iBAAmBjB,EAAYtC,KAAM,WAAY,IACtDA,KAAKwD,gBAhCP,WACE,IAKOxB,EAAOC,EALVvC,EAAS,CACP+D,OAAQ,GACRvC,SAAU,GACVwC,QAAS,GACTC,SAAU,IAGhB,SAASC,EAAYZ,GACnBtD,EAAOsD,EAAK/C,MAAM+C,EAAKzD,KAAOG,EAAM,SAAasD,EAAKzD,KAAOyD,EAG/D,IAAKhB,EAAQ,EAAGC,EAAS4B,UAAU5B,OAAQD,EAAQC,EAAQD,GAAS,EAClE6B,UAAU7B,GAAOnC,QAAQ+D,GAE3B,OAAOlE,EAiBiBoE,CAAW9D,KAAKsD,iBAAkBtD,KAAKuD,kBAIjEN,EAAOc,QAAU,KAGjBd,EAAOe,OAAS,WACd,IAAIC,EAASC,EAEb,OAAQL,UAAU5B,QAChB,KAAK,EACHgC,EAAUhB,EAAOc,QACjBG,EAAQL,UAAU,GAClB,MAEF,KAAK,EACHI,EAAUJ,UAAU,GACpBK,EAAQL,UAAU,GAClB,MAEF,QACE,MAAM,IAAI5E,EAAc,wDAM5B,GAHAgF,EAAU7B,EAAOnB,QAAQgD,GACzBC,EAAQ9B,EAAOnB,QAAQiD,IAElBD,EAAQE,MAAM,SAAU5B,GAAU,OAAOA,aAAkBU,IAC9D,MAAM,IAAIhE,EAAc,6FAG1B,IAAKiF,EAAMC,MAAM,SAAUnB,GAAQ,OAAOA,aAAgBX,IACxD,MAAM,IAAIpD,EAAc,sFAG1B,OAAO,IAAIgE,EAAO,CAChBR,QAASwB,EACTb,SAAUc,KAKd7E,EAAOC,QAAU2D,2CCvGjB,SAAShE,EAAcmF,EAAQC,GAE7BC,MAAMC,KAAKvE,MAEXA,KAAKF,KAAO,gBACZE,KAAKoE,OAASA,EACdpE,KAAKqE,KAAOA,EACZrE,KAAKwE,SAAWxE,KAAKoE,QAAU,qBAAuBpE,KAAKqE,KAAO,IAAMrE,KAAKqE,KAAKI,WAAa,IAG3FH,MAAMI,kBAERJ,MAAMI,kBAAkB1E,KAAMA,KAAK2E,aAGnC3E,KAAK4E,OAAS,IAAIN,OAASM,OAAS,GAMxC3F,EAAc4F,UAAYlF,OAAOqE,OAAOM,MAAMO,WAC9C5F,EAAc4F,UAAUF,YAAc1F,EAGtCA,EAAc4F,UAAUJ,SAAW,SAAkBK,GACnD,IAAIpF,EAASM,KAAKF,KAAO,KAQzB,OANAJ,GAAUM,KAAKoE,QAAU,oBAEpBU,GAAW9E,KAAKqE,OACnB3E,GAAU,IAAMM,KAAKqE,KAAKI,YAGrB/E,GAITL,EAAOC,QAAUL,gCChCjB,IAAIgE,EAAS/D,EAAQ,IAGrBG,EAAOC,QAAU,IAAI2D,EAAO,CAC1BR,QAAS,CACPvD,EAAQ,MAEViE,SAAU,CACRjE,EAAQ,KACRA,EAAQ,MAEVkE,SAAU,CACRlE,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,qDCbZ,IAAI+D,EAAS/D,EAAQ,IAGrBG,EAAOC,QAAU2D,EAAOc,QAAU,IAAId,EAAO,CAC3CR,QAAS,CACPvD,EAAQ,KAEVkE,SAAU,CACRlE,EAAQ,KACRA,EAAQ,KACRA,EAAQ,uDCfZ,IAAI+D,EAAS/D,EAAQ,IAGrBG,EAAOC,QAAU,IAAI2D,EAAO,CAC1BG,SAAU,CACRlE,EAAQ,KACRA,EAAQ,KACRA,EAAQ,mCCdG,SAAA6F,EAAAC,OACVC,EAAJ,EACIC,EAAJ,GACAH,sCAAoCI,OAC/BC,EAAID,EAAR/E,QACA,QAAIgF,UACAA,EAAJC,GAAU,KACLC,EAAIJ,EAAUE,EAAlBC,IACAC,WACQJ,EAAUE,EAAjBC,IACID,EAAJG,MACCD,KAAK3F,cAAc2E,MAAMc,QAApBzF,SAAsCyF,EAA3CE,QAGAA,KAAKF,EAALE,aAIE,KACAE,EAAMC,qBAAV,SACAD,YAAcJ,EAAdI,cACAA,OAAWJ,EAAXI,OACAT,sBAGFC,mBAAiBU,GAChBX,8EAAgC,IAAAY,QAAA,SAAaC,EAAAC,OACxCR,IAAJJ,EACAC,KAAgB,CAAAU,EAAhBV,GACAH,cAAmB,CAAE/B,KAAF,SAAAqC,SAAAK,SAA2BI,sECnBjD,IAAI7C,EAAS/D,EAAQ,IAGrBG,EAAOC,QAAU,IAAI2D,EAAO,CAC1BR,QAAS,CACPvD,EAAQ,sCCJZ,IAAI+D,EAAS/D,EAAQ,IAGrBG,EAAOC,QAAU,IAAI2D,EAAO,CAC1BR,QAAS,CACPvD,EAAQ,KAEViE,SAAU,CACRjE,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,qCCRZ,IAAI6G,IACAC,EACAC,EAFAF,EAKEG,kBAAuBlG,KAAvBkG,GAJFF,KACAC,KCFJ,SAAUE,EAAQC,GAiBhB,SAASC,IACPrG,KAAKsG,OAAS,EACdtG,KAAKuG,UAAY,EACjBvG,KAAKwG,MAAQ,OACbxG,KAAKyG,gBAAkB,EACvBzG,KAAK0G,YAAc,EACnB1G,KAAK2G,UAAY,EACjB3G,KAAK4G,cAAgB,EACrB5G,KAAK6G,WAAa,SAClB7G,KAAK8G,QAAU,SACf9G,KAAK+G,gBAAkBC,EAGzB,SAASC,IACP,OAAOd,EAAOe,aAAa,wBAAyB,aAAc,mDA8EpE,SAASC,EAAWC,EAAaC,EAAUC,GACzC,IAAIC,EAAS,IAAIlB,EACbgB,WACFE,EAAOC,KAAO,OACdD,EAAOE,SAAW,QAEM,iBAAfL,GAA4BM,MAAMN,YAElCA,GACTzH,OAAOgI,oBAAoBP,GAAavH,QAAQ,SAAS+H,GACvD,GAA6B,QAAzBR,EAAYQ,GAAqB,CACnC,IAA+B,iBAApBL,EAAOK,IAAqC,YAAZA,KACL,iBAAzBR,EAAYQ,IAAyBF,MAAMN,EAAYQ,KAChE,OAGJ,GAAiB,QAAZA,IAAiE,GAAzCC,EAAM9H,QAAQqH,EAAYQ,IACrD,OAEF,GAAiB,aAAZA,IAA2E,GAA9CE,EAAW/H,QAAQqH,EAAYQ,IAC/D,OAEF,GAAgB,gBAAZA,GAAwD,IAA1BR,EAAYQ,IAAmBzB,EAAOe,aAAa,qCAAsC,aAAc,uCACvI,OAEFK,EAAOK,GAAYR,EAAYQ,MAlBnCL,EAAOE,SAAWL,EAsBbG,EAmBT,SAASQ,EAAMnC,EAAGC,EAAGZ,EAAGG,GACtB,OAAIQ,EAAI,GAAKA,EAAI,GAAKX,EAAI,GAAKA,EAAI,EAC1B+B,EAEF,SAASgB,GAqBZ,SAAS1C,EAAEM,EAAGC,EAAGoC,GAAK,OAAO,EAAIrC,GAAK,EAAIqC,IAAM,EAAIA,GAAKA,EAAI,EAAIpC,GAAK,EAAIoC,GAAKA,EAAIA,EAAIA,EAAIA,EAAIA,EApBjG,GAAID,GAAK,EAAG,CACV,IAAIE,EAAiB,EACjBtC,SAAI,EACNsC,EAAiBrC,EAAID,GACbC,GAAKZ,EAAI,IACjBiD,EAAiB9C,EAAIH,GAChBiD,EAAiBF,EAE1B,GAAIA,GAAK,EAAG,CACV,IAAIG,EAAe,EACflD,SAAI,EACNkD,GAAgB/C,EAAI,IAAMH,EAAI,GAClB,GAALA,GAAUW,EAAI,IACrBuC,GAAgBtC,EAAI,IAAMD,EAAI,IACzB,EAAIuC,GAAgBH,EAAI,GAIjC,IADA,IAAII,EAAQ,EAAGC,EAAM,EACdD,EAAQC,GAAK,CAClB,IAAIC,GAAOF,EAAQC,GAAO,EAEtBE,EAAOjD,EAAEM,EAAGX,EAAGqD,GACnB,GAAIE,KAAKC,IAAIT,EAAIO,GAAQ,KACvB,OAAOjD,EAAEO,EAAGT,EAAGkD,GAEbC,EAAOP,EACTI,EAAQE,EAERD,EAAMC,EAGV,OAAOhD,EAAEO,EAAGT,EAAGkD,IAQnB,SAASI,EAAKnH,EAAOoH,GACnB,OAAO,SAASX,GACd,GAAIA,GAAK,EACP,OAAO,EAET,IAAIY,EAAW,EAAIrH,EAEnB,OADAyG,GAAKW,EAAMC,GACAZ,EAAIY,GAmBnB,SAASC,EAAgBC,GAClBC,IACHA,EAAmBtD,SAASuD,cAAc,OAAOtI,OAEnDqI,EAAiBE,wBAA0B,GAC3CF,EAAiBE,wBAA0BH,EAC3C,IAAII,EAAmBH,EAAiBE,wBACxC,GAAwB,IAApBC,GAA0BjC,IAC5B,MAAM,IAAIkC,UAAUL,EAAS,oCAE/B,OAAOI,EAGT,SAASE,EAAoBF,GAC3B,GAAwB,UAApBA,EACF,OAAOlC,EAET,IAAIqC,EAAYC,EAAcC,KAAKL,GACnC,GAAIG,EACF,OAAOtB,EAAMyB,MAAMxJ,KAAMqJ,EAAUI,MAAM,GAAGhK,IAAIkC,SAElD,IAAI+H,EAAWC,EAAOJ,KAAKL,GAC3B,OAAIQ,EACKhB,EAAK/G,OAAO+H,EAAS,KAAMtB,MAASwB,EAAOC,OAAUC,EAAQzB,IAAO0B,GAAKL,EAAS,KAE9EM,EAAQd,IAMdlC,EAoBT,SAASiD,EAAeC,EAAgBC,EAAW5C,GAEjD,GAAiB,MAAb4C,EACF,OAAOC,EAGT,IAAIC,EAAU9C,EAAO+C,MAAQJ,EAAiB3C,EAAOgD,SACrD,OAAIJ,EAAY3B,KAAKgC,IAAIjD,EAAO+C,MAAOD,GAC9BI,EAELN,GAAa3B,KAAKgC,IAAIjD,EAAO+C,MAAQJ,EAAgBG,GAChDK,EAGFC,EAlST,IAAI9C,EAAQ,+BAA+B+C,MAAM,KAC7C9C,EAAa,sCAAsC8C,MAAM,KACzD5D,EAAS,SAASgB,GAAK,OAAOA,GA8BlC3B,EAAsBxB,WACpBgG,WAAY,SAASC,EAAQC,GAC3B/K,KAAK,IAAM8K,GAAUC,EACjB/K,KAAKgL,UACPhL,KAAKgL,QAAQC,aAAaH,GAAUC,EACpC/K,KAAKgL,QAAQE,QAAU/E,EAAOgF,qBAAqBnL,KAAKgL,QAAQC,cAChEjL,KAAKgL,QAAQd,eAAiB/D,EAAOiF,wBAAwBpL,KAAKgL,QAAQE,SACtElL,KAAKgL,QAAQK,YACfrL,KAAKgL,QAAQK,WAAWC,gCAI9BC,mBACE,OAAOvL,KAAK4G,eAEd0D,UAAUS,GACR/K,KAAK6K,WAAW,QAASE,IAE3BT,YACE,OAAOtK,KAAKsG,QAEdiE,aAAaQ,GACX/K,KAAK6K,WAAW,WAAYE,IAE9BR,eACE,OAAOvK,KAAKuG,WAEdiB,SAASuD,GACP/K,KAAK6K,WAAW,OAAQE,IAE1BvD,WACE,OAAOxH,KAAKwG,OAEdgF,mBAAmBT,GACjB,IAAKrD,MAAMqD,IAAUA,EAAQ,IAAM9D,IACjC,MAAM,IAAIkC,UAAU,2DAA6D5B,OAAOiE,gBAE1FxL,KAAK6K,WAAW,iBAAkBE,IAEpCS,qBACE,OAAOxL,KAAKyG,iBAEdgB,aAAasD,GACX,GAAa,QAATA,IAAoBrD,MAAMqD,IAAUA,EAAQ,IAAM9D,IACpD,MAAM,IAAIkC,UAAU,oDAAsD4B,GAE5E/K,KAAK6K,WAAW,WAAYE,IAE9BtD,eACE,OAAOzH,KAAK2G,WAEd8E,cAAcV,GACZ/K,KAAK6K,WAAW,YAAaE,IAE/BU,gBACE,OAAOzL,KAAK6G,YAEdiC,WAAWiC,GACT/K,KAAK+G,gBAAkBqC,EAAoBP,EAAgBkC,IAC3D/K,KAAK6K,WAAW,SAAUE,IAE5BjC,aACE,OAAO9I,KAAK8G,SAEd4E,eAAeX,GACb,IAAKrD,MAAMqD,IAAUA,EAAQ,IAAM9D,IACjC,MAAM,IAAIkC,UAAU,8CAAgD4B,GAEtE/K,KAAK6K,WAAW,aAAcE,IAEhCW,iBACE,OAAO1L,KAAK0G,cA4FhB,IAAIkD,EAAQ,EACRE,EAAS,GACTC,EAAM,EAaNC,GACF2B,KAAQ5D,EAAM,IAAM,GAAK,IAAM,GAC/B6D,UAAW7D,EAAM,IAAM,EAAG,EAAG,GAC7B8D,WAAY9D,EAAM,EAAG,EAAG,IAAM,GAC9B+D,cAAe/D,EAAM,IAAM,EAAG,IAAM,GACpCgE,aAAcrD,EAAK,EAAGkB,GACtBoC,cAAetD,EAAK,EAAGoB,GACvBmC,WAAYvD,EAAK,EAAGqB,IAGlBhB,EAAmB,KACnBmD,EAAe,qCACf5C,EAAgB,IAAI6C,OAAO,kBAAoBD,EAAe,IAAMA,EAAe,IAAMA,EAAe,IAAMA,EAAe,OAC7HvC,EAAS,gDAgDTS,EAAY,EACZK,EAAc,EACdC,EAAa,EACbC,EAAc,EA2GlBxE,EAAOiG,iBAzXP,SAA0BhF,GACxB,GAA0B,iBAAfA,EACT,OAAOA,EAET,IAAIiF,KACJ,IAAK,IAAIpE,KAAKb,EACZiF,EAAMpE,GAAKb,EAAYa,GAEzB,OAAOoE,GAkXTlG,EAAOgB,WAAaA,EACpBhB,EAAOmG,sBApPP,SAA+BlF,GAQ7B,MAP0B,iBAAfA,IAEPA,EADEM,MAAMN,IACQK,SAAU,IAEVA,SAAUL,IAGvBA,GA6OTjB,EAAOgF,qBA1OP,SAA8B/D,EAAaC,GACzCD,OACOD,EADPC,EAAcjB,EAAOmG,sBAAsBlF,GACZC,IAyOjClB,EAAOiF,wBA9HP,SAAiC7D,GAC/B,OAAOiB,KAAKC,IAGd,SAA0BlB,GAExB,OAAwB,IAApBA,EAAOE,UAAwC,IAAtBF,EAAOmE,WAC3B,EAEFnE,EAAOE,SAAWF,EAAOmE,WARhBa,CAAiBhF,GAAUA,EAAOgE,eA8HpDpF,EAAOqG,2BArBP,SAAoCtC,EAAgBC,EAAW5C,GAC7D,IAAIkF,EAAQxC,EAAeC,EAAgBC,EAAW5C,GAClDmF,EA1EN,SAA6BxC,EAAgByC,EAAUxC,EAAWsC,EAAOnC,GAEvE,OAAQmC,GACN,KAAKhC,EACH,MAAgB,aAAZkC,GAAuC,QAAZA,EACtB,EACF,KACT,KAAKhC,EACH,OAAOR,EAAYG,EACrB,KAAKI,EACH,MAAgB,YAAZiC,GAAsC,QAAZA,EACrBzC,EACF,KACT,KAAKE,EACH,OAAO,MA4DMwC,CAAoB1C,EAAgB3C,EAAOC,KAAM2C,EAAWsC,EAAOlF,EAAO+C,OAC3F,GAAmB,OAAfoC,EACF,OAAO,KAET,IAAIG,EA5DN,SAAkCC,EAAmBL,EAAOf,EAAYgB,EAAYlB,GAElF,IAAIqB,EAAkBrB,EACI,WAAtBsB,EACEL,IAAUhC,IACZoC,GAAmBnB,GAGrBmB,GAAmBH,EAAaI,EAE3BD,EAkDeE,CAAyBxF,EAAOE,SAAUgF,EAAOlF,EAAOmE,WAAYgB,EAAYnF,EAAOiE,gBACzGwB,EAhDN,SAA0CH,EAAiBrB,EAAgBiB,EAAOf,EAAYgB,EAAYI,GAGxG,IAAIE,EAA2BH,IAAoBI,IAAYzB,EAAiB,EAAIqB,EAAkB,EACtE,WAA5BG,GAAiCP,IAAU/B,GAA6B,IAAfgB,GACzC,IAAfgB,GAA0C,IAAtBI,IACvBE,EAA0B,GAErBA,EAwCuBE,CAAiCL,EAAiBtF,EAAOiE,eAAgBiB,EAAOlF,EAAOmE,WAAYgB,EAAYnF,EAAOE,UAChJ0F,EAtCN,SAAmCV,EAAOf,EAAYsB,EAAyBH,GAE7E,OAAIJ,IAAU/B,GAAcgB,IAAeuB,IAClCA,IAEuB,IAA5BD,EACKxE,KAAK4E,MAAMP,GAAmB,EAEhCrE,KAAK4E,MAAMP,GA8BKQ,CAA0BZ,EAAOlF,EAAOmE,WAAYsB,EAAyBH,GAChGS,EA5BN,SAAmCC,EAAmBJ,EAAkBH,GAEtE,IAAIQ,EAAmBD,EACvB,GAA0B,WAAtBA,GAAwD,YAAtBA,EAAiC,CACrE,IAAInI,EAAI+H,EACkB,sBAAtBI,IACFnI,GAAK,GAEPoI,EAAmB,SACfpI,IAAM6H,KAAY7H,EAAI,GAAM,IAC9BoI,EAAmB,WAGvB,MAAyB,WAArBA,EACKR,EAEF,EAAIA,EAYYS,CAA0BlG,EAAOkE,UAAW0B,EAAkBH,GAIrF,OAAOzF,EAAOR,gBAAgBuG,IAShCnH,EAAO8D,eAAiBA,EACxB9D,EAAO0C,gBAAkBA,EACzB1C,EAAOiD,oBAAsBA,EAvY/B,CDAIrD,MEAJ,SAAUI,EAAQC,GAmIhB,SAASsH,EAAU9F,EAAUmD,GAC3B,OAAInD,KAAY+F,GACPA,EAAQ/F,GAAUmD,IAEpBA,EAST,SAAS6C,EAA4BhG,EAAUmD,EAAOrL,GACpD,IAPF,SAAyBkI,GAEvB,MAAoB,YAAbA,GAAmE,IAAzCA,EAASiG,YAAY,YAAa,IAAsD,IAA1CjG,EAASiG,YAAY,aAAc,GAK9GC,CAAgBlG,GAApB,CAGA,IAAImG,EAAiBC,EAAoBpG,GACzC,GAAImG,EAEF,IAAK,IAAIE,KADTC,EAAsBxN,MAAMkH,GAAYmD,EAC1BgD,EAAgB,CAC5B,IAAII,EAAeJ,EAAeE,GAC9BG,EAAgBF,EAAsBxN,MAAMyN,GAChDzO,EAAOyO,GAAgBT,EAAUS,EAAcC,QAGjD1O,EAAOkI,GAAY8F,EAAU9F,EAAUmD,IAI3C,SAASsD,EAAmBC,GAC1B,IAAIC,KAEJ,IAAK,IAAI3G,KAAY0G,EACnB,KAAI1G,KAAa,SAAU,SAAU,cAArC,CAIA,IAAI4G,EAASF,EAAY1G,GACpBzG,MAAMC,QAAQoN,KACjBA,GAAUA,IAKZ,IAFIC,MACAC,EAAeF,EAAOvM,OACjBgM,EAAI,EAAGA,EAAIS,EAAcT,KAChCQ,MAGWE,OADP,WAAYL,EACIA,EAAYK,OACL,GAAhBD,EACS,EAEAT,GAAKS,EAAe,GAGpC,WAAYJ,IACdG,EAAS3F,OAASwF,EAAYxF,QAG5B,cAAewF,IACjBG,EAASG,UAAYN,EAAYM,WAGnCH,EAAS7G,GAAY4G,EAAOP,GAE5BM,EAAsBzL,KAAK2L,GAI/BF,SAAsBM,KAAK,SAASjJ,EAAGC,GAAK,OAAOD,EAAE+I,OAAS9I,EAAE8I,SACzDJ,EAzMT,IAAIP,GACFc,YACE,kBACA,qBACA,iBACA,mBACA,uBACA,mBACA,iBACA,mBAEFC,QACE,iBACA,iBACA,iBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,kBACA,kBACA,mBAEFC,cACE,oBACA,oBACA,qBAEFC,aACE,iBACA,mBACA,oBACA,mBAEFC,YACE,kBACA,kBACA,mBAEFC,cACE,sBACA,uBACA,0BACA,0BAEFC,aACE,mBACA,mBACA,oBAEFC,WACE,iBACA,iBACA,kBAEFC,aACE,iBACA,mBACA,oBACA,mBAEFC,MACE,WACA,aACA,aAEFC,MACE,aACA,WACA,YACA,cACA,aACA,cAEFC,QACE,YACA,cACA,eACA,cAEFC,SACE,eACA,eACA,gBAEFC,SACE,aACA,eACA,gBACA,gBAIAzB,EAAwBzI,SAASmK,gBAAgB,+BAAgC,OAEjFC,GACFC,KAAM,MACNC,OAAQ,MACRC,MAAO,OAGLrC,GACFsC,kBAAmBJ,EACnBK,gBAAiBL,EACjBM,iBAAkBN,EAClBO,eAAgBP,EAChBQ,UACEC,WAAY,MACZC,UAAW,MACXC,MAAS,MACTT,OAAU,OACVU,MAAS,OACTC,UAAW,OACXC,WAAY,QAEdC,YACEC,OAAQ,MACRC,KAAM,OAERC,aAAclB,EACdmB,YACEC,KAAM,2BAERC,WACED,KAAM,gCA4KV9K,EAAOkI,mBAAqBA,EAC5BlI,EAAOgL,mBA/FP,SAA4B7C,GAC1B,GAAmB,MAAfA,EACF,SAGE8C,OAAOC,QAAUA,OAAOC,UAAYnQ,MAAM0D,UAAU0M,MAAQjD,EAAY+C,OAAOC,YAEjFhD,EAAcnN,MAAMoQ,KAAKjD,IAGtBnN,MAAMC,QAAQkN,KACjBA,EAAcD,EAAmBC,IA0CnC,IAvCIkD,MAAYlD,EAAY7O,IAAI,SAASgS,GACvC,IAAIhD,KACJ,IAAK,IAAI3D,KAAU2G,EAAkB,CACnC,IAAIC,EAAcD,EAAiB3G,GACnC,GAAc,UAAVA,GACF,GAAmB,MAAf4G,EAAqB,CAEvB,GADAA,EAAc/P,OAAO+P,IAChBC,SAASD,GACZ,MAAM,IAAIvI,UAAU,qCACtB,GAAIuI,EAAc,GAAKA,EAAc,EACnC,MAAM,IAAIvI,UAAU,mDAEnB,GAAc,aAAV2B,EAAuB,CAChC,GAAmB,OAAf4G,GAAuC,cAAfA,EAC1B,MACE1O,KAAM4O,aAAaC,kBACnB/R,KAAM,oBACN0E,QAAS,oCAEN,GAAmB,WAAfkN,EACT,MAAM,IAAIvI,UAAU,0BAA4BuI,EAAc,UAGhEA,EADmB,UAAV5G,EACK3E,EAAO0C,gBAAgB6I,GAEvB,GAAKA,EAErB9D,EAA4B9C,EAAQ4G,EAAajD,GAMnD,aAJIA,EAASE,SACXF,EAASE,OAAS,YAChBF,EAAS3F,SACX2F,EAAS3F,OAAS,UACb2F,IAGLqD,KAEAC,OACK9D,EAAI,EAAGA,EAAIuD,EAAUvP,OAAQgM,IAAK,CACzC,IAAIU,EAAS6C,EAAUvD,GAAGU,OAC1B,GAAc,MAAVA,EAAgB,CAClB,GAAIA,EAASoD,EACX,MAAM,IAAI5I,UAAU,wEAEtB4I,EAAiBpD,OAEjBmD,KAIJN,SAAYA,EAAUzO,OAAO,SAAS0L,GACpC,OAAOA,EAASE,QAAU,GAAKF,EAASE,QAAU,IAsB/CmD,GAnBL,WACE,IAAI7P,EAASuP,EAAUvP,OACa,MAAhCuP,EAAUvP,EAAS,GAAG0M,SACxB6C,EAAUvP,EAAS,GAAG0M,OAAS,GAC7B1M,EAAS,GAA4B,MAAvBuP,EAAU,GAAG7C,SAC7B6C,EAAU,GAAG7C,OAAS,GAIxB,IAFI9L,MAAgB,EAChBkP,EAAiBP,EAAU,GAAG7C,OACzBV,EAAI,EAAGA,EAAIhM,EAAQgM,IAAK,CAC/B,IAAIU,EAAS6C,EAAUvD,GAAGU,OAC1B,GAAc,MAAVA,EAAgB,CAClB,IAAK,IAAIqD,EAAI,EAAGA,EAAI/D,EAAIpL,EAAemP,IACrCR,EAAU3O,EAAgBmP,GAAGrD,OAASoD,GAAkBpD,EAASoD,GAAkBC,GAAK/D,EAAIpL,GAC9FA,EAAgBoL,EAChB8D,EAAiBpD,IAKrBsD,GAEKT,GAxSX,CAkTGzL,GClTH,SAAUI,GAER,IAAI+L,KAEJ/L,EAAOe,aAAe,SAASiL,EAASC,EAAMC,EAAQC,GAKpD,IAAIC,EAAUD,EAAS,MAAQ,KAC3BE,EAAQ,IAAIC,KACZC,EAAS,IAAID,KAAKL,GACtBM,SAAOC,SAASD,EAAOE,WAAa,KAEhCJ,EAAQE,IACJP,KAAWD,GACfW,QAAQC,KAAK,mBAAqBX,EAAU,IAAMI,EAAU,wCAA0CG,EAAOK,eAAiB,KAAOV,GAEvIH,EAASC,MAAW,KAOxBhM,EAAO6M,WAAa,SAASb,EAASC,EAAMC,EAAQC,GAClD,IAAIC,EAAUD,EAAS,MAAQ,KAC/B,GAAInM,EAAOe,aAAaiL,EAASC,EAAMC,EAAQC,GAC7C,MAAM,IAAIhO,MAAM6N,EAAU,IAAMI,EAAU,yBAA2BF,IA5B3E,CAgCGtM,kgtBChCH,WAEE,YAAIN,SAASuD,cAAc,OAAOiK,YAAYC,SAA9C,CAMO,GAAI9B,OAAO+B,aAAeA,YAAYC,IAC3C,IAAIA,EAAM,WAAa,OAAOD,YAAYC,YAEtCA,EAAM,WAAa,OAAOX,KAAKW,OAGrC,IAAIC,EAAuB,SAASvR,EAAQwR,EAAaC,GACvDvT,KAAK8B,OAASA,EACd9B,KAAKsT,YAAcA,EACnBtT,KAAKuT,aAAeA,EAEpBvT,KAAKgD,KAAO,SACZhD,KAAKwT,WACLxT,KAAKyT,cACLzT,KAAK0T,cAAgB5R,EACrB9B,KAAK2T,oBACL3T,KAAK4T,WAAaC,MAAMC,UACxB9T,KAAK+T,UAAYtB,KAAKW,OAGpBY,EAAyB5C,OAAO6C,QAAQpP,UAAUoO,QACtD7B,OAAO6C,QAAQpP,UAAUoO,QAAU,SAAS3E,EAAa9O,GACvD,IAAI0U,EAAYF,EAAuBzP,KAAKvE,KAAMsO,EAAa9O,GAE/D0U,EAAUC,mBACVD,EAAUhB,SAAW,KAErB,IAAIkB,EAAiBF,EAAUG,OAC/BH,EAAUG,OAAS,WACjBD,EAAe7P,KAAKvE,MACpB,IAAIsU,EAAQ,IAAIjB,EAAqBrT,KAAM,KAAMoT,KAC7CmB,EAAWvU,KAAKmU,gBAAgBK,OAAOxU,KAAKkT,UAAYlT,KAAKkT,cACjEuB,WAAW,WACTF,EAAS1U,QAAQ,SAAS6U,GACxBA,EAAQnQ,KAAK+P,EAAMxS,OAAQwS,MAE5B,IAGL,IAAIK,EAA2BT,EAAUU,iBACzCV,EAAUU,iBAAmB,SAAS5R,EAAM0R,GACpB,mBAAXA,GAAiC,UAAR1R,EAClChD,KAAKmU,gBAAgBrR,KAAK4R,GAE1BC,EAAyBpQ,KAAKvE,KAAMgD,EAAM0R,IAG9C,IAAIG,EAA8BX,EAAUY,oBAC5CZ,SAAUY,oBAAsB,SAAS9R,EAAM0R,GAC7C,GAAY,UAAR1R,EAAkB,CACpB,IAAIhB,EAAQhC,KAAKmU,gBAAgBpU,QAAQ2U,GACrC1S,GAAS,GACXhC,KAAKmU,gBAAgBY,OAAO/S,EAAO,QAErC6S,EAA4BtQ,KAAKvE,KAAMgD,EAAM0R,IAI1CR,IAlEX,GCAA,SAAU/N,GAgBR,IAAI6O,EAAUvP,SAASwP,gBACnBf,EAAY,KACZgB,KACJ,IACE,IACIC,EAAiC,KADfC,iBAAiBJ,GAASK,iBAAiB,WACtB,IAAM,KACjDnB,EAAYc,EAAQ/B,SAASqC,SAAYH,EAAaA,KACjD1N,SAAU,KACL6L,YAAc,EACxB4B,EAAWE,iBAAiBJ,GAASK,iBAAiB,YAAcF,EACpE,MAAO5P,IAPT,QASM2O,GACFA,EAAUG,SAEd,IAAIa,EAAJ,CAIA,IAAIlB,EAAyB5C,OAAO6C,QAAQpP,UAAUoO,QACtD7B,OAAO6C,QAAQpP,UAAUoO,QAAU,SAAS3E,EAAa9O,GACnD4R,cAAOC,QAAUA,OAAOC,UAAYnQ,MAAM0D,UAAU0M,MAAQjD,EAAY+C,OAAOC,YAEjFhD,EAAcnN,MAAMoQ,KAAKjD,IAGtBnN,MAAMC,QAAQkN,IAAgC,OAAhBA,IACjCA,EAAcnI,EAAOkI,mBAAmBC,IAGnC0F,EAAuBzP,KAAKvE,KAAMsO,EAAa9O,KA9C1D,CAgDGuG,GC/CH,SAAUI,EAAQoP,EAAOnP,GA8DvB,SAASoP,EAAsBC,GAC7B,IAAIC,EAAWH,EAAMG,SACrBA,EAASpC,YAAcmC,EACvBC,EAASC,qBAC0B,GAA/BD,EAASE,YAAY3T,OACvB4T,KAEAC,sBAAsBN,GApE1B,IAAIO,EAAgC3E,OAAO0E,sBAC3C1E,OAAO0E,sBAAwB,SAASxQ,GACtC,OAAOyQ,EAA8B,SAAS/N,GAC5CuN,EAAMG,SAASM,4BACf1Q,EAAE0C,GACFuN,EAAMG,SAASM,+BAInBT,EAAMU,kBAAoB,WACxBjW,KAAK4V,eACL5V,KAAKsT,oBAGPiC,EAAMU,kBAAkBpR,WACtBqR,cAAe,WACblW,YAAK2V,qBACE3V,KAAK4V,YAAYnM,SAE1BuM,0BAA2B,WACzBT,EAAMY,uBAAyBZ,EAAMY,uBAAuBpT,OAAO,SAASmR,GAC1E,OAAOA,EAAUkC,qBAGrBT,mBAAoB,WAClB3V,KAAKgW,4BACLhW,KAAK4V,YAAc5V,KAAK4V,YAAY7S,OAAO,SAASmR,GAClD,MAA8B,YAAvBA,EAAUmC,WAAkD,QAAvBnC,EAAUmC,aAG1DC,MAAO,SAAShP,GACd,IAAI4M,EAAY,IAAIqB,EAAMgB,UAAUjP,EAAQtH,MAC5CA,YAAK4V,YAAY9S,KAAKoR,GACtBqB,EAAMiB,+BAMNtC,EAAUkC,kBACVlC,EAAU7I,WAAWoL,OACrBvC,EAAUkC,kBACHlC,GAETuC,KAAM,SAASnP,GACTA,UACFA,EAAOoP,SAEF1W,KAAKsW,MAAMhP,KAItB,IAAIuO,KAEJN,EAAMiB,6BAA+B,WAC9BX,IACHA,KACAC,sBAAsBN,KAc1B,IAAIE,EAAW,IAAIH,EAAMU,kBACzBV,EAAMG,SAAWA,EAEjB,IACE/V,OAAOgX,eAAevF,OAAO3L,SAAU,YACrCmR,gBACAC,IAAK,WAAa,OAAOnB,KAE3B,MAAOvQ,IACT,IACEiM,OAAO3L,SAASiQ,SAAWA,EAC3B,MAAOvQ,KAnFX,CAqFGY,EAAqBE,GCtFxB,SAAUE,EAAQoP,EAAOnP,GACvBmP,EAAMY,0BAENZ,EAAMgB,UAAY,SAASjP,EAAQoO,GASjC,GARA1V,KAAKqF,GAAK,GACNiC,GAAUA,EAAOwP,MACnB9W,KAAKqF,GAAKiC,EAAOwP,KAEnB9W,KAAKsH,OAASA,EACVA,IACFA,EAAO+D,WAAarL,OAEjB0V,EACH,MAAM,IAAIpR,MAAM,iDAElBtE,KAAK+W,UAAYrB,EACjB1V,KAAKgX,gBAAkB7Q,EAAO8Q,iBAC9BjX,KAAKkX,UAAY,EACjBlX,KAAKmX,WACLnX,KAAKoX,YACLpX,KAAKqL,WAAa,KAClBrL,KAAKqX,oBACLrX,KAAKsX,UAAY,KACjBtX,KAAKuX,cAAgB,OACrBvX,KAAKsL,8BAELtL,KAAKqL,WAAWgJ,SAChBrU,KAAKoW,mBAGPb,EAAMgB,UAAU1R,WACduR,gBAAiB,WACf,IAAIoB,EAAexX,KAAKuX,cACpBE,EAAezX,KAAKqW,UACpBrW,YAAK0X,eAAiBD,IAAiBD,IACrB,QAAhBC,GACFzX,KAAK2X,sBACL3X,KAAK0X,sBACoB,WAAhBF,EACTxX,KAAK4X,uBACoB,WAAhBH,IACTzX,KAAK0X,uBAGL1X,KAAK6X,kBAAoBJ,IAAiBD,IACxB,QAAhBC,GACFzX,KAAK8X,yBACL9X,KAAK6X,yBACoB,YAAhBJ,EACTzX,KAAK+X,0BACoB,YAAhBP,IACTxX,KAAK6X,0BAGT7X,KAAKuX,cAAgBvX,KAAKqW,UAClBrW,KAAK0X,eAAiB1X,KAAK6X,kBAErCvM,4BAA6B,WAC3BtL,KAAKoW,kBACL,IAAI4B,EACAC,EACAC,EACAC,EACAC,IAAgBpY,KAAKqL,WACrB+M,IACFJ,EAAkBhY,KAAKuL,aACvB0M,EAAYjY,KAAKmX,QACjBe,EAAelY,KAAKqY,UACpBF,EAAiBnY,KAAKsT,YACtBtT,KAAKqL,WAAWgJ,SAChBrU,KAAKqL,WAAWiN,SAAW,KAC3BtY,KAAKqL,WAAa,QAGfrL,KAAKsH,QAAUtH,KAAKsH,kBAAkB8J,OAAOmH,kBAChDvY,KAAKqL,WAAakK,EAAMiD,wCAAwCxY,KAAKsH,QACrEiO,EAAMkD,+BAA+BzY,QAEnCA,KAAKsH,kBAAkB8J,OAAOsH,gBAAkB1Y,KAAKsH,kBAAkB8J,OAAOuH,eAChF3Y,KAAKqL,WAAakK,EAAMqD,+BAA+B5Y,KAAKsH,QAC5DiO,EAAMsD,sBAAsB7Y,OAE1BA,KAAKsH,QAAUtH,KAAKsH,OAAOwR,WAC7BvD,EAAMwD,6BAA6B/Y,MAEjCoY,IACqB,GAAnBJ,IACFhY,KAAKuL,aAAeyM,GAED,OAAjBE,EACFlY,KAAKqY,UAAYH,EACW,OAAnBC,EACTnY,KAAKsT,YAAc6E,EACS,OAAnBnY,KAAKkX,YACdlX,KAAKsT,YAActT,KAAKkX,WAEtBe,GACFjY,KAAKgZ,SAGThZ,KAAKoW,mBAEP6C,gBAAiB,WACf,GAAKjZ,KAAKsH,QAA4B,QAAlBtH,KAAKqW,UAAzB,CAGA,IAAI1H,EAAS3O,KAAKsH,OAAO4D,QAAQZ,MACjCtK,KAAKqX,iBAAiBxX,QAAQ,SAASqZ,GACrClZ,KAAKmZ,iBAAiBD,EAAgBvK,GAClC3O,KAAKsH,kBAAkB8J,OAAOsH,iBAChC/J,GAAU4G,EAAM6D,mBAAmBF,EAAe5R,UACpD+R,KAAKrZ,SAETsZ,sBAAuB,SAASpF,GAC9B,GAAKlU,KAAKsH,QAAWtH,KAAKoX,SAE1B,IAAK,IAAInJ,EAAI,EAAGA,EAAIjO,KAAKsH,OAAOiS,SAAStX,OAAQgM,IAC/CjO,KAAKsH,OAAOiS,SAAStL,GAAG5C,WAAa6I,EACrClU,KAAKqX,iBAAiBpJ,GAAGqL,sBAAsBpF,IAGnDsF,0BAA2B,WACzB,GAAKxZ,KAAKsH,QAAWtH,KAAKoX,SAA1B,CAEA,IAAIzI,EAAS3O,KAAKsH,OAAO4D,QAAQZ,MACjCtK,KAAKyZ,yBACLzZ,KAAKsH,OAAOiS,SAAS1Z,QAAQ,SAAS6Z,GACpC,IAAIR,EAAiB3D,EAAMG,SAASY,MAAMoD,GAC1C1Z,KAAKqX,iBAAiBvU,KAAKoW,GAC3BA,EAAe3N,aAAevL,KAAKuL,aAC/BvL,KAAKmX,SACP+B,EAAeF,QACjBU,EAAMrO,WAAarL,KAAKsH,OAAO+D,WAE/BrL,KAAKmZ,iBAAiBD,EAAgBvK,GAElC3O,KAAKsH,kBAAkB8J,OAAOsH,iBAChC/J,GAAU4G,EAAM6D,mBAAmBM,KACrCL,KAAKrZ,SAETmZ,iBAAkB,SAASD,EAAgBvK,GAClB,OAAnB3O,KAAKqY,UACPa,EAAe5F,YAActT,KAAKsT,YAAc3E,EAAS3O,KAAKuL,aACrD2N,EAAeb,YAAcrY,KAAKqY,UAAY1J,EAAS3O,KAAKuL,eACrE2N,EAAeb,UAAYrY,KAAKqY,UAAY1J,EAAS3O,KAAKuL,eAG9DmK,eACE,OAAO1V,KAAK+W,WAEdV,gBACE,OAAOrW,KAAKqL,WAAarL,KAAKqL,WAAWgL,UAAY,QAEvDsD,eACE,OAAKvI,OAAOzL,SAIP3F,KAAK6X,oBAC2C,GAA/CtC,EAAMY,uBAAuBpW,QAAQC,OACvCuV,EAAMY,uBAAuBrT,KAAK9C,MAEpCA,KAAK6X,iBAAmB,IAAIlS,QACxB,SAASzF,EAAS0Z,GAChB5Z,KAAK+X,wBAA0B,WAC7B7X,EAAQF,OAEVA,KAAK8X,uBAAyB,WAC5B8B,GAAQ5W,KAAM4O,aAAaiI,UAAW/Z,KAAM,iBAE9CuZ,KAAKrZ,OACW,YAAlBA,KAAKqW,WACPrW,KAAK+X,2BAGF/X,KAAK6X,mBApBVhF,QAAQC,KAAK,6DACN,OAqBXgH,YACE,OAAK1I,OAAOzL,SAIP3F,KAAK0X,iBAC2C,GAA/CnC,EAAMY,uBAAuBpW,QAAQC,OACvCuV,EAAMY,uBAAuBrT,KAAK9C,MAEpCA,KAAK0X,cAAgB,IAAI/R,QACrB,SAASzF,EAAS0Z,GAChB5Z,KAAK4X,qBAAuB,WAC1B1X,EAAQF,OAEVA,KAAK2X,oBAAsB,WACzBiC,GAAQ5W,KAAM4O,aAAaiI,UAAW/Z,KAAM,iBAE9CuZ,KAAKrZ,OACY,YAAnBA,KAAKqW,WACPrW,KAAK4X,wBAGF5X,KAAK0X,gBApBV7E,QAAQC,KAAK,6DACN,OAqBXiH,eACE,OAAO/Z,KAAKqL,WAAW0O,UAEzBA,aAAaC,GAETha,KAAKqL,WAAW0O,SADF,mBAALC,EACkB,SAAU7U,GACnCA,EAAErD,OAAS9B,KACXga,EAAEzV,KAAKvE,KAAMmF,IACZkU,KAAKrZ,MAEmBga,GAG/B9G,eACE,OAAOlT,KAAKqL,WAAW6H,UAEzBA,aAAa8G,GAETha,KAAKqL,WAAW6H,SADF,mBAAL8G,EACkB,SAAU7U,GACnCA,EAAErD,OAAS9B,KACXga,EAAEzV,KAAKvE,KAAMmF,IACZkU,KAAKrZ,MAEmBga,GAG/B1G,kBACEtT,KAAKoW,kBACL,IAAI9C,EAActT,KAAKqL,WAAWiI,YAClCtT,YAAKoW,kBACE9C,GAETA,gBAAgB0G,GACdha,KAAKoW,kBACLpW,KAAKqL,WAAWiI,YAAc3B,SAASqI,GAAKA,EAAIxR,KAAKyR,KAAKD,GAAKrY,OAAOuY,UACtEla,KAAKma,YACLna,KAAKoa,cAAc,SAASV,EAAO/K,GACjC+K,EAAMpG,YAAc0G,EAAIrL,IAE1B3O,KAAKoW,mBAEPiC,gBACE,OAAOrY,KAAKqL,WAAWgN,WAEzBA,cAAc2B,GACZha,KAAKoW,kBACLpW,KAAKqL,WAAWgN,UAAY1G,SAASqI,GAAKA,EAAIxR,KAAKyR,KAAKD,GAAKrY,OAAOuY,UACpEla,KAAKma,YACLna,KAAKoa,cAAc,SAASV,EAAO/K,GACjC+K,EAAMrB,UAAY2B,EAAIrL,IAExB3O,KAAKoW,mBAEP7K,mBACE,OAAOvL,KAAKqL,WAAWE,cAEzBA,iBAAiBR,GACf/K,KAAKoW,kBACL,IAAI+B,EAAiBnY,KAAKsT,YAC1BtT,KAAKqL,WAAWE,aAAeR,EAC/B/K,KAAKoa,cAAc,SAASlB,GAC1BA,EAAe3N,aAAeR,IAET,OAAnBoN,IACFnY,KAAKsT,YAAc6E,GAErBnY,KAAKoW,mBAEPK,KAAM,WACJzW,KAAKoW,kBACLpW,KAAKmX,WACLnX,KAAKqL,WAAWoL,QACiC,GAA7CzW,KAAK+W,UAAUnB,YAAY7V,QAAQC,OACrCA,KAAK+W,UAAUnB,YAAY9S,KAAK9C,MAElCA,KAAKma,YACL5E,EAAM8E,eAAera,MACrBA,KAAKoa,cAAc,SAASV,GAC1B,IAAIY,EAAOZ,EAAMpG,YACjBoG,EAAMjD,OACNiD,EAAMpG,YAAcgH,IAEtBta,KAAKoW,mBAEP4C,MAAO,WACLhZ,KAAKoW,kBACDpW,KAAKsT,cACPtT,KAAKkX,UAAYlX,KAAKsT,aAExBtT,KAAKqL,WAAW2N,QAChBhZ,KAAKma,YACLna,KAAKoa,cAAc,SAASV,GAC1BA,EAAMV,UAERhZ,KAAKmX,WACLnX,KAAKoW,mBAEPmE,OAAQ,WACNva,KAAKoW,kBACLpW,KAAKqL,WAAWkP,SAChBva,KAAKma,YACLna,KAAKoW,mBAEP/B,OAAQ,WACNrU,KAAKoW,kBACLpW,KAAKqL,WAAWgJ,SAChBrU,KAAKma,YACLna,KAAKyZ,yBACLzZ,KAAKoW,mBAEPoE,QAAS,WACPxa,KAAKoW,kBACL,IAAI+B,EAAiBnY,KAAKsT,YAC1BtT,KAAKqL,WAAWmP,UAChBxa,KAAKoa,cAAc,SAASlB,GAC1BA,EAAesB,YAEM,OAAnBrC,IACFnY,KAAKsT,YAAc6E,GAErBnY,KAAKoW,mBAEPxB,iBAAkB,SAAS5R,EAAM0R,GAC/B,IAAI+F,EAAU/F,EACQ,mBAAXA,IACT+F,EAAU,SAAUtV,GAClBA,EAAErD,OAAS9B,KACX0U,EAAQnQ,KAAKvE,KAAMmF,IAClBkU,KAAKrZ,MACR0U,EAAQ4D,SAAWmC,GAErBza,KAAKqL,WAAWuJ,iBAAiB5R,EAAMyX,IAEzC3F,oBAAqB,SAAS9R,EAAM0R,GAClC1U,KAAKqL,WAAWyJ,oBAAoB9R,EAAO0R,GAAWA,EAAQ4D,UAAa5D,IAE7E+E,uBAAwB,WACtB,KAAOzZ,KAAKqX,iBAAiBpV,QAC3BjC,KAAKqX,iBAAiBqD,MAAMrG,UAEhC+F,cAAe,SAAS9U,GACtB,IAAIqJ,EAAS,EASb,GARI3O,KAAKsH,OAAOiS,UAAYvZ,KAAKqX,iBAAiBpV,OAASjC,KAAKsH,OAAOiS,SAAStX,QAC9EjC,KAAKwZ,4BACPxZ,KAAKqX,iBAAiBxX,QAAQ,SAAS6Z,GACrCpU,EAAEf,KAAKvE,KAAM0Z,EAAO/K,GAChB3O,KAAKsH,kBAAkB8J,OAAOsH,iBAChC/J,GAAU+K,EAAMpS,OAAO4C,iBACzBmP,KAAKrZ,OAEe,WAAlBA,KAAKqW,UAAT,CAEA,IAAI9O,EAASvH,KAAKsH,OAAO4D,QACrBuK,EAAIzV,KAAKsT,YACH,OAANmC,IACFA,EAAItP,EAAOqG,2BAA2BrG,EAAOiF,wBAAwB7D,GAASkO,EAAGlO,KAC1E,MAALkO,GAAa/N,MAAM+N,KACrBzV,KAAKyZ,4BAIXrI,OAAOmF,UAAYhB,EAAMgB,UA1W3B,CAgXGxQ,EAAqBE,GChXvB,SAASE,EAAQoP,EAAOnP,GAqCvB,SAASuU,EAAarM,GACpBtO,KAAK4a,QAAUzU,EAAOgL,mBAAmB7C,GAoG3C,SAASuM,IAEP,IADA,IAAIC,KACGC,EAAc9Y,QACP8Y,EAAcC,QACpB/B,kBACN6B,KAEF,OAAOA,EA/IT,IAAIG,EAAe,SAAfA,EAAwB3T,GAE1B,GADAA,EAAO+D,kBACH/D,aAAkB8J,OAAOsH,gBAAkBpR,aAAkB8J,OAAOuH,YACtE,IAAK,IAAI1K,EAAI,EAAGA,EAAI3G,EAAOiS,SAAStX,OAAQgM,IAC1CgN,EAAa3T,EAAOiS,SAAStL,KAKnCsH,EAAM2F,YAAc,SAASC,GAE3B,IADIC,SACKnN,EAAI,EAAGA,EAAIkN,EAAQlZ,OAAQgM,IAAK,CACvC,IAAI3G,EAAS6T,EAAQlN,GACjB3G,EAAO+T,UACkC,GAAvCD,EAAWrb,QAAQuH,EAAO+T,UAC5BD,EAAWtY,KAAKwE,EAAO+T,SAEzB/T,EAAO+T,QAAQ9B,SAASxE,OAAOzN,EAAO+T,QAAQ9B,SAASxZ,QAAQuH,GAAS,GACxEA,EAAO+T,QAAU,KACjBJ,EAAa3T,IACJA,EAAO+D,YAAe/D,EAAO+D,WAAW/D,QAAUA,IAC3DA,EAAO+D,WAAWgJ,SAClB/M,EAAO+D,WAAW/D,OAAS,IAAIiR,eAAe,SAC1CjR,EAAO+D,WAAWiM,YACpBhQ,EAAO+D,WAAWiM,UAAUjM,WAAa,MAE3C/D,EAAO+D,WAAWC,8BAClB2P,EAAa3T,IAGjB,IAAK2G,EAAI,EAAGA,EAAImN,EAAWnZ,OAAQgM,IACjCmN,EAAWnN,GAAGqN,YAQlB/F,EAAMgD,eAAiB,SAASzW,EAAQwM,EAAalH,EAAa/B,GAChErF,YAAK8B,OAASA,EACd9B,KAAKqb,QAAU,KAEfjU,EAAcjB,EAAOmG,sBAAsBlF,GAC3CpH,KAAKiL,aAAe9E,EAAOiG,iBAAiBhF,GAC5CpH,KAAKkL,QAAU/E,EAAOgF,qBAAqB/D,GAE3CpH,KAAKuH,OAASpB,EAAOgB,WAAWC,KAAoBpH,MACpDA,KAAKuH,OAAOyD,QAAUhL,KACI,mBAAfsO,GACTnI,EAAO6M,WAAW,wBAAyB,aAAc,wCACzDhT,KAAKub,qBAAuBjN,GAE5BtO,KAAKub,qBAAuB,IAAIZ,EAAarM,GAE/CtO,KAAKwb,WAAalN,EAClBtO,KAAKkK,eAAiB/D,EAAOiF,wBAAwBpL,KAAKkL,SAC1DlL,KAAK8W,IAAMzR,EACJrF,MAGTuV,EAAMgD,eAAe1T,WACnB4W,UAAW,WACT,MAAwC,mBAA7Bzb,KAAKub,qBACPvb,KAAKub,qBACPvb,KAAKub,qBAAqBX,SAEnCc,aAAaC,GACX,GAA+B,mBAApB3b,KAAKyb,YACd,MAAM,IAAInX,MAAM,sEAElBtE,KAAK8Y,UAAY6C,EACb3b,KAAKqL,YACPrL,KAAKqL,WAAWC,+BAGpBsQ,aACE,OAAO5b,KAAKqb,SAEdhP,MAAO,WACL,GAA+B,mBAApBrM,KAAKyb,YACd,MAAM,IAAInX,MAAM,4CAElB,IAAI+H,EAAQ,IAAIkM,eAAevY,KAAK8B,UAAYqE,EAAOiG,iBAAiBpM,KAAKiL,cAAejL,KAAK8W,KACjGzK,SAAMkP,qBAAuBvb,KAAKub,qBAClClP,EAAMmP,WAAaxb,KAAKwb,WACjBnP,GAETqK,OAAQ,WACNnB,EAAM2F,aAAalb,SAIvB,IAAIgU,EAAyBC,QAAQpP,UAAUoO,QAC/CgB,QAAQpP,UAAUoO,QAAU,SAAS3E,EAAa9O,GAChD,IAAI6F,EAAK,GACL7F,UAAWA,EAAQ6F,KACrBA,EAAK7F,EAAQ6F,IAERkQ,EAAMG,SAASY,MAAM,IAAIf,EAAMgD,eAAevY,KAAMsO,EAAa9O,EAAS6F,KAGnF,IAAIwW,EAAapW,SAASmK,gBAAgB,+BAAgC,OAC1E2F,EAAMiD,wCAA0C,SAASsD,GACvD,GAAIA,EAAgB,CAClB,IAAIha,EAASga,EAAeha,QAAU+Z,EAEd,mBADpBrK,EAAYsK,EAAeN,cAE7BhK,OAEEhS,EAAUsc,EAAe7Q,cACrB5F,GAAKyW,EAAehF,QAE5B,CAAIhV,EAAS+Z,EAAb,IACIrK,KACAhS,EAAU,EAEhB,OAAOwU,EAAuBxK,MAAM1H,GAAS0P,EAAWhS,KAI1D+V,EAAMkD,+BAAiC,SAASvE,GAC1CA,EAAU5M,QAA0D,mBAAzC4M,EAAU5M,OAAOiU,sBAC9ChG,EAAMwD,6BAA6B7E,IAIvC,IAAI6G,KACJxF,EAAM8E,eAAiB,SAAS0B,GACG,OAA7BA,EAAe1D,WAAuB0D,EAAe3E,WAE7B,GAAxB2D,EAAc9Y,QAChB6T,sBAAsB+E,GAExBE,EAAcjY,KAAKiZ,KAWrB,IAAIC,EAA2B5K,OAAOgE,iBACtCzV,OAAOgX,eAAevF,OAAQ,oBAC5BwF,gBACAqF,cACAlR,MAAO,WACLwK,EAAMG,SAASM,4BACf,IAAItW,EAASsc,EAAyBxS,MAAMxJ,KAAM6D,WAC9CgX,aACFnb,EAASsc,EAAyBxS,MAAMxJ,KAAM6D,YAChD0R,EAAMG,SAASM,4BACRtW,KAIX0R,OAAOmH,eAAiBhD,EAAMgD,eAC9BnH,OAAO6C,QAAQpP,UAAUqR,cAAgB,WACvC,OAAOzQ,SAASiQ,SAASQ,gBAAgBnT,OAAO,SAASmR,GACvD,OAA4B,OAArBA,EAAU5M,QAAmB4M,EAAU5M,OAAOxF,QAAU9B,MAC/DqZ,KAAKrZ,QArKV,CAwKC+F,EAAqBE,GCzKvB,SAAUE,EAAQoP,EAAOnP,GA6CvB,SAAS8V,EAASP,GACZA,EAASQ,cAEbR,EAASQ,eACTjX,EAAUpC,KAAK6Y,GACV9F,IACHA,KACAC,sBAAsBsG,KAI1B,SAASA,EAAK3G,GACZ,IAAI4G,EAAWnX,EACfA,KACAmX,EAASxN,KAAK,SAASyN,EAAMC,GAC3B,OAAOD,EAAKtF,gBAAkBuF,EAAMvF,kBAEtCqF,EAAWA,EAAStZ,OAAO,SAAS4Y,GAClCA,IACA,IAAItF,EAAYsF,EAAStQ,WAAasQ,EAAStQ,WAAWgL,UAAY,OAGtE,MAFiB,WAAbA,GAAuC,WAAbA,IAC5BsF,EAASQ,gBACJR,EAASQ,cAElBjX,EAAUpC,KAAK0G,MAAMtE,EAAWmX,GAE5BnX,EAAUjD,QACZ4T,KACAC,sBAAsBsG,IAEtBvG,KAzEJ,IAEIoB,GAFaxR,SAASmK,gBAAgB,+BAAgC,OAErD,GACrB2F,EAAMwD,6BAA+B,SAAS7E,GAC5C,IACIsI,EADA1a,EAASoS,EAAU5M,OAAOxF,OAE1B2a,EAA0D,mBAAhCvI,EAAU5M,OAAOmU,YAE7Ce,EADEC,EACevI,EAAU5M,OAAOmU,YAEjBvH,EAAU5M,OAAOwR,UAEpC,IAAIvR,EAAS2M,EAAU5M,OAAOC,OAC1BmV,EAAO,KACXnV,EAASpB,EAAOgF,qBAAqB5D,GACrC,IAAIoU,EAAW,SAAXA,IACF,IAAIlG,EAAIkG,EAAStQ,WAAasQ,EAAStQ,WAAWiI,YAAc,KACtD,OAANmC,IACFA,EAAItP,EAAOqG,2BAA2BrG,EAAOiF,wBAAwB7D,GAASkO,EAAGlO,GAC7EG,MAAM+N,KACRA,EAAI,OAIJA,IAAMiH,IACJD,EACFD,EAAe/G,EAAG3T,EAAQoS,EAAU5M,QAEpCkV,EAAe/G,EAAGvB,EAAU5M,OAAQ4M,EAAU5M,OAAO+D,aAGzDqR,EAAOjH,GAGTkG,EAAStQ,WAAa6I,EACtByH,EAASQ,eACTR,EAAS3E,gBAAkBC,IAC3B/C,EAAUoD,UAAYqE,EACtBO,EAASP,IAGX,IAAIzW,KACA2Q,KAmCJN,EAAMgB,UAAU1R,UAAUsV,UAAY,WAChCna,KAAKsX,WACP4E,EAASlc,KAAKsX,YAjFpB,CAoFGvR,EAAqBE,GCnFxB,SAAUE,EAAQoP,EAAOnP,GAEvB,SAASgT,EAAmBuD,GAC1B,OAAOA,EAAKzR,QAAQZ,MAAQqS,EAAKzS,eAAiByS,EAAKzR,QAAQX,SAGjE,SAAS5F,EAAY4U,EAAUnS,EAAa/B,GAC1CrF,KAAK8W,IAAMzR,EACXrF,KAAKqb,QAAU,KACfrb,KAAKuZ,SAAWA,MAChBvZ,KAAK4c,UAAU5c,KAAKuZ,UACpBnS,EAAcjB,EAAOmG,sBAAsBlF,GAC3CpH,KAAKiL,aAAe9E,EAAOiG,iBAAiBhF,GAC5CpH,KAAKkL,QAAU/E,EAAOgF,qBAAqB/D,MAC3CpH,KAAKuH,OAASpB,EAAOgB,WAAWC,KAAmBpH,MACnDA,KAAKuH,OAAOyD,QAAUhL,KAEQ,SAA1BA,KAAKkL,QAAQzD,WACfzH,KAAKkL,QAAQzD,SAAWzH,KAAKkK,gBAIjCkH,OAAOsH,eAAiB,WACtB/T,EAAY6E,MAAMxJ,KAAM6D,YAG1BuN,OAAOuH,YAAc,WACnBhU,EAAY6E,MAAMxJ,KAAM6D,YAG1Bc,EAAYE,WACVgY,YAAa,SAASvV,GAEpB,IADA,IAAI1B,EAAI5F,KACK,OAAN4F,GAAY,CACjB,GAAIA,GAAK0B,EACP,SACF1B,EAAIA,EAAEyV,QAER,UAEFC,SAAU,WAGR,IADA,IAAIqB,EAAO3c,KACJ2c,GACwB,SAAzBA,EAAKpV,OAAOE,WACdkV,EAAKzR,QAAQzD,SAAWkV,EAAKzS,gBAE/ByS,EAAOA,EAAKtB,QAEVrb,KAAKqL,YACPrL,KAAKqL,WAAWC,+BAGpBsR,UAAW,SAASE,GAClBvH,EAAM2F,YAAY4B,GAClB,IAAK,IAAI7O,EAAI,EAAGA,EAAI6O,EAAY7a,OAAQgM,IACtC6O,EAAY7O,GAAGoN,QAAUrb,MAG7B+c,UAAW,SAASC,EAAMC,GAExB,IADIzY,MAAUyY,EAAW,oCAAsC,qCACtDhP,EAAI,EAAGA,EAAI+O,EAAK/a,OAAQgM,IAC/B,GAAIjO,KAAK6c,YAAYG,EAAK/O,IACxB,MACEjL,KAAM4O,aAAasL,sBACnBpd,KAAM,wBACN0E,QAASA,GAKf,IAASyJ,EAAI,EAAGA,EAAI+O,EAAK/a,OAAQgM,IAC/BgP,EAAWjd,KAAKuZ,SAASzW,KAAKka,EAAK/O,IAAMjO,KAAKuZ,SAAS4D,QAAQH,EAAK/O,IAEtEjO,KAAK4c,UAAUI,GACfhd,KAAKsb,YAEP8B,OAAQ,WACNpd,KAAK+c,UAAUlZ,eAEjBwZ,QAAS,WACPrd,KAAK+c,UAAUlZ,eAEjB+X,aACE,OAAO5b,KAAKqb,SAEdiC,iBACE,OAAOtd,KAAKuZ,SAAStX,OAASjC,KAAKuZ,SAAS,GAAK,MAEnDgE,gBACE,OAAOvd,KAAKuZ,SAAStX,OAASjC,KAAKuZ,SAASvZ,KAAKuZ,SAAStX,OAAS,GAAK,MAE1EoK,MAAO,WAGL,IAFImR,MAAerX,EAAOiG,iBAAiBpM,KAAKiL,cAC5CwS,KACKxP,EAAI,EAAGA,EAAIjO,KAAKuZ,SAAStX,OAAQgM,IACxCwP,EAAe3a,KAAK9C,KAAKuZ,SAAStL,GAAG5B,SAEvC,OAAQrM,gBAAgB2Y,YACpB,IAAIA,YAAY8E,EAAgBD,GAChC,IAAI9E,eAAe+E,EAAgBD,IAEzC9G,OAAQ,WACNnB,EAAM2F,aAAalb,SAIvBoR,OAAOsH,eAAe7T,UAAYlF,OAAOqE,OAAOW,EAAYE,WAC5DlF,OAAOgX,eACHvF,OAAOsH,eAAe7T,UACtB,kBAEEgS,IAAK,WACH,IAAI6G,EAAQ,EACZ1d,YAAKuZ,SAAS1Z,QAAQ,SAAS6Z,GAC7BgE,GAAStE,EAAmBM,KAEvBlR,KAAKmV,IAAID,EAAO,MAI/BtM,OAAOuH,YAAY9T,UAAYlF,OAAOqE,OAAOW,EAAYE,WACzDlF,OAAOgX,eACHvF,OAAOuH,YAAY9T,UACnB,kBAEEgS,IAAK,WACH,IAAI8G,EAAM,EACV3d,YAAKuZ,SAAS1Z,QAAQ,SAAS6Z,GAC7BiE,EAAMnV,KAAKmV,IAAIA,EAAKvE,EAAmBM,MAElCiE,KAIfpI,EAAMqD,+BAAiC,SAASgF,GAC9C,IAAIC,EACAtW,EAAS,KAoCTuW,EAAmB,IAAIvF,eAAe,QAAUqF,EAAM1S,QAAS0S,EAAM9G,KACzEgH,SAAiBpC,SApCJ,SAASqC,GACpB,IAAI7J,EAAY2J,EAAoBvF,SACpC,GAAKpE,GAGsB,WAAvBA,EAAUmC,WAGTnC,EAAU5M,OAGf,OAAU,MAANyW,OACF7J,EAAUuF,yBAQF,GAANsE,GAAW7J,EAAU3I,aAAe,IACjChE,IACHA,EAASpB,EAAOgF,qBAAqB+I,EAAU5M,OAAOC,SAExDwW,EAAK5X,EAAOqG,2BAA2BrG,EAAOiF,wBAAwB7D,IAAU,EAAGA,GAC/EG,MAAMqW,IAAa,MAANA,IACf7J,EAAUkG,cAAc,SAASV,GAC/BA,EAAMpG,aAAe,SAEvBY,EAAUuF,kCAQhBoE,EAAsBtI,EAAMG,SAASY,MAAMwH,IAI7CvI,EAAMsD,sBAAwB,SAAS3E,GACrCA,EAAU7I,WAAWiN,SAAWpE,EAChCA,EAAUkD,YACV7B,EAAM8E,eAAenG,GACrBA,EAAUsF,4BACVtF,EAAUoF,sBAAsBpF,IAGlCqB,EAAM6D,mBAAqBA,EA3L7B,CA6LGrT,EAAqBE,GV3LpBA,OAEJ3G,qjBWkDA0e,YAAQ,CACNC,UAAWC,YAAFC,KAgBTC,GAAI,gBACJC,UAAW,CAACC,KAGZC,eAAgB,CAACC,KAAM,w2IChDzBR,YAAQ,CACNC,UAAWC,YAAFC,KAmETC,GAAI,yBACJC,UAAW,CAACI,IAAyBC,KAErCC,WAAY,CAKV5T,MAAO,CAAC6T,SAAU,gBAAiB5b,KAAMpC,OAAQie,QAAQ,GAOzDC,UAAW,CAACF,SAAU,oBAAqB5b,KAAMpC,OAAQie,QAAQ,GASjEE,KAAM,CAAC/b,KAAMrB,OAAQoJ,MAAO,EAAG6T,SAAU,iBAUzCI,QAAS,CAAChc,KAAMrB,OAAQoJ,MAAO,EAAG6T,SAAU,iBAK5CK,aAAc,CAACjc,KAAMpC,OAAQmK,MAAO,OAKpCmU,UAAW,CAAClc,KAAMmc,QAASpU,OAAO,GAKlCqU,UAAW,CAACpc,KAAMpC,QAKlBye,YAAa,CAACrc,KAAMpC,QAKpB0e,SAAU,CAACtc,KAAMpC,QAKjB2e,SAAU,CAACvc,KAAMmc,SAKjBK,UAAW,CAACxc,KAAMrB,QAKlB8d,UAAW,CAACzc,KAAMrB,QAKlB+d,MAAO,CAAC1c,KAAMpC,SAIhB+e,UAAW,CAACC,MAAS,YAMrBC,eACE,OAAO7f,KAAK8f,EAAED,UAOhBE,qBACE,OAAO/f,KAAK8f,EAAED,SAASE,gBAOzBC,mBACE,OAAOhgB,KAAK8f,EAAED,SAASG,cAMzBD,mBAAmBhV,GACjB/K,KAAK8f,EAAED,SAASE,eAAiBhV,GAMnCiV,iBAAiBjV,GACf/K,KAAK8f,EAAED,SAASG,aAAejV,GAGjCkV,SAAU,WAMKC,UAAUC,UAAUC,MAAM,sBAErCpgB,KAAK8f,EAAED,SAASnf,MAAM2f,WAAa,SAUvCC,SAAU,WAER,IAAIC,EAAQvgB,KAAK8f,EAAED,SAASW,SAASD,MAcrC,OAXIA,IAEEvgB,KAAKuf,UAA2B,KAAfvf,KAAK+K,MACxBwV,GAAQ,EACCvgB,KAAKygB,iBACdF,EAAQ9B,IAAwB6B,SAAS/b,KAAKvE,KAAMA,KAAK+K,SAI7D/K,KAAK0gB,SAAWH,EAChBvgB,KAAK2gB,KAAK,uBACHJ,GAGTK,kBAAmB,SAAS9B,GAC1B9e,KAAK+K,MAAQ+T,GAGf+B,cAAe,SAAS9V,GACtB,IAAI8U,EAAW7f,KAAK6f,SACfA,IAQDA,EAAS9U,QAAUA,IACrB8U,EAAS9U,MAAUA,GAAmB,IAAVA,EAAoBA,EAAL,IAG7C/K,KAAK8e,UAAY/T,EACjB/K,KAAK8f,EAAEgB,OAAOC,UAAY/gB,KAAKghB,kBAI/BhhB,KAAK2gB,KAAK,qBAAsB,CAAC5V,MAAO/K,KAAK8e,cAG/CmC,SAAU,SAAS3M,GACjB,IAAI4M,EAAYC,YAAI7M,GAAO8M,KAC3BphB,KAAK+K,MAAQmW,EAAYA,EAAU,GAAGnW,MAAQuJ,EAAMxS,OAAOiJ,OAG7DsW,WAAY,SAASC,GACnB,IAAIC,EASJ,IARAD,EAASA,GAAU,CAAC,IAIlBC,EADEvhB,KAAKgf,QAAU,GAAKsC,EAAOrf,OAASjC,KAAKgf,QACjCsC,EAAO7X,MAAM,EAAGzJ,KAAKgf,SAErBsC,EAAO7X,MAAM,GAElBzJ,KAAK+e,KAAO,GAAKwC,EAAQtf,OAASjC,KAAK+e,MAC5CwC,EAAQze,KAAK,IAGf,OAAOye,EAAQC,KAAK,SAAW,UAGjCR,gBAAiB,WACf,IAAIpB,EAAQ5f,KAAK6f,SACjB,GAAKD,EAUL,OAPA5f,KAAKshB,OAAU1B,GAASA,EAAM7U,MAAS6U,EAAM7U,MAAM0W,QAAQ,MAAO,SACtBA,QAAQ,MAAO,UACfA,QAAQ,MAAO,SACfA,QAAQ,MAAO,QACfA,QAAQ,MAAO,QACf7W,MAAM,MACX,CAAC,IACjC5K,KAAKqhB,WAAWrhB,KAAKshB,SAG9BI,cAAe,WACb1hB,KAAK8f,EAAEgB,OAAOC,UAAY/gB,KAAKqhB,WAAWrhB,KAAKshB,yCC1UnD,IAAIK,EAAOziB,EAAQ,KAGnBG,EAAOC,QAAUqiB,gCCHjB,IAAIC,EAAS1iB,EAAQ,KACjB2iB,EAAS3iB,EAAQ,KAGrB,SAAS8T,EAAWlT,GAClB,OAAO,WACL,MAAM,IAAIwE,MAAM,YAAcxE,EAAO,uCAKzCT,EAAOC,QAAQ+C,KAAsBnD,EAAQ,IAC7CG,EAAOC,QAAQ2D,OAAsB/D,EAAQ,IAC7CG,EAAOC,QAAQwiB,gBAAsB5iB,EAAQ,IAC7CG,EAAOC,QAAQyiB,YAAsB7iB,EAAQ,KAC7CG,EAAOC,QAAQ0iB,YAAsB9iB,EAAQ,KAC7CG,EAAOC,QAAQ2iB,oBAAsB/iB,EAAQ,IAC7CG,EAAOC,QAAQ4iB,oBAAsBhjB,EAAQ,IAC7CG,EAAOC,QAAQ6iB,KAAsBP,EAAOO,KAC5C9iB,EAAOC,QAAQ8iB,QAAsBR,EAAOQ,QAC5C/iB,EAAOC,QAAQ+iB,SAAsBT,EAAOS,SAC5ChjB,EAAOC,QAAQgjB,YAAsBV,EAAOU,YAC5CjjB,EAAOC,QAAQijB,KAAsBV,EAAOU,KAC5CljB,EAAOC,QAAQkjB,SAAsBX,EAAOW,SAC5CnjB,EAAOC,QAAQL,cAAsBC,EAAQ,IAG7CG,EAAOC,QAAQmjB,eAAiBvjB,EAAQ,IACxCG,EAAOC,QAAQojB,YAAiBxjB,EAAQ,IACxCG,EAAOC,QAAQqjB,eAAiBzjB,EAAQ,IAGxCG,EAAOC,QAAQsjB,KAAiB5P,EAAW,QAC3C3T,EAAOC,QAAQujB,MAAiB7P,EAAW,SAC3C3T,EAAOC,QAAQwjB,QAAiB9P,EAAW,WAC3C3T,EAAOC,QAAQyjB,eAAiB/P,EAAW,qRClC3C,IAAI5Q,EAAsBlD,EAAQ,IAC9BD,EAAsBC,EAAQ,IAC9B8jB,EAAsB9jB,EAAQ,KAC9B+iB,EAAsB/iB,EAAQ,IAC9BgjB,EAAsBhjB,EAAQ,IAG9B+jB,EAAkBtjB,OAAOkF,UAAUqe,eAGnCC,EAAoB,EACpBC,EAAoB,EACpBC,EAAoB,EACpBC,EAAoB,EAGpBC,EAAiB,EACjBC,EAAiB,EACjBC,EAAiB,EAGjBC,EAAgC,sIAChCC,EAAgC,qBAChCC,EAAgC,cAChCC,EAAgC,yBAChCC,EAAgC,mFAGpC,SAASC,EAAOC,GAAO,OAAOrkB,OAAOkF,UAAUJ,SAASF,KAAKyf,GAE7D,SAASC,EAAOhf,GACd,OAAc,KAANA,GAA8B,KAANA,EAGlC,SAASif,EAAejf,GACtB,OAAc,IAANA,GAA+B,KAANA,EAGnC,SAASkf,EAAalf,GACpB,OAAc,IAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,EAGV,SAASmf,EAAkBnf,GACzB,OAAa,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,EAGT,SAASof,EAAYpf,GACnB,IAAIqf,EAEJ,OAAK,IAAerf,GAAOA,GAAK,GACvBA,EAAI,GAMR,KAFLqf,EAAS,GAAJrf,IAEuBqf,GAAM,IACzBA,EAAK,GAAO,IAGb,EAkBV,SAASC,EAAqBtf,GAE5B,OAAc,KAANA,EAAqB,KAChB,KAANA,EAAqB,IACf,KAANA,EAAqB,KACf,MAANA,EAAqB,KACf,IAANA,EAAuB,KACjB,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,IACf,KAANA,EAAyB,IACnB,KAANA,EAAqB,IACf,KAANA,EAAqB,IACf,KAANA,EAAqB,KACf,KAANA,EAAqB,IACf,KAANA,EAAqB,IACf,KAANA,EAAqB,SACf,KAANA,EAAqB,SAAW,GAGzC,SAASuf,EAAkBvf,GACzB,OAAIA,GAAK,MACArE,OAAO6jB,aAAaxf,GAItBrE,OAAO6jB,aACa,OAAvBxf,EAAI,OAAa,IACS,OAA1BA,EAAI,MAAY,OAMtB,IAFA,IAAIyf,EAAoB,IAAIvjB,MAAM,KAC9BwjB,EAAkB,IAAIxjB,MAAM,KACvB8M,EAAI,EAAGA,EAAI,IAAKA,IACvByW,EAAkBzW,GAAKsW,EAAqBtW,GAAK,EAAI,EACrD0W,EAAgB1W,GAAKsW,EAAqBtW,GAI5C,SAAS2W,EAAMhF,EAAOpgB,GACpBQ,KAAK4f,MAAQA,EAEb5f,KAAK6kB,SAAYrlB,EAAO,UAAiB,KACzCQ,KAAKuC,OAAY/C,EAAO,QAAiB0iB,EACzCliB,KAAK8kB,UAAYtlB,EAAO,WAAiB,KACzCQ,KAAK+kB,OAAYvlB,EAAO,SAAiB,EACzCQ,KAAKglB,KAAYxlB,EAAO,OAAiB,EACzCQ,KAAKilB,SAAYzlB,EAAO,UAAiB,KAEzCQ,KAAKklB,cAAgBllB,KAAKuC,OAAOe,iBACjCtD,KAAKmlB,QAAgBnlB,KAAKuC,OAAOiB,gBAEjCxD,KAAKiC,OAAa2d,EAAM3d,OACxBjC,KAAKolB,SAAa,EAClBplB,KAAKqlB,KAAa,EAClBrlB,KAAKslB,UAAa,EAClBtlB,KAAKulB,WAAa,EAElBvlB,KAAKwlB,UAAY,GAenB,SAASC,EAAcC,EAAOlhB,GAC5B,OAAO,IAAIvF,EACTuF,EACA,IAAIwe,EAAK0C,EAAMb,SAAUa,EAAM9F,MAAO8F,EAAMN,SAAUM,EAAML,KAAOK,EAAMN,SAAWM,EAAMJ,YAG9F,SAASK,EAAWD,EAAOlhB,GACzB,MAAMihB,EAAcC,EAAOlhB,GAG7B,SAASohB,EAAaF,EAAOlhB,GACvBkhB,EAAMZ,WACRY,EAAMZ,UAAUvgB,KAAK,KAAMkhB,EAAcC,EAAOlhB,IAKpD,IAAIqhB,EAAoB,CAEtBC,KAAM,SAA6BJ,EAAO5lB,EAAMkd,GAE9C,IAAIoD,EAAO2F,EAAOC,EAEI,OAAlBN,EAAMO,SACRN,EAAWD,EAAO,kCAGA,IAAhB1I,EAAK/a,QACP0jB,EAAWD,EAAO,+CAKN,QAFdtF,EAAQ,uBAAuB7W,KAAKyT,EAAK,MAGvC2I,EAAWD,EAAO,6CAGpBK,EAAQG,SAAS9F,EAAM,GAAI,IAC3B4F,EAAQE,SAAS9F,EAAM,GAAI,IAEb,IAAV2F,GACFJ,EAAWD,EAAO,6CAGpBA,EAAMO,QAAUjJ,EAAK,GACrB0I,EAAMS,gBAAmBH,EAAQ,EAEnB,IAAVA,GAAyB,IAAVA,GACjBJ,EAAaF,EAAO,6CAIxBU,IAAK,SAA4BV,EAAO5lB,EAAMkd,GAE5C,IAAIqJ,EAAQC,EAEQ,IAAhBtJ,EAAK/a,QACP0jB,EAAWD,EAAO,+CAGpBW,EAASrJ,EAAK,GACdsJ,EAAStJ,EAAK,GAET6G,EAAmB0C,KAAKF,IAC3BV,EAAWD,EAAO,+DAGhBzC,EAAgB1e,KAAKmhB,EAAMc,OAAQH,IACrCV,EAAWD,EAAO,8CAAgDW,EAAS,gBAGxEvC,EAAgByC,KAAKD,IACxBX,EAAWD,EAAO,gEAGpBA,EAAMc,OAAOH,GAAUC,IAK3B,SAASG,EAAef,EAAOtd,EAAOC,EAAKqe,GACzC,IAAIC,EAAWC,EAASC,EAAYC,EAEpC,GAAI1e,EAAQC,EAAK,CAGf,GAFAye,EAAUpB,EAAM9F,MAAMnW,MAAMrB,EAAOC,GAE/Bqe,EACF,IAAKC,EAAY,EAAGC,EAAUE,EAAQ7kB,OAAQ0kB,EAAYC,EAASD,GAAa,EAEzD,KADrBE,EAAaC,EAAQC,WAAWJ,KAEzB,IAAQE,GAAcA,GAAc,SACzClB,EAAWD,EAAO,sCAGbhC,EAAsB6C,KAAKO,IACpCnB,EAAWD,EAAO,gDAGpBA,EAAMhmB,QAAUonB,GAIpB,SAASE,EAActB,EAAOuB,EAAallB,EAAQmlB,GACjD,IAAI/kB,EAAYD,EAAKF,EAAOmlB,EAQ5B,IANK/kB,EAAOrB,SAASgB,IACnB4jB,EAAWD,EAAO,qEAKf1jB,EAAQ,EAAGmlB,GAFhBhlB,EAAaxC,OAAOC,KAAKmC,IAEaE,OAAQD,EAAQmlB,EAAUnlB,GAAS,EACvEE,EAAMC,EAAWH,GAEZihB,EAAgB1e,KAAK0iB,EAAa/kB,KACrC+kB,EAAY/kB,GAAOH,EAAOG,GAC1BglB,EAAgBhlB,IAAO,GAK7B,SAASklB,EAAiB1B,EAAOoB,EAASI,EAAiBG,EAAQC,EAASC,EAAWC,EAAWC,GAChG,IAAIzlB,EAAOmlB,EAKX,GAAIhmB,MAAMC,QAAQkmB,GAGhB,IAAKtlB,EAAQ,EAAGmlB,GAFhBG,EAAUnmB,MAAM0D,UAAU4E,MAAMlF,KAAK+iB,IAEFrlB,OAAQD,EAAQmlB,EAAUnlB,GAAS,EAChEb,MAAMC,QAAQkmB,EAAQtlB,KACxB2jB,EAAWD,EAAO,+CAGG,WAAnB1kB,EAAOsmB,IAAmD,oBAA3BvD,EAAOuD,EAAQtlB,MAChDslB,EAAQtlB,GAAS,mBAmBvB,GAXuB,WAAnBhB,EAAOsmB,IAA4C,oBAApBvD,EAAOuD,KACxCA,EAAU,mBAIZA,EAAU1mB,OAAO0mB,GAED,OAAZR,IACFA,EAAU,IAGG,4BAAXO,EACF,GAAIlmB,MAAMC,QAAQmmB,GAChB,IAAKvlB,EAAQ,EAAGmlB,EAAWI,EAAUtlB,OAAQD,EAAQmlB,EAAUnlB,GAAS,EACtEglB,EAActB,EAAOoB,EAASS,EAAUvlB,GAAQklB,QAGlDF,EAActB,EAAOoB,EAASS,EAAWL,QAGtCxB,EAAMV,MACN/B,EAAgB1e,KAAK2iB,EAAiBI,KACvCrE,EAAgB1e,KAAKuiB,EAASQ,KAChC5B,EAAML,KAAOmC,GAAa9B,EAAML,KAChCK,EAAMN,SAAWqC,GAAY/B,EAAMN,SACnCO,EAAWD,EAAO,2BAEpBoB,EAAQQ,GAAWC,SACZL,EAAgBI,GAGzB,OAAOR,EAGT,SAASY,EAAchC,GACrB,IAAIiC,EAIO,MAFXA,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAGhCM,EAAMN,WACU,KAAPuC,GACTjC,EAAMN,WACyC,KAA3CM,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAC/BM,EAAMN,YAGRO,EAAWD,EAAO,4BAGpBA,EAAML,MAAQ,EACdK,EAAMJ,UAAYI,EAAMN,SAG1B,SAASwC,EAAoBlC,EAAOmC,EAAeC,GAIjD,IAHA,IAAIC,EAAa,EACbJ,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,UAExB,IAAPuC,GAAU,CACf,KAAOzD,EAAeyD,IACpBA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAGtC,GAAIyC,GAAwB,KAAPF,EACnB,GACEA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,gBACtB,KAAPuC,GAA8B,KAAPA,GAA8B,IAAPA,GAGzD,IAAI1D,EAAO0D,GAYT,MALA,IANAD,EAAchC,GAEdiC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,UAClC2C,IACArC,EAAMH,WAAa,EAEL,KAAPoC,GACLjC,EAAMH,aACNoC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAW1C,OAJqB,IAAjB0C,GAAqC,IAAfC,GAAoBrC,EAAMH,WAAauC,GAC/DlC,EAAaF,EAAO,yBAGfqC,EAGT,SAASC,EAAsBtC,GAC7B,IACIiC,EADAhB,EAAYjB,EAAMN,SAOtB,QAAY,MAJZuC,EAAKjC,EAAM9F,MAAMmH,WAAWJ,KAIM,KAAPgB,GACvBA,IAAOjC,EAAM9F,MAAMmH,WAAWJ,EAAY,IAC1CgB,IAAOjC,EAAM9F,MAAMmH,WAAWJ,EAAY,KAE5CA,GAAa,EAIF,KAFXgB,EAAKjC,EAAM9F,MAAMmH,WAAWJ,MAEZxC,EAAawD,KAQjC,SAASM,EAAiBvC,EAAOnkB,GACjB,IAAVA,EACFmkB,EAAMhmB,QAAU,IACP6B,EAAQ,IACjBmkB,EAAMhmB,QAAU0C,EAAOf,OAAO,KAAME,EAAQ,IAsehD,SAAS2mB,EAAkBxC,EAAOyC,GAChC,IAAIC,EAMAT,EALAU,EAAY3C,EAAMnmB,IAClB+oB,EAAY5C,EAAM6C,OAClBzB,EAAY,GAEZ0B,GAAY,EAShB,IANqB,OAAjB9C,EAAM6C,SACR7C,EAAM+C,UAAU/C,EAAM6C,QAAUzB,GAGlCa,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,UAEpB,IAAPuC,GAEM,KAAPA,GAMCxD,EAFOuB,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,KASpD,GAHAoD,GAAW,EACX9C,EAAMN,WAEFwC,EAAoBlC,GAAO,GAAO,IAChCA,EAAMH,YAAc4C,EACtBrB,EAAQhkB,KAAK,MACb6kB,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,eAYtC,GAPAgD,EAAQ1C,EAAML,KACdqD,EAAYhD,EAAOyC,EAAY9E,GAAkB,GAAO,GACxDyD,EAAQhkB,KAAK4iB,EAAMhmB,QACnBkoB,EAAoBlC,GAAO,GAAO,GAElCiC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAE7BM,EAAML,OAAS+C,GAAS1C,EAAMH,WAAa4C,IAAuB,IAAPR,EAC9DhC,EAAWD,EAAO,4CACb,GAAIA,EAAMH,WAAa4C,EAC5B,MAIJ,QAAIK,IACF9C,EAAMnmB,IAAM8oB,EACZ3C,EAAM6C,OAASD,EACf5C,EAAMzlB,KAAO,WACbylB,EAAMhmB,OAASonB,GACR,GAgKX,SAAS6B,EAAgBjD,GACvB,IAAIiB,EAGAiC,EACAC,EACAlB,EAJAmB,GAAa,EACbC,GAAa,EAOjB,GAAW,MAFXpB,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAEV,OAAO,EAuB/B,GArBkB,OAAdM,EAAMnmB,KACRomB,EAAWD,EAAO,iCAKT,MAFXiC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,YAGlC0D,GAAa,EACbnB,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,WAEpB,KAAPuC,GACToB,GAAU,EACVH,EAAY,KACZjB,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,WAGpCwD,EAAY,IAGdjC,EAAYjB,EAAMN,SAEd0D,EAAY,CACd,GAAKnB,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,gBAC3B,IAAPuC,GAAmB,KAAPA,GAEfjC,EAAMN,SAAWM,EAAMzjB,QACzB4mB,EAAUnD,EAAM9F,MAAMnW,MAAMkd,EAAWjB,EAAMN,UAC7CuC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,WAEpCO,EAAWD,EAAO,0DAEf,CACL,KAAc,IAAPiC,IAAaxD,EAAawD,IAEpB,KAAPA,IACGoB,EAUHpD,EAAWD,EAAO,gDATlBkD,EAAYlD,EAAM9F,MAAMnW,MAAMkd,EAAY,EAAGjB,EAAMN,SAAW,GAEzDvB,EAAmB0C,KAAKqC,IAC3BjD,EAAWD,EAAO,mDAGpBqD,GAAU,EACVpC,EAAYjB,EAAMN,SAAW,IAMjCuC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAGtCyD,EAAUnD,EAAM9F,MAAMnW,MAAMkd,EAAWjB,EAAMN,UAEzCxB,EAAwB2C,KAAKsC,IAC/BlD,EAAWD,EAAO,uDAwBtB,OApBImD,IAAY/E,EAAgByC,KAAKsC,IACnClD,EAAWD,EAAO,4CAA8CmD,GAG9DC,EACFpD,EAAMnmB,IAAMspB,EAEH5F,EAAgB1e,KAAKmhB,EAAMc,OAAQoC,GAC5ClD,EAAMnmB,IAAMmmB,EAAMc,OAAOoC,GAAaC,EAEf,MAAdD,EACTlD,EAAMnmB,IAAM,IAAMspB,EAEK,OAAdD,EACTlD,EAAMnmB,IAAM,qBAAuBspB,EAGnClD,EAAWD,EAAO,0BAA4BkD,EAAY,MAGrD,EAGT,SAASI,EAAmBtD,GAC1B,IAAIiB,EACAgB,EAIJ,GAAW,MAFXA,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAEV,OAAO,EAS/B,IAPqB,OAAjBM,EAAM6C,QACR5C,EAAWD,EAAO,qCAGpBiC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UACpCuB,EAAYjB,EAAMN,SAEJ,IAAPuC,IAAaxD,EAAawD,KAAQvD,EAAkBuD,IACzDA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAQtC,OALIM,EAAMN,WAAauB,GACrBhB,EAAWD,EAAO,8DAGpBA,EAAM6C,OAAS7C,EAAM9F,MAAMnW,MAAMkd,EAAWjB,EAAMN,WAC3C,EAiCT,SAASsD,EAAYhD,EAAOuD,EAAcC,EAAaC,EAAaC,GAClE,IAAIC,EACAC,EACAC,EAIAC,EACAC,EACAzmB,EACA0mB,EACAC,EAPAC,EAAe,EACfC,GAAa,EACbC,GAAa,EAkCjB,GA3BuB,OAAnBpE,EAAMT,UACRS,EAAMT,SAAS,OAAQS,GAGzBA,EAAMnmB,IAAS,KACfmmB,EAAM6C,OAAS,KACf7C,EAAMzlB,KAAS,KACfylB,EAAMhmB,OAAS,KAEf2pB,EAAmBC,EAAoBC,EACrCjG,IAAsB4F,GACtB7F,IAAsB6F,EAEpBC,GACEvB,EAAoBlC,GAAO,GAAO,KACpCmE,GAAY,EAERnE,EAAMH,WAAa0D,EACrBW,EAAe,EACNlE,EAAMH,aAAe0D,EAC9BW,EAAe,EACNlE,EAAMH,WAAa0D,IAC5BW,GAAgB,IAKD,IAAjBA,EACF,KAAOjB,EAAgBjD,IAAUsD,EAAmBtD,IAC9CkC,EAAoBlC,GAAO,GAAO,IACpCmE,GAAY,EACZN,EAAwBF,EAEpB3D,EAAMH,WAAa0D,EACrBW,EAAe,EACNlE,EAAMH,aAAe0D,EAC9BW,EAAe,EACNlE,EAAMH,WAAa0D,IAC5BW,GAAgB,IAGlBL,GAAwB,EAwD9B,GAnDIA,IACFA,EAAwBM,GAAaT,GAGlB,IAAjBQ,GAAsBtG,IAAsB4F,IAE5CQ,EADEvG,IAAoB+F,GAAe9F,IAAqB8F,EAC7CD,EAEAA,EAAe,EAG9BU,EAAcjE,EAAMN,SAAWM,EAAMJ,UAEhB,IAAjBsE,EACEL,IACCrB,EAAkBxC,EAAOiE,IA5XpC,SAA0BjE,EAAOyC,EAAYuB,GAC3C,IAAIK,EACAX,EACAhB,EACA4B,EAUArC,EATAU,EAAgB3C,EAAMnmB,IACtB+oB,EAAgB5C,EAAM6C,OACtBzB,EAAgB,GAChBI,EAAkB,GAClBG,EAAgB,KAChBC,EAAgB,KAChBC,EAAgB,KAChB0C,GAAgB,EAChBzB,GAAgB,EASpB,IANqB,OAAjB9C,EAAM6C,SACR7C,EAAM+C,UAAU/C,EAAM6C,QAAUzB,GAGlCa,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,UAEpB,IAAPuC,GAAU,CASf,GARAoC,EAAYrE,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,GACpDgD,EAAQ1C,EAAML,KACd2E,EAAOtE,EAAMN,SAMD,KAAPuC,GAA6B,KAAPA,IAAuBxD,EAAa4F,GA2BxD,KAAIrB,EAAYhD,EAAOgE,EAAYtG,GAAkB,GAAO,GA8CjE,MA5CA,GAAIsC,EAAML,OAAS+C,EAAO,CAGxB,IAFAT,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,UAE3BlB,EAAeyD,IACpBA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAGtC,GAAW,KAAPuC,EAGGxD,EAFLwD,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,YAGlCO,EAAWD,EAAO,2FAGhBuE,IACF7C,EAAiB1B,EAAOoB,EAASI,EAAiBG,EAAQC,EAAS,MACnED,EAASC,EAAUC,EAAY,MAGjCiB,GAAW,EACXyB,GAAgB,EAChBb,GAAe,EACf/B,EAAS3B,EAAMnmB,IACf+nB,EAAU5B,EAAMhmB,WAEX,KAAI8oB,EAMT,OAFA9C,EAAMnmB,IAAM8oB,EACZ3C,EAAM6C,OAASD,GACR,EALP3C,EAAWD,EAAO,iEAQf,KAAI8C,EAMT,OAFA9C,EAAMnmB,IAAM8oB,EACZ3C,EAAM6C,OAASD,GACR,EALP3C,EAAWD,EAAO,wFA9DT,KAAPiC,GACEsC,IACF7C,EAAiB1B,EAAOoB,EAASI,EAAiBG,EAAQC,EAAS,MACnED,EAASC,EAAUC,EAAY,MAGjCiB,GAAW,EACXyB,GAAgB,EAChBb,GAAe,GAENa,GAETA,GAAgB,EAChBb,GAAe,GAGfzD,EAAWD,EAAO,qGAGpBA,EAAMN,UAAY,EAClBuC,EAAKoC,EA2EP,IAlBIrE,EAAML,OAAS+C,GAAS1C,EAAMH,WAAa4C,KACzCO,EAAYhD,EAAOyC,EAAY7E,GAAmB,EAAM8F,KACtDa,EACF3C,EAAU5B,EAAMhmB,OAEhB6nB,EAAY7B,EAAMhmB,QAIjBuqB,IACH7C,EAAiB1B,EAAOoB,EAASI,EAAiBG,EAAQC,EAASC,EAAWa,EAAO4B,GACrF3C,EAASC,EAAUC,EAAY,MAGjCK,EAAoBlC,GAAO,GAAO,GAClCiC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAGhCM,EAAMH,WAAa4C,GAAsB,IAAPR,EACpChC,EAAWD,EAAO,2CACb,GAAIA,EAAMH,WAAa4C,EAC5B,MAqBJ,OAZI8B,GACF7C,EAAiB1B,EAAOoB,EAASI,EAAiBG,EAAQC,EAAS,MAIjEkB,IACF9C,EAAMnmB,IAAM8oB,EACZ3C,EAAM6C,OAASD,EACf5C,EAAMzlB,KAAO,UACbylB,EAAMhmB,OAASonB,GAGV0B,EAqOE0B,CAAiBxE,EAAOiE,EAAaD,KAnrBhD,SAA4BhE,EAAOyC,GACjC,IACIC,EAEAtB,EAGAqD,EACAC,EACAC,EACAC,EAEAhD,EACAD,EACAE,EACAI,EAdA4C,GAAW,EAEXlC,EAAW3C,EAAMnmB,IAEjB+oB,EAAW5C,EAAM6C,OAMjBrB,EAAkB,GAQtB,GAAW,MAFXS,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAGhC+E,EAAa,GACbG,GAAY,EACZxD,EAAU,OACL,IAAW,MAAPa,EAKT,OAAO,EAJPwC,EAAa,IACbG,GAAY,EACZxD,EAAU,GAWZ,IANqB,OAAjBpB,EAAM6C,SACR7C,EAAM+C,UAAU/C,EAAM6C,QAAUzB,GAGlCa,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAEtB,IAAPuC,GAAU,CAKf,GAJAC,EAAoBlC,GAAO,EAAMyC,IAEjCR,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,aAEvB+E,EAMT,OALAzE,EAAMN,WACNM,EAAMnmB,IAAM8oB,EACZ3C,EAAM6C,OAASD,EACf5C,EAAMzlB,KAAOqqB,EAAY,UAAY,WACrC5E,EAAMhmB,OAASonB,GACR,EACGyD,GACV5E,EAAWD,EAAO,gDAGD6B,EAAY,KAC/B6C,EAASC,GAAiB,EAEf,KAAP1C,GAGExD,EAFQuB,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,MAGlDgF,EAASC,GAAiB,EAC1B3E,EAAMN,WACNwC,EAAoBlC,GAAO,EAAMyC,IAIrCC,EAAQ1C,EAAML,KACdqD,EAAYhD,EAAOyC,EAAYhF,GAAiB,GAAO,GACvDkE,EAAS3B,EAAMnmB,IACf+nB,EAAU5B,EAAMhmB,OAChBkoB,EAAoBlC,GAAO,EAAMyC,GAEjCR,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAE7BiF,GAAkB3E,EAAML,OAAS+C,GAAiB,KAAPT,IAC9CyC,GAAS,EACTzC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UACpCwC,EAAoBlC,GAAO,EAAMyC,GACjCO,EAAYhD,EAAOyC,EAAYhF,GAAiB,GAAO,GACvDoE,EAAY7B,EAAMhmB,QAGhB4qB,EACFlD,EAAiB1B,EAAOoB,EAASI,EAAiBG,EAAQC,EAASC,GAC1D6C,EACTtD,EAAQhkB,KAAKskB,EAAiB1B,EAAO,KAAMwB,EAAiBG,EAAQC,EAASC,IAE7ET,EAAQhkB,KAAKwkB,GAGfM,EAAoBlC,GAAO,EAAMyC,GAItB,MAFXR,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,YAGhCmF,GAAW,EACX5C,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,WAEpCmF,GAAW,EAIf5E,EAAWD,EAAO,yDA8kBV8E,CAAmB9E,EAAOgE,GAC5BI,GAAa,GAERR,GA9kBb,SAAyB5D,EAAOyC,GAC9B,IAAIsC,EACAC,EAOAC,EACAhD,EA7rBmB1iB,EAsrBnB2lB,EAAiBrH,EACjBsH,GAAiB,EACjBC,GAAiB,EACjBC,EAAiB5C,EACjB6C,EAAiB,EACjBC,GAAiB,EAMrB,GAAW,OAFXtD,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAGhCsF,GAAU,MACL,IAAW,KAAP/C,EAGT,OAAO,EAFP+C,GAAU,EAQZ,IAHAhF,EAAMzlB,KAAO,SACbylB,EAAMhmB,OAAS,GAED,IAAPioB,GAGL,GAAW,MAFXA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,YAEH,KAAPuC,EACpBpE,IAAkBqH,EACpBA,EAAmB,KAAPjD,EAAsBlE,EAAgBD,EAElDmC,EAAWD,EAAO,4CAGf,OAAKiF,EArtBT,KADkB1lB,EAstBa0iB,IArtBT1iB,GAAK,GACvBA,EAAI,IAGL,IAitBoC,GAWxC,MAVY,IAAR0lB,EACFhF,EAAWD,EAAO,gFACRoF,EAIVnF,EAAWD,EAAO,8CAHlBqF,EAAa5C,EAAawC,EAAM,EAChCG,GAAiB,GAUvB,GAAI5G,EAAeyD,GAAK,CACtB,GAAKA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,gBAClClB,EAAeyD,IAEtB,GAAW,KAAPA,EACF,GAAKA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,iBACjCnB,EAAO0D,IAAe,IAAPA,GAI3B,KAAc,IAAPA,GAAU,CAMf,IALAD,EAAchC,GACdA,EAAMH,WAAa,EAEnBoC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,YAEzB0F,GAAkBpF,EAAMH,WAAawF,IAC/B,KAAPpD,GACNjC,EAAMH,aACNoC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAOtC,IAJK0F,GAAkBpF,EAAMH,WAAawF,IACxCA,EAAarF,EAAMH,YAGjBtB,EAAO0D,GACTqD,QADF,CAMA,GAAItF,EAAMH,WAAawF,EAAY,CAG7BH,IAAanH,EACfiC,EAAMhmB,QAAU0C,EAAOf,OAAO,KAAMwpB,EAAiB,EAAIG,EAAaA,GAC7DJ,IAAarH,GAClBsH,IACFnF,EAAMhmB,QAAU,MAKpB,MAuCF,IAnCIgrB,EAGExG,EAAeyD,IACjBsD,GAAiB,EAEjBvF,EAAMhmB,QAAU0C,EAAOf,OAAO,KAAMwpB,EAAiB,EAAIG,EAAaA,IAG7DC,GACTA,GAAiB,EACjBvF,EAAMhmB,QAAU0C,EAAOf,OAAO,KAAM2pB,EAAa,IAGzB,IAAfA,EACLH,IACFnF,EAAMhmB,QAAU,KAKlBgmB,EAAMhmB,QAAU0C,EAAOf,OAAO,KAAM2pB,GAMtCtF,EAAMhmB,QAAU0C,EAAOf,OAAO,KAAMwpB,EAAiB,EAAIG,EAAaA,GAGxEH,GAAiB,EACjBC,GAAiB,EACjBE,EAAa,EACbP,EAAe/E,EAAMN,UAEbnB,EAAO0D,IAAe,IAAPA,GACrBA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAGtCqB,EAAef,EAAO+E,EAAc/E,EAAMN,UAAU,IAGtD,OAAO,EAkcyB8F,CAAgBxF,EAAOgE,IAnzBzD,SAAgChE,EAAOyC,GACrC,IAAIR,EACA8C,EAAcU,EAIlB,GAAW,MAFXxD,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAGhC,OAAO,EAQT,IALAM,EAAMzlB,KAAO,SACbylB,EAAMhmB,OAAS,GACfgmB,EAAMN,WACNqF,EAAeU,EAAazF,EAAMN,SAEuB,KAAjDuC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,YACxC,GAAW,KAAPuC,EAAoB,CAItB,GAHAlB,EAAef,EAAO+E,EAAc/E,EAAMN,UAAU,GAGzC,MAFXuC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,WAOlC,OAAO,EAJPqF,EAAe/E,EAAMN,SACrBM,EAAMN,WACN+F,EAAazF,EAAMN,cAKZnB,EAAO0D,IAChBlB,EAAef,EAAO+E,EAAcU,GAAY,GAChDlD,EAAiBvC,EAAOkC,EAAoBlC,GAAO,EAAOyC,IAC1DsC,EAAeU,EAAazF,EAAMN,UAEzBM,EAAMN,WAAaM,EAAMJ,WAAa0C,EAAsBtC,GACrEC,EAAWD,EAAO,iEAGlBA,EAAMN,WACN+F,EAAazF,EAAMN,UAIvBO,EAAWD,EAAO,8DA0wBR0F,CAAuB1F,EAAOgE,IAvwB1C,SAAgChE,EAAOyC,GACrC,IAAIsC,EACAU,EACAE,EACAC,EACAX,EACAhD,EAxgBiB1iB,EA4gBrB,GAAW,MAFX0iB,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAGhC,OAAO,EAQT,IALAM,EAAMzlB,KAAO,SACbylB,EAAMhmB,OAAS,GACfgmB,EAAMN,WACNqF,EAAeU,EAAazF,EAAMN,SAEuB,KAAjDuC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,YAAkB,CAC1D,GAAW,KAAPuC,EAGF,OAFAlB,EAAef,EAAO+E,EAAc/E,EAAMN,UAAU,GACpDM,EAAMN,YACC,EAEF,GAAW,KAAPuC,EAAoB,CAI7B,GAHAlB,EAAef,EAAO+E,EAAc/E,EAAMN,UAAU,GAGhDnB,EAFJ0D,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,WAGlCwC,EAAoBlC,GAAO,EAAOyC,QAG7B,GAAIR,EAAK,KAAOjD,EAAkBiD,GACvCjC,EAAMhmB,QAAUilB,EAAgBgD,GAChCjC,EAAMN,gBAED,IAAKuF,EAtiBN,OADW1lB,EAuiBe0iB,GAtiBJ,EACtB,MAAN1iB,EAA4B,EACtB,KAANA,EAA4B,EACzB,GAmiBoC,EAAG,CAIxC,IAHAomB,EAAYV,EACZW,EAAY,EAELD,EAAY,EAAGA,KAGfV,EAAMtG,EAFXsD,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,aAEL,EAC7BkG,GAAaA,GAAa,GAAKX,EAG/BhF,EAAWD,EAAO,kCAItBA,EAAMhmB,QAAU8kB,EAAkB8G,GAElC5F,EAAMN,gBAGNO,EAAWD,EAAO,2BAGpB+E,EAAeU,EAAazF,EAAMN,cAEzBnB,EAAO0D,IAChBlB,EAAef,EAAO+E,EAAcU,GAAY,GAChDlD,EAAiBvC,EAAOkC,EAAoBlC,GAAO,EAAOyC,IAC1DsC,EAAeU,EAAazF,EAAMN,UAEzBM,EAAMN,WAAaM,EAAMJ,WAAa0C,EAAsBtC,GACrEC,EAAWD,EAAO,iEAGlBA,EAAMN,WACN+F,EAAazF,EAAMN,UAIvBO,EAAWD,EAAO,8DA4rBR6F,CAAuB7F,EAAOgE,GAChCI,GAAa,GAhHvB,SAAmBpE,GACjB,IAAIiB,EAAWhmB,EACXgnB,EAIJ,GAAW,MAFXA,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAEV,OAAO,EAK/B,IAHAuC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UACpCuB,EAAYjB,EAAMN,SAEJ,IAAPuC,IAAaxD,EAAawD,KAAQvD,EAAkBuD,IACzDA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAetC,OAZIM,EAAMN,WAAauB,GACrBhB,EAAWD,EAAO,6DAGpB/kB,EAAQ+kB,EAAM9F,MAAMnW,MAAMkd,EAAWjB,EAAMN,UAEtCM,EAAM+C,UAAUvF,eAAeviB,IAClCglB,EAAWD,EAAO,uBAAyB/kB,EAAQ,KAGrD+kB,EAAMhmB,OAASgmB,EAAM+C,UAAU9nB,GAC/BinB,EAAoBlC,GAAO,GAAO,IAC3B,EAuFU8F,CAAU9F,GAr6B7B,SAAyBA,EAAOyC,EAAYsD,GAC1C,IACI1B,EACAU,EACAU,EACAO,EACAtD,EACAuD,EACAC,EAGAjE,EAFAkE,EAAQnG,EAAMzlB,KACd6mB,EAAUpB,EAAMhmB,OAKpB,GAAIykB,EAFJwD,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,YAG9BhB,EAAkBuD,IACX,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,MAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,EACF,OAAO,EAGT,IAAW,KAAPA,GAA6B,KAAPA,KAGpBxD,EAFJ4F,EAAYrE,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,KAGhDqG,GAAwBrH,EAAkB2F,IAC5C,OAAO,EASX,IALArE,EAAMzlB,KAAO,SACbylB,EAAMhmB,OAAS,GACf+qB,EAAeU,EAAazF,EAAMN,SAClCsG,GAAoB,EAEN,IAAP/D,GAAU,CACf,GAAW,KAAPA,GAGF,GAAIxD,EAFJ4F,EAAYrE,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,KAGhDqG,GAAwBrH,EAAkB2F,GAC5C,WAGG,GAAW,KAAPpC,GAGT,GAAIxD,EAFQuB,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,IAGlD,UAGG,IAAKM,EAAMN,WAAaM,EAAMJ,WAAa0C,EAAsBtC,IAC7D+F,GAAwBrH,EAAkBuD,GACnD,MAEK,GAAI1D,EAAO0D,GAAK,CAMrB,GALAS,EAAQ1C,EAAML,KACdsG,EAAajG,EAAMJ,UACnBsG,EAAclG,EAAMH,WACpBqC,EAAoBlC,GAAO,GAAQ,GAE/BA,EAAMH,YAAc4C,EAAY,CAClCuD,GAAoB,EACpB/D,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,UAClC,SAEAM,EAAMN,SAAW+F,EACjBzF,EAAML,KAAO+C,EACb1C,EAAMJ,UAAYqG,EAClBjG,EAAMH,WAAaqG,EACnB,OAIAF,IACFjF,EAAef,EAAO+E,EAAcU,GAAY,GAChDlD,EAAiBvC,EAAOA,EAAML,KAAO+C,GACrCqC,EAAeU,EAAazF,EAAMN,SAClCsG,GAAoB,GAGjBxH,EAAeyD,KAClBwD,EAAazF,EAAMN,SAAW,GAGhCuC,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAKtC,OAFAqB,EAAef,EAAO+E,EAAcU,GAAY,KAE5CzF,EAAMhmB,SAIVgmB,EAAMzlB,KAAO4rB,EACbnG,EAAMhmB,OAASonB,GACR,GAk0BUgF,CAAgBpG,EAAOgE,EAAYvG,IAAoB+F,KAChEY,GAAa,EAEK,OAAdpE,EAAMnmB,MACRmmB,EAAMnmB,IAAM,OAVduqB,GAAa,EAEK,OAAdpE,EAAMnmB,KAAiC,OAAjBmmB,EAAM6C,QAC9B5C,EAAWD,EAAO,8CAWD,OAAjBA,EAAM6C,SACR7C,EAAM+C,UAAU/C,EAAM6C,QAAU7C,EAAMhmB,SAGhB,IAAjBkqB,IAGTE,EAAaP,GAAyBrB,EAAkBxC,EAAOiE,KAIjD,OAAdjE,EAAMnmB,KAA8B,MAAdmmB,EAAMnmB,IAC9B,GAAkB,MAAdmmB,EAAMnmB,KACR,IAAKiqB,EAAY,EAAGC,EAAe/D,EAAMR,cAAcjjB,OAAQunB,EAAYC,EAAcD,GAAa,EAOpG,IANAxmB,EAAO0iB,EAAMR,cAAcsE,IAMlBtpB,QAAQwlB,EAAMhmB,QAAS,CAC9BgmB,EAAMhmB,OAASsD,EAAK7C,UAAUulB,EAAMhmB,QACpCgmB,EAAMnmB,IAAMyD,EAAKzD,IACI,OAAjBmmB,EAAM6C,SACR7C,EAAM+C,UAAU/C,EAAM6C,QAAU7C,EAAMhmB,QAExC,YAGKujB,EAAgB1e,KAAKmhB,EAAMP,QAAQO,EAAMzlB,MAAQ,YAAaylB,EAAMnmB,MAC7EyD,EAAO0iB,EAAMP,QAAQO,EAAMzlB,MAAQ,YAAYylB,EAAMnmB,KAEhC,OAAjBmmB,EAAMhmB,QAAmBsD,EAAK/C,OAASylB,EAAMzlB,MAC/C0lB,EAAWD,EAAO,gCAAkCA,EAAMnmB,IAAM,wBAA0ByD,EAAK/C,KAAO,WAAaylB,EAAMzlB,KAAO,KAG7H+C,EAAK9C,QAAQwlB,EAAMhmB,SAGtBgmB,EAAMhmB,OAASsD,EAAK7C,UAAUulB,EAAMhmB,QACf,OAAjBgmB,EAAM6C,SACR7C,EAAM+C,UAAU/C,EAAM6C,QAAU7C,EAAMhmB,SAJxCimB,EAAWD,EAAO,gCAAkCA,EAAMnmB,IAAM,mBAQlEomB,EAAWD,EAAO,iBAAmBA,EAAMnmB,IAAM,KAOrD,OAHuB,OAAnBmmB,EAAMT,UACRS,EAAMT,SAAS,QAASS,GAEL,OAAdA,EAAMnmB,KAAkC,OAAjBmmB,EAAM6C,QAAmBuB,EAGzD,SAASiC,EAAarG,GACpB,IACIiB,EACAqF,EACAC,EAEAtE,EALAuE,EAAgBxG,EAAMN,SAItB+G,GAAgB,EAQpB,IALAzG,EAAMO,QAAU,KAChBP,EAAMS,gBAAkBT,EAAMX,OAC9BW,EAAMc,OAAS,GACfd,EAAM+C,UAAY,GAEuC,KAAjDd,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,aACxCwC,EAAoBlC,GAAO,GAAO,GAElCiC,EAAKjC,EAAM9F,MAAMmH,WAAWrB,EAAMN,YAE9BM,EAAMH,WAAa,GAAY,KAAPoC,KAL8B,CAa1D,IAJAwE,GAAgB,EAChBxE,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UACpCuB,EAAYjB,EAAMN,SAEJ,IAAPuC,IAAaxD,EAAawD,IAC/BA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAUtC,IANA6G,EAAgB,IADhBD,EAAgBtG,EAAM9F,MAAMnW,MAAMkd,EAAWjB,EAAMN,WAGjCnjB,OAAS,GACzB0jB,EAAWD,EAAO,gEAGN,IAAPiC,GAAU,CACf,KAAOzD,EAAeyD,IACpBA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAGtC,GAAW,KAAPuC,EAAoB,CACtB,GAAKA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,gBAC3B,IAAPuC,IAAa1D,EAAO0D,IAC3B,MAGF,GAAI1D,EAAO0D,GAAK,MAIhB,IAFAhB,EAAYjB,EAAMN,SAEJ,IAAPuC,IAAaxD,EAAawD,IAC/BA,EAAKjC,EAAM9F,MAAMmH,aAAarB,EAAMN,UAGtC6G,EAAcnpB,KAAK4iB,EAAM9F,MAAMnW,MAAMkd,EAAWjB,EAAMN,WAG7C,IAAPuC,GAAUD,EAAchC,GAExBzC,EAAgB1e,KAAKshB,EAAmBmG,GAC1CnG,EAAkBmG,GAAetG,EAAOsG,EAAeC,GAEvDrG,EAAaF,EAAO,+BAAiCsG,EAAgB,KAIzEpE,EAAoBlC,GAAO,GAAO,GAET,IAArBA,EAAMH,YACyC,KAA/CG,EAAM9F,MAAMmH,WAAWrB,EAAMN,WACkB,KAA/CM,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,IACO,KAA/CM,EAAM9F,MAAMmH,WAAWrB,EAAMN,SAAW,IAC1CM,EAAMN,UAAY,EAClBwC,EAAoBlC,GAAO,GAAO,IAEzByG,GACTxG,EAAWD,EAAO,mCAGpBgD,EAAYhD,EAAOA,EAAMH,WAAa,EAAGjC,GAAmB,GAAO,GACnEsE,EAAoBlC,GAAO,GAAO,GAE9BA,EAAMS,iBACNxC,EAA8B4C,KAAKb,EAAM9F,MAAMnW,MAAMyiB,EAAexG,EAAMN,YAC5EQ,EAAaF,EAAO,oDAGtBA,EAAMF,UAAU1iB,KAAK4iB,EAAMhmB,QAEvBgmB,EAAMN,WAAaM,EAAMJ,WAAa0C,EAAsBtC,GAEf,KAA3CA,EAAM9F,MAAMmH,WAAWrB,EAAMN,YAC/BM,EAAMN,UAAY,EAClBwC,EAAoBlC,GAAO,GAAO,IAKlCA,EAAMN,SAAYM,EAAMzjB,OAAS,GACnC0jB,EAAWD,EAAO,yDAOtB,SAAS0G,EAAcxM,EAAOpgB,GAE5BA,EAAUA,GAAW,GAEA,KAHrBogB,EAAQhf,OAAOgf,IAGL3d,SAGmC,KAAvC2d,EAAMmH,WAAWnH,EAAM3d,OAAS,IACO,KAAvC2d,EAAMmH,WAAWnH,EAAM3d,OAAS,KAClC2d,GAAS,MAIiB,QAAxBA,EAAMmH,WAAW,KACnBnH,EAAQA,EAAMnW,MAAM,KAIxB,IAAIic,EAAQ,IAAId,EAAMhF,EAAOpgB,GAK7B,IAFAkmB,EAAM9F,OAAS,KAEmC,KAA3C8F,EAAM9F,MAAMmH,WAAWrB,EAAMN,WAClCM,EAAMH,YAAc,EACpBG,EAAMN,UAAY,EAGpB,KAAOM,EAAMN,SAAYM,EAAMzjB,OAAS,GACtC8pB,EAAarG,GAGf,OAAOA,EAAMF,UAIf,SAASpD,EAAQxC,EAAOtO,EAAU9R,GAChC,IAA+CwC,EAAOC,EAAlDujB,EAAY4G,EAAcxM,EAAOpgB,GAErC,GAAwB,mBAAb8R,EACT,OAAOkU,EAGT,IAAKxjB,EAAQ,EAAGC,EAASujB,EAAUvjB,OAAQD,EAAQC,EAAQD,GAAS,EAClEsP,EAASkU,EAAUxjB,IAKvB,SAASmgB,EAAKvC,EAAOpgB,GACnB,IAAIgmB,EAAY4G,EAAcxM,EAAOpgB,GAErC,GAAyB,IAArBgmB,EAAUvjB,OAAd,CAGO,GAAyB,IAArBujB,EAAUvjB,OACnB,OAAOujB,EAAU,GAEnB,MAAM,IAAIvmB,EAAc,6DAkB1BI,EAAOC,QAAQ8iB,QAAcA,EAC7B/iB,EAAOC,QAAQ6iB,KAAcA,EAC7B9iB,EAAOC,QAAQgjB,YAhBf,SAAqB1C,EAAOyM,EAAQ7sB,GAClC,GAAsB,mBAAX6sB,EAGT,OAAOjK,EAAQxC,EAAOxd,EAAOP,OAAO,CAAEU,OAAQ0f,GAAuBziB,IAFrE4iB,EAAQxC,EAAOyM,EAAQjqB,EAAOP,OAAO,CAAEU,OAAQ0f,GAAuBziB,KAe1EH,EAAOC,QAAQ+iB,SARf,SAAkBzC,EAAOpgB,GACvB,OAAO2iB,EAAKvC,EAAOxd,EAAOP,OAAO,CAAEU,OAAQ0f,GAAuBziB,mCC9kDpE,IAAI4C,EAASlD,EAAQ,IAGrB,SAAS8jB,EAAKljB,EAAMwsB,EAAQlH,EAAUC,EAAMkH,GAC1CvsB,KAAKF,KAAWA,EAChBE,KAAKssB,OAAWA,EAChBtsB,KAAKolB,SAAWA,EAChBplB,KAAKqlB,KAAWA,EAChBrlB,KAAKusB,OAAWA,EAIlBvJ,EAAKne,UAAU2nB,WAAa,SAAoBC,EAAQC,GACtD,IAAIC,EAAMvkB,EAAOwkB,EAAMvkB,EAAKwkB,EAE5B,IAAK7sB,KAAKssB,OAAQ,OAAO,KAQzB,IANAG,EAASA,GAAU,EACnBC,EAAYA,GAAa,GAEzBC,EAAO,GACPvkB,EAAQpI,KAAKolB,SAENhd,EAAQ,IAA4E,IAAvE,sBAA2BrI,QAAQC,KAAKssB,OAAOQ,OAAO1kB,EAAQ,KAEhF,GADAA,GAAS,EACLpI,KAAKolB,SAAWhd,EAASskB,EAAY,EAAI,EAAI,CAC/CC,EAAO,QACPvkB,GAAS,EACT,MAOJ,IAHAwkB,EAAO,GACPvkB,EAAMrI,KAAKolB,SAEJ/c,EAAMrI,KAAKssB,OAAOrqB,SAA2E,IAAjE,sBAA2BlC,QAAQC,KAAKssB,OAAOQ,OAAOzkB,KAEvF,IADAA,GAAO,GACGrI,KAAKolB,SAAYsH,EAAY,EAAI,EAAI,CAC7CE,EAAO,QACPvkB,GAAO,EACP,MAMJ,OAFAwkB,EAAU7sB,KAAKssB,OAAO7iB,MAAMrB,EAAOC,GAE5BjG,EAAOf,OAAO,IAAKorB,GAAUE,EAAOE,EAAUD,EAAO,KACrDxqB,EAAOf,OAAO,IAAKorB,EAASzsB,KAAKolB,SAAWhd,EAAQukB,EAAK1qB,QAAU,KAI5E+gB,EAAKne,UAAUJ,SAAW,SAAkBK,GAC1C,IAAI+nB,EAASE,EAAQ,GAgBrB,OAdI/sB,KAAKF,OACPitB,GAAS,OAAS/sB,KAAKF,KAAO,MAGhCitB,GAAS,YAAc/sB,KAAKqlB,KAAO,GAAK,aAAerlB,KAAKusB,OAAS,GAEhEznB,IACH+nB,EAAU7sB,KAAKwsB,gBAGbO,GAAS,MAAQF,GAIdE,GAIT1tB,EAAOC,QAAU0jB,gCCzEjB,IAAI3gB,EAAOnD,EAAQ,IAEnBG,EAAOC,QAAU,IAAI+C,EAAK,wBAAyB,CACjDpC,KAAM,SACNE,UAAW,SAAUC,GAAQ,OAAgB,OAATA,EAAgBA,EAAO,oCCJ7D,IAAIiC,EAAOnD,EAAQ,IAEnBG,EAAOC,QAAU,IAAI+C,EAAK,wBAAyB,CACjDpC,KAAM,WACNE,UAAW,SAAUC,GAAQ,OAAgB,OAATA,EAAgBA,EAAO,oCCJ7D,IAAIiC,EAAOnD,EAAQ,IAEnBG,EAAOC,QAAU,IAAI+C,EAAK,wBAAyB,CACjDpC,KAAM,UACNE,UAAW,SAAUC,GAAQ,OAAgB,OAATA,EAAgBA,EAAO,oCCJ7D,IAAIiC,EAAOnD,EAAQ,IAmBnBG,EAAOC,QAAU,IAAI+C,EAAK,yBAA0B,CAClDpC,KAAM,SACNC,QAnBF,SAAyBE,GACvB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAIud,EAAMvd,EAAK6B,OAEf,OAAgB,IAAR0b,GAAsB,MAATvd,GACL,IAARud,IAAuB,SAATvd,GAA4B,SAATA,GAA4B,SAATA,IAc5DD,UAXF,WACE,OAAO,MAWPG,UARF,SAAgB0sB,GACd,OAAkB,OAAXA,GAQPzsB,UAAW,CACT0sB,UAAW,WAAc,MAAO,KAChCC,UAAW,WAAc,MAAO,QAChCC,UAAW,WAAc,MAAO,QAChCC,UAAW,WAAc,MAAO,SAElC5sB,aAAc,4CC9BhB,IAAI6B,EAAOnD,EAAQ,IAqBnBG,EAAOC,QAAU,IAAI+C,EAAK,yBAA0B,CAClDpC,KAAM,SACNC,QArBF,SAA4BE,GAC1B,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAIud,EAAMvd,EAAK6B,OAEf,OAAgB,IAAR0b,IAAuB,SAATvd,GAA4B,SAATA,GAA4B,SAATA,IAC5C,IAARud,IAAuB,UAATvd,GAA6B,UAATA,GAA6B,UAATA,IAgB9DD,UAbF,SAA8BC,GAC5B,MAAgB,SAATA,GACS,SAATA,GACS,SAATA,GAWPE,UARF,SAAmB0sB,GACjB,MAAkD,qBAA3CrtB,OAAOkF,UAAUJ,SAASF,KAAKyoB,IAQtCzsB,UAAW,CACT2sB,UAAW,SAAUF,GAAU,OAAOA,EAAS,OAAS,SACxDG,UAAW,SAAUH,GAAU,OAAOA,EAAS,OAAS,SACxDI,UAAW,SAAUJ,GAAU,OAAOA,EAAS,OAAS,UAE1DxsB,aAAc,4CC/BhB,IAAI4B,EAASlD,EAAQ,IACjBmD,EAASnD,EAAQ,IAQrB,SAASmuB,EAAUpoB,GACjB,OAAS,IAAeA,GAAOA,GAAK,GAGtC,SAASqoB,EAAUroB,GACjB,OAAS,IAAeA,GAAOA,GAAK,GAyItC5F,EAAOC,QAAU,IAAI+C,EAAK,wBAAyB,CACjDpC,KAAM,SACNC,QAxIF,SAA4BE,GAC1B,GAAa,OAATA,EAAe,OAAO,EAE1B,IAGIunB,EApBa1iB,EAiBb0Y,EAAMvd,EAAK6B,OACXD,EAAQ,EACRurB,GAAY,EAGhB,IAAK5P,EAAK,OAAO,EASjB,GAJW,OAHXgK,EAAKvnB,EAAK4B,KAGe,MAAP2lB,IAChBA,EAAKvnB,IAAO4B,IAGH,MAAP2lB,EAAY,CAEd,GAAI3lB,EAAQ,IAAM2b,EAAK,OAAO,EAK9B,GAAW,OAJXgK,EAAKvnB,IAAO4B,IAII,CAId,IAFAA,IAEOA,EAAQ2b,EAAK3b,IAElB,GAAW,OADX2lB,EAAKvnB,EAAK4B,IACV,CACA,GAAW,MAAP2lB,GAAqB,MAAPA,EAAY,OAAO,EACrC4F,GAAY,EAEd,OAAOA,GAAoB,MAAP5F,EAItB,GAAW,MAAPA,EAAY,CAId,IAFA3lB,IAEOA,EAAQ2b,EAAK3b,IAElB,GAAW,OADX2lB,EAAKvnB,EAAK4B,IACV,CACA,KA1DG,KADQiD,EA2DI7E,EAAK2mB,WAAW/kB,KA1DNiD,GAAK,IAC3B,IAAeA,GAAOA,GAAK,IAC3B,IAAeA,GAAOA,GAAK,KAwDU,OAAO,EAC/CsoB,GAAY,EAEd,OAAOA,GAAoB,MAAP5F,EAItB,KAAO3lB,EAAQ2b,EAAK3b,IAElB,GAAW,OADX2lB,EAAKvnB,EAAK4B,IACV,CACA,IAAKqrB,EAAUjtB,EAAK2mB,WAAW/kB,IAAS,OAAO,EAC/CurB,GAAY,EAEd,OAAOA,GAAoB,MAAP5F,EAMtB,GAAW,MAAPA,EAAY,OAAO,EAEvB,KAAO3lB,EAAQ2b,EAAK3b,IAElB,GAAW,OADX2lB,EAAKvnB,EAAK4B,IACV,CACA,GAAW,MAAP2lB,EAAY,MAChB,IAAK2F,EAAUltB,EAAK2mB,WAAW/kB,IAC7B,OAAO,EAETurB,GAAY,EAId,SAAKA,GAAoB,MAAP5F,KAGP,MAAPA,GAGG,oBAAoBpB,KAAKnmB,EAAKqJ,MAAMzH,MAsD3C7B,UAnDF,SAA8BC,GAC5B,IAA4BunB,EAAI6F,EAA5BziB,EAAQ3K,EAAM6Z,EAAO,EAAawT,EAAS,GAc/C,OAZ4B,IAAxB1iB,EAAMhL,QAAQ,OAChBgL,EAAQA,EAAM0W,QAAQ,KAAM,KAKnB,OAFXkG,EAAK5c,EAAM,KAEc,MAAP4c,IACL,MAAPA,IAAY1N,GAAQ,GAExB0N,GADA5c,EAAQA,EAAMtB,MAAM,IACT,IAGC,MAAVsB,EAAsB,EAEf,MAAP4c,EACe,MAAb5c,EAAM,GAAmBkP,EAAOiM,SAASnb,EAAMtB,MAAM,GAAI,GAC5C,MAAbsB,EAAM,GAAmBkP,EAAOiM,SAASnb,EAAO,IAC7CkP,EAAOiM,SAASnb,EAAO,IAGJ,IAAxBA,EAAMhL,QAAQ,MAChBgL,EAAMH,MAAM,KAAK/K,QAAQ,SAAUma,GACjCyT,EAAOtQ,QAAQ+I,SAASlM,EAAG,OAG7BjP,EAAQ,EACRyiB,EAAO,EAEPC,EAAO5tB,QAAQ,SAAUuF,GACvB2F,GAAU3F,EAAIooB,EACdA,GAAQ,KAGHvT,EAAOlP,GAITkP,EAAOiM,SAASnb,EAAO,KAY9BzK,UATF,SAAmB0sB,GACjB,MAAoD,oBAA5CrtB,OAAOkF,UAAUJ,SAASF,KAAKyoB,IAC/BA,EAAS,GAAM,IAAM5qB,EAAOX,eAAeurB,IAQnDzsB,UAAW,CACTmtB,OAAa,SAAU1J,GAAO,OAAOA,GAAO,EAAI,KAAOA,EAAIvf,SAAS,GAAK,MAAQuf,EAAIvf,SAAS,GAAGgF,MAAM,IACvGkkB,MAAa,SAAU3J,GAAO,OAAOA,GAAO,EAAI,IAAOA,EAAIvf,SAAS,GAAK,KAAQuf,EAAIvf,SAAS,GAAGgF,MAAM,IACvGmkB,QAAa,SAAU5J,GAAO,OAAOA,EAAIvf,SAAS,KAElDopB,YAAa,SAAU7J,GAAO,OAAOA,GAAO,EAAI,KAAOA,EAAIvf,SAAS,IAAIqpB,cAAiB,MAAQ9J,EAAIvf,SAAS,IAAIqpB,cAAcrkB,MAAM,KAExIjJ,aAAc,UACdC,aAAc,CACZitB,OAAa,CAAE,EAAI,OACnBC,MAAa,CAAE,EAAI,OACnBC,QAAa,CAAE,GAAI,OACnBC,YAAa,CAAE,GAAI,wCCxKvB,IAAIzrB,EAASlD,EAAQ,IACjBmD,EAASnD,EAAQ,IAEjB6uB,EAAqB,IAAI5hB,OAE3B,2LA6DF,IAAI6hB,EAAyB,gBAwC7B3uB,EAAOC,QAAU,IAAI+C,EAAK,0BAA2B,CACnDpC,KAAM,SACNC,QA5FF,SAA0BE,GACxB,OAAa,OAATA,MAEC2tB,EAAmBxH,KAAKnmB,IAGC,MAA1BA,EAAKA,EAAK6B,OAAS,KAuFvB9B,UAhFF,SAA4BC,GAC1B,IAAI2K,EAAOkP,EAAMuT,EAAMC,EAUvB,OAPAxT,EAAsB,OADtBlP,EAAS3K,EAAKqhB,QAAQ,KAAM,IAAIwM,eACjB,IAAc,EAAI,EACjCR,EAAS,GAEL,KAAK1tB,QAAQgL,EAAM,KAAO,IAC5BA,EAAQA,EAAMtB,MAAM,IAGR,SAAVsB,EACe,IAATkP,EAActY,OAAOusB,kBAAoBvsB,OAAOC,kBAErC,SAAVmJ,EACFojB,IAEEpjB,EAAMhL,QAAQ,MAAQ,GAC/BgL,EAAMH,MAAM,KAAK/K,QAAQ,SAAUma,GACjCyT,EAAOtQ,QAAQiR,WAAWpU,EAAG,OAG/BjP,EAAQ,EACRyiB,EAAO,EAEPC,EAAO5tB,QAAQ,SAAUuF,GACvB2F,GAAS3F,EAAIooB,EACbA,GAAQ,KAGHvT,EAAOlP,GAGTkP,EAAOmU,WAAWrjB,EAAO,KAgDhCzK,UATF,SAAiB0sB,GACf,MAAmD,oBAA3CrtB,OAAOkF,UAAUJ,SAASF,KAAKyoB,KAC/BA,EAAS,GAAM,GAAK5qB,EAAOX,eAAeurB,KAQlDzsB,UA3CF,SAA4BysB,EAAQtsB,GAClC,IAAI2tB,EAEJ,GAAI3mB,MAAMslB,GACR,OAAQtsB,GACN,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,YAEtB,GAAIiB,OAAOusB,oBAAsBlB,EACtC,OAAQtsB,GACN,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,YAEtB,GAAIiB,OAAOC,oBAAsBorB,EACtC,OAAQtsB,GACN,IAAK,YAAa,MAAO,QACzB,IAAK,YAAa,MAAO,QACzB,IAAK,YAAa,MAAO,aAEtB,GAAI0B,EAAOX,eAAeurB,GAC/B,MAAO,OAQT,OALAqB,EAAMrB,EAAOvoB,SAAS,IAKfupB,EAAuBzH,KAAK8H,GAAOA,EAAI5M,QAAQ,IAAK,MAAQ4M,GAcnE7tB,aAAc,4CChHhB,IAAI6B,EAAOnD,EAAQ,IAEfovB,EAAmB,IAAIniB,OACzB,sDAIEoiB,EAAwB,IAAIpiB,OAC9B,oLAuEF9M,EAAOC,QAAU,IAAI+C,EAAK,8BAA+B,CACvDpC,KAAM,SACNC,QA9DF,SAA8BE,GAC5B,OAAa,OAATA,IACgC,OAAhCkuB,EAAiB/kB,KAAKnJ,IACe,OAArCmuB,EAAsBhlB,KAAKnJ,KA4D/BD,UAxDF,SAAgCC,GAC9B,IAAIggB,EAAOoO,EAAMC,EAAOC,EAAKC,EAAMC,EAAQC,EACLzc,EADa0c,EAAW,EAC1DC,EAAQ,KAKZ,GAFc,QADd3O,EAAQkO,EAAiB/kB,KAAKnJ,MACVggB,EAAQmO,EAAsBhlB,KAAKnJ,IAEzC,OAAVggB,EAAgB,MAAM,IAAI9b,MAAM,sBAQpC,GAJAkqB,GAASpO,EAAM,GACfqO,GAAUrO,EAAM,GAAM,EACtBsO,GAAQtO,EAAM,IAETA,EAAM,GACT,OAAO,IAAI3N,KAAKA,KAAKuc,IAAIR,EAAMC,EAAOC,IASxC,GAJAC,GAASvO,EAAM,GACfwO,GAAWxO,EAAM,GACjByO,GAAWzO,EAAM,GAEbA,EAAM,GAAI,CAEZ,IADA0O,EAAW1O,EAAM,GAAG3W,MAAM,EAAG,GACtBqlB,EAAS7sB,OAAS,GACvB6sB,GAAY,IAEdA,GAAYA,EAgBd,OAXI1O,EAAM,KAGR2O,EAAqC,KAAlB,IAFP3O,EAAM,OACJA,EAAM,KAAO,IAEV,MAAbA,EAAM,KAAY2O,GAASA,IAGjC3c,EAAO,IAAIK,KAAKA,KAAKuc,IAAIR,EAAMC,EAAOC,EAAKC,EAAMC,EAAQC,EAAQC,IAE7DC,GAAO3c,EAAK6c,QAAQ7c,EAAK8c,UAAYH,GAElC3c,GAWP/R,WAAYoS,KACZlS,UATF,SAAgCysB,GAC9B,OAAOA,EAAOmC,+CC5EhB,IAAI9sB,EAAOnD,EAAQ,IAMnBG,EAAOC,QAAU,IAAI+C,EAAK,0BAA2B,CACnDpC,KAAM,SACNC,QANF,SAA0BE,GACxB,MAAgB,OAATA,GAA0B,OAATA,mCCL1B,IAIIgvB,EAEJ,IAGEA,EAAaC,EAAS,KAAUC,OAChC,MAAOC,IAET,IAAIltB,EAAanD,EAAQ,IAIrBswB,EAAa,wEAmHjBnwB,EAAOC,QAAU,IAAI+C,EAAK,2BAA4B,CACpDpC,KAAM,SACNC,QAlHF,SAA2BE,GACzB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAIqvB,EAAMC,EAAKC,EAAS,EAAGhS,EAAMvd,EAAK6B,OAAQxC,EAAM+vB,EAGpD,IAAKE,EAAM,EAAGA,EAAM/R,EAAK+R,IAIvB,MAHAD,EAAOhwB,EAAIM,QAAQK,EAAK0sB,OAAO4C,KAGpB,IAAX,CAGA,GAAID,EAAO,EAAG,OAAO,EAErBE,GAAU,EAIZ,OAAQA,EAAS,GAAO,GAgGxBxvB,UA7FF,SAA6BC,GAC3B,IAAIsvB,EAAKE,EACLhQ,EAAQxf,EAAKqhB,QAAQ,WAAY,IACjC9D,EAAMiC,EAAM3d,OACZxC,EAAM+vB,EACNK,EAAO,EACPnwB,EAAS,GAIb,IAAKgwB,EAAM,EAAGA,EAAM/R,EAAK+R,IAClBA,EAAM,GAAM,GAAMA,IACrBhwB,EAAOoD,KAAM+sB,GAAQ,GAAM,KAC3BnwB,EAAOoD,KAAM+sB,GAAQ,EAAK,KAC1BnwB,EAAOoD,KAAY,IAAP+sB,IAGdA,EAAQA,GAAQ,EAAKpwB,EAAIM,QAAQ6f,EAAMkN,OAAO4C,IAmBhD,OAZiB,IAFjBE,EAAYjS,EAAM,EAAK,IAGrBje,EAAOoD,KAAM+sB,GAAQ,GAAM,KAC3BnwB,EAAOoD,KAAM+sB,GAAQ,EAAK,KAC1BnwB,EAAOoD,KAAY,IAAP+sB,IACU,KAAbD,GACTlwB,EAAOoD,KAAM+sB,GAAQ,GAAM,KAC3BnwB,EAAOoD,KAAM+sB,GAAQ,EAAK,MACJ,KAAbD,GACTlwB,EAAOoD,KAAM+sB,GAAQ,EAAK,KAIxBT,EAEKA,EAAW7d,KAAO6d,EAAW7d,KAAK7R,GAAU,IAAI0vB,EAAW1vB,GAG7DA,GAqDPY,UARF,SAAkB0sB,GAChB,OAAOoC,GAAcA,EAAWU,SAAS9C,IAQzCzsB,UAnDF,SAA6BysB,GAC3B,IAA2B0C,EAAK9C,EAA5BltB,EAAS,GAAImwB,EAAO,EACpBlS,EAAMqP,EAAO/qB,OACbxC,EAAM+vB,EAIV,IAAKE,EAAM,EAAGA,EAAM/R,EAAK+R,IAClBA,EAAM,GAAM,GAAMA,IACrBhwB,GAAUD,EAAKowB,GAAQ,GAAM,IAC7BnwB,GAAUD,EAAKowB,GAAQ,GAAM,IAC7BnwB,GAAUD,EAAKowB,GAAQ,EAAK,IAC5BnwB,GAAUD,EAAW,GAAPowB,IAGhBA,GAAQA,GAAQ,GAAK7C,EAAO0C,GAwB9B,OAjBa,IAFb9C,EAAOjP,EAAM,IAGXje,GAAUD,EAAKowB,GAAQ,GAAM,IAC7BnwB,GAAUD,EAAKowB,GAAQ,GAAM,IAC7BnwB,GAAUD,EAAKowB,GAAQ,EAAK,IAC5BnwB,GAAUD,EAAW,GAAPowB,IACI,IAATjD,GACTltB,GAAUD,EAAKowB,GAAQ,GAAM,IAC7BnwB,GAAUD,EAAKowB,GAAQ,EAAK,IAC5BnwB,GAAUD,EAAKowB,GAAQ,EAAK,IAC5BnwB,GAAUD,EAAI,KACI,IAATmtB,IACTltB,GAAUD,EAAKowB,GAAQ,EAAK,IAC5BnwB,GAAUD,EAAKowB,GAAQ,EAAK,IAC5BnwB,GAAUD,EAAI,IACdC,GAAUD,EAAI,KAGTC,oCC5HT,SAAAqwB,GAUA,IAAIC,EAAS9wB,EAAQ,KACjB+wB,EAAU/wB,EAAQ,KAClBkC,EAAUlC,EAAQ,KAmDtB,SAASgxB,IACP,OAAOZ,EAAOa,oBACV,WACA,WAGN,SAASC,EAAcC,EAAMpuB,GAC3B,GAAIiuB,IAAejuB,EACjB,MAAM,IAAIquB,WAAW,8BAcvB,OAZIhB,EAAOa,qBAETE,EAAO,IAAIE,WAAWtuB,IACjBuuB,UAAYlB,EAAOzqB,WAGX,OAATwrB,IACFA,EAAO,IAAIf,EAAOrtB,IAEpBouB,EAAKpuB,OAASA,GAGTouB,EAaT,SAASf,EAAQmB,EAAKC,EAAkBzuB,GACtC,KAAKqtB,EAAOa,qBAAyBnwB,gBAAgBsvB,GACnD,OAAO,IAAIA,EAAOmB,EAAKC,EAAkBzuB,GAI3C,GAAmB,iBAARwuB,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAIpsB,MACR,qEAGJ,OAAOqsB,EAAY3wB,KAAMywB,GAE3B,OAAOlf,EAAKvR,KAAMywB,EAAKC,EAAkBzuB,GAW3C,SAASsP,EAAM8e,EAAMtlB,EAAO2lB,EAAkBzuB,GAC5C,GAAqB,iBAAV8I,EACT,MAAM,IAAI5B,UAAU,yCAGtB,MAA2B,oBAAhBynB,aAA+B7lB,aAAiB6lB,YA6H7D,SAA0BP,EAAMQ,EAAOC,EAAY7uB,GAGjD,GAFA4uB,EAAME,WAEFD,EAAa,GAAKD,EAAME,WAAaD,EACvC,MAAM,IAAIR,WAAW,6BAGvB,GAAIO,EAAME,WAAaD,GAAc7uB,GAAU,GAC7C,MAAM,IAAIquB,WAAW,6BAIrBO,OADiBG,IAAfF,QAAuCE,IAAX/uB,EACtB,IAAIsuB,WAAWM,QACHG,IAAX/uB,EACD,IAAIsuB,WAAWM,EAAOC,GAEtB,IAAIP,WAAWM,EAAOC,EAAY7uB,GAGxCqtB,EAAOa,qBAETE,EAAOQ,GACFL,UAAYlB,EAAOzqB,UAGxBwrB,EAAOY,EAAcZ,EAAMQ,GAE7B,OAAOR,EAvJEa,CAAgBb,EAAMtlB,EAAO2lB,EAAkBzuB,GAGnC,iBAAV8I,EAwFb,SAAqBslB,EAAM/uB,EAAQ6vB,GACT,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAK7B,EAAO8B,WAAWD,GACrB,MAAM,IAAIhoB,UAAU,8CAGtB,IAAIlH,EAAwC,EAA/B8uB,EAAWzvB,EAAQ6vB,GAG5BE,GAFJhB,EAAOD,EAAaC,EAAMpuB,IAERqvB,MAAMhwB,EAAQ6vB,GAE5BE,IAAWpvB,IAIbouB,EAAOA,EAAK5mB,MAAM,EAAG4nB,IAGvB,OAAOhB,EA5GEkB,CAAWlB,EAAMtlB,EAAO2lB,GAsJnC,SAAqBL,EAAMrM,GACzB,GAAIsL,EAAOQ,SAAS9L,GAAM,CACxB,IAAIwN,EAA4B,EAAtBC,EAAQzN,EAAI/hB,QAGtB,OAAoB,KAFpBouB,EAAOD,EAAaC,EAAMmB,IAEjBvvB,OACAouB,GAGTrM,EAAI0N,KAAKrB,EAAM,EAAG,EAAGmB,GACdnB,GAGT,GAAIrM,EAAK,CACP,GAA4B,oBAAhB4M,aACR5M,EAAIsI,kBAAkBsE,aAAgB,WAAY5M,EACpD,MAA0B,iBAAfA,EAAI/hB,SA+8CL0vB,EA/8CkC3N,EAAI/hB,SAg9CrC0vB,EA/8CFvB,EAAaC,EAAM,GAErBY,EAAcZ,EAAMrM,GAG7B,GAAiB,WAAbA,EAAIhhB,MAAqB5B,EAAQ4iB,EAAI5jB,MACvC,OAAO6wB,EAAcZ,EAAMrM,EAAI5jB,MAw8CrC,IAAgBuxB,EAp8Cd,MAAM,IAAIxoB,UAAU,sFA9KbyoB,CAAWvB,EAAMtlB,GA4B1B,SAAS8mB,EAAYC,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAI3oB,UAAU,oCACf,GAAI2oB,EAAO,EAChB,MAAM,IAAIxB,WAAW,wCA4BzB,SAASK,EAAaN,EAAMyB,GAG1B,GAFAD,EAAWC,GACXzB,EAAOD,EAAaC,EAAMyB,EAAO,EAAI,EAAoB,EAAhBL,EAAQK,KAC5CxC,EAAOa,oBACV,IAAK,IAAIliB,EAAI,EAAGA,EAAI6jB,IAAQ7jB,EAC1BoiB,EAAKpiB,GAAK,EAGd,OAAOoiB,EAwCT,SAASY,EAAeZ,EAAMQ,GAC5B,IAAI5uB,EAAS4uB,EAAM5uB,OAAS,EAAI,EAA4B,EAAxBwvB,EAAQZ,EAAM5uB,QAClDouB,EAAOD,EAAaC,EAAMpuB,GAC1B,IAAK,IAAIgM,EAAI,EAAGA,EAAIhM,EAAQgM,GAAK,EAC/BoiB,EAAKpiB,GAAgB,IAAX4iB,EAAM5iB,GAElB,OAAOoiB,EA+DT,SAASoB,EAASxvB,GAGhB,GAAIA,GAAUiuB,IACZ,MAAM,IAAII,WAAW,0DACaJ,IAAazrB,SAAS,IAAM,UAEhE,OAAgB,EAATxC,EAsFT,SAAS8uB,EAAYzvB,EAAQ6vB,GAC3B,GAAI7B,EAAOQ,SAASxuB,GAClB,OAAOA,EAAOW,OAEhB,GAA2B,oBAAhB2uB,aAA6D,mBAAvBA,YAAYmB,SACxDnB,YAAYmB,OAAOzwB,IAAWA,aAAkBsvB,aACnD,OAAOtvB,EAAOyvB,WAEM,iBAAXzvB,IACTA,EAAS,GAAKA,GAGhB,IAAIkwB,EAAMlwB,EAAOW,OACjB,GAAY,IAARuvB,EAAW,OAAO,EAItB,IADA,IAAIQ,GAAc,IAEhB,OAAQb,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOK,EACT,IAAK,OACL,IAAK,QACL,UAAKR,EACH,OAAOiB,EAAY3wB,GAAQW,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANuvB,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOU,EAAc5wB,GAAQW,OAC/B,QACE,GAAI+vB,EAAa,OAAOC,EAAY3wB,GAAQW,OAC5CkvB,GAAY,GAAKA,GAAUlD,cAC3B+D,GAAc,GAgFtB,SAASG,EAAMtsB,EAAGusB,EAAGnqB,GACnB,IAAIgG,EAAIpI,EAAEusB,GACVvsB,EAAEusB,GAAKvsB,EAAEoC,GACTpC,EAAEoC,GAAKgG,EAmIT,SAASokB,EAAsB/F,EAAQqF,EAAKb,EAAYK,EAAUmB,GAEhE,GAAsB,IAAlBhG,EAAOrqB,OAAc,OAAQ,EAmBjC,GAhB0B,iBAAf6uB,GACTK,EAAWL,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACVppB,MAAMopB,KAERA,EAAawB,EAAM,EAAKhG,EAAOrqB,OAAS,GAItC6uB,EAAa,IAAGA,EAAaxE,EAAOrqB,OAAS6uB,GAC7CA,GAAcxE,EAAOrqB,OAAQ,CAC/B,GAAIqwB,EAAK,OAAQ,EACZxB,EAAaxE,EAAOrqB,OAAS,OAC7B,GAAI6uB,EAAa,EAAG,CACzB,IAAIwB,EACC,OAAQ,EADJxB,EAAa,EAUxB,GALmB,iBAARa,IACTA,EAAMrC,EAAO/d,KAAKogB,EAAKR,IAIrB7B,EAAOQ,SAAS6B,GAElB,OAAmB,IAAfA,EAAI1vB,QACE,EAEHswB,EAAajG,EAAQqF,EAAKb,EAAYK,EAAUmB,GAClD,GAAmB,iBAARX,EAEhB,OADAA,GAAY,IACRrC,EAAOa,qBACiC,mBAAjCI,WAAW1rB,UAAU9E,QAC1BuyB,EACK/B,WAAW1rB,UAAU9E,QAAQwE,KAAK+nB,EAAQqF,EAAKb,GAE/CP,WAAW1rB,UAAUgJ,YAAYtJ,KAAK+nB,EAAQqF,EAAKb,GAGvDyB,EAAajG,EAAQ,CAAEqF,GAAOb,EAAYK,EAAUmB,GAG7D,MAAM,IAAInpB,UAAU,wCAGtB,SAASopB,EAAcC,EAAKb,EAAKb,EAAYK,EAAUmB,GACrD,IA0BIrkB,EA1BAwkB,EAAY,EACZC,EAAYF,EAAIvwB,OAChB0wB,EAAYhB,EAAI1vB,OAEpB,QAAiB+uB,IAAbG,IAEe,UADjBA,EAAWvwB,OAAOuwB,GAAUlD,gBACY,UAAbkD,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIqB,EAAIvwB,OAAS,GAAK0vB,EAAI1vB,OAAS,EACjC,OAAQ,EAEVwwB,EAAY,EACZC,GAAa,EACbC,GAAa,EACb7B,GAAc,EAIlB,SAAS8B,EAAMC,EAAK5kB,GAClB,OAAkB,IAAdwkB,EACKI,EAAI5kB,GAEJ4kB,EAAIC,aAAa7kB,EAAIwkB,GAKhC,GAAIH,EAAK,CACP,IAAIS,GAAc,EAClB,IAAK9kB,EAAI6iB,EAAY7iB,EAAIykB,EAAWzkB,IAClC,GAAI2kB,EAAKJ,EAAKvkB,KAAO2kB,EAAKjB,GAAqB,IAAhBoB,EAAoB,EAAI9kB,EAAI8kB,IAEzD,IADoB,IAAhBA,IAAmBA,EAAa9kB,GAChCA,EAAI8kB,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEtC,IAAhBM,IAAmB9kB,GAAKA,EAAI8kB,GAChCA,GAAc,OAKlB,IADIjC,EAAa6B,EAAYD,IAAW5B,EAAa4B,EAAYC,GAC5D1kB,EAAI6iB,EAAY7iB,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAI+kB,GAAQ,EACHhhB,EAAI,EAAGA,EAAI2gB,EAAW3gB,IAC7B,GAAI4gB,EAAKJ,EAAKvkB,EAAI+D,KAAO4gB,EAAKjB,EAAK3f,GAAI,CACrCghB,GAAQ,EACR,MAGJ,GAAIA,EAAO,OAAO/kB,EAItB,OAAQ,EAeV,SAASglB,EAAUJ,EAAKvxB,EAAQqN,EAAQ1M,GACtC0M,EAAShN,OAAOgN,IAAW,EAC3B,IAAIukB,EAAYL,EAAI5wB,OAAS0M,EACxB1M,GAGHA,EAASN,OAAOM,IACHixB,IACXjxB,EAASixB,GAJXjxB,EAASixB,EASX,IAAIC,EAAS7xB,EAAOW,OACpB,GAAIkxB,EAAS,GAAM,EAAG,MAAM,IAAIhqB,UAAU,sBAEtClH,EAASkxB,EAAS,IACpBlxB,EAASkxB,EAAS,GAEpB,IAAK,IAAIllB,EAAI,EAAGA,EAAIhM,IAAUgM,EAAG,CAC/B,IAAImlB,EAASlN,SAAS5kB,EAAO+xB,OAAW,EAAJplB,EAAO,GAAI,IAC/C,GAAIvG,MAAM0rB,GAAS,OAAOnlB,EAC1B4kB,EAAIlkB,EAASV,GAAKmlB,EAEpB,OAAOnlB,EAGT,SAASqlB,EAAWT,EAAKvxB,EAAQqN,EAAQ1M,GACvC,OAAOsxB,EAAWtB,EAAY3wB,EAAQuxB,EAAI5wB,OAAS0M,GAASkkB,EAAKlkB,EAAQ1M,GAG3E,SAASuxB,EAAYX,EAAKvxB,EAAQqN,EAAQ1M,GACxC,OAAOsxB,EAq6BT,SAAuBE,GAErB,IADA,IAAIC,EAAY,GACPzlB,EAAI,EAAGA,EAAIwlB,EAAIxxB,SAAUgM,EAEhCylB,EAAU5wB,KAAyB,IAApB2wB,EAAI1M,WAAW9Y,IAEhC,OAAOylB,EA36BWC,CAAaryB,GAASuxB,EAAKlkB,EAAQ1M,GAGvD,SAAS2xB,EAAaf,EAAKvxB,EAAQqN,EAAQ1M,GACzC,OAAOuxB,EAAWX,EAAKvxB,EAAQqN,EAAQ1M,GAGzC,SAAS4xB,EAAahB,EAAKvxB,EAAQqN,EAAQ1M,GACzC,OAAOsxB,EAAWrB,EAAc5wB,GAASuxB,EAAKlkB,EAAQ1M,GAGxD,SAAS6xB,EAAWjB,EAAKvxB,EAAQqN,EAAQ1M,GACvC,OAAOsxB,EAk6BT,SAAyBE,EAAKM,GAG5B,IAFA,IAAI9uB,EAAG+uB,EAAIC,EACPP,EAAY,GACPzlB,EAAI,EAAGA,EAAIwlB,EAAIxxB,WACjB8xB,GAAS,GAAK,KADa9lB,EAGhChJ,EAAIwuB,EAAI1M,WAAW9Y,GACnB+lB,EAAK/uB,GAAK,EACVgvB,EAAKhvB,EAAI,IACTyuB,EAAU5wB,KAAKmxB,GACfP,EAAU5wB,KAAKkxB,GAGjB,OAAON,EA/6BWQ,CAAe5yB,EAAQuxB,EAAI5wB,OAAS0M,GAASkkB,EAAKlkB,EAAQ1M,GAkF9E,SAASkyB,EAAatB,EAAKzqB,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQwqB,EAAI5wB,OACtB+tB,EAAOoE,cAAcvB,GAErB7C,EAAOoE,cAAcvB,EAAIppB,MAAMrB,EAAOC,IAIjD,SAASgsB,EAAWxB,EAAKzqB,EAAOC,GAC9BA,EAAMG,KAAKgC,IAAIqoB,EAAI5wB,OAAQoG,GAI3B,IAHA,IAAIgmB,EAAM,GAENpgB,EAAI7F,EACD6F,EAAI5F,GAAK,CACd,IAQMisB,EAAYC,EAAWC,EAAYC,EARrCC,EAAY7B,EAAI5kB,GAChB0mB,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIzmB,EAAI2mB,GAAoBvsB,EAG1B,OAAQusB,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,MAAV,KADlBJ,EAAazB,EAAI5kB,EAAI,OAEnBwmB,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAazB,EAAI5kB,EAAI,GACrBsmB,EAAY1B,EAAI5kB,EAAI,GACQ,MAAV,IAAbqmB,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAazB,EAAI5kB,EAAI,GACrBsmB,EAAY1B,EAAI5kB,EAAI,GACpBumB,EAAa3B,EAAI5kB,EAAI,GACO,MAAV,IAAbqmB,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbtG,EAAIvrB,KAAK6xB,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBtG,EAAIvrB,KAAK6xB,GACT1mB,GAAK2mB,EAGP,OAQF,SAAgCC,GAC9B,IAAIrD,EAAMqD,EAAW5yB,OACrB,GAAIuvB,GAAOsD,EACT,OAAOl0B,OAAO6jB,aAAajb,MAAM5I,OAAQi0B,GAI3C,IAAIxG,EAAM,GACNpgB,EAAI,EACR,KAAOA,EAAIujB,GACTnD,GAAOztB,OAAO6jB,aAAajb,MACzB5I,OACAi0B,EAAWprB,MAAMwE,EAAGA,GAAK6mB,IAG7B,OAAOzG,EAvBA0G,CAAsB1G,GA98B/B/uB,EAAQgwB,OAASA,EACjBhwB,EAAQ01B,WAoTR,SAAqB/yB,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAOqtB,EAAO2F,OAAOhzB,IAvTvB3C,EAAQ41B,kBAAoB,GA0B5B5F,EAAOa,yBAAqDa,IAA/BjB,EAAOI,oBAChCJ,EAAOI,oBAQX,WACE,IACE,IAAIqC,EAAM,IAAIjC,WAAW,GAEzB,OADAiC,EAAIhC,UAAY,CAACA,UAAWD,WAAW1rB,UAAWswB,IAAK,WAAc,OAAO,KACvD,KAAd3C,EAAI2C,OACiB,mBAAjB3C,EAAI4C,UACuB,IAAlC5C,EAAI4C,SAAS,EAAG,GAAGrE,WACvB,MAAO5rB,GACP,OAAO,GAfPkwB,GAKJ/1B,EAAQ4wB,WAAaA,IAkErBZ,EAAOgG,SAAW,KAGlBhG,EAAOiG,SAAW,SAAU/C,GAE1B,OADAA,EAAIhC,UAAYlB,EAAOzqB,UAChB2tB,GA2BTlD,EAAO/d,KAAO,SAAUxG,EAAO2lB,EAAkBzuB,GAC/C,OAAOsP,EAAK,KAAMxG,EAAO2lB,EAAkBzuB,IAGzCqtB,EAAOa,sBACTb,EAAOzqB,UAAU2rB,UAAYD,WAAW1rB,UACxCyqB,EAAOkB,UAAYD,WACG,oBAAXlf,QAA0BA,OAAOmkB,SACxClG,EAAOje,OAAOmkB,WAAalG,GAE7B3vB,OAAOgX,eAAe2Y,EAAQje,OAAOmkB,QAAS,CAC5CzqB,MAAO,KACP6L,cAAc,KAiCpB0Y,EAAO2F,MAAQ,SAAUnD,EAAMtqB,EAAM2pB,GACnC,OArBF,SAAgBd,EAAMyB,EAAMtqB,EAAM2pB,GAEhC,OADAU,EAAWC,GACPA,GAAQ,EACH1B,EAAaC,EAAMyB,QAEfd,IAATxpB,EAIyB,iBAAb2pB,EACVf,EAAaC,EAAMyB,GAAMtqB,KAAKA,EAAM2pB,GACpCf,EAAaC,EAAMyB,GAAMtqB,KAAKA,GAE7B4oB,EAAaC,EAAMyB,GAQnBmD,CAAM,KAAMnD,EAAMtqB,EAAM2pB,IAiBjC7B,EAAOqB,YAAc,SAAUmB,GAC7B,OAAOnB,EAAY,KAAMmB,IAK3BxC,EAAOmG,gBAAkB,SAAU3D,GACjC,OAAOnB,EAAY,KAAMmB,IAiH3BxC,EAAOQ,SAAW,SAAmBjqB,GACnC,QAAe,MAALA,IAAaA,EAAE6vB,YAG3BpG,EAAOqG,QAAU,SAAkB/vB,EAAGC,GACpC,IAAKypB,EAAOQ,SAASlqB,KAAO0pB,EAAOQ,SAASjqB,GAC1C,MAAM,IAAIsD,UAAU,6BAGtB,GAAIvD,IAAMC,EAAG,OAAO,EAKpB,IAHA,IAAImC,EAAIpC,EAAE3D,OACN2zB,EAAI/vB,EAAE5D,OAEDgM,EAAI,EAAGujB,EAAMhpB,KAAKgC,IAAIxC,EAAG4tB,GAAI3nB,EAAIujB,IAAOvjB,EAC/C,GAAIrI,EAAEqI,KAAOpI,EAAEoI,GAAI,CACjBjG,EAAIpC,EAAEqI,GACN2nB,EAAI/vB,EAAEoI,GACN,MAIJ,OAAIjG,EAAI4tB,GAAW,EACfA,EAAI5tB,EAAU,EACX,GAGTsnB,EAAO8B,WAAa,SAAqBD,GACvC,OAAQvwB,OAAOuwB,GAAUlD,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,IAIbqB,EAAO9a,OAAS,SAAiBqhB,EAAM5zB,GACrC,IAAKb,EAAQy0B,GACX,MAAM,IAAI1sB,UAAU,+CAGtB,GAAoB,IAAhB0sB,EAAK5zB,OACP,OAAOqtB,EAAO2F,MAAM,GAGtB,IAAIhnB,EACJ,QAAe+iB,IAAX/uB,EAEF,IADAA,EAAS,EACJgM,EAAI,EAAGA,EAAI4nB,EAAK5zB,SAAUgM,EAC7BhM,GAAU4zB,EAAK5nB,GAAGhM,OAItB,IAAIqqB,EAASgD,EAAOqB,YAAY1uB,GAC5B0G,EAAM,EACV,IAAKsF,EAAI,EAAGA,EAAI4nB,EAAK5zB,SAAUgM,EAAG,CAChC,IAAI4kB,EAAMgD,EAAK5nB,GACf,IAAKqhB,EAAOQ,SAAS+C,GACnB,MAAM,IAAI1pB,UAAU,+CAEtB0pB,EAAInB,KAAKpF,EAAQ3jB,GACjBA,GAAOkqB,EAAI5wB,OAEb,OAAOqqB,GA8CTgD,EAAOyB,WAAaA,EA0EpBzB,EAAOzqB,UAAU6wB,WAAY,EAQ7BpG,EAAOzqB,UAAUixB,OAAS,WACxB,IAAItE,EAAMxxB,KAAKiC,OACf,GAAIuvB,EAAM,GAAM,EACd,MAAM,IAAIlB,WAAW,6CAEvB,IAAK,IAAIriB,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAC5BkkB,EAAKnyB,KAAMiO,EAAGA,EAAI,GAEpB,OAAOjO,MAGTsvB,EAAOzqB,UAAUkxB,OAAS,WACxB,IAAIvE,EAAMxxB,KAAKiC,OACf,GAAIuvB,EAAM,GAAM,EACd,MAAM,IAAIlB,WAAW,6CAEvB,IAAK,IAAIriB,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAC5BkkB,EAAKnyB,KAAMiO,EAAGA,EAAI,GAClBkkB,EAAKnyB,KAAMiO,EAAI,EAAGA,EAAI,GAExB,OAAOjO,MAGTsvB,EAAOzqB,UAAUmxB,OAAS,WACxB,IAAIxE,EAAMxxB,KAAKiC,OACf,GAAIuvB,EAAM,GAAM,EACd,MAAM,IAAIlB,WAAW,6CAEvB,IAAK,IAAIriB,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAC5BkkB,EAAKnyB,KAAMiO,EAAGA,EAAI,GAClBkkB,EAAKnyB,KAAMiO,EAAI,EAAGA,EAAI,GACtBkkB,EAAKnyB,KAAMiO,EAAI,EAAGA,EAAI,GACtBkkB,EAAKnyB,KAAMiO,EAAI,EAAGA,EAAI,GAExB,OAAOjO,MAGTsvB,EAAOzqB,UAAUJ,SAAW,WAC1B,IAAIxC,EAAuB,EAAdjC,KAAKiC,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArB4B,UAAU5B,OAAqBoyB,EAAUr0B,KAAM,EAAGiC,GAxHxD,SAAuBkvB,EAAU/oB,EAAOC,GACtC,IAAI2pB,GAAc,EAclB,SALchB,IAAV5oB,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQpI,KAAKiC,OACf,MAAO,GAOT,SAJY+uB,IAAR3oB,GAAqBA,EAAMrI,KAAKiC,UAClCoG,EAAMrI,KAAKiC,QAGToG,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFK+oB,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAO8E,EAASj2B,KAAMoI,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOgsB,EAAUr0B,KAAMoI,EAAOC,GAEhC,IAAK,QACH,OAAO6tB,EAAWl2B,KAAMoI,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAO8tB,EAAYn2B,KAAMoI,EAAOC,GAElC,IAAK,SACH,OAAO8rB,EAAYn0B,KAAMoI,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO+tB,EAAap2B,KAAMoI,EAAOC,GAEnC,QACE,GAAI2pB,EAAa,MAAM,IAAI7oB,UAAU,qBAAuBgoB,GAC5DA,GAAYA,EAAW,IAAIlD,cAC3B+D,GAAc,IAwDAxoB,MAAMxJ,KAAM6D,YAGlCyrB,EAAOzqB,UAAUwxB,OAAS,SAAiBxwB,GACzC,IAAKypB,EAAOQ,SAASjqB,GAAI,MAAM,IAAIsD,UAAU,6BAC7C,OAAInJ,OAAS6F,GACsB,IAA5BypB,EAAOqG,QAAQ31B,KAAM6F,IAG9BypB,EAAOzqB,UAAUyxB,QAAU,WACzB,IAAI7C,EAAM,GACN9V,EAAMre,EAAQ41B,kBAKlB,OAJIl1B,KAAKiC,OAAS,IAChBwxB,EAAMzzB,KAAKyE,SAAS,MAAO,EAAGkZ,GAAKyC,MAAM,SAASoB,KAAK,KACnDxhB,KAAKiC,OAAS0b,IAAK8V,GAAO,UAEzB,WAAaA,EAAM,KAG5BnE,EAAOzqB,UAAU8wB,QAAU,SAAkB7zB,EAAQsG,EAAOC,EAAKkuB,EAAWC,GAC1E,IAAKlH,EAAOQ,SAAShuB,GACnB,MAAM,IAAIqH,UAAU,6BAgBtB,QAbc6nB,IAAV5oB,IACFA,EAAQ,QAEE4oB,IAAR3oB,IACFA,EAAMvG,EAASA,EAAOG,OAAS,QAEf+uB,IAAduF,IACFA,EAAY,QAEEvF,IAAZwF,IACFA,EAAUx2B,KAAKiC,QAGbmG,EAAQ,GAAKC,EAAMvG,EAAOG,QAAUs0B,EAAY,GAAKC,EAAUx2B,KAAKiC,OACtE,MAAM,IAAIquB,WAAW,sBAGvB,GAAIiG,GAAaC,GAAWpuB,GAASC,EACnC,OAAO,EAET,GAAIkuB,GAAaC,EACf,OAAQ,EAEV,GAAIpuB,GAASC,EACX,OAAO,EAQT,GAAIrI,OAAS8B,EAAQ,OAAO,EAS5B,IAPA,IAAIkG,GAJJwuB,KAAa,IADbD,KAAe,GAMXX,GAPJvtB,KAAS,IADTD,KAAW,GASPopB,EAAMhpB,KAAKgC,IAAIxC,EAAG4tB,GAElBa,EAAWz2B,KAAKyJ,MAAM8sB,EAAWC,GACjCE,EAAa50B,EAAO2H,MAAMrB,EAAOC,GAE5B4F,EAAI,EAAGA,EAAIujB,IAAOvjB,EACzB,GAAIwoB,EAASxoB,KAAOyoB,EAAWzoB,GAAI,CACjCjG,EAAIyuB,EAASxoB,GACb2nB,EAAIc,EAAWzoB,GACf,MAIJ,OAAIjG,EAAI4tB,GAAW,EACfA,EAAI5tB,EAAU,EACX,GA6HTsnB,EAAOzqB,UAAU8xB,SAAW,SAAmBhF,EAAKb,EAAYK,GAC9D,OAAoD,IAA7CnxB,KAAKD,QAAQ4xB,EAAKb,EAAYK,IAGvC7B,EAAOzqB,UAAU9E,QAAU,SAAkB4xB,EAAKb,EAAYK,GAC5D,OAAOkB,EAAqBryB,KAAM2xB,EAAKb,EAAYK,GAAU,IAG/D7B,EAAOzqB,UAAUgJ,YAAc,SAAsB8jB,EAAKb,EAAYK,GACpE,OAAOkB,EAAqBryB,KAAM2xB,EAAKb,EAAYK,GAAU,IAkD/D7B,EAAOzqB,UAAUysB,MAAQ,SAAgBhwB,EAAQqN,EAAQ1M,EAAQkvB,GAE/D,QAAeH,IAAXriB,EACFwiB,EAAW,OACXlvB,EAASjC,KAAKiC,OACd0M,EAAS,OAEJ,QAAeqiB,IAAX/uB,GAA0C,iBAAX0M,EACxCwiB,EAAWxiB,EACX1M,EAASjC,KAAKiC,OACd0M,EAAS,MAEJ,KAAIgD,SAAShD,GAWlB,MAAM,IAAIrK,MACR,2EAXFqK,GAAkB,EACdgD,SAAS1P,IACXA,GAAkB,OACD+uB,IAAbG,IAAwBA,EAAW,UAEvCA,EAAWlvB,EACXA,OAAS+uB,GASb,IAAIkC,EAAYlzB,KAAKiC,OAAS0M,EAG9B,SAFeqiB,IAAX/uB,GAAwBA,EAASixB,KAAWjxB,EAASixB,GAEpD5xB,EAAOW,OAAS,IAAMA,EAAS,GAAK0M,EAAS,IAAOA,EAAS3O,KAAKiC,OACrE,MAAM,IAAIquB,WAAW,0CAGlBa,IAAUA,EAAW,QAG1B,IADA,IAAIa,GAAc,IAEhB,OAAQb,GACN,IAAK,MACH,OAAO8B,EAASjzB,KAAMsB,EAAQqN,EAAQ1M,GAExC,IAAK,OACL,IAAK,QACH,OAAOqxB,EAAUtzB,KAAMsB,EAAQqN,EAAQ1M,GAEzC,IAAK,QACH,OAAOuxB,EAAWxzB,KAAMsB,EAAQqN,EAAQ1M,GAE1C,IAAK,SACL,IAAK,SACH,OAAO2xB,EAAY5zB,KAAMsB,EAAQqN,EAAQ1M,GAE3C,IAAK,SAEH,OAAO4xB,EAAY7zB,KAAMsB,EAAQqN,EAAQ1M,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO6xB,EAAU9zB,KAAMsB,EAAQqN,EAAQ1M,GAEzC,QACE,GAAI+vB,EAAa,MAAM,IAAI7oB,UAAU,qBAAuBgoB,GAC5DA,GAAY,GAAKA,GAAUlD,cAC3B+D,GAAc,IAKtB1C,EAAOzqB,UAAU+xB,OAAS,WACxB,MAAO,CACL5zB,KAAM,SACN5C,KAAMe,MAAM0D,UAAU4E,MAAMlF,KAAKvE,KAAK62B,MAAQ72B,KAAM,KAwFxD,IAAI80B,EAAuB,KAoB3B,SAASoB,EAAYrD,EAAKzqB,EAAOC,GAC/B,IAAIyuB,EAAM,GACVzuB,EAAMG,KAAKgC,IAAIqoB,EAAI5wB,OAAQoG,GAE3B,IAAK,IAAI4F,EAAI7F,EAAO6F,EAAI5F,IAAO4F,EAC7B6oB,GAAOl2B,OAAO6jB,aAAsB,IAAToO,EAAI5kB,IAEjC,OAAO6oB,EAGT,SAASX,EAAatD,EAAKzqB,EAAOC,GAChC,IAAIyuB,EAAM,GACVzuB,EAAMG,KAAKgC,IAAIqoB,EAAI5wB,OAAQoG,GAE3B,IAAK,IAAI4F,EAAI7F,EAAO6F,EAAI5F,IAAO4F,EAC7B6oB,GAAOl2B,OAAO6jB,aAAaoO,EAAI5kB,IAEjC,OAAO6oB,EAGT,SAASb,EAAUpD,EAAKzqB,EAAOC,GAC7B,IAAImpB,EAAMqB,EAAI5wB,SAETmG,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMmpB,KAAKnpB,EAAMmpB,GAGxC,IADA,IAAIuF,EAAM,GACD9oB,EAAI7F,EAAO6F,EAAI5F,IAAO4F,EAC7B8oB,GAAOC,EAAMnE,EAAI5kB,IAEnB,OAAO8oB,EAGT,SAASX,EAAcvD,EAAKzqB,EAAOC,GAGjC,IAFA,IAAI4uB,EAAQpE,EAAIppB,MAAMrB,EAAOC,GACzBgmB,EAAM,GACDpgB,EAAI,EAAGA,EAAIgpB,EAAMh1B,OAAQgM,GAAK,EACrCogB,GAAOztB,OAAO6jB,aAAawS,EAAMhpB,GAAoB,IAAfgpB,EAAMhpB,EAAI,IAElD,OAAOogB,EA0CT,SAAS6I,EAAavoB,EAAQwoB,EAAKl1B,GACjC,GAAK0M,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAI2hB,WAAW,sBAC3D,GAAI3hB,EAASwoB,EAAMl1B,EAAQ,MAAM,IAAIquB,WAAW,yCA+JlD,SAAS8G,EAAUvE,EAAK9nB,EAAO4D,EAAQwoB,EAAKxZ,EAAKnT,GAC/C,IAAK8kB,EAAOQ,SAAS+C,GAAM,MAAM,IAAI1pB,UAAU,+CAC/C,GAAI4B,EAAQ4S,GAAO5S,EAAQP,EAAK,MAAM,IAAI8lB,WAAW,qCACrD,GAAI3hB,EAASwoB,EAAMtE,EAAI5wB,OAAQ,MAAM,IAAIquB,WAAW,sBAkDtD,SAAS+G,EAAmBxE,EAAK9nB,EAAO4D,EAAQ2oB,GAC1CvsB,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIkD,EAAI,EAAG+D,EAAIxJ,KAAKgC,IAAIqoB,EAAI5wB,OAAS0M,EAAQ,GAAIV,EAAI+D,IAAK/D,EAC7D4kB,EAAIlkB,EAASV,IAAMlD,EAAS,KAAS,GAAKusB,EAAerpB,EAAI,EAAIA,MAClC,GAA5BqpB,EAAerpB,EAAI,EAAIA,GA8B9B,SAASspB,EAAmB1E,EAAK9nB,EAAO4D,EAAQ2oB,GAC1CvsB,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIkD,EAAI,EAAG+D,EAAIxJ,KAAKgC,IAAIqoB,EAAI5wB,OAAS0M,EAAQ,GAAIV,EAAI+D,IAAK/D,EAC7D4kB,EAAIlkB,EAASV,GAAMlD,IAAuC,GAA5BusB,EAAerpB,EAAI,EAAIA,GAAU,IAmJnE,SAASupB,EAAc3E,EAAK9nB,EAAO4D,EAAQwoB,EAAKxZ,EAAKnT,GACnD,GAAImE,EAASwoB,EAAMtE,EAAI5wB,OAAQ,MAAM,IAAIquB,WAAW,sBACpD,GAAI3hB,EAAS,EAAG,MAAM,IAAI2hB,WAAW,sBAGvC,SAASmH,EAAY5E,EAAK9nB,EAAO4D,EAAQ2oB,EAAcI,GAKrD,OAJKA,GACHF,EAAa3E,EAAK9nB,EAAO4D,EAAQ,GAEnCshB,EAAQqB,MAAMuB,EAAK9nB,EAAO4D,EAAQ2oB,EAAc,GAAI,GAC7C3oB,EAAS,EAWlB,SAASgpB,EAAa9E,EAAK9nB,EAAO4D,EAAQ2oB,EAAcI,GAKtD,OAJKA,GACHF,EAAa3E,EAAK9nB,EAAO4D,EAAQ,GAEnCshB,EAAQqB,MAAMuB,EAAK9nB,EAAO4D,EAAQ2oB,EAAc,GAAI,GAC7C3oB,EAAS,EA/clB2gB,EAAOzqB,UAAU4E,MAAQ,SAAgBrB,EAAOC,GAC9C,IAoBIuvB,EApBApG,EAAMxxB,KAAKiC,OAqBf,IApBAmG,IAAUA,GAGE,GACVA,GAASopB,GACG,IAAGppB,EAAQ,GACdA,EAAQopB,IACjBppB,EAAQopB,IANVnpB,OAAc2oB,IAAR3oB,EAAoBmpB,IAAQnpB,GASxB,GACRA,GAAOmpB,GACG,IAAGnpB,EAAM,GACVA,EAAMmpB,IACfnpB,EAAMmpB,GAGJnpB,EAAMD,IAAOC,EAAMD,GAGnBknB,EAAOa,qBACTyH,EAAS53B,KAAKo1B,SAAShtB,EAAOC,IACvBmoB,UAAYlB,EAAOzqB,cACrB,CACL,IAAIgzB,EAAWxvB,EAAMD,EACrBwvB,EAAS,IAAItI,EAAOuI,OAAU7G,GAC9B,IAAK,IAAI/iB,EAAI,EAAGA,EAAI4pB,IAAY5pB,EAC9B2pB,EAAO3pB,GAAKjO,KAAKiO,EAAI7F,GAIzB,OAAOwvB,GAWTtI,EAAOzqB,UAAUizB,WAAa,SAAqBnpB,EAAQoiB,EAAY2G,GACrE/oB,GAAkB,EAClBoiB,GAA0B,EACrB2G,GAAUR,EAAYvoB,EAAQoiB,EAAY/wB,KAAKiC,QAKpD,IAHA,IAAI0vB,EAAM3xB,KAAK2O,GACXopB,EAAM,EACN9pB,EAAI,IACCA,EAAI8iB,IAAegH,GAAO,MACjCpG,GAAO3xB,KAAK2O,EAASV,GAAK8pB,EAG5B,OAAOpG,GAGTrC,EAAOzqB,UAAUmzB,WAAa,SAAqBrpB,EAAQoiB,EAAY2G,GACrE/oB,GAAkB,EAClBoiB,GAA0B,EACrB2G,GACHR,EAAYvoB,EAAQoiB,EAAY/wB,KAAKiC,QAKvC,IAFA,IAAI0vB,EAAM3xB,KAAK2O,IAAWoiB,GACtBgH,EAAM,EACHhH,EAAa,IAAMgH,GAAO,MAC/BpG,GAAO3xB,KAAK2O,IAAWoiB,GAAcgH,EAGvC,OAAOpG,GAGTrC,EAAOzqB,UAAUozB,UAAY,SAAoBtpB,EAAQ+oB,GAEvD,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACpCjC,KAAK2O,IAGd2gB,EAAOzqB,UAAUqzB,aAAe,SAAuBvpB,EAAQ+oB,GAE7D,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACpCjC,KAAK2O,GAAW3O,KAAK2O,EAAS,IAAM,GAG7C2gB,EAAOzqB,UAAUiuB,aAAe,SAAuBnkB,EAAQ+oB,GAE7D,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACnCjC,KAAK2O,IAAW,EAAK3O,KAAK2O,EAAS,IAG7C2gB,EAAOzqB,UAAUszB,aAAe,SAAuBxpB,EAAQ+oB,GAG7D,OAFKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,SAElCjC,KAAK2O,GACT3O,KAAK2O,EAAS,IAAM,EACpB3O,KAAK2O,EAAS,IAAM,IACD,SAAnB3O,KAAK2O,EAAS,IAGrB2gB,EAAOzqB,UAAUuzB,aAAe,SAAuBzpB,EAAQ+oB,GAG7D,OAFKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QAEpB,SAAfjC,KAAK2O,IACT3O,KAAK2O,EAAS,IAAM,GACrB3O,KAAK2O,EAAS,IAAM,EACrB3O,KAAK2O,EAAS,KAGlB2gB,EAAOzqB,UAAUwzB,UAAY,SAAoB1pB,EAAQoiB,EAAY2G,GACnE/oB,GAAkB,EAClBoiB,GAA0B,EACrB2G,GAAUR,EAAYvoB,EAAQoiB,EAAY/wB,KAAKiC,QAKpD,IAHA,IAAI0vB,EAAM3xB,KAAK2O,GACXopB,EAAM,EACN9pB,EAAI,IACCA,EAAI8iB,IAAegH,GAAO,MACjCpG,GAAO3xB,KAAK2O,EAASV,GAAK8pB,EAM5B,OAFIpG,IAFJoG,GAAO,OAESpG,GAAOnpB,KAAK8vB,IAAI,EAAG,EAAIvH,IAEhCY,GAGTrC,EAAOzqB,UAAU0zB,UAAY,SAAoB5pB,EAAQoiB,EAAY2G,GACnE/oB,GAAkB,EAClBoiB,GAA0B,EACrB2G,GAAUR,EAAYvoB,EAAQoiB,EAAY/wB,KAAKiC,QAKpD,IAHA,IAAIgM,EAAI8iB,EACJgH,EAAM,EACNpG,EAAM3xB,KAAK2O,IAAWV,GACnBA,EAAI,IAAM8pB,GAAO,MACtBpG,GAAO3xB,KAAK2O,IAAWV,GAAK8pB,EAM9B,OAFIpG,IAFJoG,GAAO,OAESpG,GAAOnpB,KAAK8vB,IAAI,EAAG,EAAIvH,IAEhCY,GAGTrC,EAAOzqB,UAAU2zB,SAAW,SAAmB7pB,EAAQ+oB,GAErD,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACtB,IAAfjC,KAAK2O,IAC0B,GAA5B,IAAO3O,KAAK2O,GAAU,GADK3O,KAAK2O,IAI3C2gB,EAAOzqB,UAAU4zB,YAAc,SAAsB9pB,EAAQ+oB,GACtDA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QAC3C,IAAI0vB,EAAM3xB,KAAK2O,GAAW3O,KAAK2O,EAAS,IAAM,EAC9C,OAAc,MAANgjB,EAAsB,WAANA,EAAmBA,GAG7CrC,EAAOzqB,UAAU6zB,YAAc,SAAsB/pB,EAAQ+oB,GACtDA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QAC3C,IAAI0vB,EAAM3xB,KAAK2O,EAAS,GAAM3O,KAAK2O,IAAW,EAC9C,OAAc,MAANgjB,EAAsB,WAANA,EAAmBA,GAG7CrC,EAAOzqB,UAAU8zB,YAAc,SAAsBhqB,EAAQ+oB,GAG3D,OAFKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QAEnCjC,KAAK2O,GACV3O,KAAK2O,EAAS,IAAM,EACpB3O,KAAK2O,EAAS,IAAM,GACpB3O,KAAK2O,EAAS,IAAM,IAGzB2gB,EAAOzqB,UAAU+zB,YAAc,SAAsBjqB,EAAQ+oB,GAG3D,OAFKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QAEnCjC,KAAK2O,IAAW,GACrB3O,KAAK2O,EAAS,IAAM,GACpB3O,KAAK2O,EAAS,IAAM,EACpB3O,KAAK2O,EAAS,IAGnB2gB,EAAOzqB,UAAUg0B,YAAc,SAAsBlqB,EAAQ+oB,GAE3D,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACpCguB,EAAQ2C,KAAK5yB,KAAM2O,GAAQ,EAAM,GAAI,IAG9C2gB,EAAOzqB,UAAUi0B,YAAc,SAAsBnqB,EAAQ+oB,GAE3D,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACpCguB,EAAQ2C,KAAK5yB,KAAM2O,GAAQ,EAAO,GAAI,IAG/C2gB,EAAOzqB,UAAUk0B,aAAe,SAAuBpqB,EAAQ+oB,GAE7D,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACpCguB,EAAQ2C,KAAK5yB,KAAM2O,GAAQ,EAAM,GAAI,IAG9C2gB,EAAOzqB,UAAUm0B,aAAe,SAAuBrqB,EAAQ+oB,GAE7D,OADKA,GAAUR,EAAYvoB,EAAQ,EAAG3O,KAAKiC,QACpCguB,EAAQ2C,KAAK5yB,KAAM2O,GAAQ,EAAO,GAAI,IAS/C2gB,EAAOzqB,UAAUo0B,YAAc,SAAsBluB,EAAO4D,EAAQoiB,EAAY2G,IAC9E3sB,GAASA,EACT4D,GAAkB,EAClBoiB,GAA0B,EACrB2G,IAEHN,EAASp3B,KAAM+K,EAAO4D,EAAQoiB,EADfvoB,KAAK8vB,IAAI,EAAG,EAAIvH,GAAc,EACO,GAGtD,IAAIgH,EAAM,EACN9pB,EAAI,EAER,IADAjO,KAAK2O,GAAkB,IAAR5D,IACNkD,EAAI8iB,IAAegH,GAAO,MACjC/3B,KAAK2O,EAASV,GAAMlD,EAAQgtB,EAAO,IAGrC,OAAOppB,EAASoiB,GAGlBzB,EAAOzqB,UAAUq0B,YAAc,SAAsBnuB,EAAO4D,EAAQoiB,EAAY2G,IAC9E3sB,GAASA,EACT4D,GAAkB,EAClBoiB,GAA0B,EACrB2G,IAEHN,EAASp3B,KAAM+K,EAAO4D,EAAQoiB,EADfvoB,KAAK8vB,IAAI,EAAG,EAAIvH,GAAc,EACO,GAGtD,IAAI9iB,EAAI8iB,EAAa,EACjBgH,EAAM,EAEV,IADA/3B,KAAK2O,EAASV,GAAa,IAARlD,IACVkD,GAAK,IAAM8pB,GAAO,MACzB/3B,KAAK2O,EAASV,GAAMlD,EAAQgtB,EAAO,IAGrC,OAAOppB,EAASoiB,GAGlBzB,EAAOzqB,UAAUs0B,WAAa,SAAqBpuB,EAAO4D,EAAQ+oB,GAMhE,OALA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,IAAM,GACjD2gB,EAAOa,sBAAqBplB,EAAQvC,KAAK4E,MAAMrC,IACpD/K,KAAK2O,GAAmB,IAAR5D,EACT4D,EAAS,GAWlB2gB,EAAOzqB,UAAUu0B,cAAgB,SAAwBruB,EAAO4D,EAAQ+oB,GAUtE,OATA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,MAAQ,GACpD2gB,EAAOa,qBACTnwB,KAAK2O,GAAmB,IAAR5D,EAChB/K,KAAK2O,EAAS,GAAM5D,IAAU,GAE9BssB,EAAkBr3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAGlB2gB,EAAOzqB,UAAUw0B,cAAgB,SAAwBtuB,EAAO4D,EAAQ+oB,GAUtE,OATA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,MAAQ,GACpD2gB,EAAOa,qBACTnwB,KAAK2O,GAAW5D,IAAU,EAC1B/K,KAAK2O,EAAS,GAAc,IAAR5D,GAEpBssB,EAAkBr3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAUlB2gB,EAAOzqB,UAAUy0B,cAAgB,SAAwBvuB,EAAO4D,EAAQ+oB,GAYtE,OAXA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,WAAY,GACxD2gB,EAAOa,qBACTnwB,KAAK2O,EAAS,GAAM5D,IAAU,GAC9B/K,KAAK2O,EAAS,GAAM5D,IAAU,GAC9B/K,KAAK2O,EAAS,GAAM5D,IAAU,EAC9B/K,KAAK2O,GAAmB,IAAR5D,GAEhBwsB,EAAkBv3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAGlB2gB,EAAOzqB,UAAU00B,cAAgB,SAAwBxuB,EAAO4D,EAAQ+oB,GAYtE,OAXA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,WAAY,GACxD2gB,EAAOa,qBACTnwB,KAAK2O,GAAW5D,IAAU,GAC1B/K,KAAK2O,EAAS,GAAM5D,IAAU,GAC9B/K,KAAK2O,EAAS,GAAM5D,IAAU,EAC9B/K,KAAK2O,EAAS,GAAc,IAAR5D,GAEpBwsB,EAAkBv3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAGlB2gB,EAAOzqB,UAAU20B,WAAa,SAAqBzuB,EAAO4D,EAAQoiB,EAAY2G,GAG5E,GAFA3sB,GAASA,EACT4D,GAAkB,GACb+oB,EAAU,CACb,IAAI+B,EAAQjxB,KAAK8vB,IAAI,EAAG,EAAIvH,EAAa,GAEzCqG,EAASp3B,KAAM+K,EAAO4D,EAAQoiB,EAAY0I,EAAQ,GAAIA,GAGxD,IAAIxrB,EAAI,EACJ8pB,EAAM,EACN2B,EAAM,EAEV,IADA15B,KAAK2O,GAAkB,IAAR5D,IACNkD,EAAI8iB,IAAegH,GAAO,MAC7BhtB,EAAQ,GAAa,IAAR2uB,GAAsC,IAAzB15B,KAAK2O,EAASV,EAAI,KAC9CyrB,EAAM,GAER15B,KAAK2O,EAASV,IAAOlD,EAAQgtB,GAAQ,GAAK2B,EAAM,IAGlD,OAAO/qB,EAASoiB,GAGlBzB,EAAOzqB,UAAU80B,WAAa,SAAqB5uB,EAAO4D,EAAQoiB,EAAY2G,GAG5E,GAFA3sB,GAASA,EACT4D,GAAkB,GACb+oB,EAAU,CACb,IAAI+B,EAAQjxB,KAAK8vB,IAAI,EAAG,EAAIvH,EAAa,GAEzCqG,EAASp3B,KAAM+K,EAAO4D,EAAQoiB,EAAY0I,EAAQ,GAAIA,GAGxD,IAAIxrB,EAAI8iB,EAAa,EACjBgH,EAAM,EACN2B,EAAM,EAEV,IADA15B,KAAK2O,EAASV,GAAa,IAARlD,IACVkD,GAAK,IAAM8pB,GAAO,MACrBhtB,EAAQ,GAAa,IAAR2uB,GAAsC,IAAzB15B,KAAK2O,EAASV,EAAI,KAC9CyrB,EAAM,GAER15B,KAAK2O,EAASV,IAAOlD,EAAQgtB,GAAQ,GAAK2B,EAAM,IAGlD,OAAO/qB,EAASoiB,GAGlBzB,EAAOzqB,UAAU+0B,UAAY,SAAoB7uB,EAAO4D,EAAQ+oB,GAO9D,OANA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,KAAO,KAClD2gB,EAAOa,sBAAqBplB,EAAQvC,KAAK4E,MAAMrC,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC/K,KAAK2O,GAAmB,IAAR5D,EACT4D,EAAS,GAGlB2gB,EAAOzqB,UAAUg1B,aAAe,SAAuB9uB,EAAO4D,EAAQ+oB,GAUpE,OATA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,OAAS,OACrD2gB,EAAOa,qBACTnwB,KAAK2O,GAAmB,IAAR5D,EAChB/K,KAAK2O,EAAS,GAAM5D,IAAU,GAE9BssB,EAAkBr3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAGlB2gB,EAAOzqB,UAAUi1B,aAAe,SAAuB/uB,EAAO4D,EAAQ+oB,GAUpE,OATA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,OAAS,OACrD2gB,EAAOa,qBACTnwB,KAAK2O,GAAW5D,IAAU,EAC1B/K,KAAK2O,EAAS,GAAc,IAAR5D,GAEpBssB,EAAkBr3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAGlB2gB,EAAOzqB,UAAUk1B,aAAe,SAAuBhvB,EAAO4D,EAAQ+oB,GAYpE,OAXA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,YAAa,YACzD2gB,EAAOa,qBACTnwB,KAAK2O,GAAmB,IAAR5D,EAChB/K,KAAK2O,EAAS,GAAM5D,IAAU,EAC9B/K,KAAK2O,EAAS,GAAM5D,IAAU,GAC9B/K,KAAK2O,EAAS,GAAM5D,IAAU,IAE9BwsB,EAAkBv3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAGlB2gB,EAAOzqB,UAAUm1B,aAAe,SAAuBjvB,EAAO4D,EAAQ+oB,GAapE,OAZA3sB,GAASA,EACT4D,GAAkB,EACb+oB,GAAUN,EAASp3B,KAAM+K,EAAO4D,EAAQ,EAAG,YAAa,YACzD5D,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxCukB,EAAOa,qBACTnwB,KAAK2O,GAAW5D,IAAU,GAC1B/K,KAAK2O,EAAS,GAAM5D,IAAU,GAC9B/K,KAAK2O,EAAS,GAAM5D,IAAU,EAC9B/K,KAAK2O,EAAS,GAAc,IAAR5D,GAEpBwsB,EAAkBv3B,KAAM+K,EAAO4D,GAAQ,GAElCA,EAAS,GAgBlB2gB,EAAOzqB,UAAUo1B,aAAe,SAAuBlvB,EAAO4D,EAAQ+oB,GACpE,OAAOD,EAAWz3B,KAAM+K,EAAO4D,GAAQ,EAAM+oB,IAG/CpI,EAAOzqB,UAAUq1B,aAAe,SAAuBnvB,EAAO4D,EAAQ+oB,GACpE,OAAOD,EAAWz3B,KAAM+K,EAAO4D,GAAQ,EAAO+oB,IAWhDpI,EAAOzqB,UAAUs1B,cAAgB,SAAwBpvB,EAAO4D,EAAQ+oB,GACtE,OAAOC,EAAY33B,KAAM+K,EAAO4D,GAAQ,EAAM+oB,IAGhDpI,EAAOzqB,UAAUu1B,cAAgB,SAAwBrvB,EAAO4D,EAAQ+oB,GACtE,OAAOC,EAAY33B,KAAM+K,EAAO4D,GAAQ,EAAO+oB,IAIjDpI,EAAOzqB,UAAU6sB,KAAO,SAAe5vB,EAAQu4B,EAAajyB,EAAOC,GAQjE,GAPKD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMrI,KAAKiC,QAC9Bo4B,GAAev4B,EAAOG,SAAQo4B,EAAcv4B,EAAOG,QAClDo4B,IAAaA,EAAc,GAC5BhyB,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlBtG,EAAOG,QAAgC,IAAhBjC,KAAKiC,OAAc,OAAO,EAGrD,GAAIo4B,EAAc,EAChB,MAAM,IAAI/J,WAAW,6BAEvB,GAAIloB,EAAQ,GAAKA,GAASpI,KAAKiC,OAAQ,MAAM,IAAIquB,WAAW,6BAC5D,GAAIjoB,EAAM,EAAG,MAAM,IAAIioB,WAAW,2BAG9BjoB,EAAMrI,KAAKiC,SAAQoG,EAAMrI,KAAKiC,QAC9BH,EAAOG,OAASo4B,EAAchyB,EAAMD,IACtCC,EAAMvG,EAAOG,OAASo4B,EAAcjyB,GAGtC,IACI6F,EADAujB,EAAMnpB,EAAMD,EAGhB,GAAIpI,OAAS8B,GAAUsG,EAAQiyB,GAAeA,EAAchyB,EAE1D,IAAK4F,EAAIujB,EAAM,EAAGvjB,GAAK,IAAKA,EAC1BnM,EAAOmM,EAAIosB,GAAer6B,KAAKiO,EAAI7F,QAEhC,GAAIopB,EAAM,MAASlC,EAAOa,oBAE/B,IAAKliB,EAAI,EAAGA,EAAIujB,IAAOvjB,EACrBnM,EAAOmM,EAAIosB,GAAer6B,KAAKiO,EAAI7F,QAGrCmoB,WAAW1rB,UAAUy1B,IAAI/1B,KACvBzC,EACA9B,KAAKo1B,SAAShtB,EAAOA,EAAQopB,GAC7B6I,GAIJ,OAAO7I,GAOTlC,EAAOzqB,UAAU2C,KAAO,SAAemqB,EAAKvpB,EAAOC,EAAK8oB,GAEtD,GAAmB,iBAARQ,EAAkB,CAS3B,GARqB,iBAAVvpB,GACT+oB,EAAW/oB,EACXA,EAAQ,EACRC,EAAMrI,KAAKiC,QACa,iBAARoG,IAChB8oB,EAAW9oB,EACXA,EAAMrI,KAAKiC,QAEM,IAAf0vB,EAAI1vB,OAAc,CACpB,IAAIwtB,EAAOkC,EAAI5K,WAAW,GACtB0I,EAAO,MACTkC,EAAMlC,GAGV,QAAiBuB,IAAbG,GAA8C,iBAAbA,EACnC,MAAM,IAAIhoB,UAAU,6BAEtB,GAAwB,iBAAbgoB,IAA0B7B,EAAO8B,WAAWD,GACrD,MAAM,IAAIhoB,UAAU,qBAAuBgoB,OAErB,iBAARQ,IAChBA,GAAY,KAId,GAAIvpB,EAAQ,GAAKpI,KAAKiC,OAASmG,GAASpI,KAAKiC,OAASoG,EACpD,MAAM,IAAIioB,WAAW,sBAGvB,GAAIjoB,GAAOD,EACT,OAAOpI,KAQT,IAAIiO,EACJ,GANA7F,KAAkB,EAClBC,OAAc2oB,IAAR3oB,EAAoBrI,KAAKiC,OAASoG,IAAQ,EAE3CspB,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAK1jB,EAAI7F,EAAO6F,EAAI5F,IAAO4F,EACzBjO,KAAKiO,GAAK0jB,MAEP,CACL,IAAIsF,EAAQ3H,EAAOQ,SAAS6B,GACxBA,EACAM,EAAY,IAAI3C,EAAOqC,EAAKR,GAAU1sB,YACtC+sB,EAAMyF,EAAMh1B,OAChB,IAAKgM,EAAI,EAAGA,EAAI5F,EAAMD,IAAS6F,EAC7BjO,KAAKiO,EAAI7F,GAAS6uB,EAAMhpB,EAAIujB,GAIhC,OAAOxxB,MAMT,IAAIu6B,EAAoB,qBAmBxB,SAASvD,EAAO5E,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAE3tB,SAAS,IAC7B2tB,EAAE3tB,SAAS,IAGpB,SAASwtB,EAAa3wB,EAAQyyB,GAE5B,IAAIY,EADJZ,EAAQA,GAAS9mB,IAMjB,IAJA,IAAIhL,EAASX,EAAOW,OAChBu4B,EAAgB,KAChBvD,EAAQ,GAEHhpB,EAAI,EAAGA,EAAIhM,IAAUgM,EAAG,CAI/B,IAHA0mB,EAAYrzB,EAAOylB,WAAW9Y,IAGd,OAAU0mB,EAAY,MAAQ,CAE5C,IAAK6F,EAAe,CAElB,GAAI7F,EAAY,MAAQ,EAEjBZ,GAAS,IAAM,GAAGkD,EAAMn0B,KAAK,IAAM,IAAM,KAC9C,SACK,GAAImL,EAAI,IAAMhM,EAAQ,EAEtB8xB,GAAS,IAAM,GAAGkD,EAAMn0B,KAAK,IAAM,IAAM,KAC9C,SAIF03B,EAAgB7F,EAEhB,SAIF,GAAIA,EAAY,MAAQ,EACjBZ,GAAS,IAAM,GAAGkD,EAAMn0B,KAAK,IAAM,IAAM,KAC9C03B,EAAgB7F,EAChB,SAIFA,EAAkE,OAArD6F,EAAgB,OAAU,GAAK7F,EAAY,YAC/C6F,IAEJzG,GAAS,IAAM,GAAGkD,EAAMn0B,KAAK,IAAM,IAAM,KAMhD,GAHA03B,EAAgB,KAGZ7F,EAAY,IAAM,CACpB,IAAKZ,GAAS,GAAK,EAAG,MACtBkD,EAAMn0B,KAAK6xB,QACN,GAAIA,EAAY,KAAO,CAC5B,IAAKZ,GAAS,GAAK,EAAG,MACtBkD,EAAMn0B,KACJ6xB,GAAa,EAAM,IACP,GAAZA,EAAmB,UAEhB,GAAIA,EAAY,MAAS,CAC9B,IAAKZ,GAAS,GAAK,EAAG,MACtBkD,EAAMn0B,KACJ6xB,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,SAEhB,MAAIA,EAAY,SASrB,MAAM,IAAIrwB,MAAM,sBARhB,IAAKyvB,GAAS,GAAK,EAAG,MACtBkD,EAAMn0B,KACJ6xB,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,MAOzB,OAAOsC,EA4BT,SAAS/E,EAAeuB,GACtB,OAAOzD,EAAOyK,YAhIhB,SAAsBhH,GAIpB,IAFAA,EAUF,SAAqBA,GACnB,OAAIA,EAAIiH,KAAajH,EAAIiH,OAClBjH,EAAIhS,QAAQ,aAAc,IAZ3BkZ,CAAWlH,GAAKhS,QAAQ8Y,EAAmB,KAEzCt4B,OAAS,EAAG,MAAO,GAE3B,KAAOwxB,EAAIxxB,OAAS,GAAM,GACxBwxB,GAAY,IAEd,OAAOA,EAuHmBmH,CAAYnH,IAGxC,SAASF,EAAYsH,EAAKC,EAAKnsB,EAAQ1M,GACrC,IAAK,IAAIgM,EAAI,EAAGA,EAAIhM,KACbgM,EAAIU,GAAUmsB,EAAI74B,QAAYgM,GAAK4sB,EAAI54B,UADhBgM,EAE5B6sB,EAAI7sB,EAAIU,GAAUksB,EAAI5sB,GAExB,OAAOA,2QCvvDT,IAAI8sB,EAGJA,EAAK,WACJ,OAAO/6B,KADH,GAIL,IAEC+6B,EAAIA,GAAK,IAAIC,SAAS,cAAb,GACR,MAAO71B,GAEc,YAAlB,oBAAOiM,OAAP,YAAApQ,EAAOoQ,WAAqB2pB,EAAI3pB,QAOrC/R,EAAOC,QAAUy7B,gCCjBjBz7B,EAAQyxB,WAuCR,SAAqBkK,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClD/7B,EAAQm7B,YAiDR,SAAsBQ,GAepB,IAdA,IAAItQ,EACAuQ,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvB1I,EAAM,IAAI8I,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVhK,EAAM6J,EAAkB,EACxBD,EAAW,EACXA,EAEKntB,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAC5B0c,EACG8Q,EAAUR,EAAIlU,WAAW9Y,KAAO,GAChCwtB,EAAUR,EAAIlU,WAAW9Y,EAAI,KAAO,GACpCwtB,EAAUR,EAAIlU,WAAW9Y,EAAI,KAAO,EACrCwtB,EAAUR,EAAIlU,WAAW9Y,EAAI,IAC/BukB,EAAIgJ,KAAc7Q,GAAO,GAAM,IAC/B6H,EAAIgJ,KAAc7Q,GAAO,EAAK,IAC9B6H,EAAIgJ,KAAmB,IAAN7Q,EAGK,IAApB0Q,IACF1Q,EACG8Q,EAAUR,EAAIlU,WAAW9Y,KAAO,EAChCwtB,EAAUR,EAAIlU,WAAW9Y,EAAI,KAAO,EACvCukB,EAAIgJ,KAAmB,IAAN7Q,GAGK,IAApB0Q,IACF1Q,EACG8Q,EAAUR,EAAIlU,WAAW9Y,KAAO,GAChCwtB,EAAUR,EAAIlU,WAAW9Y,EAAI,KAAO,EACpCwtB,EAAUR,EAAIlU,WAAW9Y,EAAI,KAAO,EACvCukB,EAAIgJ,KAAc7Q,GAAO,EAAK,IAC9B6H,EAAIgJ,KAAmB,IAAN7Q,GAGnB,OAAO6H,GA1FTlzB,EAAQ80B,cAiHR,SAAwBsH,GAQtB,IAPA,IAAI/Q,EACA6G,EAAMkK,EAAMz5B,OACZ05B,EAAanK,EAAM,EACnBoK,EAAQ,GAIH3tB,EAAI,EAAG4tB,EAAOrK,EAAMmK,EAAY1tB,EAAI4tB,EAAM5tB,GAH9B,MAInB2tB,EAAM94B,KAAKg5B,EACTJ,EAAOztB,EAAIA,EALM,MAKgB4tB,EAAOA,EAAQ5tB,EAL/B,QAUF,IAAf0tB,GACFhR,EAAM+Q,EAAMlK,EAAM,GAClBoK,EAAM94B,KACJi5B,EAAOpR,GAAO,GACdoR,EAAQpR,GAAO,EAAK,IACpB,OAEsB,IAAfgR,IACThR,GAAO+Q,EAAMlK,EAAM,IAAM,GAAKkK,EAAMlK,EAAM,GAC1CoK,EAAM94B,KACJi5B,EAAOpR,GAAO,IACdoR,EAAQpR,GAAO,EAAK,IACpBoR,EAAQpR,GAAO,EAAK,IACpB,MAIJ,OAAOiR,EAAMpa,KAAK,KA1IpB,IALA,IAAIua,EAAS,GACTN,EAAY,GACZH,EAA4B,oBAAf/K,WAA6BA,WAAapvB,MAEvDsuB,EAAO,mEACFxhB,EAAI,EAAGujB,EAAM/B,EAAKxtB,OAAQgM,EAAIujB,IAAOvjB,EAC5C8tB,EAAO9tB,GAAKwhB,EAAKxhB,GACjBwtB,EAAUhM,EAAK1I,WAAW9Y,IAAMA,EAQlC,SAASktB,EAASF,GAChB,IAAIzJ,EAAMyJ,EAAIh5B,OAEd,GAAIuvB,EAAM,EAAI,EACZ,MAAM,IAAIltB,MAAM,kDAKlB,IAAI82B,EAAWH,EAAIl7B,QAAQ,KAO3B,OANkB,IAAdq7B,IAAiBA,EAAW5J,GAMzB,CAAC4J,EAJcA,IAAa5J,EAC/B,EACA,EAAK4J,EAAW,GAqEtB,SAASU,EAAaJ,EAAOtzB,EAAOC,GAGlC,IAFA,IAAIsiB,EARoBqR,EASpB3P,EAAS,GACJpe,EAAI7F,EAAO6F,EAAI5F,EAAK4F,GAAK,EAChC0c,GACI+Q,EAAMztB,IAAM,GAAM,WAClBytB,EAAMztB,EAAI,IAAM,EAAK,QACP,IAAfytB,EAAMztB,EAAI,IACboe,EAAOvpB,KAdFi5B,GADiBC,EAeMrR,IAdT,GAAK,IACxBoR,EAAOC,GAAO,GAAK,IACnBD,EAAOC,GAAO,EAAI,IAClBD,EAAa,GAANC,IAaT,OAAO3P,EAAO7K,KAAK,IAhGrBia,EAAU,IAAI1U,WAAW,IAAM,GAC/B0U,EAAU,IAAI1U,WAAW,IAAM,kBCnB/BznB,EAAQszB,KAAO,SAAUtG,EAAQ3d,EAAQstB,EAAMC,EAAMC,GACnD,IAAIh3B,EAAG8C,EACHm0B,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTtuB,EAAIguB,EAAQE,EAAS,EAAK,EAC1B/2B,EAAI62B,GAAQ,EAAI,EAChBO,EAAIlQ,EAAO3d,EAASV,GAOxB,IALAA,GAAK7I,EAELD,EAAIq3B,GAAM,IAAOD,GAAU,EAC3BC,KAAQD,EACRA,GAASH,EACFG,EAAQ,EAAGp3B,EAAS,IAAJA,EAAWmnB,EAAO3d,EAASV,GAAIA,GAAK7I,EAAGm3B,GAAS,GAKvE,IAHAt0B,EAAI9C,GAAM,IAAOo3B,GAAU,EAC3Bp3B,KAAQo3B,EACRA,GAASL,EACFK,EAAQ,EAAGt0B,EAAS,IAAJA,EAAWqkB,EAAO3d,EAASV,GAAIA,GAAK7I,EAAGm3B,GAAS,GAEvE,GAAU,IAANp3B,EACFA,EAAI,EAAIm3B,MACH,IAAIn3B,IAAMk3B,EACf,OAAOp0B,EAAIkmB,IAAsBlhB,KAAduvB,GAAK,EAAI,GAE5Bv0B,GAAQO,KAAK8vB,IAAI,EAAG4D,GACpB/2B,GAAQm3B,EAEV,OAAQE,GAAK,EAAI,GAAKv0B,EAAIO,KAAK8vB,IAAI,EAAGnzB,EAAI+2B,IAG5C58B,EAAQgyB,MAAQ,SAAUhF,EAAQvhB,EAAO4D,EAAQstB,EAAMC,EAAMC,GAC3D,IAAIh3B,EAAG8C,EAAGhD,EACNm3B,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAc1zB,KAAK8vB,IAAI,GAAI,IAAM9vB,KAAK8vB,IAAI,GAAI,IAAM,EAC1DrqB,EAAIguB,EAAO,EAAKE,EAAS,EACzB/2B,EAAI62B,EAAO,GAAK,EAChBO,EAAIzxB,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQvC,KAAKC,IAAIsC,GAEbrD,MAAMqD,IAAUA,IAAUkC,KAC5BhF,EAAIP,MAAMqD,GAAS,EAAI,EACvB5F,EAAIk3B,IAEJl3B,EAAIqD,KAAK4E,MAAM5E,KAAKk0B,IAAI3xB,GAASvC,KAAKm0B,KAClC5xB,GAAS9F,EAAIuD,KAAK8vB,IAAI,GAAInzB,IAAM,IAClCA,IACAF,GAAK,IAGL8F,GADE5F,EAAIm3B,GAAS,EACNG,EAAKx3B,EAELw3B,EAAKj0B,KAAK8vB,IAAI,EAAG,EAAIgE,IAEpBr3B,GAAK,IACfE,IACAF,GAAK,GAGHE,EAAIm3B,GAASD,GACfp0B,EAAI,EACJ9C,EAAIk3B,GACKl3B,EAAIm3B,GAAS,GACtBr0B,GAAM8C,EAAQ9F,EAAK,GAAKuD,KAAK8vB,IAAI,EAAG4D,GACpC/2B,GAAQm3B,IAERr0B,EAAI8C,EAAQvC,KAAK8vB,IAAI,EAAGgE,EAAQ,GAAK9zB,KAAK8vB,IAAI,EAAG4D,GACjD/2B,EAAI,IAID+2B,GAAQ,EAAG5P,EAAO3d,EAASV,GAAS,IAAJhG,EAAUgG,GAAK7I,EAAG6C,GAAK,IAAKi0B,GAAQ,GAI3E,IAFA/2B,EAAKA,GAAK+2B,EAAQj0B,EAClBm0B,GAAQF,EACDE,EAAO,EAAG9P,EAAO3d,EAASV,GAAS,IAAJ9I,EAAU8I,GAAK7I,EAAGD,GAAK,IAAKi3B,GAAQ,GAE1E9P,EAAO3d,EAASV,EAAI7I,IAAU,IAAJo3B,kBClF5B,IAAI/3B,EAAW,GAAGA,SAElBpF,EAAOC,QAAU6B,MAAMC,SAAW,SAAUoxB,GAC1C,MAA6B,kBAAtB/tB,EAASF,KAAKiuB,kCCDvB,IAAInwB,EAAOnD,EAAQ,IAEf+jB,EAAkBtjB,OAAOkF,UAAUqe,eACnC0Z,EAAkBj9B,OAAOkF,UAAUJ,SAkCvCpF,EAAOC,QAAU,IAAI+C,EAAK,yBAA0B,CAClDpC,KAAM,WACNC,QAlCF,SAAyBE,GACvB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAqB4B,EAAOC,EAAQ46B,EAAMC,EAASC,EAA/CC,EAAa,GACbhQ,EAAS5sB,EAEb,IAAK4B,EAAQ,EAAGC,EAAS+qB,EAAO/qB,OAAQD,EAAQC,EAAQD,GAAS,EAAG,CAIlE,GAHA66B,EAAO7P,EAAOhrB,GACd+6B,GAAa,EAEgB,oBAAzBH,EAAUr4B,KAAKs4B,GAA6B,OAAO,EAEvD,IAAKC,KAAWD,EACd,GAAI5Z,EAAgB1e,KAAKs4B,EAAMC,GAAU,CACvC,GAAKC,EACA,OAAO,EADKA,GAAa,EAKlC,IAAKA,EAAY,OAAO,EAExB,IAAqC,IAAjCC,EAAWj9B,QAAQ+8B,GAClB,OAAO,EAD4BE,EAAWl6B,KAAKg6B,GAI1D,OAAO,GAUP38B,UAPF,SAA2BC,GACzB,OAAgB,OAATA,EAAgBA,EAAO,oCClChC,IAAIiC,EAAOnD,EAAQ,IAEf09B,EAAYj9B,OAAOkF,UAAUJ,SA4CjCpF,EAAOC,QAAU,IAAI+C,EAAK,0BAA2B,CACnDpC,KAAM,WACNC,QA5CF,SAA0BE,GACxB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAI4B,EAAOC,EAAQ46B,EAAMj9B,EAAMF,EAC3BstB,EAAS5sB,EAIb,IAFAV,EAAS,IAAIyB,MAAM6rB,EAAO/qB,QAErBD,EAAQ,EAAGC,EAAS+qB,EAAO/qB,OAAQD,EAAQC,EAAQD,GAAS,EAAG,CAGlE,GAFA66B,EAAO7P,EAAOhrB,GAEe,oBAAzB46B,EAAUr4B,KAAKs4B,GAA6B,OAAO,EAIvD,GAAoB,KAFpBj9B,EAAOD,OAAOC,KAAKi9B,IAEV56B,OAAc,OAAO,EAE9BvC,EAAOsC,GAAS,CAAEpC,EAAK,GAAIi9B,EAAKj9B,EAAK,KAGvC,OAAO,GAyBPO,UAtBF,SAA4BC,GAC1B,GAAa,OAATA,EAAe,MAAO,GAE1B,IAAI4B,EAAOC,EAAQ46B,EAAMj9B,EAAMF,EAC3BstB,EAAS5sB,EAIb,IAFAV,EAAS,IAAIyB,MAAM6rB,EAAO/qB,QAErBD,EAAQ,EAAGC,EAAS+qB,EAAO/qB,OAAQD,EAAQC,EAAQD,GAAS,EAC/D66B,EAAO7P,EAAOhrB,GAEdpC,EAAOD,OAAOC,KAAKi9B,GAEnBn9B,EAAOsC,GAAS,CAAEpC,EAAK,GAAIi9B,EAAKj9B,EAAK,KAGvC,OAAOF,mCC3CT,IAAI2C,EAAOnD,EAAQ,IAEf+jB,EAAkBtjB,OAAOkF,UAAUqe,eAoBvC7jB,EAAOC,QAAU,IAAI+C,EAAK,wBAAyB,CACjDpC,KAAM,UACNC,QApBF,SAAwBE,GACtB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAI8B,EAAK8qB,EAAS5sB,EAElB,IAAK8B,KAAO8qB,EACV,GAAI/J,EAAgB1e,KAAKyoB,EAAQ9qB,IACX,OAAhB8qB,EAAO9qB,GAAe,OAAO,EAIrC,OAAO,GAUP/B,UAPF,SAA0BC,GACxB,OAAgB,OAATA,EAAgBA,EAAO,oCCnBhC,IAAIiC,EAAOnD,EAAQ,IAmBnBG,EAAOC,QAAU,IAAI+C,EAAK,iCAAkC,CAC1DpC,KAAM,SACNC,QAnBF,WACE,OAAO,GAmBPC,UAhBF,aAiBEG,UARF,SAAqB0sB,GACnB,YAAyB,IAAXA,GAQdzsB,UAbF,WACE,MAAO,oCCZT,IAAI8B,EAAOnD,EAAQ,IAmDnBG,EAAOC,QAAU,IAAI+C,EAAK,8BAA+B,CACvDpC,KAAM,SACNC,QAnDF,SAAiCE,GAC/B,GAAa,OAATA,EAAe,OAAO,EAC1B,GAAoB,IAAhBA,EAAK6B,OAAc,OAAO,EAE9B,IAAIg7B,EAAS78B,EACTwsB,EAAS,cAAcrjB,KAAKnJ,GAC5B88B,EAAY,GAIhB,GAAkB,MAAdD,EAAO,GAAY,CAGrB,GAFIrQ,IAAMsQ,EAAYtQ,EAAK,IAEvBsQ,EAAUj7B,OAAS,EAAG,OAAO,EAEjC,GAAqD,MAAjDg7B,EAAOA,EAAOh7B,OAASi7B,EAAUj7B,OAAS,GAAY,OAAO,EAGnE,OAAO,GAkCP9B,UA/BF,SAAmCC,GACjC,IAAI68B,EAAS78B,EACTwsB,EAAS,cAAcrjB,KAAKnJ,GAC5B88B,EAAY,GAQhB,MALkB,MAAdD,EAAO,KACLrQ,IAAMsQ,EAAYtQ,EAAK,IAC3BqQ,EAASA,EAAOxzB,MAAM,EAAGwzB,EAAOh7B,OAASi7B,EAAUj7B,OAAS,IAGvD,IAAIkK,OAAO8wB,EAAQC,IAqB1B58B,UARF,SAAkB0sB,GAChB,MAAkD,oBAA3CrtB,OAAOkF,UAAUJ,SAASF,KAAKyoB,IAQtCzsB,UAnBF,SAAmCysB,GACjC,IAAIttB,EAAS,IAAMstB,EAAOjrB,OAAS,IAMnC,OAJIirB,EAAO+C,SAAQrwB,GAAU,KACzBstB,EAAOmQ,YAAWz9B,GAAU,KAC5BstB,EAAOoQ,aAAY19B,GAAU,KAE1BA,mCC9CT,IAEI29B,EASJ,IAGEA,EAAUhO,EAAS,KACnB,MAAOiO,GAEe,oBAAXlsB,SAAwBisB,EAAUjsB,OAAOisB,SAGtD,IAAIh7B,EAAOnD,EAAQ,IAiEnBG,EAAOC,QAAU,IAAI+C,EAAK,gCAAiC,CACzDpC,KAAM,SACNC,QAjEF,SAAmCE,GACjC,GAAa,OAATA,EAAe,OAAO,EAE1B,IACE,IAAI2B,EAAS,IAAM3B,EAAO,IACtBm9B,EAASF,EAAQxa,MAAM9gB,EAAQ,CAAEy7B,OAAO,IAE5C,MAAoC,YAAhCD,EAAIv6B,MAC4B,IAAhCu6B,EAAIE,KAAKx7B,QACuB,wBAAhCs7B,EAAIE,KAAK,GAAGz6B,OACqB,4BAAhCu6B,EAAIE,KAAK,GAAGC,WAAW16B,MACU,uBAAhCu6B,EAAIE,KAAK,GAAGC,WAAW16B,MAK7B,MAAO26B,GACP,OAAO,IAiDTx9B,UA7CF,SAAqCC,GAGnC,IAGIq9B,EAHA17B,EAAS,IAAM3B,EAAO,IACtBm9B,EAASF,EAAQxa,MAAM9gB,EAAQ,CAAEy7B,OAAO,IACxC13B,EAAS,GAGb,GAAoC,YAAhCy3B,EAAIv6B,MAC4B,IAAhCu6B,EAAIE,KAAKx7B,QACuB,wBAAhCs7B,EAAIE,KAAK,GAAGz6B,MACqB,4BAAhCu6B,EAAIE,KAAK,GAAGC,WAAW16B,MACU,uBAAhCu6B,EAAIE,KAAK,GAAGC,WAAW16B,KAC3B,MAAM,IAAIsB,MAAM,8BAWlB,OARAi5B,EAAIE,KAAK,GAAGC,WAAW53B,OAAOjG,QAAQ,SAAU+9B,GAC9C93B,EAAOhD,KAAK86B,EAAM99B,QAGpB29B,EAAOF,EAAIE,KAAK,GAAGC,WAAWD,KAAKD,MAIM,mBAArCD,EAAIE,KAAK,GAAGC,WAAWD,KAAKz6B,KAEvB,IAAIg4B,SAASl1B,EAAQ/D,EAAO0H,MAAMg0B,EAAK,GAAK,EAAGA,EAAK,GAAK,IAK3D,IAAIzC,SAASl1B,EAAQ,UAAY/D,EAAO0H,MAAMg0B,EAAK,GAAIA,EAAK,MAenEn9B,UARF,SAAoB0sB,GAClB,MAAkD,sBAA3CrtB,OAAOkF,UAAUJ,SAASF,KAAKyoB,IAQtCzsB,UAbF,SAAqCysB,GACnC,OAAOA,EAAOvoB,sDC9EiCo5B,yOAWxC,WACT,OAAiB,SAASC,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAI5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAU3+B,QAGnC,IAAID,EAAS0+B,EAAiBE,GAAY,CACzC3+B,QAAS,GACT+F,GAAI44B,EACJC,QAAQ,GAUT,OANAJ,EAAQG,GAAU15B,KAAKlF,EAAOC,QAASD,EAAQA,EAAOC,QAAS0+B,GAG/D3+B,EAAO6+B,QAAS,EAGT7+B,EAAOC,QAcf,OATA0+B,EAAoB/1B,EAAI61B,EAGxBE,EAAoB/4B,EAAI84B,EAGxBC,EAAoBG,EAAI,GAGjBH,EAAoB,GAxCrC,CA2CU,CAEJ,SAAS3+B,EAAQC,EAAS0+B,GAE/B,aAwBAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAIqzB,EAAoBJ,EAAoB,GACxCK,EAAeL,EAAoB,GACnCM,EAAWN,EAAoB,GAC/BO,EAAcP,EAAoB,IACtC,SAASnb,EAAM4M,EAAMjwB,EAASg/B,GAC1B,IAAIC,EAAiB,KACjBC,EAAgB,SAAU/hB,EAAMgiB,GAC5BH,GACAA,EAAS7hB,EAAMgiB,GAEfF,GACAA,EAAeG,MAAMjiB,EAAMgiB,IAG/BE,EAAsC,mBAAbL,EAA2BE,EAAgB,KACpEI,GAAiB,EACrB,GAAIt/B,EAAS,CACTs/B,EAA6C,kBAApBt/B,EAAQu/B,SAAyBv/B,EAAQu/B,QAClE,IAAIC,EAAkD,kBAA1Bx/B,EAAQw/B,eAA+Bx/B,EAAQw/B,eACvEF,GAAkBE,MAClBP,EAAiB,IAAIL,EAAkBa,gBACxBC,OAASF,EACxBx/B,EAAQu/B,SAAU,EAClBF,EAAiBH,GAGzB,IAIIS,EAJAC,GAAW,EACX5/B,GAAyC,iBAAvBA,EAAQ6/B,aAC1BD,EAAmC,WAAvB5/B,EAAQ6/B,YAIpBF,EADA3/B,GAAkC,kBAAhBA,EAAQ8/B,KAAqB9/B,EAAQ8/B,IAC9C,IAAIjB,EAAakB,UAAU9P,EAAMjwB,EAASq/B,GAG1C,IAAIP,EAASkB,OAAO/P,EAAMjwB,EAASq/B,GAEhD,IACItB,EADU6B,EAAWD,EAAOM,cAAgBN,EAAOO,cAWvD,OATIZ,GAAkBL,IAClBlB,EAAIoC,SAAWlB,EAAekB,UAE9BR,EAAOS,OAAOte,SACdic,EAAIjc,OAAS6d,EAAO7d,QAEpB6d,EAAOS,OAAOC,WACdtC,EAAIuC,OAASX,EAAOY,aAAaD,QAE9BvC,EAEXj+B,EAAQujB,MAAQA,EAMhBvjB,EAAQmgC,YALR,SAAqBhQ,EAAMjwB,EAASg/B,GAChC,IAAIwB,EAAiBxgC,GAAW,GAEhC,OADAwgC,EAAeX,WAAa,SACrBxc,EAAM4M,EAAMuQ,EAAgBxB,IAQvCl/B,EAAQogC,YALR,SAAqBjQ,EAAMjwB,EAASg/B,GAChC,IAAIwB,EAAiBxgC,GAAW,GAEhC,OADAwgC,EAAeX,WAAa,SACrBxc,EAAM4M,EAAMuQ,EAAgBxB,IA2BvCl/B,EAAQ2gC,SAxBR,SAAkBxQ,EAAMjwB,EAASg/B,GAC7B,IACIld,EADA4e,EAAY,IAAI3B,EAAY4B,UAAU1Q,EAAMjwB,GAEhD8hB,EAAS,GACT,IACI,OAAa,CACT,IAAI8e,EAAQF,EAAUG,eACtB,IAAKD,EACD,MAEA5B,IACA4B,EAAQ5B,EAAS4B,IAErB9e,EAAOxe,KAAKs9B,IAGpB,MAAOj7B,GACH+6B,EAAUH,aAAaO,SAASn7B,GAKpC,OAHI+6B,EAAUH,aAAaF,WACvBve,EAAOwe,OAASI,EAAUJ,UAEvBxe,GAGX,IAAIif,EAAWvC,EAAoB,GACnC1+B,EAAQkhC,OAASD,EAASC,OAE1BlhC,EAAQ2mB,QAAU,SAKb,SAAS5mB,EAAQC,EAAS0+B,GAE/B,aACAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAIw1B,EAAWvC,EAAoB,GAC/BiB,EAAkB,WAClB,SAASA,IACLj/B,KAAKk/B,QAAS,EACdl/B,KAAK2/B,SAAW,GAChB3/B,KAAK4E,MAAQ,GACb5E,KAAKygC,QAAU,GACfzgC,KAAK0gC,SAAW,GAyIpB,OAvIAzB,EAAep6B,UAAU87B,oBAAsB,SAAUhkB,EAAMgiB,GAG3D,GAAIhiB,EAAK3Z,OAASu9B,EAASC,OAAOI,gBAAuC,IAArBjkB,EAAK8gB,KAAKx7B,OAAc,CAExE,IADA,IAAI4+B,EAAgB,GACX5yB,EAAIjO,KAAKygC,QAAQx+B,OAAS,EAAGgM,GAAK,IAAKA,EAAG,CAC/C,IAAI6yB,EAAQ9gC,KAAKygC,QAAQxyB,GACrB0wB,EAASt2B,IAAIsG,QAAUmyB,EAAM14B,QAC7By4B,EAAc1jB,QAAQ2jB,EAAM/B,SAC5B/+B,KAAKygC,QAAQ1rB,OAAO9G,EAAG,GACvBjO,KAAK0gC,SAAS3rB,OAAO9G,EAAG,IAG5B4yB,EAAc5+B,SACd0a,EAAKkkB,cAAgBA,KAIjC5B,EAAep6B,UAAUk8B,qBAAuB,SAAUpC,GACtD,IAAIqC,EAAmB,GACvB,GAAIhhC,KAAK0gC,SAASz+B,OAAS,EAAG,CAC1B,IAAK,IAAIgM,EAAIjO,KAAK0gC,SAASz+B,OAAS,EAAGgM,GAAK,IAAKA,EAAG,CAChD,IAAIgzB,EAAUjhC,KAAK0gC,SAASzyB,GACxBgzB,EAAQ74B,OAASu2B,EAASt2B,IAAIsG,QAC9BqyB,EAAiB7jB,QAAQ8jB,EAAQlC,SAIzC,OADA/+B,KAAK0gC,SAASz+B,OAAS,EAChB++B,EAEX,IAAIF,EAAQ9gC,KAAK4E,MAAM5E,KAAK4E,MAAM3C,OAAS,GAC3C,GAAI6+B,GAASA,EAAMnkB,KAAKqkB,iBAAkB,CACtC,IAAIE,EAAeJ,EAAMnkB,KAAKqkB,iBAAiB,GAC3CE,GAAgBA,EAAa1D,MAAM,IAAMmB,EAASt2B,IAAIsG,SACtDqyB,EAAmBF,EAAMnkB,KAAKqkB,wBACvBF,EAAMnkB,KAAKqkB,kBAG1B,OAAOA,GAEX/B,EAAep6B,UAAUs8B,oBAAsB,SAAUxC,GAGrD,IAFA,IACI78B,EADAs/B,EAAkB,GAEfphC,KAAK4E,MAAM3C,OAAS,GAAG,CAE1B,MADI6+B,EAAQ9gC,KAAK4E,MAAM5E,KAAK4E,MAAM3C,OAAS,KAC9B6+B,EAAM14B,OAASu2B,EAASv2B,MAAMuG,QAKvC,MAJA7M,EAASg/B,EAAMnkB,KACf3c,KAAK4E,MAAM8V,MAMnB,GAAI5Y,EAAQ,CAER,IADA,IACSmM,GADGnM,EAAOs/B,gBAAkBt/B,EAAOs/B,gBAAgBn/B,OAAS,GAChD,EAAGgM,GAAK,IAAKA,EAAG,CACjC,IAAI8wB,EAAUj9B,EAAOs/B,gBAAgBnzB,GACjC8wB,EAAQvB,MAAM,IAAMmB,EAASv2B,MAAMuG,SACnCyyB,EAAgBjkB,QAAQ4hB,GACxBj9B,EAAOs/B,gBAAgBrsB,OAAO9G,EAAG,IAMzC,OAHInM,EAAOs/B,iBAAqD,IAAlCt/B,EAAOs/B,gBAAgBn/B,eAC1CH,EAAOs/B,gBAEXA,EAEX,IAASnzB,EAAIjO,KAAKygC,QAAQx+B,OAAS,EAAGgM,GAAK,IAAKA,EAAG,CAC/C,IAAI6yB,KAAQ9gC,KAAKygC,QAAQxyB,IACf7F,OAASu2B,EAASv2B,MAAMuG,SAC9ByyB,EAAgBjkB,QAAQ2jB,EAAM/B,SAC9B/+B,KAAKygC,QAAQ1rB,OAAO9G,EAAG,IAG/B,OAAOmzB,GAEXnC,EAAep6B,UAAUw8B,UAAY,SAAU1kB,EAAMgiB,GACjD,KAAIhiB,EAAK3Z,OAASu9B,EAASC,OAAOc,SAAW3kB,EAAK8gB,KAAKx7B,OAAS,GAAhE,CAGAjC,KAAK2gC,oBAAoBhkB,EAAMgiB,GAC/B,IAAIqC,EAAmBhhC,KAAK+gC,qBAAqBpC,GAC7CyC,EAAkBphC,KAAKmhC,oBAAoBxC,GAC3CyC,EAAgBn/B,OAAS,IACzB0a,EAAKykB,gBAAkBA,GAEvBJ,EAAiB/+B,OAAS,IAC1B0a,EAAKqkB,iBAAmBA,GAE5BhhC,KAAK4E,MAAM9B,KAAK,CACZ6Z,KAAMA,EACNvU,MAAOu2B,EAASv2B,MAAMuG,WAG9BswB,EAAep6B,UAAU08B,aAAe,SAAU5kB,EAAMgiB,GACpD,IAAI37B,EAAyB,MAAjB2Z,EAAK3Z,KAAK,GAAc,OAAS,QACzC+7B,EAAU,CACV/7B,KAAMA,EACN+H,MAAO4R,EAAK5R,OAShB,GAPI4R,EAAK6gB,QACLuB,EAAQvB,MAAQ7gB,EAAK6gB,OAErB7gB,EAAK6kB,MACLzC,EAAQyC,IAAM7kB,EAAK6kB,KAEvBxhC,KAAK2/B,SAAS78B,KAAKi8B,GACf/+B,KAAKk/B,OAAQ,CACb,IAAI4B,EAAQ,CACR/B,QAAS,CACL/7B,KAAMA,EACN+H,MAAO4R,EAAK5R,MACZyyB,MAAO,CAACmB,EAASv2B,MAAMuG,OAAQgwB,EAASt2B,IAAIsG,SAEhDvG,MAAOu2B,EAASv2B,MAAMuG,QAEtBgO,EAAK6kB,MACLV,EAAM/B,QAAQyC,IAAM7kB,EAAK6kB,KAE7B7kB,EAAK3Z,KAAOA,EACZhD,KAAKygC,QAAQ39B,KAAKg+B,GAClB9gC,KAAK0gC,SAAS59B,KAAKg+B,KAG3B7B,EAAep6B,UAAU+5B,MAAQ,SAAUjiB,EAAMgiB,GAC3B,gBAAdhiB,EAAK3Z,KACLhD,KAAKuhC,aAAa5kB,EAAMgiB,GAEL,iBAAdhiB,EAAK3Z,KACVhD,KAAKuhC,aAAa5kB,EAAMgiB,GAEnB3+B,KAAKk/B,QACVl/B,KAAKqhC,UAAU1kB,EAAMgiB,IAGtBM,EA/IW,GAiJtB3/B,EAAQ2/B,eAAiBA,GAKpB,SAAS5/B,EAAQC,GAEtB,aACAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtDzL,EAAQkhC,OAAS,CACbiB,qBAAsB,uBACtBC,kBAAmB,oBACnBC,gBAAiB,kBACjBC,aAAc,eACdC,wBAAyB,0BACzBC,gBAAiB,kBACjBlB,eAAgB,iBAChBmB,iBAAkB,mBAClBC,eAAgB,iBAChBC,eAAgB,iBAChBC,YAAa,cACbC,UAAW,YACXC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,sBAAuB,wBACvBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,eAAgB,iBAChBC,qBAAsB,uBACtBC,yBAA0B,2BAC1BC,uBAAwB,yBACxBC,gBAAiB,kBACjBC,oBAAqB,sBACrBC,aAAc,eACdC,eAAgB,iBAChBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,WAAY,aACZC,YAAa,cACbC,kBAAmB,oBACnBC,uBAAwB,yBACxBC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,QAAS,UACTC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,aAAc,eACdC,iBAAkB,mBAClBC,cAAe,gBACfC,iBAAkB,mBAClBC,cAAe,gBACf7C,QAAS,UACT8C,SAAU,WACVC,YAAa,cACbC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,cAAe,gBACfC,MAAO,QACPC,WAAY,aACZC,gBAAiB,kBACjBC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,eAAgB,iBAChBC,aAAc,eACdC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,eAAgB,iBAChBC,cAAe,gBACfC,gBAAiB,oBAMhB,SAASnmC,EAAQC,EAAS0+B,GAE/B,aAEA,IACQyH,EADJC,EAAa1lC,MAAQA,KAAK0lC,YACtBD,EAAgB9lC,OAAOgmC,gBACtB,CAAEnV,UAAW,cAAgBrvB,OAAS,SAAUiE,EAAGS,GAAKT,EAAEorB,UAAY3qB,IACvE,SAAUT,EAAGS,GAAK,IAAK,IAAIs4B,KAAKt4B,EAAOA,EAAEqd,eAAeib,KAAI/4B,EAAE+4B,GAAKt4B,EAAEs4B,KAClE,SAAU/4B,EAAGS,GAEhB,SAAS0pB,IAAOvvB,KAAK2E,YAAcS,EADnCqgC,EAAcrgC,EAAGS,GAEjBT,EAAEP,UAAkB,OAANgB,EAAalG,OAAOqE,OAAO6B,IAAM0pB,EAAG1qB,UAAYgB,EAAEhB,UAAW,IAAI0qB,KAGvF5vB,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAI66B,EAAc5H,EAAoB,GAClC6H,EAAU7H,EAAoB,GAC9B8H,EAAe9H,EAAoB,GACnC+H,EAAO/H,EAAoB,GAC3BM,EAAWN,EAAoB,GAC/BgI,EAAUhI,EAAoB,IAC9BiI,EAAmBjI,EAAoB,IAI3C,SAASkI,EAAwBC,GAC7B,IAAIC,EACJ,OAAQD,EAAYnjC,MAChB,KAAK8iC,EAAaO,UAAUC,cAExBF,EADSD,EACUrmC,KACnB,MACJ,KAAKgmC,EAAaO,UAAUE,kBACxB,IAAIC,EAAKL,EACTC,EAAgBF,EAAwBM,EAAGC,WAAa,IACpDP,EAAwBM,EAAG1mC,MAC/B,MACJ,KAAKgmC,EAAaO,UAAUK,oBACxB,IAAIC,EAAOR,EACXC,EAAgBF,EAAwBS,EAAK3Z,QAAU,IACnDkZ,EAAwBS,EAAK/+B,UAMzC,OAAOw+B,EAxBXJ,EAAQY,UAAU,KAAwB,gBAC1CZ,EAAQY,UAAU,KAAkB,UAyBpC,IAAIrH,EAAa,SAAUsH,GAEvB,SAAStH,EAAU9P,EAAMjwB,EAASg/B,GAC9B,OAAOqI,EAAOtiC,KAAKvE,KAAMyvB,EAAMjwB,EAASg/B,IAAax+B,KAsezD,OAxeA0lC,EAAUnG,EAAWsH,GAIrBtH,EAAU16B,UAAUiiC,uBAAyB,WACzC,OAAO9mC,KAAKogB,MAAM,KAAOpgB,KAAK+mC,eAAiBF,EAAOhiC,UAAUiiC,uBAAuBviC,KAAKvE,OAEhGu/B,EAAU16B,UAAUmiC,SAAW,WAE3BhnC,KAAKinC,QAAQjlC,MAAQhC,KAAKknC,YAAYllC,MACtChC,KAAKinC,QAAQE,WAAannC,KAAKknC,YAAY7hB,KAC3CrlB,KAAKinC,QAAQ3hB,UAAYtlB,KAAKknC,YAAYllC,MAAQhC,KAAKknC,YAAY3a,QAEvEgT,EAAU16B,UAAUuiC,UAAY,WAE5BpnC,KAAKqnC,aAET9H,EAAU16B,UAAUyiC,WAAa,WAC7BtnC,KAAKgnC,WACLhnC,KAAKunC,UAAU,KAEXvnC,KAAK4/B,OAAOte,QACZthB,KAAKshB,OAAO5G,OAGpB6kB,EAAU16B,UAAU2iC,cAAgB,WAEhC,OADAxnC,KAAKynC,kBACE,CACHzlC,MAAOhC,KAAKinC,QAAQjlC,MACpBqjB,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,YAGlDia,EAAU16B,UAAU6iC,mBAAqB,WACrC,MAAO,CACH1lC,MAAOhC,KAAKinC,QAAQjlC,MACpBqjB,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,YAGlDia,EAAU16B,UAAU8iC,gBAAkB,SAAUC,GAM5C,IALA,IAAIloC,EAAS,IACT6gB,GAAQ,EACRsnB,GAAa,EACbC,GAAU,EACVC,GAAM,GACF/nC,KAAKinC,QAAQe,OAASznB,IAAUsnB,GAAY,CAChD,IAAIlgB,EAAK3nB,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,OAC1C,GAAI2lB,IAAOigB,EACP,MAKJ,GAHAC,EAAqB,MAAPlgB,EACdjoB,GAAUioB,IACR3nB,KAAKinC,QAAQjlC,OACV6lC,EACD,OAAQnoC,EAAOuC,QACX,KAAK,EAED6lC,EAAkB,MAAPngB,EACX,MACJ,KAAK,EACGmgB,IAGAvnB,GADAwnB,EAAc,MAAPpgB,IACQie,EAAYqC,UAAUC,eAAevgB,EAAGZ,WAAW,IAClE+gB,EAAUA,IAAYC,GAE1B,MACJ,QAEIxnB,GADAA,EAAQA,KAAWunB,IAAYlC,EAAYqC,UAAUC,eAAevgB,EAAGZ,WAAW,SAC/DghB,IAAQnC,EAAYqC,UAAUE,WAAWxgB,EAAGZ,WAAW,MAK1F,GAAIxG,GAASsnB,GAAcnoC,EAAOuC,OAAS,EAAG,CAE1C,IAAIwxB,EAAM/zB,EAAO2zB,OAAO,EAAG3zB,EAAOuC,OAAS,GACvC6lC,GAAWrU,EAAIxxB,OAAS,EACxBvC,EAASkB,OAAO6jB,aAAayB,SAASuN,EAAIJ,OAAO,GAAI,KAEhD0U,GAAOtU,EAAIxxB,OAAS,EACzBvC,EAASkB,OAAO6jB,aAAayB,SAAS,IAAMuN,EAAIJ,OAAO,GAAI,KAErDyU,GAAYC,IAAO9B,EAAiBmC,cAAc3U,KACxD/zB,EAASumC,EAAiBmC,cAAc3U,IAGhD,OAAO/zB,GAGX6/B,EAAU16B,UAAUwjC,OAAS,WACzB,IAAIC,EAAKtoC,KAAKinC,QAAQllC,OAAOglB,WAAW/mB,KAAKinC,QAAQjlC,OAErD,GAAW,KAAPsmC,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,MAAPA,GAAqB,MAAPA,EAE/E,MAAO,CACHtlC,KAAM,EACN+H,MAHAA,EAAQ/K,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,SAIzCmlC,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAWtlB,KAAKinC,QAAQ3hB,UACxBld,MAAOpI,KAAKinC,QAAQjlC,MAAQ,EAC5BqG,IAAKrI,KAAKinC,QAAQjlC,OAI1B,GAAW,KAAPsmC,GAAoB,KAAPA,EAAW,CAIxB,IAHA,IAAIlgC,EAAQpI,KAAKinC,QAAQjlC,MACrB4lC,EAAQ5nC,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,SACzCyxB,EAAM,IACFzzB,KAAKinC,QAAQe,OAAO,CAExB,IADIrgB,EAAK3nB,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,YAC/B4lC,EACP,MAGAnU,GADY,MAAP9L,EACE3nB,KAAK2nC,gBAAgBC,GAGrBjgB,EAGf,MAAO,CACH3kB,KAAM,EACN+H,MAAO0oB,EACP0T,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAWtlB,KAAKinC,QAAQ3hB,UACxBld,MAAOA,EACPC,IAAKrI,KAAKinC,QAAQjlC,OAI1B,GAAW,KAAPsmC,EAAW,CACX,IAAIC,EAAKvoC,KAAKinC,QAAQllC,OAAOglB,WAAW/mB,KAAKinC,QAAQjlC,MAAQ,GACzDwmC,EAAKxoC,KAAKinC,QAAQllC,OAAOglB,WAAW/mB,KAAKinC,QAAQjlC,MAAQ,GACzD+I,EAAgB,KAAPw9B,GAAoB,KAAPC,EAAa,MAAQ,IAC3CpgC,EAAQpI,KAAKinC,QAAQjlC,MAEzB,OADAhC,KAAKinC,QAAQjlC,OAAS+I,EAAM9I,OACrB,CACHe,KAAM,EACN+H,MAAOA,EACPo8B,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAWtlB,KAAKinC,QAAQ3hB,UACxBld,MAAOA,EACPC,IAAKrI,KAAKinC,QAAQjlC,OAI1B,GAAW,KAAPsmC,EAEA,MAAO,CACHtlC,KAAM,GACN+H,MAAO,GACPo8B,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAWtlB,KAAKinC,QAAQ3hB,UACxBld,MAAOpI,KAAKinC,QAAQjlC,MACpBqG,IAAKrI,KAAKinC,QAAQjlC,OAI1B,GAAI4jC,EAAYqC,UAAUQ,kBAAkBH,IAAe,KAAPA,EAAY,CACxDlgC,EAAQpI,KAAKinC,QAAQjlC,MAEzB,MADEhC,KAAKinC,QAAQjlC,OACPhC,KAAKinC,QAAQe,OAAO,CACxB,IAAIrgB,EAAK3nB,KAAKinC,QAAQllC,OAAOglB,WAAW/mB,KAAKinC,QAAQjlC,OACrD,GAAI4jC,EAAYqC,UAAUS,iBAAiB/gB,IAAe,KAAPA,IAC7C3nB,KAAKinC,QAAQjlC,UAEd,IAAW,KAAP2lB,EAKL,QAHE3nB,KAAKinC,QAAQjlC,OAOvB,MAAO,CACHgB,KAAM,IACN+H,MAHK/K,KAAKinC,QAAQllC,OAAO0H,MAAMrB,EAAOpI,KAAKinC,QAAQjlC,OAInDmlC,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAWtlB,KAAKinC,QAAQ3hB,UACxBld,MAAOA,EACPC,IAAKrI,KAAKinC,QAAQjlC,OAG1B,OAAOhC,KAAKinC,QAAQ0B,OAExBpJ,EAAU16B,UAAU+jC,aAAe,WAC/B5oC,KAAKynC,kBACLznC,KAAKknC,YAAYllC,MAAQhC,KAAKinC,QAAQjlC,MACtChC,KAAKknC,YAAY7hB,KAAOrlB,KAAKinC,QAAQE,WACrCnnC,KAAKknC,YAAY3a,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,UAC5D,IAAI8a,EAAQpgC,KAAKqoC,SAOjB,OANAroC,KAAK6oC,WAAW7mC,MAAQhC,KAAKinC,QAAQjlC,MACrChC,KAAK6oC,WAAWxjB,KAAOrlB,KAAKinC,QAAQE,WACpCnnC,KAAK6oC,WAAWtc,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,UACvDtlB,KAAK4/B,OAAOte,QACZthB,KAAKshB,OAAOxe,KAAK9C,KAAK8oC,aAAa1I,IAEhCA,GAEXb,EAAU16B,UAAUkkC,YAAc,WAC9B/oC,KAAKknC,YAAYllC,MAAQhC,KAAKinC,QAAQjlC,MACtChC,KAAKknC,YAAY7hB,KAAOrlB,KAAKinC,QAAQE,WACrCnnC,KAAKknC,YAAY3a,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,UAG5D,IAFA,IAAIld,EAAQpI,KAAKinC,QAAQjlC,MACrBgnC,EAAO,IACHhpC,KAAKinC,QAAQe,OAAO,CACxB,IAAIrgB,EAAK3nB,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,OAC1C,GAAW,MAAP2lB,GAAqB,MAAPA,EACd,QAEF3nB,KAAKinC,QAAQjlC,MACfgnC,GAAQrhB,EACJie,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,QACnD/mB,KAAKinC,QAAQE,WACJ,OAAPxf,GAA2D,OAA5C3nB,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,UAC9ChC,KAAKinC,QAAQjlC,MAEnBhC,KAAKinC,QAAQ3hB,UAAYtlB,KAAKinC,QAAQjlC,OAG9ChC,KAAK6oC,WAAW7mC,MAAQhC,KAAKinC,QAAQjlC,MACrChC,KAAK6oC,WAAWxjB,KAAOrlB,KAAKinC,QAAQE,WACpCnnC,KAAK6oC,WAAWtc,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,UAC3D,IAAI8a,EAAQ,CACRp9B,KAAM,IACN+H,MAAOi+B,EACP7B,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAWtlB,KAAKinC,QAAQ3hB,UACxBld,MAAOA,EACPC,IAAKrI,KAAKinC,QAAQjlC,OAKtB,OAHKgnC,EAAK/mC,OAAS,GAAMjC,KAAK4/B,OAAOte,QACjCthB,KAAKshB,OAAOxe,KAAK9C,KAAK8oC,aAAa1I,IAEhCA,GAEXb,EAAU16B,UAAUqkC,aAAe,WAC/B,IAAIxjB,EAAQ1lB,KAAKinC,QAAQkC,YACzBnpC,KAAKinC,QAAQmC,eACb,IAAIC,EAAOrpC,KAAKqoC,SAEhB,OADAroC,KAAKinC,QAAQqC,aAAa5jB,GACnB2jB,GAIX9J,EAAU16B,UAAU0iC,UAAY,SAAUx8B,GACtC,IAAIq1B,EAAQpgC,KAAK4oC,eACE,IAAfxI,EAAMp9B,MAA+Bo9B,EAAMr1B,QAAUA,GACrD/K,KAAKupC,qBAAqBnJ,IAIlCb,EAAU16B,UAAU2kC,SAAW,SAAUz+B,GACrC,IAAIs+B,EAAOrpC,KAAKkpC,eAChB,OAAqB,IAAdG,EAAKrmC,MAA+BqmC,EAAKt+B,QAAUA,GAE9Dw0B,EAAU16B,UAAU4kC,mBAAqB,WACrC,IAAI9sB,EAAO3c,KAAKwnC,gBACZpH,EAAQpgC,KAAK4oC,eAIjB,OAHmB,MAAfxI,EAAMp9B,MACNhD,KAAKupC,qBAAqBnJ,GAEvBpgC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQS,cAAclG,EAAMr1B,SAE/Dw0B,EAAU16B,UAAU8kC,oBAAsB,WACtC,IAAIhtB,EAAO3c,KAAKwnC,gBACZrB,EAAcnmC,KAAKypC,qBACvB,GAAIzpC,KAAKwpC,SAAS,KAAM,CACpB,IAAI/C,EAAYN,EAChBnmC,KAAKunC,UAAU,KACf,IAAIqC,EAAS5pC,KAAKypC,qBAClBtD,EAAcnmC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQU,kBAAkBE,EAAWmD,SAE1E,GAAI5pC,KAAKwpC,SAAS,KACnB,KAAOxpC,KAAKwpC,SAAS,MAAM,CACvB,IAAIxc,EAASmZ,EACbnmC,KAAKunC,UAAU,KACf,IAAI3/B,EAAW5H,KAAKypC,qBACpBtD,EAAcnmC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQa,oBAAoB1Z,EAAQplB,IAGlF,OAAOu+B,GAEX5G,EAAU16B,UAAUglC,sBAAwB,WACxC,IACIC,EADAntB,EAAO3c,KAAKwnC,gBAEZuC,EAAa/pC,KAAKypC,qBACtB,GAAIzpC,KAAKwpC,SAAS,KAAM,CACpB,IAAI/C,EAAYsD,EAChB/pC,KAAKunC,UAAU,KACf,IAAIyC,EAAShqC,KAAKypC,qBAClBK,EAAgB9pC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQU,kBAAkBE,EAAWuD,SAG7EF,EAAgBC,EAEpB,OAAOD,GAEXvK,EAAU16B,UAAUolC,+BAAiC,WACjD,IAAIttB,EAAO3c,KAAKwnC,gBACZpH,EAAQpgC,KAAK4oC,eACE,IAAfxI,EAAMp9B,MACNhD,KAAKupC,qBAAqBnJ,GAE9B,IAAI8J,EAAMlqC,KAAKmqC,YAAY/J,GAC3B,OAAOpgC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpC,QAAQvD,EAAMr1B,MAAOm/B,KAE7D3K,EAAU16B,UAAUulC,4BAA8B,WAC9C,IAAIztB,EAAO3c,KAAKwnC,gBAChBxnC,KAAKunC,UAAU,KACfvnC,KAAKonC,YACDpnC,KAAKogB,MAAM,MACXpgB,KAAKqqC,cAAc,+DAEvB,IAAI3M,EAAa19B,KAAKsqC,4BAEtB,OADAtqC,KAAKsnC,aACEtnC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQ0E,uBAAuB7M,KAElE6B,EAAU16B,UAAU2lC,uBAAyB,WACzC,OAAOxqC,KAAKwpC,SAAS,KAAOxpC,KAAKoqC,8BAC7BpqC,KAAKwpC,SAAS,KAAOxpC,KAAKyqC,kBAAoBzqC,KAAKiqC,kCAE3D1K,EAAU16B,UAAU6lC,2BAA6B,WAC7C,IAAI/tB,EAAO3c,KAAKwnC,gBACZ1nC,EAAOE,KAAK6pC,wBACZ9+B,EAAQ,KAKZ,OAJI/K,KAAKwpC,SAAS,OACdxpC,KAAKunC,UAAU,KACfx8B,EAAQ/K,KAAKwqC,0BAEVxqC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQ8E,aAAa7qC,EAAMiL,KAE9Dw0B,EAAU16B,UAAU+lC,wBAA0B,WAC1C,IAAIjuB,EAAO3c,KAAKwnC,gBAChBxnC,KAAKunC,UAAU,KACfvnC,KAAKunC,UAAU,OACfvnC,KAAKonC,YACL,IAAIyD,EAAW7qC,KAAKsqC,4BAEpB,OADAtqC,KAAKsnC,aACEtnC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQiF,mBAAmBD,KAE9DtL,EAAU16B,UAAUkmC,mBAAqB,WAErC,IADA,IAAIC,EAAa,IACThrC,KAAKwpC,SAAS,OAASxpC,KAAKwpC,SAAS,MAAM,CAC/C,IAAIyB,EAAYjrC,KAAKwpC,SAAS,KAAOxpC,KAAK4qC,0BACtC5qC,KAAK0qC,6BACTM,EAAWloC,KAAKmoC,GAEpB,OAAOD,GAEXzL,EAAU16B,UAAUqmC,uBAAyB,WACzC,IAAIvuB,EAAO3c,KAAKwnC,gBAChBxnC,KAAKunC,UAAU,KACf,IAAIznC,EAAOE,KAAK2pC,sBACZqB,EAAahrC,KAAK+qC,qBAClBI,EAAcnrC,KAAKwpC,SAAS,KAKhC,OAJI2B,GACAnrC,KAAKunC,UAAU,KAEnBvnC,KAAKunC,UAAU,KACRvnC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQuF,kBAAkBtrC,EAAMqrC,EAAaH,KAEhFzL,EAAU16B,UAAUwmC,wBAA0B,WAC1C,IAAI1uB,EAAO3c,KAAKwnC,gBAEhB,GADAxnC,KAAKunC,UAAU,KACXvnC,KAAKwpC,SAAS,KAAM,CACpBxpC,KAAKunC,UAAU,KACf,IAAI+D,EAAStrC,KAAK2pC,sBAElB,OADA3pC,KAAKunC,UAAU,KACRvnC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQ0F,kBAAkBD,IAE7D,IAAIxrC,EAAOE,KAAK2pC,sBACZqB,EAAahrC,KAAK+qC,qBAClBI,EAAcnrC,KAAKwpC,SAAS,KAKhC,OAJI2B,GACAnrC,KAAKunC,UAAU,KAEnBvnC,KAAKunC,UAAU,KACRvnC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQuF,kBAAkBtrC,EAAMqrC,EAAaH,KAEhFzL,EAAU16B,UAAU2mC,wBAA0B,WAC1C,IAAI7uB,EAAO3c,KAAK0nC,qBAKhB,OAJA1nC,KAAKynC,kBACLznC,KAAK6oC,WAAW7mC,MAAQhC,KAAKinC,QAAQjlC,MACrChC,KAAK6oC,WAAWxjB,KAAOrlB,KAAKinC,QAAQE,WACpCnnC,KAAK6oC,WAAWtc,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,UACpDtlB,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQ4F,qBAE3ClM,EAAU16B,UAAU6mC,4BAA8B,WAC9C,IAEIhO,EAFA/gB,EAAO3c,KAAKwnC,gBAYhB,OAXAxnC,KAAKunC,UAAU,KAEXvnC,KAAKwpC,SAAS,MACd9L,EAAa19B,KAAKwrC,0BAClBxrC,KAAKunC,UAAU,OAGfvnC,KAAKonC,YACL1J,EAAa19B,KAAKsqC,4BAClBtqC,KAAKsnC,cAEFtnC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQ0E,uBAAuB7M,KAElE6B,EAAU16B,UAAU8mC,iBAAmB,WAEnC,IADA,IAAIpyB,EAAW,IACPvZ,KAAKinC,QAAQe,OAAO,CACxB,IAAIrrB,EAAO3c,KAAK0nC,qBACZtH,EAAQpgC,KAAK+oC,cACjB,GAAI3I,EAAMh4B,MAAQg4B,EAAM/3B,IAAK,CACzB,IAAI6hC,EAAMlqC,KAAKmqC,YAAY/J,GACvB1mB,EAAQ1Z,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQ+F,QAAQxL,EAAMr1B,MAAOm/B,IACjE3wB,EAASzW,KAAK4W,GAElB,GAAgD,MAA5C1Z,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,OAKjC,MAJA,IAAI6pC,EAAY7rC,KAAK0rC,8BACrBnyB,EAASzW,KAAK+oC,GAMtB,OAAOtyB,GAEXgmB,EAAU16B,UAAUinC,uBAAyB,SAAUC,GAEnD,IADA,IAAInnC,EAAQ,IACJ5E,KAAKinC,QAAQe,OAAO,CACxB+D,EAAGxyB,SAAWwyB,EAAGxyB,SAAS/E,OAAOxU,KAAK2rC,oBACtC,IAAIhvB,EAAO3c,KAAK0nC,qBACZ1yB,EAAUhV,KAAKqrC,0BACnB,GAAIr2B,EAAQhS,OAAS8iC,EAAaO,UAAU+E,kBAAmB,CAC3D,IAAIY,EAAUh3B,EACd,GAAIg3B,EAAQb,YAAa,CACrB,IAAIzxB,EAAQ1Z,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQoG,WAAWD,EAAS,GAAI,OACpED,EAAGxyB,SAASzW,KAAK4W,QAGjB9U,EAAM9B,KAAKipC,GACXA,EAAK,CAAEpvB,KAAMA,EAAMqvB,QAASA,EAASE,QAAS,KAAM3yB,SAAU,IAGtE,GAAIvE,EAAQhS,OAAS8iC,EAAaO,UAAUkF,kBAAmB,CAC3DQ,EAAGG,QAAUl3B,EACb,IAAIm3B,EAASjG,EAAwB6F,EAAGC,QAAQlsC,MAKhD,GAHIqsC,IADUjG,EAAwB6F,EAAGG,QAAQpsC,OAE7CE,KAAKqqC,cAAc,gDAAiD8B,KAEpEvnC,EAAM3C,OAAS,GAOf,MANIyX,EAAQ1Z,KAAK0pC,SAASqC,EAAGpvB,KAAM,IAAIkpB,EAAQoG,WAAWF,EAAGC,QAASD,EAAGxyB,SAAUwyB,EAAGG,WACtFH,EAAKnnC,EAAMA,EAAM3C,OAAS,IACvBsX,SAASzW,KAAK4W,GACjB9U,EAAM8V,OAOlB,OAAOqxB,GAEXxM,EAAU16B,UAAU4lC,gBAAkB,WAClC,IAAI9tB,EAAO3c,KAAKwnC,gBACZwE,EAAUhsC,KAAKkrC,yBACf3xB,EAAW,GACX2yB,EAAU,KACd,IAAKF,EAAQb,YAAa,CACtB,IAAIY,EAAK/rC,KAAK8rC,uBAAuB,CAAEnvB,KAAMA,EAAMqvB,QAASA,EAASE,QAASA,EAAS3yB,SAAUA,IACjGA,EAAWwyB,EAAGxyB,SACd2yB,EAAUH,EAAGG,QAEjB,OAAOlsC,KAAK0pC,SAAS/sB,EAAM,IAAIkpB,EAAQoG,WAAWD,EAASzyB,EAAU2yB,KAEzE3M,EAAU16B,UAAUkiC,aAAe,WAE3B/mC,KAAK4/B,OAAOte,QACZthB,KAAKshB,OAAO5G,MAEhB1a,KAAKgnC,WACL,IAAIhyB,EAAUhV,KAAKyqC,kBAEnB,OADAzqC,KAAKonC,YACEpyB,GAEXuqB,EAAU16B,UAAUunC,oBAAsB,WACtC,OAAOvF,EAAOhiC,UAAUunC,oBAAoB7nC,KAAKvE,OAASA,KAAKogB,MAAM,MAElEmf,EAzeM,CA0efjB,EAASkB,QACXlgC,EAAQigC,UAAYA,GAKf,SAASlgC,EAAQC,GAEtB,aACAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IAEtD,IAAIshC,EAAQ,CAERC,wBAAyB,u/MAEzBC,uBAAwB,4yPAE5BjtC,EAAQ2oC,UAAY,CAEhBuE,cAAe,SAAUlE,GACrB,OAAQA,EAAK,MAAW1nC,OAAO6jB,aAAa6jB,GACxC1nC,OAAO6jB,aAAa,OAAW6jB,EAAK,OAAY,KAC5C1nC,OAAO6jB,aAAa,OAAW6jB,EAAK,MAAW,QAG3DmE,aAAc,SAAUnE,GACpB,OAAe,KAAPA,GAAwB,IAAPA,GAAwB,KAAPA,GAAwB,KAAPA,GAAwB,MAAPA,GACvEA,GAAM,MAAU,CAAC,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,OAAQvoC,QAAQuoC,IAAO,GAGzKW,iBAAkB,SAAUX,GACxB,OAAe,KAAPA,GAAwB,KAAPA,GAAwB,OAAPA,GAA0B,OAAPA,GAGjEG,kBAAmB,SAAUH,GACzB,OAAe,KAAPA,GAAwB,KAAPA,GACpBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,KACb,KAAPA,GACCA,GAAM,KAAS+D,EAAMC,wBAAwB/lB,KAAKjnB,EAAQ2oC,UAAUuE,cAAclE,KAE5FI,iBAAkB,SAAUJ,GACxB,OAAe,KAAPA,GAAwB,KAAPA,GACpBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,KACpBA,GAAM,IAAQA,GAAM,IACb,KAAPA,GACCA,GAAM,KAAS+D,EAAME,uBAAuBhmB,KAAKjnB,EAAQ2oC,UAAUuE,cAAclE,KAG3FJ,eAAgB,SAAUI,GACtB,OAAQA,GAAM,IAAQA,GAAM,IAEhCH,WAAY,SAAUG,GAClB,OAAQA,GAAM,IAAQA,GAAM,IACvBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,KAE7BoE,aAAc,SAAUpE,GACpB,OAAQA,GAAM,IAAQA,GAAM,MAO/B,SAASjpC,EAAQC,EAAS0+B,GAE/B,aACAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAI+6B,EAAe9H,EAAoB,GAEnCuN,EAAqB,WAKrB,OAJA,SAA2BzrC,GACvBE,KAAKgD,KAAO8iC,EAAaO,UAAUkF,kBACnCvrC,KAAKF,KAAOA,GAHK,GAOzBR,EAAQisC,kBAAoBA,EAC5B,IAAIU,EAAc,WAOd,OANA,SAAoBU,EAAgBpzB,EAAUqzB,GAC1C5sC,KAAKgD,KAAO8iC,EAAaO,UAAU4F,WACnCjsC,KAAK2sC,eAAiBA,EACtB3sC,KAAKuZ,SAAWA,EAChBvZ,KAAK4sC,eAAiBA,GALZ,GASlBttC,EAAQ2sC,WAAaA,EACrB,IAAIR,EAAsB,WAItB,OAHA,WACIzrC,KAAKgD,KAAO8iC,EAAaO,UAAUoF,oBAFjB,GAM1BnsC,EAAQmsC,mBAAqBA,EAC7B,IAAIlB,EAA0B,WAK1B,OAJA,SAAgC7M,GAC5B19B,KAAKgD,KAAO8iC,EAAaO,UAAUkE,uBACnCvqC,KAAK09B,WAAaA,GAHI,GAO9Bp+B,EAAQirC,uBAAyBA,EACjC,IAAIjE,EAAiB,WAKjB,OAJA,SAAuBxmC,GACnBE,KAAKgD,KAAO8iC,EAAaO,UAAUC,cACnCtmC,KAAKF,KAAOA,GAHC,GAOrBR,EAAQgnC,cAAgBA,EACxB,IAAII,EAAuB,WAMvB,OALA,SAA6B1Z,EAAQplB,GACjC5H,KAAKgD,KAAO8iC,EAAaO,UAAUK,oBACnC1mC,KAAKgtB,OAASA,EACdhtB,KAAK4H,SAAWA,GAJG,GAQ3BtI,EAAQonC,oBAAsBA,EAC9B,IAAIiE,EAAgB,WAMhB,OALA,SAAsB7qC,EAAMiL,GACxB/K,KAAKgD,KAAO8iC,EAAaO,UAAUsE,aACnC3qC,KAAKF,KAAOA,EACZE,KAAK+K,MAAQA,GAJD,GAQpBzL,EAAQqrC,aAAeA,EACvB,IAAIpE,EAAqB,WAMrB,OALA,SAA2BE,EAAW3mC,GAClCE,KAAKgD,KAAO8iC,EAAaO,UAAUE,kBACnCvmC,KAAKymC,UAAYA,EACjBzmC,KAAKF,KAAOA,GAJK,GAQzBR,EAAQinC,kBAAoBA,EAC5B,IAAI6E,EAAqB,WAOrB,OANA,SAA2BtrC,EAAMqrC,EAAaH,GAC1ChrC,KAAKgD,KAAO8iC,EAAaO,UAAU+E,kBACnCprC,KAAKF,KAAOA,EACZE,KAAKmrC,YAAcA,EACnBnrC,KAAKgrC,WAAaA,GALD,GASzB1rC,EAAQ8rC,kBAAoBA,EAC5B,IAAIN,EAAsB,WAKtB,OAJA,SAA4BD,GACxB7qC,KAAKgD,KAAO8iC,EAAaO,UAAUyE,mBACnC9qC,KAAK6qC,SAAWA,GAHE,GAO1BvrC,EAAQwrC,mBAAqBA,EAC7B,IAAIc,EAAW,WAMX,OALA,SAAiB7gC,EAAOm/B,GACpBlqC,KAAKgD,KAAO8iC,EAAaO,UAAUuF,QACnC5rC,KAAK+K,MAAQA,EACb/K,KAAKkqC,IAAMA,GAJJ,GAQf5qC,EAAQssC,QAAUA,GAKb,SAASvsC,EAAQC,GAEtB,aACAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtDzL,EAAQ+mC,UAAY,CAChBsE,aAAc,eACdY,kBAAmB,oBACnBU,WAAY,aACZR,mBAAoB,qBACpBlB,uBAAwB,yBACxBjE,cAAe,gBACfI,oBAAqB,sBACrBH,kBAAmB,oBACnB6E,kBAAmB,oBACnBN,mBAAoB,qBACpBc,QAAS,YAMR,SAASvsC,EAAQC,EAAS0+B,GAE/B,aACAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAIw1B,EAAWvC,EAAoB,GAE/B2D,EAAmB,WAKnB,OAJA,SAAyBkL,GACrB7sC,KAAKgD,KAAOu9B,EAASC,OAAOmB,gBAC5B3hC,KAAK6sC,SAAWA,GAHD,GAOvBvtC,EAAQqiC,gBAAkBA,EAC1B,IAAIC,EAAgB,WAKhB,OAJA,SAAsBiL,GAClB7sC,KAAKgD,KAAOu9B,EAASC,OAAOoB,aAC5B5hC,KAAK6sC,SAAWA,GAHJ,GAOpBvtC,EAAQsiC,aAAeA,EACvB,IAAIC,EAA2B,WAU3B,OATA,SAAiC/7B,EAAQ23B,EAAMC,GAC3C19B,KAAKgD,KAAOu9B,EAASC,OAAOqB,wBAC5B7hC,KAAKqF,GAAK,KACVrF,KAAK8F,OAASA,EACd9F,KAAKy9B,KAAOA,EACZz9B,KAAK8sC,WAAY,EACjB9sC,KAAK09B,WAAaA,EAClB19B,KAAK+sC,OAAQ,GARU,GAY/BztC,EAAQuiC,wBAA0BA,EAClC,IAAIJ,EAAwB,WAOxB,OANA,SAA8BuL,EAAU1wB,EAAMC,GAC1Cvc,KAAKgD,KAAOu9B,EAASC,OAAOiB,qBAC5BzhC,KAAKgtC,SAAWA,EAChBhtC,KAAKsc,KAAOA,EACZtc,KAAKuc,MAAQA,GALO,GAS5Bjd,EAAQmiC,qBAAuBA,EAC/B,IAAIC,EAAqB,WAMrB,OALA,SAA2BplB,EAAMC,GAC7Bvc,KAAKgD,KAAOu9B,EAASC,OAAOkB,kBAC5B1hC,KAAKsc,KAAOA,EACZtc,KAAKuc,MAAQA,GAJI,GAQzBjd,EAAQoiC,kBAAoBA,EAC5B,IAAIuL,EAAgC,WAUhC,OATA,SAAsCnnC,EAAQ23B,EAAMC,GAChD19B,KAAKgD,KAAOu9B,EAASC,OAAOqB,wBAC5B7hC,KAAKqF,GAAK,KACVrF,KAAK8F,OAASA,EACd9F,KAAKy9B,KAAOA,EACZz9B,KAAK8sC,WAAY,EACjB9sC,KAAK09B,WAAaA,EAClB19B,KAAK+sC,OAAQ,GARe,GAYpCztC,EAAQ2tC,6BAA+BA,EACvC,IAAIC,EAA4B,WAU5B,OATA,SAAkC7nC,EAAIS,EAAQ23B,GAC1Cz9B,KAAKgD,KAAOu9B,EAASC,OAAO2C,oBAC5BnjC,KAAKqF,GAAKA,EACVrF,KAAK8F,OAASA,EACd9F,KAAKy9B,KAAOA,EACZz9B,KAAK8sC,WAAY,EACjB9sC,KAAK09B,YAAa,EAClB19B,KAAK+sC,OAAQ,GARW,GAYhCztC,EAAQ4tC,yBAA2BA,EACnC,IAAIC,EAA2B,WAU3B,OATA,SAAiC9nC,EAAIS,EAAQ23B,GACzCz9B,KAAKgD,KAAOu9B,EAASC,OAAO4C,mBAC5BpjC,KAAKqF,GAAKA,EACVrF,KAAK8F,OAASA,EACd9F,KAAKy9B,KAAOA,EACZz9B,KAAK8sC,WAAY,EACjB9sC,KAAK09B,YAAa,EAClB19B,KAAK+sC,OAAQ,GARU,GAY/BztC,EAAQ6tC,wBAA0BA,EAClC,IAAIrL,EAAmB,WAKnB,OAJA,SAAyB+I,GACrB7qC,KAAKgD,KAAOu9B,EAASC,OAAOsB,gBAC5B9hC,KAAK6qC,SAAWA,GAHD,GAOvBvrC,EAAQwiC,gBAAkBA,EAC1B,IAAIC,EAAoB,WAQpB,OAPA,SAA0BiL,EAAU1wB,EAAMC,GACtC,IAAI6wB,EAAwB,OAAbJ,GAAkC,OAAbA,EACpChtC,KAAKgD,KAAOoqC,EAAU7M,EAASC,OAAOqD,kBAAoBtD,EAASC,OAAOuB,iBAC1E/hC,KAAKgtC,SAAWA,EAChBhtC,KAAKsc,KAAOA,EACZtc,KAAKuc,MAAQA,GANG,GAUxBjd,EAAQyiC,iBAAmBA,EAC3B,IAAInB,EAAkB,WAKlB,OAJA,SAAwBnD,GACpBz9B,KAAKgD,KAAOu9B,EAASC,OAAOI,eAC5B5gC,KAAKy9B,KAAOA,GAHE,GAOtBn+B,EAAQshC,eAAiBA,EACzB,IAAIoB,EAAkB,WAKlB,OAJA,SAAwBtiB,GACpB1f,KAAKgD,KAAOu9B,EAASC,OAAOwB,eAC5BhiC,KAAK0f,MAAQA,GAHC,GAOtBpgB,EAAQ0iC,eAAiBA,EACzB,IAAIC,EAAkB,WAMlB,OALA,SAAwBoL,EAAQrwB,GAC5Bhd,KAAKgD,KAAOu9B,EAASC,OAAOyB,eAC5BjiC,KAAKqtC,OAASA,EACdrtC,KAAK6D,UAAYmZ,GAJH,GAQtB1d,EAAQ2iC,eAAiBA,EACzB,IAAIC,EAAe,WAMf,OALA,SAAqBtE,EAAOH,GACxBz9B,KAAKgD,KAAOu9B,EAASC,OAAO0B,YAC5BliC,KAAK49B,MAAQA,EACb59B,KAAKy9B,KAAOA,GAJD,GAQnBn+B,EAAQ4iC,YAAcA,EACtB,IAAIC,EAAa,WAKb,OAJA,SAAmB1E,GACfz9B,KAAKgD,KAAOu9B,EAASC,OAAO2B,UAC5BniC,KAAKy9B,KAAOA,GAHH,GAOjBn+B,EAAQ6iC,UAAYA,EACpB,IAAIC,EAAoB,WAOpB,OANA,SAA0B/8B,EAAIioC,EAAY7P,GACtCz9B,KAAKgD,KAAOu9B,EAASC,OAAO4B,iBAC5BpiC,KAAKqF,GAAKA,EACVrF,KAAKstC,WAAaA,EAClBttC,KAAKy9B,KAAOA,GALI,GASxBn+B,EAAQ8iC,iBAAmBA,EAC3B,IAAIC,EAAmB,WAOnB,OANA,SAAyBh9B,EAAIioC,EAAY7P,GACrCz9B,KAAKgD,KAAOu9B,EAASC,OAAO6B,gBAC5BriC,KAAKqF,GAAKA,EACVrF,KAAKstC,WAAaA,EAClBttC,KAAKy9B,KAAOA,GALG,GASvBn+B,EAAQ+iC,gBAAkBA,EAC1B,IAAIkL,EAA4B,WAO5B,OANA,SAAkCvgB,EAAQplB,GACtC5H,KAAKgD,KAAOu9B,EAASC,OAAOsD,iBAC5B9jC,KAAKwtC,UAAW,EAChBxtC,KAAKgtB,OAASA,EACdhtB,KAAK4H,SAAWA,GALQ,GAShCtI,EAAQiuC,yBAA2BA,EACnC,IAAIjL,EAAyB,WAOzB,OANA,SAA+B/b,EAAMknB,EAAYC,GAC7C1tC,KAAKgD,KAAOu9B,EAASC,OAAO8B,sBAC5BtiC,KAAKumB,KAAOA,EACZvmB,KAAKytC,WAAaA,EAClBztC,KAAK0tC,UAAYA,GALI,GAS7BpuC,EAAQgjC,sBAAwBA,EAChC,IAAIC,EAAqB,WAKrB,OAJA,SAA2B7iB,GACvB1f,KAAKgD,KAAOu9B,EAASC,OAAO+B,kBAC5BviC,KAAK0f,MAAQA,GAHI,GAOzBpgB,EAAQijC,kBAAoBA,EAC5B,IAAIE,EAAqB,WAIrB,OAHA,WACIziC,KAAKgD,KAAOu9B,EAASC,OAAOiC,mBAFX,GAMzBnjC,EAAQmjC,kBAAoBA,EAC5B,IAAIkL,EAAa,WAMb,OALA,SAAmBjQ,EAAYkQ,GAC3B5tC,KAAKgD,KAAOu9B,EAASC,OAAOuC,oBAC5B/iC,KAAK09B,WAAaA,EAClB19B,KAAK4tC,UAAYA,GAJR,GAQjBtuC,EAAQquC,UAAYA,EACpB,IAAInL,EAAoB,WAMpB,OALA,SAA0B/E,EAAMlX,GAC5BvmB,KAAKgD,KAAOu9B,EAASC,OAAOgC,iBAC5BxiC,KAAKy9B,KAAOA,EACZz9B,KAAKumB,KAAOA,GAJI,GAQxBjnB,EAAQkjC,iBAAmBA,EAC3B,IAAIE,EAAkB,WAIlB,OAHA,WACI1iC,KAAKgD,KAAOu9B,EAASC,OAAOkC,gBAFd,GAMtBpjC,EAAQojC,eAAiBA,EACzB,IAAIC,EAAwB,WAKxB,OAJA,SAA8B5gC,GAC1B/B,KAAKgD,KAAOu9B,EAASC,OAAOmC,qBAC5B3iC,KAAK+B,OAASA,GAHM,GAO5BzC,EAAQqjC,qBAAuBA,EAC/B,IAAIC,EAA4B,WAK5B,OAJA,SAAkCiL,GAC9B7tC,KAAKgD,KAAOu9B,EAASC,OAAOoC,yBAC5B5iC,KAAK6tC,YAAcA,GAHK,GAOhCvuC,EAAQsjC,yBAA2BA,EACnC,IAAIC,EAA0B,WAO1B,OANA,SAAgCgL,EAAaC,EAAY/rC,GACrD/B,KAAKgD,KAAOu9B,EAASC,OAAOqC,uBAC5B7iC,KAAK6tC,YAAcA,EACnB7tC,KAAK8tC,WAAaA,EAClB9tC,KAAK+B,OAASA,GALQ,GAS9BzC,EAAQujC,uBAAyBA,EACjC,IAAIC,EAAmB,WAMnB,OALA,SAAyBiL,EAAOC,GAC5BhuC,KAAKgD,KAAOu9B,EAASC,OAAOsC,gBAC5B9iC,KAAKguC,SAAWA,EAChBhuC,KAAK+tC,MAAQA,GAJE,GAQvBzuC,EAAQwjC,gBAAkBA,EAC1B,IAAIC,EAAuB,WAKvB,OAJA,SAA6BrF,GACzB19B,KAAKgD,KAAOu9B,EAASC,OAAOuC,oBAC5B/iC,KAAK09B,WAAaA,GAHC,GAO3Bp+B,EAAQyjC,oBAAsBA,EAC9B,IAAIG,EAAkB,WAQlB,OAPA,SAAwB5mB,EAAMC,EAAOkhB,GACjCz9B,KAAKgD,KAAOu9B,EAASC,OAAO0C,eAC5BljC,KAAKsc,KAAOA,EACZtc,KAAKuc,MAAQA,EACbvc,KAAKy9B,KAAOA,EACZz9B,KAAKiuC,MAAO,GANE,GAUtB3uC,EAAQ4jC,eAAiBA,EACzB,IAAID,EAAkB,WAOlB,OANA,SAAwB3mB,EAAMC,EAAOkhB,GACjCz9B,KAAKgD,KAAOu9B,EAASC,OAAOyC,eAC5BjjC,KAAKsc,KAAOA,EACZtc,KAAKuc,MAAQA,EACbvc,KAAKy9B,KAAOA,GALE,GAStBn+B,EAAQ2jC,eAAiBA,EACzB,IAAID,EAAgB,WAQhB,OAPA,SAAsBkL,EAAM3nB,EAAM4nB,EAAQ1Q,GACtCz9B,KAAKgD,KAAOu9B,EAASC,OAAOwC,aAC5BhjC,KAAKkuC,KAAOA,EACZluC,KAAKumB,KAAOA,EACZvmB,KAAKmuC,OAASA,EACdnuC,KAAKy9B,KAAOA,GANA,GAUpBn+B,EAAQ0jC,aAAeA,EACvB,IAAIG,EAAuB,WAUvB,OATA,SAA6B99B,EAAIS,EAAQ23B,EAAMqP,GAC3C9sC,KAAKgD,KAAOu9B,EAASC,OAAO2C,oBAC5BnjC,KAAKqF,GAAKA,EACVrF,KAAK8F,OAASA,EACd9F,KAAKy9B,KAAOA,EACZz9B,KAAK8sC,UAAYA,EACjB9sC,KAAK09B,YAAa,EAClB19B,KAAK+sC,OAAQ,GARM,GAY3BztC,EAAQ6jC,oBAAsBA,EAC9B,IAAIC,EAAsB,WAUtB,OATA,SAA4B/9B,EAAIS,EAAQ23B,EAAMqP,GAC1C9sC,KAAKgD,KAAOu9B,EAASC,OAAO4C,mBAC5BpjC,KAAKqF,GAAKA,EACVrF,KAAK8F,OAASA,EACd9F,KAAKy9B,KAAOA,EACZz9B,KAAK8sC,UAAYA,EACjB9sC,KAAK09B,YAAa,EAClB19B,KAAK+sC,OAAQ,GARK,GAY1BztC,EAAQ8jC,mBAAqBA,EAC7B,IAAIC,EAAc,WAKd,OAJA,SAAoBvjC,GAChBE,KAAKgD,KAAOu9B,EAASC,OAAO6C,WAC5BrjC,KAAKF,KAAOA,GAHF,GAOlBR,EAAQ+jC,WAAaA,EACrB,IAAIC,EAAe,WAOf,OANA,SAAqB/c,EAAMknB,EAAYC,GACnC1tC,KAAKgD,KAAOu9B,EAASC,OAAO8C,YAC5BtjC,KAAKumB,KAAOA,EACZvmB,KAAKytC,WAAaA,EAClBztC,KAAK0tC,UAAYA,GALN,GASnBpuC,EAAQgkC,YAAcA,EACtB,IAAIC,EAAqB,WAMrB,OALA,SAA2BuK,EAAY/rC,GACnC/B,KAAKgD,KAAOu9B,EAASC,OAAO+C,kBAC5BvjC,KAAK8tC,WAAaA,EAClB9tC,KAAK+B,OAASA,GAJG,GAQzBzC,EAAQikC,kBAAoBA,EAC5B,IAAIC,EAA0B,WAK1B,OAJA,SAAgCuK,GAC5B/tC,KAAKgD,KAAOu9B,EAASC,OAAOgD,uBAC5BxjC,KAAK+tC,MAAQA,GAHS,GAO9BzuC,EAAQkkC,uBAAyBA,EACjC,IAAIC,EAA4B,WAK5B,OAJA,SAAkCsK,GAC9B/tC,KAAKgD,KAAOu9B,EAASC,OAAOiD,yBAC5BzjC,KAAK+tC,MAAQA,GAHW,GAOhCzuC,EAAQmkC,yBAA2BA,EACnC,IAAIC,EAAmB,WAMnB,OALA,SAAyBqK,EAAOK,GAC5BpuC,KAAKgD,KAAOu9B,EAASC,OAAOkD,gBAC5B1jC,KAAK+tC,MAAQA,EACb/tC,KAAKouC,SAAWA,GAJD,GAQvB9uC,EAAQokC,gBAAkBA,EAC1B,IAAIE,EAAoB,WAMpB,OALA,SAA0BlkB,EAAO+d,GAC7Bz9B,KAAKgD,KAAOu9B,EAASC,OAAOoD,iBAC5B5jC,KAAK0f,MAAQA,EACb1f,KAAKy9B,KAAOA,GAJI,GAQxBn+B,EAAQskC,iBAAmBA,EAC3B,IAAID,EAAW,WAMX,OALA,SAAiB54B,EAAOm/B,GACpBlqC,KAAKgD,KAAOu9B,EAASC,OAAOmD,QAC5B3jC,KAAK+K,MAAQA,EACb/K,KAAKkqC,IAAMA,GAJJ,GAQf5qC,EAAQqkC,QAAUA,EAClB,IAAII,EAAgB,WAMhB,OALA,SAAsBsK,EAAMzmC,GACxB5H,KAAKgD,KAAOu9B,EAASC,OAAOuD,aAC5B/jC,KAAKquC,KAAOA,EACZruC,KAAK4H,SAAWA,GAJJ,GAQpBtI,EAAQykC,aAAeA,EACvB,IAAIC,EAAoB,WASpB,OARA,SAA0B9hC,EAAKsrC,EAAUziC,EAAO9K,EAAMquC,GAClDtuC,KAAKgD,KAAOu9B,EAASC,OAAOwD,iBAC5BhkC,KAAKkC,IAAMA,EACXlC,KAAKwtC,SAAWA,EAChBxtC,KAAK+K,MAAQA,EACb/K,KAAKC,KAAOA,EACZD,KAAA,OAAcsuC,GAPE,GAWxBhvC,EAAQ0kC,iBAAmBA,EAC3B,IAAIuK,EAAU,WAMV,OALA,SAAgB9Q,GACZz9B,KAAKgD,KAAOu9B,EAASC,OAAOc,QAC5BthC,KAAKy9B,KAAOA,EACZz9B,KAAKq/B,WAAa,UAJZ,GAQd//B,EAAQivC,OAASA,EACjB,IAAItK,EAAiB,WAMjB,OALA,SAAuBoJ,EAAQrwB,GAC3Bhd,KAAKgD,KAAOu9B,EAASC,OAAOyD,cAC5BjkC,KAAKqtC,OAASA,EACdrtC,KAAK6D,UAAYmZ,GAJJ,GAQrB1d,EAAQ2kC,cAAgBA,EACxB,IAAIC,EAAoB,WAKpB,OAJA,SAA0BvlB,GACtB3e,KAAKgD,KAAOu9B,EAASC,OAAO0D,iBAC5BlkC,KAAK2e,WAAaA,GAHF,GAOxBrf,EAAQ4kC,iBAAmBA,EAC3B,IAAIC,EAAiB,WAKjB,OAJA,SAAuBxlB,GACnB3e,KAAKgD,KAAOu9B,EAASC,OAAO2D,cAC5BnkC,KAAK2e,WAAaA,GAHL,GAOrBrf,EAAQ6kC,cAAgBA,EACxB,IAAIC,EAAY,WAUZ,OATA,SAAkBnkC,EAAMiC,EAAKsrC,EAAUziC,EAAOrF,EAAQ8oC,GAClDxuC,KAAKgD,KAAOu9B,EAASC,OAAO4D,SAC5BpkC,KAAKkC,IAAMA,EACXlC,KAAKwtC,SAAWA,EAChBxtC,KAAK+K,MAAQA,EACb/K,KAAKC,KAAOA,EACZD,KAAK0F,OAASA,EACd1F,KAAKwuC,UAAYA,GART,GAYhBlvC,EAAQ8kC,SAAWA,EACnB,IAAIqK,EAAgB,WAOhB,OANA,SAAsB1jC,EAAOm/B,EAAKwE,EAASC,GACvC3uC,KAAKgD,KAAOu9B,EAASC,OAAOmD,QAC5B3jC,KAAK+K,MAAQA,EACb/K,KAAKkqC,IAAMA,EACXlqC,KAAK4uC,MAAQ,CAAEF,QAASA,EAASC,MAAOA,IAL5B,GASpBrvC,EAAQmvC,aAAeA,EACvB,IAAIpK,GAAe,WAKf,OAJA,SAAqBwG,GACjB7qC,KAAKgD,KAAOu9B,EAASC,OAAO6D,YAC5BrkC,KAAK6qC,SAAWA,GAHL,GAOnBvrC,EAAQ+kC,YAAcA,GACtB,IAAIC,GAAmB,WAKnB,OAJA,SAAyBuG,GACrB7qC,KAAKgD,KAAOu9B,EAASC,OAAO8D,gBAC5BtkC,KAAK6qC,SAAWA,GAHD,GAOvBvrC,EAAQglC,gBAAkBA,GAC1B,IAAIuK,GAAU,WAMV,OALA,SAAgBpR,GACZz9B,KAAKgD,KAAOu9B,EAASC,OAAOc,QAC5BthC,KAAKy9B,KAAOA,EACZz9B,KAAKq/B,WAAa,UAJZ,GAQd//B,EAAQuvC,OAASA,GACjB,IAAItK,GAAsB,WAKtB,OAJA,SAA4BuK,GACxB9uC,KAAKgD,KAAOu9B,EAASC,OAAO+D,mBAC5BvkC,KAAK8uC,YAAcA,GAHD,GAO1BxvC,EAAQilC,mBAAqBA,GAC7B,IAAIC,GAAiB,WAKjB,OAJA,SAAuBqG,GACnB7qC,KAAKgD,KAAOu9B,EAASC,OAAOgE,cAC5BxkC,KAAK6qC,SAAWA,GAHH,GAOrBvrC,EAAQklC,cAAgBA,GACxB,IAAIuK,GAA0B,WAO1B,OANA,SAAgC/hB,EAAQplB,GACpC5H,KAAKgD,KAAOu9B,EAASC,OAAOsD,iBAC5B9jC,KAAKwtC,UAAW,EAChBxtC,KAAKgtB,OAASA,EACdhtB,KAAK4H,SAAWA,GALM,GAS9BtI,EAAQyvC,uBAAyBA,GACjC,IAAItK,GAAS,WAIT,OAHA,WACIzkC,KAAKgD,KAAOu9B,EAASC,OAAOiE,OAFvB,GAMbnlC,EAAQmlC,MAAQA,GAChB,IAAIC,GAAc,WAMd,OALA,SAAoBne,EAAMknB,GACtBztC,KAAKgD,KAAOu9B,EAASC,OAAOkE,WAC5B1kC,KAAKumB,KAAOA,EACZvmB,KAAKytC,WAAaA,GAJR,GAQlBnuC,EAAQolC,WAAaA,GACrB,IAAIC,GAAmB,WAMnB,OALA,SAAyBqK,EAAcC,GACnCjvC,KAAKgD,KAAOu9B,EAASC,OAAOmE,gBAC5B3kC,KAAKgvC,aAAeA,EACpBhvC,KAAKivC,MAAQA,GAJE,GAQvB3vC,EAAQqlC,gBAAkBA,GAC1B,IAAIC,GAA4B,WAM5B,OALA,SAAkCrlC,EAAK2vC,GACnClvC,KAAKgD,KAAOu9B,EAASC,OAAOoE,yBAC5B5kC,KAAKT,IAAMA,EACXS,KAAKkvC,MAAQA,GAJW,GAQhC5vC,EAAQslC,yBAA2BA,GACnC,IAAIC,GAAmB,WAMnB,OALA,SAAyB95B,EAAO6hB,GAC5B5sB,KAAKgD,KAAOu9B,EAASC,OAAOqE,gBAC5B7kC,KAAK+K,MAAQA,EACb/K,KAAK4sB,KAAOA,GAJG,GAQvBttB,EAAQulC,gBAAkBA,GAC1B,IAAIC,GAAmB,WAMnB,OALA,SAAyBqK,EAAQL,GAC7B9uC,KAAKgD,KAAOu9B,EAASC,OAAOsE,gBAC5B9kC,KAAKmvC,OAASA,EACdnvC,KAAK8uC,YAAcA,GAJJ,GAQvBxvC,EAAQwlC,gBAAkBA,GAC1B,IAAIC,GAAkB,WAIlB,OAHA,WACI/kC,KAAKgD,KAAOu9B,EAASC,OAAOuE,gBAFd,GAMtBzlC,EAAQylC,eAAiBA,GACzB,IAAIC,GAAkB,WAKlB,OAJA,SAAwB6F,GACpB7qC,KAAKgD,KAAOu9B,EAASC,OAAOwE,eAC5BhlC,KAAK6qC,SAAWA,GAHF,GAOtBvrC,EAAQ0lC,eAAiBA,GACzB,IAAIC,GAAgB,WAOhB,OANA,SAAsBmK,EAAO16B,EAAS26B,GAClCrvC,KAAKgD,KAAOu9B,EAASC,OAAOyE,aAC5BjlC,KAAKovC,MAAQA,EACbpvC,KAAK0U,QAAUA,EACf1U,KAAKqvC,UAAYA,GALL,GASpB/vC,EAAQ2lC,aAAeA,GACvB,IAAIC,GAAmB,WAOnB,OANA,SAAyB8H,EAAUnC,GAC/B7qC,KAAKgD,KAAOu9B,EAASC,OAAO0E,gBAC5BllC,KAAKgtC,SAAWA,EAChBhtC,KAAK6qC,SAAWA,EAChB7qC,KAAKsmB,QAAS,GALC,GASvBhnB,EAAQ4lC,gBAAkBA,GAC1B,IAAIC,GAAoB,WAOpB,OANA,SAA0B6H,EAAUnC,EAAUvkB,GAC1CtmB,KAAKgD,KAAOu9B,EAASC,OAAO2E,iBAC5BnlC,KAAKgtC,SAAWA,EAChBhtC,KAAK6qC,SAAWA,EAChB7qC,KAAKsmB,OAASA,GALE,GASxBhnB,EAAQ6lC,iBAAmBA,GAC3B,IAAIC,GAAuB,WAMvB,OALA,SAA6BkK,EAAcrvC,GACvCD,KAAKgD,KAAOu9B,EAASC,OAAO4E,oBAC5BplC,KAAKsvC,aAAeA,EACpBtvC,KAAKC,KAAOA,GAJO,GAQ3BX,EAAQ8lC,oBAAsBA,GAC9B,IAAIC,GAAsB,WAMtB,OALA,SAA4BhgC,EAAI6oC,GAC5BluC,KAAKgD,KAAOu9B,EAASC,OAAO6E,mBAC5BrlC,KAAKqF,GAAKA,EACVrF,KAAKkuC,KAAOA,GAJM,GAQ1B5uC,EAAQ+lC,mBAAqBA,GAC7B,IAAIC,GAAkB,WAMlB,OALA,SAAwB/e,EAAMkX,GAC1Bz9B,KAAKgD,KAAOu9B,EAASC,OAAO8E,eAC5BtlC,KAAKumB,KAAOA,EACZvmB,KAAKy9B,KAAOA,GAJE,GAQtBn+B,EAAQgmC,eAAiBA,GACzB,IAAIC,GAAiB,WAMjB,OALA,SAAuBvY,EAAQyQ,GAC3Bz9B,KAAKgD,KAAOu9B,EAASC,OAAO+E,cAC5BvlC,KAAKgtB,OAASA,EACdhtB,KAAKy9B,KAAOA,GAJC,GAQrBn+B,EAAQimC,cAAgBA,GACxB,IAAIC,GAAmB,WAMnB,OALA,SAAyBqF,EAAUrM,GAC/Bx+B,KAAKgD,KAAOu9B,EAASC,OAAOgF,gBAC5BxlC,KAAK6qC,SAAWA,EAChB7qC,KAAKw+B,SAAWA,GAJD,GAQvBl/B,EAAQkmC,gBAAkBA,IAKrB,SAASnmC,EAAQC,EAAS0+B,GAE/B,aACAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAIwkC,EAAWvR,EAAoB,GAC/BwR,EAAkBxR,EAAoB,IACtCyR,EAAazR,EAAoB,IACjC+H,EAAO/H,EAAoB,GAC3B0R,EAAY1R,EAAoB,IAChCuC,EAAWvC,EAAoB,GAC/BgI,EAAUhI,EAAoB,IAE9BwB,EAAU,WACV,SAASA,EAAO/P,EAAMjwB,EAASg/B,QACX,IAAZh/B,IAAsBA,EAAU,IACpCQ,KAAK4/B,OAAS,CACVpC,MAAiC,kBAAlBh+B,EAAQg+B,OAAwBh+B,EAAQg+B,MACvDgE,IAA6B,kBAAhBhiC,EAAQgiC,KAAsBhiC,EAAQgiC,IACnDz/B,OAAQ,KACRuf,OAAmC,kBAAnB9hB,EAAQ8hB,QAAyB9hB,EAAQ8hB,OACzDyd,QAAqC,kBAApBv/B,EAAQu/B,SAA0Bv/B,EAAQu/B,QAC3Dc,SAAuC,kBAArBrgC,EAAQqgC,UAA2BrgC,EAAQqgC,UAE7D7/B,KAAK4/B,OAAO4B,KAAOhiC,EAAQuC,QAA6B,OAAnBvC,EAAQuC,SAC7C/B,KAAK4/B,OAAO79B,OAASnB,OAAOpB,EAAQuC,SAExC/B,KAAKw+B,SAAWA,EAChBx+B,KAAK+/B,aAAe,IAAIyP,EAAgBG,aACxC3vC,KAAK+/B,aAAaF,SAAW7/B,KAAK4/B,OAAOC,SACzC7/B,KAAKinC,QAAU,IAAIyI,EAAUE,QAAQngB,EAAMzvB,KAAK+/B,cAChD//B,KAAKinC,QAAQ4I,aAAe7vC,KAAK4/B,OAAOb,QACxC/+B,KAAK8vC,mBAAqB,CACtBC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,IAAK,EACLC,IAAK,GACLC,IAAK,GACLC,IAAK,IAETxxC,KAAKyxC,UAAY,CACbzuC,KAAM,EACN+H,MAAO,GACPo8B,WAAYnnC,KAAKinC,QAAQE,WACzB7hB,UAAW,EACXld,MAAO,EACPC,IAAK,GAETrI,KAAK0xC,mBAAoB,EACzB1xC,KAAK2xC,QAAU,CACXvS,UAAU,EACVwS,OAAO,EACPC,SAAS,EACTC,sBAAsB,EACtBC,YAAY,EACZC,+BAAgC,KAChCC,oBAAoB,EACpBC,kBAAkB,EAClBC,gBAAgB,EAChBC,aAAa,EACbC,UAAU,EACVC,SAAU,GACVC,QAAQ,GAEZvyC,KAAKshB,OAAS,GACdthB,KAAKknC,YAAc,CACfllC,MAAO,EACPqjB,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQ,GAEZvsB,KAAK6oC,WAAa,CACd7mC,MAAO,EACPqjB,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQ,GAEZvsB,KAAKqnC,YACLrnC,KAAK6oC,WAAa,CACd7mC,MAAOhC,KAAKinC,QAAQjlC,MACpBqjB,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,WAo+FlD,OAj+FAka,EAAO36B,UAAU8gB,WAAa,SAAU6sB,GAEpC,IADA,IAAIhkC,EAAS,GACJikC,EAAK,EAAGA,EAAK5uC,UAAU5B,OAAQwwC,IACpCjkC,EAAOikC,EAAK,GAAK5uC,UAAU4uC,GAE/B,IAAIz1B,EAAO7b,MAAM0D,UAAU4E,MAAMlF,KAAKV,UAAW,GAC7C6uC,EAAMF,EAAc/wB,QAAQ,SAAU,SAAUkxB,EAAOjjB,GAEvD,OADA6f,EAASqD,OAAOljB,EAAM1S,EAAK/a,OAAQ,sCAC5B+a,EAAK0S,KAEZ1tB,EAAQhC,KAAK6oC,WAAW7mC,MACxBqjB,EAAOrlB,KAAK6oC,WAAWxjB,KACvBkH,EAASvsB,KAAK6oC,WAAWtc,OAAS,EACtC,MAAMvsB,KAAK+/B,aAAa8S,YAAY7wC,EAAOqjB,EAAMkH,EAAQmmB,IAE7DlT,EAAO36B,UAAUwlC,cAAgB,SAAUmI,GAEvC,IADA,IAAIhkC,EAAS,GACJikC,EAAK,EAAGA,EAAK5uC,UAAU5B,OAAQwwC,IACpCjkC,EAAOikC,EAAK,GAAK5uC,UAAU4uC,GAE/B,IAAIz1B,EAAO7b,MAAM0D,UAAU4E,MAAMlF,KAAKV,UAAW,GAC7C6uC,EAAMF,EAAc/wB,QAAQ,SAAU,SAAUkxB,EAAOjjB,GAEvD,OADA6f,EAASqD,OAAOljB,EAAM1S,EAAK/a,OAAQ,sCAC5B+a,EAAK0S,KAEZ1tB,EAAQhC,KAAK6oC,WAAW7mC,MACxBqjB,EAAOrlB,KAAKinC,QAAQE,WACpB5a,EAASvsB,KAAK6oC,WAAWtc,OAAS,EACtCvsB,KAAK+/B,aAAasK,cAAcroC,EAAOqjB,EAAMkH,EAAQmmB,IAGzDlT,EAAO36B,UAAUiuC,qBAAuB,SAAU1S,EAAO57B,GACrD,IACIuG,EADA2nC,EAAMluC,GAAWirC,EAAWsD,SAASC,gBAyBzC,GAvBI5S,GACK57B,IACDkuC,EAAsB,IAAftS,EAAMp9B,KAAwBysC,EAAWsD,SAASE,cACrC,IAAf7S,EAAMp9B,KAA+BysC,EAAWsD,SAASG,qBACtC,IAAf9S,EAAMp9B,KAAmCysC,EAAWsD,SAASI,iBAC1C,IAAf/S,EAAMp9B,KAAkCysC,EAAWsD,SAASK,iBACzC,KAAfhT,EAAMp9B,KAA8BysC,EAAWsD,SAASM,mBACrD5D,EAAWsD,SAASC,gBACrB,IAAf5S,EAAMp9B,OACFhD,KAAKinC,QAAQqM,qBAAqBlT,EAAMr1B,OACxC2nC,EAAMjD,EAAWsD,SAASQ,mBAErBvzC,KAAK2xC,QAAQY,QAAUvyC,KAAKinC,QAAQuM,yBAAyBpT,EAAMr1B,SACxE2nC,EAAMjD,EAAWsD,SAASU,sBAItC1oC,EAAQq1B,EAAMr1B,OAGdA,EAAQ,UAEZ2nC,EAAMA,EAAIjxB,QAAQ,KAAM1W,GACpBq1B,GAAqC,iBAArBA,EAAM+G,WAAyB,CAC/C,IAAInlC,EAAQo+B,EAAMh4B,MACdid,EAAO+a,EAAM+G,WACbuM,EAAsB1zC,KAAK6oC,WAAW7mC,MAAQhC,KAAK6oC,WAAWtc,OAC9DA,EAAS6T,EAAMh4B,MAAQsrC,EAAsB,EACjD,OAAO1zC,KAAK+/B,aAAa8S,YAAY7wC,EAAOqjB,EAAMkH,EAAQmmB,GAGtD1wC,EAAQhC,KAAK6oC,WAAW7mC,MACxBqjB,EAAOrlB,KAAK6oC,WAAWxjB,KACvBkH,EAASvsB,KAAK6oC,WAAWtc,OAAS,EACtC,OAAOvsB,KAAK+/B,aAAa8S,YAAY7wC,EAAOqjB,EAAMkH,EAAQmmB,IAGlElT,EAAO36B,UAAU0kC,qBAAuB,SAAUnJ,EAAO57B,GACrD,MAAMxE,KAAK8yC,qBAAqB1S,EAAO57B,IAE3Cg7B,EAAO36B,UAAU8uC,wBAA0B,SAAUvT,EAAO57B,GACxDxE,KAAK+/B,aAAaO,SAAStgC,KAAK8yC,qBAAqB1S,EAAO57B,KAEhEg7B,EAAO36B,UAAU4iC,gBAAkB,WAC/B,GAAKznC,KAAK4/B,OAAOb,QAGZ,CACD,IAAIY,EAAW3/B,KAAKinC,QAAQmC,eAC5B,GAAIzJ,EAAS19B,OAAS,GAAKjC,KAAKw+B,SAC5B,IAAK,IAAIvwB,EAAI,EAAGA,EAAI0xB,EAAS19B,SAAUgM,EAAG,CACtC,IAAI9I,EAAIw6B,EAAS1xB,GACb0O,OAAO,EACXA,EAAO,CACH3Z,KAAMmC,EAAEyuC,UAAY,eAAiB,cACrC7oC,MAAO/K,KAAKinC,QAAQllC,OAAO0H,MAAMtE,EAAEsE,MAAM,GAAItE,EAAEsE,MAAM,KAErDzJ,KAAK4/B,OAAOpC,QACZ7gB,EAAK6gB,MAAQr4B,EAAEq4B,OAEfx9B,KAAK4/B,OAAO4B,MACZ7kB,EAAK6kB,IAAMr8B,EAAEq8B,KAEjB,IAAI7C,EAAW,CACXv2B,MAAO,CACHid,KAAMlgB,EAAEq8B,IAAIp5B,MAAMid,KAClBkH,OAAQpnB,EAAEq8B,IAAIp5B,MAAMmkB,OACpB5d,OAAQxJ,EAAEq4B,MAAM,IAEpBn1B,IAAK,CACDgd,KAAMlgB,EAAEq8B,IAAIn5B,IAAIgd,KAChBkH,OAAQpnB,EAAEq8B,IAAIn5B,IAAIkkB,OAClB5d,OAAQxJ,EAAEq4B,MAAM,KAGxBx9B,KAAKw+B,SAAS7hB,EAAMgiB,SA9B5B3+B,KAAKinC,QAAQmC,gBAoCrB5J,EAAO36B,UAAUslC,YAAc,SAAU/J,GACrC,OAAOpgC,KAAKinC,QAAQllC,OAAO0H,MAAM22B,EAAMh4B,MAAOg4B,EAAM/3B,MAExDm3B,EAAO36B,UAAUikC,aAAe,SAAU1I,GACtC,IAAI3qB,EAAI,CACJzS,KAAMgjC,EAAQY,UAAUxG,EAAMp9B,MAC9B+H,MAAO/K,KAAKmqC,YAAY/J,IAiB5B,GAfIpgC,KAAK4/B,OAAOpC,QACZ/nB,EAAE+nB,MAAQ,CAAC4C,EAAMh4B,MAAOg4B,EAAM/3B,MAE9BrI,KAAK4/B,OAAO4B,MACZ/rB,EAAE+rB,IAAM,CACJp5B,MAAO,CACHid,KAAMrlB,KAAKknC,YAAY7hB,KACvBkH,OAAQvsB,KAAKknC,YAAY3a,QAE7BlkB,IAAK,CACDgd,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,aAInC,IAAf8a,EAAMp9B,KAAoC,CAC1C,IAAI0rC,EAAUtO,EAAMsO,QAChBC,EAAQvO,EAAMuO,MAClBl5B,EAAEm5B,MAAQ,CAAEF,QAASA,EAASC,MAAOA,GAEzC,OAAOl5B,GAEX+pB,EAAO36B,UAAUwiC,UAAY,WACzB,IAAIjH,EAAQpgC,KAAKyxC,UACjBzxC,KAAK6oC,WAAW7mC,MAAQhC,KAAKinC,QAAQjlC,MACrChC,KAAK6oC,WAAWxjB,KAAOrlB,KAAKinC,QAAQE,WACpCnnC,KAAK6oC,WAAWtc,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,UAC3DtlB,KAAKynC,kBACDznC,KAAKinC,QAAQjlC,QAAUhC,KAAKknC,YAAYllC,QACxChC,KAAKknC,YAAYllC,MAAQhC,KAAKinC,QAAQjlC,MACtChC,KAAKknC,YAAY7hB,KAAOrlB,KAAKinC,QAAQE,WACrCnnC,KAAKknC,YAAY3a,OAASvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,WAEhE,IAAI+jB,EAAOrpC,KAAKinC,QAAQ0B,MAWxB,OAVA3oC,KAAK0xC,kBAAqBtR,EAAM+G,aAAekC,EAAKlC,WAChDkC,GAAQrpC,KAAK2xC,QAAQY,QAAwB,IAAdlJ,EAAKrmC,MAChChD,KAAKinC,QAAQuM,yBAAyBnK,EAAKt+B,SAC3Cs+B,EAAKrmC,KAAO,GAGpBhD,KAAKyxC,UAAYpI,EACbrpC,KAAK4/B,OAAOte,QAAwB,IAAd+nB,EAAKrmC,MAC3BhD,KAAKshB,OAAOxe,KAAK9C,KAAK8oC,aAAaO,IAEhCjJ,GAEXZ,EAAO36B,UAAUgvC,eAAiB,WAC9B7zC,KAAKynC,kBACL,IAAIrH,EAAQpgC,KAAKinC,QAAQ6M,aAUzB,OATI9zC,KAAK4/B,OAAOte,SAGZthB,KAAKshB,OAAO5G,MACZ1a,KAAKshB,OAAOxe,KAAK9C,KAAK8oC,aAAa1I,KAGvCpgC,KAAKyxC,UAAYrR,EACjBpgC,KAAKqnC,YACEjH,GAEXZ,EAAO36B,UAAUkvC,WAAa,WAC1B,MAAO,CACH/xC,MAAOhC,KAAKknC,YAAYllC,MACxBqjB,KAAMrlB,KAAKknC,YAAY7hB,KACvBkH,OAAQvsB,KAAKknC,YAAY3a,SAGjCiT,EAAO36B,UAAUmvC,UAAY,SAAU5T,EAAO6T,QACpB,IAAlBA,IAA4BA,EAAgB,GAChD,IAAI1nB,EAAS6T,EAAMh4B,MAAQg4B,EAAM9a,UAC7BD,EAAO+a,EAAM+G,WAKjB,OAJI5a,EAAS,IACTA,GAAU0nB,EACV5uB,KAEG,CACHrjB,MAAOo+B,EAAMh4B,MACbid,KAAMA,EACNkH,OAAQA,IAGhBiT,EAAO36B,UAAU6kC,SAAW,SAAUwK,EAAQv3B,GAmB1C,GAlBI3c,KAAK4/B,OAAOpC,QACZ7gB,EAAK6gB,MAAQ,CAAC0W,EAAOlyC,MAAOhC,KAAK6oC,WAAW7mC,QAE5ChC,KAAK4/B,OAAO4B,MACZ7kB,EAAK6kB,IAAM,CACPp5B,MAAO,CACHid,KAAM6uB,EAAO7uB,KACbkH,OAAQ2nB,EAAO3nB,QAEnBlkB,IAAK,CACDgd,KAAMrlB,KAAK6oC,WAAWxjB,KACtBkH,OAAQvsB,KAAK6oC,WAAWtc,SAG5BvsB,KAAK4/B,OAAO79B,SACZ4a,EAAK6kB,IAAIz/B,OAAS/B,KAAK4/B,OAAO79B,SAGlC/B,KAAKw+B,SAAU,CACf,IAAIG,EAAW,CACXv2B,MAAO,CACHid,KAAM6uB,EAAO7uB,KACbkH,OAAQ2nB,EAAO3nB,OACf5d,OAAQulC,EAAOlyC,OAEnBqG,IAAK,CACDgd,KAAMrlB,KAAK6oC,WAAWxjB,KACtBkH,OAAQvsB,KAAK6oC,WAAWtc,OACxB5d,OAAQ3O,KAAK6oC,WAAW7mC,QAGhChC,KAAKw+B,SAAS7hB,EAAMgiB,GAExB,OAAOhiB,GAIX6iB,EAAO36B,UAAUsvC,OAAS,SAAUppC,GAChC,IAAIq1B,EAAQpgC,KAAKqnC,YACE,IAAfjH,EAAMp9B,MAA+Bo9B,EAAMr1B,QAAUA,GACrD/K,KAAKupC,qBAAqBnJ,IAIlCZ,EAAO36B,UAAUuvC,qBAAuB,WACpC,GAAIp0C,KAAK4/B,OAAOC,SAAU,CACtB,IAAIO,EAAQpgC,KAAKyxC,UACE,IAAfrR,EAAMp9B,MAA+C,MAAhBo9B,EAAMr1B,MAC3C/K,KAAKqnC,YAEe,IAAfjH,EAAMp9B,MAA+C,MAAhBo9B,EAAMr1B,OAChD/K,KAAKqnC,YACLrnC,KAAK2zC,wBAAwBvT,IAG7BpgC,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASC,sBAI5DhzC,KAAKm0C,OAAO,MAKpB3U,EAAO36B,UAAUwvC,cAAgB,SAAUC,GACvC,IAAIlU,EAAQpgC,KAAKqnC,YACE,IAAfjH,EAAMp9B,MAA4Bo9B,EAAMr1B,QAAUupC,GAClDt0C,KAAKupC,qBAAqBnJ,IAIlCZ,EAAO36B,UAAUub,MAAQ,SAAUrV,GAC/B,OAA+B,IAAxB/K,KAAKyxC,UAAUzuC,MAA+BhD,KAAKyxC,UAAU1mC,QAAUA,GAGlFy0B,EAAO36B,UAAU0vC,aAAe,SAAUD,GACtC,OAA+B,IAAxBt0C,KAAKyxC,UAAUzuC,MAA4BhD,KAAKyxC,UAAU1mC,QAAUupC,GAI/E9U,EAAO36B,UAAU2vC,uBAAyB,SAAUF,GAChD,OAA+B,IAAxBt0C,KAAKyxC,UAAUzuC,MAA+BhD,KAAKyxC,UAAU1mC,QAAUupC,GAGlF9U,EAAO36B,UAAU4vC,YAAc,WAC3B,GAA4B,IAAxBz0C,KAAKyxC,UAAUzuC,KACf,OAAO,EAEX,IAAI0xC,EAAK10C,KAAKyxC,UAAU1mC,MACxB,MAAc,MAAP2pC,GACI,OAAPA,GACO,QAAPA,GACO,OAAPA,GACO,OAAPA,GACO,OAAPA,GACO,OAAPA,GACO,QAAPA,GACO,QAAPA,GACO,SAAPA,GACO,OAAPA,GACO,OAAPA,GACO,OAAPA,GAiCRlV,EAAO36B,UAAU8vC,oBAAsB,SAAUC,GAC7C,IAAIC,EAA2B70C,KAAK2xC,QAAQO,iBACxC4C,EAA6B90C,KAAK2xC,QAAQM,mBAC1C8C,EAAyC/0C,KAAK2xC,QAAQK,+BAC1DhyC,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQK,+BAAiC,KAC9C,IAAItyC,EAASk1C,EAAcrwC,KAAKvE,MAOhC,OANoD,OAAhDA,KAAK2xC,QAAQK,gCACbhyC,KAAKupC,qBAAqBvpC,KAAK2xC,QAAQK,gCAE3ChyC,KAAK2xC,QAAQO,iBAAmB2C,EAChC70C,KAAK2xC,QAAQM,mBAAqB6C,EAClC90C,KAAK2xC,QAAQK,+BAAiC+C,EACvCr1C,GAEX8/B,EAAO36B,UAAUmwC,oBAAsB,SAAUJ,GAC7C,IAAIC,EAA2B70C,KAAK2xC,QAAQO,iBACxC4C,EAA6B90C,KAAK2xC,QAAQM,mBAC1C8C,EAAyC/0C,KAAK2xC,QAAQK,+BAC1DhyC,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQK,+BAAiC,KAC9C,IAAItyC,EAASk1C,EAAcrwC,KAAKvE,MAIhC,OAHAA,KAAK2xC,QAAQO,iBAAmBlyC,KAAK2xC,QAAQO,kBAAoB2C,EACjE70C,KAAK2xC,QAAQM,mBAAqBjyC,KAAK2xC,QAAQM,oBAAsB6C,EACrE90C,KAAK2xC,QAAQK,+BAAiC+C,GAA0C/0C,KAAK2xC,QAAQK,+BAC9FtyC,GAEX8/B,EAAO36B,UAAUowC,iBAAmB,WAC5Bj1C,KAAKogB,MAAM,KACXpgB,KAAKqnC,YAECrnC,KAAK0xC,oBACiB,IAAxB1xC,KAAKyxC,UAAUzuC,MAAyBhD,KAAKogB,MAAM,MACnDpgB,KAAKupC,qBAAqBvpC,KAAKyxC,WAEnCzxC,KAAK6oC,WAAW7mC,MAAQhC,KAAKknC,YAAYllC,MACzChC,KAAK6oC,WAAWxjB,KAAOrlB,KAAKknC,YAAY7hB,KACxCrlB,KAAK6oC,WAAWtc,OAASvsB,KAAKknC,YAAY3a,SAIlDiT,EAAO36B,UAAUiiC,uBAAyB,WACtC,IACIH,EACAvG,EAAO8J,EAFPvtB,EAAO3c,KAAK+zC,aAGhB,OAAQ/zC,KAAKyxC,UAAUzuC,MACnB,KAAK,GACIhD,KAAK2xC,QAAQvS,UAAYp/B,KAAK2xC,QAAL,QAAgD,UAAzB3xC,KAAKyxC,UAAU1mC,OAChE/K,KAAK2zC,wBAAwB3zC,KAAKyxC,WAEtC9K,EAAO3mC,KAAKk1C,qBAAuBl1C,KAAKm1C,0BAA4Bn1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWrjC,KAAKqnC,YAAYt8B,QAC7H,MACJ,KAAK,EACL,KAAK,EACG/K,KAAK2xC,QAAQY,QAAUvyC,KAAKyxC,UAAU9jB,OACtC3tB,KAAK2zC,wBAAwB3zC,KAAKyxC,UAAWhC,EAAWsD,SAASqC,oBAErEp1C,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC9R,EAAQpgC,KAAKqnC,YACb6C,EAAMlqC,KAAKmqC,YAAY/J,GACvBuG,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpC,QAAQvD,EAAMr1B,MAAOm/B,IACzD,MACJ,KAAK,EACDlqC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC9R,EAAQpgC,KAAKqnC,YACb6C,EAAMlqC,KAAKmqC,YAAY/J,GACvBuG,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpC,QAAwB,SAAhBvD,EAAMr1B,MAAkBm/B,IACpE,MACJ,KAAK,EACDlqC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC9R,EAAQpgC,KAAKqnC,YACb6C,EAAMlqC,KAAKmqC,YAAY/J,GACvBuG,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpC,QAAQ,KAAMuG,IAClD,MACJ,KAAK,GACDvD,EAAO3mC,KAAKq1C,uBACZ,MACJ,KAAK,EACD,OAAQr1C,KAAKyxC,UAAU1mC,OACnB,IAAK,IACD/K,KAAK2xC,QAAQO,kBAAmB,EAChCvL,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKs1C,sBACrC,MACJ,IAAK,IACD3O,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKu1C,uBACrC,MACJ,IAAK,IACD5O,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKw1C,wBACrC,MACJ,IAAK,IACL,IAAK,KACDx1C,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAKinC,QAAQjlC,MAAQhC,KAAKknC,YAAYllC,MACtCo+B,EAAQpgC,KAAK6zC,iBACb3J,EAAMlqC,KAAKmqC,YAAY/J,GACvBuG,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK0I,aAAarO,EAAMwO,MAAO1E,EAAK9J,EAAMsO,QAAStO,EAAMuO,QACxF,MACJ,QACIhI,EAAO3mC,KAAKupC,qBAAqBvpC,KAAKqnC,aAE9C,MACJ,KAAK,GACIrnC,KAAK2xC,QAAQY,QAAUvyC,KAAK2xC,QAAQI,YAAc/xC,KAAKu0C,aAAa,SACrE5N,EAAO3mC,KAAKy1C,uBAENz1C,KAAK2xC,QAAQY,QAAUvyC,KAAKu0C,aAAa,OAC/C5N,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWrjC,KAAKqnC,YAAYt8B,SAGhE/K,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAC5BlyC,KAAKu0C,aAAa,YAClB5N,EAAO3mC,KAAKm1C,0BAEPn1C,KAAKu0C,aAAa,SACvBv0C,KAAKqnC,YACLV,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKhB,iBAGpC4B,EADK3mC,KAAKu0C,aAAa,SAChBv0C,KAAK01C,uBAGL11C,KAAKupC,qBAAqBvpC,KAAKqnC,cAG9C,MACJ,QACIV,EAAO3mC,KAAKupC,qBAAqBvpC,KAAKqnC,aAE9C,OAAOV,GAGXnH,EAAO36B,UAAU8wC,mBAAqB,WAClC,IAAIh5B,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,OACZ,IAAI1jB,EAAMzwB,KAAKg1C,oBAAoBh1C,KAAKsqC,2BACxC,OAAOtqC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKvB,cAAc/T,KAEtD+O,EAAO36B,UAAU0wC,sBAAwB,WACrC,IAAI54B,EAAO3c,KAAK+zC,aACZlH,EAAW,GAEf,IADA7sC,KAAKm0C,OAAO,MACJn0C,KAAKogB,MAAM,MACf,GAAIpgB,KAAKogB,MAAM,KACXpgB,KAAKqnC,YACLwF,EAAS/pC,KAAK,WAEb,GAAI9C,KAAKogB,MAAM,OAAQ,CACxB,IAAIpL,EAAUhV,KAAK21C,qBACd31C,KAAKogB,MAAM,OACZpgB,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAKm0C,OAAO,MAEhBtH,EAAS/pC,KAAKkS,QAGd63B,EAAS/pC,KAAK9C,KAAKg1C,oBAAoBh1C,KAAKsqC,4BACvCtqC,KAAKogB,MAAM,MACZpgB,KAAKm0C,OAAO,KAKxB,OADAn0C,KAAKm0C,OAAO,KACLn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpE,gBAAgBkL,KAGxDrN,EAAO36B,UAAU+wC,oBAAsB,SAAU9vC,GAC7C9F,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC,IAAI2D,EAAiB71C,KAAK2xC,QAAQY,OAC9BuD,EAA+B91C,KAAK2xC,QAAQG,qBAChD9xC,KAAK2xC,QAAQG,qBAAuBhsC,EAAOiwC,OAC3C,IAAItY,EAAOz9B,KAAK20C,oBAAoB30C,KAAKg2C,6BASzC,OARIh2C,KAAK2xC,QAAQY,QAAUzsC,EAAOmwC,iBAC9Bj2C,KAAK2zC,wBAAwB7tC,EAAOmwC,gBAAiBnwC,EAAOtB,SAE5DxE,KAAK2xC,QAAQY,QAAUzsC,EAAOowC,UAC9Bl2C,KAAK2zC,wBAAwB7tC,EAAOowC,SAAUpwC,EAAOtB,SAEzDxE,KAAK2xC,QAAQY,OAASsD,EACtB71C,KAAK2xC,QAAQG,qBAAuBgE,EAC7BrY,GAEX+B,EAAO36B,UAAUsxC,4BAA8B,WAC3C,IACIx5B,EAAO3c,KAAK+zC,aACZqC,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAQI,YAAa,EAC1B,IAAIjsC,EAAS9F,KAAKq2C,wBACd3wC,EAAS1F,KAAK41C,oBAAoB9vC,GAEtC,OADA9F,KAAK2xC,QAAQI,WAAaqE,EACnBp2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3C,mBAAmB,KAAMt9B,EAAOA,OAAQJ,GAP1D,KAStB85B,EAAO36B,UAAUyxC,iCAAmC,WAChD,IAAI35B,EAAO3c,KAAK+zC,aACZqC,EAAqBp2C,KAAK2xC,QAAQI,WAClCwE,EAAgBv2C,KAAK2xC,QAAL,MACpB3xC,KAAK2xC,QAAQI,YAAa,EAC1B/xC,KAAK2xC,QAAL,OAAqB,EACrB,IAAI7rC,EAAS9F,KAAKq2C,wBACd3wC,EAAS1F,KAAK41C,oBAAoB9vC,GAGtC,OAFA9F,KAAK2xC,QAAQI,WAAaqE,EAC1Bp2C,KAAK2xC,QAAL,MAAqB4E,EACdv2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKoH,wBAAwB,KAAMrnC,EAAOA,OAAQJ,KAErF85B,EAAO36B,UAAU2xC,uBAAyB,WACtC,IAEIt0C,EAFAya,EAAO3c,KAAK+zC,aACZ3T,EAAQpgC,KAAKqnC,YAEjB,OAAQjH,EAAMp9B,MACV,KAAK,EACL,KAAK,EACGhD,KAAK2xC,QAAQY,QAAUnS,EAAMzS,OAC7B3tB,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASqC,oBAE5D,IAAIlL,EAAMlqC,KAAKmqC,YAAY/J,GAC3Bl+B,EAAMlC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpC,QAAQvD,EAAMr1B,MAAOm/B,IACxD,MACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACDhoC,EAAMlC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWjD,EAAMr1B,QACpD,MACJ,KAAK,EACmB,MAAhBq1B,EAAMr1B,OACN7I,EAAMlC,KAAK20C,oBAAoB30C,KAAKsqC,2BACpCtqC,KAAKm0C,OAAO,MAGZjyC,EAAMlC,KAAKupC,qBAAqBnJ,GAEpC,MACJ,QACIl+B,EAAMlC,KAAKupC,qBAAqBnJ,GAExC,OAAOl+B,GAEXs9B,EAAO36B,UAAU4xC,cAAgB,SAAUv0C,EAAK6I,GAC5C,OAAQ7I,EAAIc,OAASu9B,EAASC,OAAO6C,YAAcnhC,EAAIpC,OAASiL,GAC3D7I,EAAIc,OAASu9B,EAASC,OAAOmD,SAAWzhC,EAAI6I,QAAUA,GAE/Dy0B,EAAO36B,UAAU6xC,oBAAsB,SAAUC,GAC7C,IAEI12C,EAFA0c,EAAO3c,KAAK+zC,aACZ3T,EAAQpgC,KAAKyxC,UAEbvvC,EAAM,KACN6I,EAAQ,KACRyiC,GAAW,EACX9nC,GAAS,EACT8oC,GAAY,EACZoI,GAAU,EACd,GAAmB,IAAfxW,EAAMp9B,KAA6B,CACnC,IAAIqC,EAAK+6B,EAAMr1B,MACf/K,KAAKqnC,YACLmG,EAAWxtC,KAAKogB,MAAM,KAGtBle,GAFA00C,IAAW52C,KAAK0xC,mBAA6B,UAAPrsC,GACjCrF,KAAKogB,MAAM,MAASpgB,KAAKogB,MAAM,MAASpgB,KAAKogB,MAAM,MAASpgB,KAAKogB,MAAM,OAC5DpgB,KAAKw2C,yBAA2Bx2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWh+B,SAEnFrF,KAAKogB,MAAM,KAChBpgB,KAAKqnC,aAGLmG,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,0BAEf,IAAIK,EAAuB72C,KAAK82C,sBAAsB92C,KAAKyxC,WAC3D,GAAmB,IAAfrR,EAAMp9B,OAAgC4zC,GAA2B,QAAhBxW,EAAMr1B,OAAmB8rC,EAC1E52C,EAAO,MACPutC,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXx2C,KAAK2xC,QAAQI,YAAa,EAC1BhnC,EAAQ/K,KAAK+2C,yBAEZ,GAAmB,IAAf3W,EAAMp9B,OAAgC4zC,GAA2B,QAAhBxW,EAAMr1B,OAAmB8rC,EAC/E52C,EAAO,MACPutC,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXzrC,EAAQ/K,KAAKg3C,yBAEZ,GAAmB,IAAf5W,EAAMp9B,MAA+C,MAAhBo9B,EAAMr1B,OAAiB8rC,EACjE52C,EAAO,OACPutC,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXzrC,EAAQ/K,KAAKi3C,uBACbvxC,GAAS,OAOT,GAJKxD,GACDlC,KAAKupC,qBAAqBvpC,KAAKyxC,WAEnCxxC,EAAO,OACHD,KAAKogB,MAAM,OAASw2B,GACfpJ,GAAYxtC,KAAKy2C,cAAcv0C,EAAK,eACjCy0C,EAAS5rC,OACT/K,KAAKqqC,cAAcoF,EAAWsD,SAASmE,wBAE3CP,EAAS5rC,OAAQ,GAErB/K,KAAKqnC,YACLt8B,EAAQ/K,KAAKg1C,oBAAoBh1C,KAAKsqC,gCAErC,GAAItqC,KAAKogB,MAAM,KAChBrV,EAAQ6rC,EAAU52C,KAAKs2C,mCAAqCt2C,KAAKm2C,8BACjEzwC,GAAS,OAER,GAAmB,IAAf06B,EAAMp9B,KAA6B,CACpCqC,EAAKrF,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWjD,EAAMr1B,QACvD,GAAI/K,KAAKogB,MAAM,KAAM,CACjBpgB,KAAK2xC,QAAQK,+BAAiChyC,KAAKyxC,UACnDzxC,KAAKqnC,YACLmH,GAAY,EACZ,IAAIN,EAAOluC,KAAK20C,oBAAoB30C,KAAKsqC,2BACzCv/B,EAAQ/K,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKrE,kBAAkBr8B,EAAI6oC,SAG3DM,GAAY,EACZzjC,EAAQ1F,OAIZrF,KAAKupC,qBAAqBvpC,KAAKqnC,aAGvC,OAAOrnC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3B,SAASnkC,EAAMiC,EAAKsrC,EAAUziC,EAAOrF,EAAQ8oC,KAErFhP,EAAO36B,UAAU2wC,uBAAyB,WACtC,IAAI74B,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,KAGZ,IAFA,IAAIx1B,EAAa,GACbg4B,EAAW,CAAE5rC,OAAO,IAChB/K,KAAKogB,MAAM,MACfzB,EAAW7b,KAAK9C,KAAK02C,oBAAoBC,IACpC32C,KAAKogB,MAAM,MACZpgB,KAAKo0C,uBAIb,OADAp0C,KAAKm0C,OAAO,KACLn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK7B,iBAAiBvlB,KAGzD6gB,EAAO36B,UAAUsyC,kBAAoB,WACjC5H,EAASqD,OAAO5yC,KAAKyxC,UAAU9kB,KAAM,oDACrC,IAAIhQ,EAAO3c,KAAK+zC,aACZ3T,EAAQpgC,KAAKqnC,YACb6C,EAAM9J,EAAMr1B,MACZqsC,EAAShX,EAAMgX,OACnB,OAAOp3C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKlB,gBAAgB,CAAEqF,IAAKA,EAAKkN,OAAQA,GAAUhX,EAAMxT,QAE5F4S,EAAO36B,UAAUwyC,qBAAuB,WACR,KAAxBr3C,KAAKyxC,UAAUzuC,MACfhD,KAAKupC,uBAET,IAAI5sB,EAAO3c,KAAK+zC,aACZ3T,EAAQpgC,KAAKqnC,YACb6C,EAAM9J,EAAMr1B,MACZqsC,EAAShX,EAAMgX,OACnB,OAAOp3C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKlB,gBAAgB,CAAEqF,IAAKA,EAAKkN,OAAQA,GAAUhX,EAAMxT,QAE5F4S,EAAO36B,UAAUwwC,qBAAuB,WACpC,IAAI14B,EAAO3c,KAAK+zC,aACZjF,EAAc,GACdK,EAAS,GACTD,EAAQlvC,KAAKm3C,oBAEjB,IADAhI,EAAOrsC,KAAKosC,IACJA,EAAMtiB,MACVkiB,EAAYhsC,KAAK9C,KAAKs3C,mBACtBpI,EAAQlvC,KAAKq3C,uBACblI,EAAOrsC,KAAKosC,GAEhB,OAAOlvC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKjB,gBAAgBqK,EAAQL,KAGhEtP,EAAO36B,UAAU0yC,+BAAiC,SAAU5Q,GACxD,OAAQA,EAAK3jC,MACT,KAAKu9B,EAASC,OAAO6C,WACrB,KAAK9C,EAASC,OAAOsD,iBACrB,KAAKvD,EAASC,OAAO6D,YACrB,KAAK9D,EAASC,OAAOkB,kBACjB,MACJ,KAAKnB,EAASC,OAAOgE,cACjBmC,EAAK3jC,KAAOu9B,EAASC,OAAO6D,YAC5BrkC,KAAKu3C,+BAA+B5Q,EAAKkE,UACzC,MACJ,KAAKtK,EAASC,OAAOmB,gBACjBgF,EAAK3jC,KAAOu9B,EAASC,OAAOoB,aAC5B,IAAK,IAAI3zB,EAAI,EAAGA,EAAI04B,EAAKkG,SAAS5qC,OAAQgM,IACb,OAArB04B,EAAKkG,SAAS5+B,IACdjO,KAAKu3C,+BAA+B5Q,EAAKkG,SAAS5+B,IAG1D,MACJ,KAAKsyB,EAASC,OAAO0D,iBACjByC,EAAK3jC,KAAOu9B,EAASC,OAAO2D,cAC5B,IAASl2B,EAAI,EAAGA,EAAI04B,EAAKhoB,WAAW1c,OAAQgM,IACxCjO,KAAKu3C,+BAA+B5Q,EAAKhoB,WAAW1Q,GAAGlD,OAE3D,MACJ,KAAKw1B,EAASC,OAAOiB,qBACjBkF,EAAK3jC,KAAOu9B,EAASC,OAAOkB,yBACrBiF,EAAKqG,SACZhtC,KAAKu3C,+BAA+B5Q,EAAKrqB,QAOrDkjB,EAAO36B,UAAUywC,qBAAuB,WACpC,IAAI3O,EAEJ,GADA3mC,KAAKm0C,OAAO,KACRn0C,KAAKogB,MAAM,KACXpgB,KAAKqnC,YACArnC,KAAKogB,MAAM,OACZpgB,KAAKm0C,OAAO,MAEhBxN,EAAO,CACH3jC,KAt1BgB,4BAu1BhB8C,OAAQ,GACRinC,OAAO,OAGV,CACD,IAAIyK,EAAax3C,KAAKyxC,UAClB3rC,EAAS,GACb,GAAI9F,KAAKogB,MAAM,OACXumB,EAAO3mC,KAAKy3C,iBAAiB3xC,GAC7B9F,KAAKm0C,OAAO,KACPn0C,KAAKogB,MAAM,OACZpgB,KAAKm0C,OAAO,MAEhBxN,EAAO,CACH3jC,KAr2BY,4BAs2BZ8C,OAAQ,CAAC6gC,GACToG,OAAO,OAGV,CACD,IAAI2K,GAAQ,EAGZ,GAFA13C,KAAK2xC,QAAQO,kBAAmB,EAChCvL,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKsqC,2BACjCtqC,KAAKogB,MAAM,KAAM,CACjB,IAAI0uB,EAAc,GAGlB,IAFA9uC,KAAK2xC,QAAQM,oBAAqB,EAClCnD,EAAYhsC,KAAK6jC,GACc,IAAxB3mC,KAAKyxC,UAAUzuC,MACbhD,KAAKogB,MAAM,MADwB,CAKxC,GADApgB,KAAKqnC,YACDrnC,KAAKogB,MAAM,KAAM,CACjBpgB,KAAKqnC,YACL,IAAK,IAAIp5B,EAAI,EAAGA,EAAI6gC,EAAY7sC,OAAQgM,IACpCjO,KAAKu3C,+BAA+BzI,EAAY7gC,IAEpDypC,GAAQ,EACR/Q,EAAO,CACH3jC,KA93BA,4BA+3BA8C,OAAQgpC,EACR/B,OAAO,QAGV,GAAI/sC,KAAKogB,MAAM,OAAQ,CACnBpgB,KAAK2xC,QAAQO,kBACdlyC,KAAKupC,qBAAqBvpC,KAAKyxC,WAEnC3C,EAAYhsC,KAAK9C,KAAKy3C,iBAAiB3xC,IACvC9F,KAAKm0C,OAAO,KACPn0C,KAAKogB,MAAM,OACZpgB,KAAKm0C,OAAO,MAEhBn0C,KAAK2xC,QAAQO,kBAAmB,EAChC,IAASjkC,EAAI,EAAGA,EAAI6gC,EAAY7sC,OAAQgM,IACpCjO,KAAKu3C,+BAA+BzI,EAAY7gC,IAEpDypC,GAAQ,EACR/Q,EAAO,CACH3jC,KAl5BA,4BAm5BA8C,OAAQgpC,EACR/B,OAAO,QAIX+B,EAAYhsC,KAAK9C,KAAKg1C,oBAAoBh1C,KAAKsqC,4BAEnD,GAAIoN,EACA,MAGHA,IACD/Q,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKxB,mBAAmBuK,KAGrF,IAAK4I,EAAO,CAER,GADA13C,KAAKm0C,OAAO,KACRn0C,KAAKogB,MAAM,QACPumB,EAAK3jC,OAASu9B,EAASC,OAAO6C,YAA4B,UAAdsD,EAAK7mC,OACjD43C,GAAQ,EACR/Q,EAAO,CACH3jC,KAx6BA,4BAy6BA8C,OAAQ,CAAC6gC,GACToG,OAAO,KAGV2K,GAAO,CAIR,GAHK13C,KAAK2xC,QAAQO,kBACdlyC,KAAKupC,qBAAqBvpC,KAAKyxC,WAE/B9K,EAAK3jC,OAASu9B,EAASC,OAAO+D,mBAC9B,IAASt2B,EAAI,EAAGA,EAAI04B,EAAKmI,YAAY7sC,OAAQgM,IACzCjO,KAAKu3C,+BAA+B5Q,EAAKmI,YAAY7gC,SAIzDjO,KAAKu3C,+BAA+B5Q,GAGxCA,EAAO,CACH3jC,KA37BA,4BA47BA8C,OAHc6gC,EAAK3jC,OAASu9B,EAASC,OAAO+D,mBAAqBoC,EAAKmI,YAAc,CAACnI,GAIrFoG,OAAO,GAInB/sC,KAAK2xC,QAAQO,kBAAmB,IAI5C,OAAOvL,GAGXnH,EAAO36B,UAAU8yC,eAAiB,WAC9B33C,KAAKm0C,OAAO,KACZ,IAAIn3B,EAAO,GACX,IAAKhd,KAAKogB,MAAM,KACZ,OAAa,CACT,IAAIumB,EAAO3mC,KAAKogB,MAAM,OAASpgB,KAAK21C,qBAChC31C,KAAK20C,oBAAoB30C,KAAKsqC,2BAElC,GADAttB,EAAKla,KAAK6jC,GACN3mC,KAAKogB,MAAM,KACX,MAGJ,GADApgB,KAAKo0C,uBACDp0C,KAAKogB,MAAM,KACX,MAKZ,OADApgB,KAAKm0C,OAAO,KACLn3B,GAEXwiB,EAAO36B,UAAU+yC,iBAAmB,SAAUxX,GAC1C,OAAsB,IAAfA,EAAMp9B,MACM,IAAfo9B,EAAMp9B,MACS,IAAfo9B,EAAMp9B,MACS,IAAfo9B,EAAMp9B,MAEdw8B,EAAO36B,UAAU4wC,oBAAsB,WACnC,IAAI94B,EAAO3c,KAAK+zC,aACZ3T,EAAQpgC,KAAKqnC,YAIjB,OAHKrnC,KAAK43C,iBAAiBxX,IACvBpgC,KAAKupC,qBAAqBnJ,GAEvBpgC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWjD,EAAMr1B,SAEzDy0B,EAAO36B,UAAUgzC,mBAAqB,WAClC,IAGIlR,EAHAhqB,EAAO3c,KAAK+zC,aACZ1uC,EAAKrF,KAAKy1C,sBAGd,GAFAlG,EAASqD,OAAmB,QAAZvtC,EAAGvF,KAAgB,wCAE/BE,KAAKogB,MAAM,KAEX,GADApgB,KAAKqnC,YACuB,IAAxBrnC,KAAKyxC,UAAUzuC,MAA+BhD,KAAK2xC,QAAQQ,gBAA2C,WAAzBnyC,KAAKyxC,UAAU1mC,MAAoB,CAChH,IAAInD,EAAW5H,KAAKy1C,sBACpB9O,EAAO,IAAIZ,EAAKhC,aAAa1+B,EAAIuC,QAGjC5H,KAAKupC,qBAAqBvpC,KAAKyxC,eAGlC,CACD,IAAIpE,EAASrtC,KAAK20C,oBAAoB30C,KAAK83C,6BACvC96B,EAAOhd,KAAKogB,MAAM,KAAOpgB,KAAK23C,iBAAmB,GACrDhR,EAAO,IAAIZ,EAAK9B,cAAcoJ,EAAQrwB,GACtChd,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAEpC,OAAOlyC,KAAK0pC,SAAS/sB,EAAMgqB,IAE/BnH,EAAO36B,UAAUkzC,mBAAqB,WAClC,IAAItnB,EAAMzwB,KAAKsqC,4BAEf,OADAtqC,KAAK2xC,QAAQK,+BAAiC,KACvCvhB,GAEX+O,EAAO36B,UAAUmzC,oBAAsB,WACnCh4C,KAAKm0C,OAAO,KACZ,IAAIn3B,EAAO,GACX,IAAKhd,KAAKogB,MAAM,KACZ,OAAa,CACT,IAAIumB,EAAO3mC,KAAKogB,MAAM,OAASpgB,KAAK21C,qBAChC31C,KAAK20C,oBAAoB30C,KAAK+3C,oBAElC,GADA/6B,EAAKla,KAAK6jC,GACN3mC,KAAKogB,MAAM,KACX,MAGJ,GADApgB,KAAKo0C,uBACDp0C,KAAKogB,MAAM,KACX,MAKZ,OADApgB,KAAKm0C,OAAO,KACLn3B,GAEXwiB,EAAO36B,UAAUozC,qCAAuC,WACpD,IAIItR,EAJA6Q,EAAax3C,KAAKyxC,UAClByG,EAAal4C,KAAKw0C,uBAAuB,SACzC2D,EAAkBn4C,KAAK2xC,QAAQE,QAcnC,IAbA7xC,KAAK2xC,QAAQE,SAAU,EAEnB7xC,KAAKu0C,aAAa,UAAYv0C,KAAK2xC,QAAQQ,gBAC3CxL,EAAO3mC,KAAK+zC,aACZ/zC,KAAKqnC,YACLV,EAAO3mC,KAAK0pC,SAAS/C,EAAM,IAAIZ,EAAKtB,OAC/BzkC,KAAKogB,MAAM,MAASpgB,KAAKogB,MAAM,MAASpgB,KAAKogB,MAAM,MACpDpgB,KAAKupC,qBAAqBvpC,KAAKyxC,YAInC9K,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKu0C,aAAa,OAASv0C,KAAK63C,mBAAqB73C,KAAK8mC,0BAG1F,GAAI9mC,KAAKogB,MAAM,KAAM,CACjBpgB,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAKm0C,OAAO,KACZ,IAAIvsC,EAAW5H,KAAKy1C,sBACpB9O,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKgJ,uBAAuBpI,EAAM/+B,SAEtF,GAAI5H,KAAKogB,MAAM,KAAM,CACtB,IAAIg4B,EAAaF,GAAeV,EAAWrQ,aAAennC,KAAKyxC,UAAUtK,WACzEnnC,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClC,IAAIj1B,EAAOo7B,EAAap4C,KAAKg4C,sBAAwBh4C,KAAK23C,iBAE1D,GADAhR,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAK9D,eAAe0E,EAAM3pB,IAC3Eo7B,GAAcp4C,KAAKogB,MAAM,MAAO,CAChC,IAAK,IAAInS,EAAI,EAAGA,EAAI+O,EAAK/a,SAAUgM,EAC/BjO,KAAKu3C,+BAA+Bv6B,EAAK/O,IAE7C04B,EAAO,CACH3jC,KA/jCQ,4BAgkCR8C,OAAQkX,EACR+vB,OAAO,SAId,GAAI/sC,KAAKogB,MAAM,KAAM,CACtBpgB,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAKm0C,OAAO,KACRvsC,EAAW5H,KAAK20C,oBAAoB30C,KAAKs3C,iBAC7Ct3C,KAAKm0C,OAAO,KACZxN,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKwH,yBAAyB5G,EAAM/+B,QAExF,IAA4B,KAAxB5H,KAAKyxC,UAAUzuC,OAA8BhD,KAAKyxC,UAAU9kB,KAKjE,MAJA,IAAIuiB,EAAQlvC,KAAKq1C,uBACjB1O,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKnB,yBAAyB+B,EAAMuI,IAOjG,OADAlvC,KAAK2xC,QAAQE,QAAUsG,EAChBxR,GAEXnH,EAAO36B,UAAUwzC,WAAa,WAC1B,IAAI17B,EAAO3c,KAAK+zC,aAKhB,OAJA/zC,KAAKq0C,cAAc,SACdr0C,KAAKogB,MAAM,MAASpgB,KAAKogB,MAAM,MAChCpgB,KAAKupC,qBAAqBvpC,KAAKyxC,WAE5BzxC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKtB,QAExCjF,EAAO36B,UAAUizC,4BAA8B,WAC3CvI,EAASqD,OAAO5yC,KAAK2xC,QAAQE,QAAS,qDAItC,IAHA,IAAIl1B,EAAO3c,KAAKg0C,UAAUh0C,KAAKyxC,WAC3B9K,EAAQ3mC,KAAKu0C,aAAa,UAAYv0C,KAAK2xC,QAAQQ,eAAkBnyC,KAAKq4C,aAC1Er4C,KAAKg1C,oBAAoBh1C,KAAKu0C,aAAa,OAASv0C,KAAK63C,mBAAqB73C,KAAK8mC,0BAEnF,GAAI9mC,KAAKogB,MAAM,KAAM,CACjBpgB,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAKm0C,OAAO,KACZ,IAAIvsC,EAAW5H,KAAK20C,oBAAoB30C,KAAKs3C,iBAC7Ct3C,KAAKm0C,OAAO,KACZxN,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKwH,yBAAyB5G,EAAM/+B,SAElE,GAAI5H,KAAKogB,MAAM,KAAM,CACtBpgB,KAAK2xC,QAAQO,kBAAmB,EAChClyC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAKm0C,OAAO,KACRvsC,EAAW5H,KAAKy1C,sBACpB9O,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKgJ,uBAAuBpI,EAAM/+B,QAEhE,IAA4B,KAAxB5H,KAAKyxC,UAAUzuC,OAA8BhD,KAAKyxC,UAAU9kB,KAKjE,MAJA,IAAIuiB,EAAQlvC,KAAKq1C,uBACjB1O,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnB,yBAAyB+B,EAAMuI,IAM3E,OAAOvI,GAGXnH,EAAO36B,UAAUyzC,sBAAwB,WACrC,IAAI3R,EACA6Q,EAAax3C,KAAKyxC,UACtB,GAAIzxC,KAAKogB,MAAM,OAASpgB,KAAKogB,MAAM,MAAO,CACtC,IAAIzD,EAAO3c,KAAKg0C,UAAUwD,GACtBpX,EAAQpgC,KAAKqnC,YACjBV,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKu4C,sBACjCv4C,KAAK2xC,QAAQY,QAAU5L,EAAK3jC,OAASu9B,EAASC,OAAO6C,YAAcrjC,KAAKinC,QAAQuR,iBAAiB7R,EAAK7mC,OACtGE,KAAKqqC,cAAcoF,EAAWsD,SAAS0F,iBAEtCz4C,KAAK2xC,QAAQM,oBACdjyC,KAAKqqC,cAAcoF,EAAWsD,SAAS2F,wBAE3C,IAAIpyB,GAAS,EACbqgB,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKZ,iBAAiB/E,EAAMr1B,MAAO47B,EAAMrgB,IACxEtmB,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,OAIhC,GADAvL,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKi4C,uCAChCj4C,KAAK0xC,mBAA6C,IAAxB1xC,KAAKyxC,UAAUzuC,OACtChD,KAAKogB,MAAM,OAASpgB,KAAKogB,MAAM,OAAO,CAClCpgB,KAAK2xC,QAAQY,QAAU5L,EAAK3jC,OAASu9B,EAASC,OAAO6C,YAAcrjC,KAAKinC,QAAQuR,iBAAiB7R,EAAK7mC,OACtGE,KAAKqqC,cAAcoF,EAAWsD,SAAS4F,kBAEtC34C,KAAK2xC,QAAQM,oBACdjyC,KAAKqqC,cAAcoF,EAAWsD,SAAS2F,wBAE3C14C,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC,IAAIlF,EAAWhtC,KAAKqnC,YAAYt8B,MAC5Bub,GAAS,EACbqgB,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKZ,iBAAiB6H,EAAUrG,EAAMrgB,IAIvG,OAAOqgB,GAGXnH,EAAO36B,UAAU+zC,qBAAuB,WACpC,IAAIj8B,EAAO3c,KAAK+zC,aAChB/zC,KAAKqnC,YACL,IAAIwD,EAAW7qC,KAAKu4C,uBACpB,OAAOv4C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKjE,gBAAgB+I,KAExDrL,EAAO36B,UAAU0zC,qBAAuB,WACpC,IAAI5R,EACJ,GAAI3mC,KAAKogB,MAAM,MAAQpgB,KAAKogB,MAAM,MAAQpgB,KAAKogB,MAAM,MAAQpgB,KAAKogB,MAAM,MACpEpgB,KAAKu0C,aAAa,WAAav0C,KAAKu0C,aAAa,SAAWv0C,KAAKu0C,aAAa,UAAW,CACzF,IAAI53B,EAAO3c,KAAKg0C,UAAUh0C,KAAKyxC,WAC3BrR,EAAQpgC,KAAKqnC,YACjBV,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKu4C,sBACrC5R,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKb,gBAAgB9E,EAAMr1B,MAAO47B,IAC7D3mC,KAAK2xC,QAAQY,QAA4B,WAAlB5L,EAAKqG,UAAyBrG,EAAKkE,SAAS7nC,OAASu9B,EAASC,OAAO6C,YAC5FrjC,KAAKqqC,cAAcoF,EAAWsD,SAAS8F,cAE3C74C,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,OAGhCvL,EADK3mC,KAAK2xC,QAAL,OAAsB3xC,KAAKw0C,uBAAuB,SAChDx0C,KAAK44C,uBAGL54C,KAAKs4C,wBAEhB,OAAO3R,GAEXnH,EAAO36B,UAAUi0C,8BAAgC,WAC7C,IAAItB,EAAax3C,KAAKyxC,UAClB9K,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKu4C,sBACzC,GAAI5R,EAAK3jC,OAASu9B,EAASC,OAAO0E,iBAAmBllC,KAAKogB,MAAM,MAAO,CACnEpgB,KAAKqnC,YACLrnC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC,IAAI51B,EAAOqqB,EACPpqB,EAAQvc,KAAK20C,oBAAoB30C,KAAK84C,+BAC1CnS,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKhE,iBAAiB,KAAMzlB,EAAMC,IAE3F,OAAOoqB,GAUXnH,EAAO36B,UAAUk0C,iBAAmB,SAAU3Y,GAC1C,IAAIsU,EAAKtU,EAAMr1B,MAWf,OATmB,IAAfq1B,EAAMp9B,KACOhD,KAAK8vC,mBAAmB4E,IAAO,EAExB,IAAftU,EAAMp9B,OACU,eAAP0xC,GAAwB10C,KAAK2xC,QAAQE,SAAkB,OAAP6C,GAAgB,EAGjE,GAIrBlV,EAAO36B,UAAUm0C,sBAAwB,WACrC,IAAIxB,EAAax3C,KAAKyxC,UAClB9K,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAK84C,+BACrC1Y,EAAQpgC,KAAKyxC,UACbwH,EAAOj5C,KAAK+4C,iBAAiB3Y,GACjC,GAAI6Y,EAAO,EAAG,CACVj5C,KAAKqnC,YACLrnC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAMhC,IALA,IAAIgH,EAAU,CAAC1B,EAAYx3C,KAAKyxC,WAC5Bn1B,EAAOqqB,EACPpqB,EAAQvc,KAAK20C,oBAAoB30C,KAAK84C,+BACtCl0C,EAAQ,CAAC0X,EAAM8jB,EAAMr1B,MAAOwR,GAC5B48B,EAAc,CAACF,MAEfA,EAAOj5C,KAAK+4C,iBAAiB/4C,KAAKyxC,aACtB,IAFH,CAMT,KAAQ7sC,EAAM3C,OAAS,GAAOg3C,GAAQE,EAAYA,EAAYl3C,OAAS,IAAK,CACxEsa,EAAQ3X,EAAM8V,MACd,IAAIsyB,EAAWpoC,EAAM8V,MACrBy+B,EAAYz+B,MACZ4B,EAAO1X,EAAM8V,MACbw+B,EAAQx+B,MACR,IAAIiC,EAAO3c,KAAKg0C,UAAUkF,EAAQA,EAAQj3C,OAAS,IACnD2C,EAAM9B,KAAK9C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKhE,iBAAiBiL,EAAU1wB,EAAMC,KAG7E3X,EAAM9B,KAAK9C,KAAKqnC,YAAYt8B,OAC5BouC,EAAYr2C,KAAKm2C,GACjBC,EAAQp2C,KAAK9C,KAAKyxC,WAClB7sC,EAAM9B,KAAK9C,KAAK20C,oBAAoB30C,KAAK84C,gCAG7C,IAAI7qC,EAAIrJ,EAAM3C,OAAS,EACvB0kC,EAAO/hC,EAAMqJ,GAEb,IADA,IAAI46B,EAAaqQ,EAAQx+B,MAClBzM,EAAI,GAAG,CACV,IAAIimC,EAASgF,EAAQx+B,MACjBu5B,EAAgBpL,GAAcA,EAAWvjB,UACzC3I,EAAO3c,KAAKg0C,UAAUE,EAAQD,GAC9BjH,EAAWpoC,EAAMqJ,EAAI,GACzB04B,EAAO3mC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKhE,iBAAiBiL,EAAUpoC,EAAMqJ,EAAI,GAAI04B,IAC7E14B,GAAK,EACL46B,EAAaqL,GAGrB,OAAOvN,GAGXnH,EAAO36B,UAAUu0C,2BAA6B,WAC1C,IAAI5B,EAAax3C,KAAKyxC,UAClB9K,EAAO3mC,KAAKg1C,oBAAoBh1C,KAAKg5C,uBACzC,GAAIh5C,KAAKogB,MAAM,KAAM,CACjBpgB,KAAKqnC,YACL,IAAI8Q,EAAkBn4C,KAAK2xC,QAAQE,QACnC7xC,KAAK2xC,QAAQE,SAAU,EACvB,IAAIpE,EAAaztC,KAAK20C,oBAAoB30C,KAAKsqC,2BAC/CtqC,KAAK2xC,QAAQE,QAAUsG,EACvBn4C,KAAKm0C,OAAO,KACZ,IAAIzG,EAAY1tC,KAAK20C,oBAAoB30C,KAAKsqC,2BAC9C3D,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKzD,sBAAsBqE,EAAM8G,EAAYC,IAClG1tC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAEpC,OAAOvL,GAGXnH,EAAO36B,UAAUw0C,kBAAoB,SAAU75C,EAASo+B,GACpD,OAAQA,EAAM56B,MACV,KAAKu9B,EAASC,OAAO6C,WACjBrjC,KAAKs5C,cAAc95C,EAASo+B,EAAOA,EAAM99B,MACzC,MACJ,KAAKygC,EAASC,OAAO6D,YACjBrkC,KAAKq5C,kBAAkB75C,EAASo+B,EAAMiN,UACtC,MACJ,KAAKtK,EAASC,OAAOkB,kBACjB1hC,KAAKq5C,kBAAkB75C,EAASo+B,EAAMthB,MACtC,MACJ,KAAKikB,EAASC,OAAOoB,aACjB,IAAK,IAAI3zB,EAAI,EAAGA,EAAI2vB,EAAMiP,SAAS5qC,OAAQgM,IACb,OAAtB2vB,EAAMiP,SAAS5+B,IACfjO,KAAKq5C,kBAAkB75C,EAASo+B,EAAMiP,SAAS5+B,IAGvD,MACJ,KAAKsyB,EAASC,OAAO2D,cACjB,IAASl2B,EAAI,EAAGA,EAAI2vB,EAAMjf,WAAW1c,OAAQgM,IACzCjO,KAAKq5C,kBAAkB75C,EAASo+B,EAAMjf,WAAW1Q,GAAGlD,OAMhEvL,EAAQu2C,OAASv2C,EAAQu2C,QAAWnY,aAAiBmI,EAAK1C,YAE9D7D,EAAO36B,UAAU00C,8BAAgC,SAAU5S,GACvD,IACInnC,EADAsG,EAAS,CAAC6gC,GAEVyR,GAAa,EACjB,OAAQzR,EAAK3jC,MACT,KAAKu9B,EAASC,OAAO6C,WACjB,MACJ,IA/0CoB,4BAg1ChBv9B,EAAS6gC,EAAK7gC,OACdsyC,EAAazR,EAAKoG,MAClB,MACJ,QACI,OAAO,KAEfvtC,EAAU,CACNu2C,QAAQ,EACRyD,SAAU,IAEd,IAAK,IAAIvrC,EAAI,EAAGA,EAAInI,EAAO7D,SAAUgM,EAAG,EAChC2vB,EAAQ93B,EAAOmI,IACTjL,OAASu9B,EAASC,OAAOkB,kBAC3B9D,EAAMrhB,MAAMvZ,OAASu9B,EAASC,OAAOgF,kBACjC5H,EAAMrhB,MAAMsuB,UACZ7qC,KAAKupC,qBAAqBvpC,KAAKyxC,WAEnC7T,EAAMrhB,MAAMvZ,KAAOu9B,EAASC,OAAO6C,WACnCzF,EAAMrhB,MAAMzc,KAAO,eACZ89B,EAAMrhB,MAAMsuB,gBACZjN,EAAMrhB,MAAMiiB,UAGlB4Z,GAAcxa,EAAM56B,OAASu9B,EAASC,OAAO6C,YAA6B,UAAfzF,EAAM99B,MACtEE,KAAKupC,qBAAqBvpC,KAAKyxC,WAEnCzxC,KAAKq5C,kBAAkB75C,EAASo+B,GAChC93B,EAAOmI,GAAK2vB,EAEhB,GAAI59B,KAAK2xC,QAAQY,SAAWvyC,KAAK2xC,QAAQI,WACrC,IAAS9jC,EAAI,EAAGA,EAAInI,EAAO7D,SAAUgM,EAAG,CACpC,IAAI2vB,KAAQ93B,EAAOmI,IACTjL,OAASu9B,EAASC,OAAOgF,iBAC/BxlC,KAAKupC,qBAAqBvpC,KAAKyxC,WAI3C,GAAIjyC,EAAQgF,UAAYirC,EAAWsD,SAAS0G,gBAAiB,CACzD,IAAIrZ,EAAQpgC,KAAK2xC,QAAQY,OAAS/yC,EAAQ02C,SAAW12C,EAAQy2C,gBAC7Dj2C,KAAKupC,qBAAqBnJ,EAAO5gC,EAAQgF,SAE7C,MAAO,CACHuxC,OAAQv2C,EAAQu2C,OAChBjwC,OAAQA,EACRowC,SAAU12C,EAAQ02C,SAClBD,gBAAiBz2C,EAAQy2C,gBACzBzxC,QAAShF,EAAQgF,UAGzBg7B,EAAO36B,UAAUylC,0BAA4B,WACzC,IAAI3D,EACJ,IAAK3mC,KAAK2xC,QAAQI,YAAc/xC,KAAKu0C,aAAa,SAC9C5N,EAAO3mC,KAAK05C,2BAEX,CACD,IAAIlC,EAAax3C,KAAKyxC,UAClBrR,EAAQoX,EAEZ,GADA7Q,EAAO3mC,KAAKo5C,6BACO,IAAfhZ,EAAMp9B,MAAgCo9B,EAAM+G,aAAennC,KAAKyxC,UAAUtK,YAA+B,UAAhB/G,EAAMr1B,QACnE,IAAxB/K,KAAKyxC,UAAUzuC,MAA+BhD,KAAKu0C,aAAa,UAAU,CAC1E,IAAI9jB,EAAMzwB,KAAK8mC,yBACf9mC,KAAKu3C,+BAA+B9mB,GACpCkW,EAAO,CACH3jC,KA/4CQ,4BAg5CR8C,OAAQ,CAAC2qB,GACTsc,OAAO,GAInB,GAr5CoB,8BAq5ChBpG,EAAK3jC,MAAsChD,KAAKogB,MAAM,MAAO,CAE7DpgB,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EAChC,IAAI0E,EAAUjQ,EAAKoG,MACflX,EAAO71B,KAAKu5C,8BAA8B5S,GAC9C,GAAI9Q,EAAM,CACF71B,KAAK0xC,mBACL1xC,KAAK2zC,wBAAwB3zC,KAAKyxC,WAEtCzxC,KAAK2xC,QAAQK,+BAAiC,KAC9C,IAAI6D,EAAiB71C,KAAK2xC,QAAQY,OAC9BuD,EAA+B91C,KAAK2xC,QAAQG,qBAChD9xC,KAAK2xC,QAAQG,qBAAuBjc,EAAKkgB,OACzC,IAAIK,EAAqBp2C,KAAK2xC,QAAQI,WAClCwE,EAAgBv2C,KAAK2xC,QAAL,MACpB3xC,KAAK2xC,QAAQI,YAAa,EAC1B/xC,KAAK2xC,QAAL,MAAqBiF,EACrB,IAAIj6B,EAAO3c,KAAKg0C,UAAUwD,GAC1Bx3C,KAAKm0C,OAAO,MACZ,IAAI1W,OAAO,EACX,GAAIz9B,KAAKogB,MAAM,KAAM,CACjB,IAAI+3B,EAAkBn4C,KAAK2xC,QAAQE,QACnC7xC,KAAK2xC,QAAQE,SAAU,EACvBpU,EAAOz9B,KAAKg2C,8BACZh2C,KAAK2xC,QAAQE,QAAUsG,OAGvB1a,EAAOz9B,KAAK20C,oBAAoB30C,KAAKsqC,2BAEzC,IAAI5M,EAAaD,EAAKz6B,OAASu9B,EAASC,OAAOI,eAC3C5gC,KAAK2xC,QAAQY,QAAU1c,EAAKogB,iBAC5Bj2C,KAAKupC,qBAAqB1T,EAAKogB,gBAAiBpgB,EAAKrxB,SAErDxE,KAAK2xC,QAAQY,QAAU1c,EAAKqgB,UAC5Bl2C,KAAK2zC,wBAAwB9d,EAAKqgB,SAAUrgB,EAAKrxB,SAErDmiC,EAAOiQ,EAAU52C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKkH,6BAA6BpX,EAAK/vB,OAAQ23B,EAAMC,IAC1F19B,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKlE,wBAAwBhM,EAAK/vB,OAAQ23B,EAAMC,IAC5E19B,KAAK2xC,QAAQY,OAASsD,EACtB71C,KAAK2xC,QAAQG,qBAAuBgE,EACpC91C,KAAK2xC,QAAQI,WAAaqE,EAC1Bp2C,KAAK2xC,QAAL,MAAqB4E,QAIzB,GAAIv2C,KAAKy0C,cAAe,CAIpB,GAHKz0C,KAAK2xC,QAAQM,oBACdjyC,KAAKqqC,cAAcoF,EAAWsD,SAAS2F,wBAEvC14C,KAAK2xC,QAAQY,QAAU5L,EAAK3jC,OAASu9B,EAASC,OAAO6C,WAAY,CACjE,IAAIh+B,EAAKshC,EACL3mC,KAAKinC,QAAQuR,iBAAiBnzC,EAAGvF,OACjCE,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAAS4G,qBAExD35C,KAAKinC,QAAQuM,yBAAyBnuC,EAAGvF,OACzCE,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASU,oBAG3DzzC,KAAKogB,MAAM,KAKZpgB,KAAKu3C,+BAA+B5Q,IAJpC3mC,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,GAMpC,IAAIlF,GADJ5M,EAAQpgC,KAAKqnC,aACQt8B,MACjBwR,EAAQvc,KAAK20C,oBAAoB30C,KAAKsqC,2BAC1C3D,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKtE,qBAAqBuL,EAAUrG,EAAMpqB,IAC/Fvc,KAAK2xC,QAAQK,+BAAiC,MAI1D,OAAOrL,GAGXnH,EAAO36B,UAAUyyC,gBAAkB,WAC/B,IAAIE,EAAax3C,KAAKyxC,UAClB9K,EAAO3mC,KAAK20C,oBAAoB30C,KAAKsqC,2BACzC,GAAItqC,KAAKogB,MAAM,KAAM,CACjB,IAAI0uB,EAAc,GAElB,IADAA,EAAYhsC,KAAK6jC,GACc,IAAxB3mC,KAAKyxC,UAAUzuC,MACbhD,KAAKogB,MAAM,MAGhBpgB,KAAKqnC,YACLyH,EAAYhsC,KAAK9C,KAAK20C,oBAAoB30C,KAAKsqC,4BAEnD3D,EAAO3mC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKxB,mBAAmBuK,IAEjF,OAAOnI,GAGXnH,EAAO36B,UAAU+0C,uBAAyB,WACtC,IAAIC,EAGJ,GAFA75C,KAAK2xC,QAAQM,oBAAqB,EAClCjyC,KAAK2xC,QAAQO,kBAAmB,EACJ,IAAxBlyC,KAAKyxC,UAAUzuC,KACf,OAAQhD,KAAKyxC,UAAU1mC,OACnB,IAAK,SACI/K,KAAK2xC,QAAQvS,UACdp/B,KAAK2zC,wBAAwB3zC,KAAKyxC,UAAWhC,EAAWsD,SAAS+G,0BAErED,EAAY75C,KAAK+5C,yBACjB,MACJ,IAAK,SACI/5C,KAAK2xC,QAAQvS,UACdp/B,KAAK2zC,wBAAwB3zC,KAAKyxC,UAAWhC,EAAWsD,SAASiH,0BAErEH,EAAY75C,KAAKi6C,yBACjB,MACJ,IAAK,QACDJ,EAAY75C,KAAKk6C,wBAAwB,CAAEC,OAAO,IAClD,MACJ,IAAK,WACDN,EAAY75C,KAAKo6C,2BACjB,MACJ,IAAK,QACDP,EAAY75C,KAAKq6C,wBACjB,MACJ,IAAK,MACDR,EAAY75C,KAAKs6C,uBAAyBt6C,KAAKk6C,wBAAwB,CAAEC,OAAO,IAAWn6C,KAAKu6C,iBAChG,MACJ,QACIV,EAAY75C,KAAKu6C,sBAKzBV,EAAY75C,KAAKu6C,iBAErB,OAAOV,GAEXra,EAAO36B,UAAU21C,WAAa,WAC1B,IAAI79B,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,KAEZ,IADA,IAAI/E,EAAQ,IAEJpvC,KAAKogB,MAAM,MAGfgvB,EAAMtsC,KAAK9C,KAAK45C,0BAGpB,OADA55C,KAAKm0C,OAAO,KACLn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnF,eAAewO,KAGvD5P,EAAO36B,UAAU41C,oBAAsB,SAAUx6C,EAAMT,GACnD,IAAImd,EAAO3c,KAAK+zC,aAEZ1uC,EAAKrF,KAAK06C,aADD,GACsBz6C,GAC/BD,KAAK2xC,QAAQY,QAAUltC,EAAGrC,OAASu9B,EAASC,OAAO6C,YAC/CrjC,KAAKinC,QAAQuR,iBAAiBnzC,EAAGvF,OACjCE,KAAKqqC,cAAcoF,EAAWsD,SAAS4H,eAG/C,IAAIzM,EAAO,KAgBX,MAfa,UAATjuC,EACKD,KAAKu0C,aAAa,OAAUv0C,KAAKw0C,uBAAuB,QACrDx0C,KAAKogB,MAAM,MACXpgB,KAAKqnC,YACL6G,EAAOluC,KAAK20C,oBAAoB30C,KAAKsqC,4BAGrCtqC,KAAK2lB,WAAW8pB,EAAWsD,SAAS6H,8BAA+B,YAIpEp7C,EAAQ26C,OAAS90C,EAAGrC,OAASu9B,EAASC,OAAO6C,YAAerjC,KAAKogB,MAAM,QAC9EpgB,KAAKm0C,OAAO,KACZjG,EAAOluC,KAAK20C,oBAAoB30C,KAAKsqC,4BAElCtqC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKV,mBAAmBhgC,EAAI6oC,KAE/D1O,EAAO36B,UAAUg2C,iBAAmB,SAAU56C,EAAMT,GAEhD,IADA,IAAIq2B,EAAO,CAAC71B,KAAKy6C,oBAAoBx6C,EAAMT,IACpCQ,KAAKogB,MAAM,MACdpgB,KAAKqnC,YACLxR,EAAK/yB,KAAK9C,KAAKy6C,oBAAoBx6C,EAAMT,IAE7C,OAAOq2B,GAEX2J,EAAO36B,UAAUy1C,qBAAuB,WACpC,IAAI50B,EAAQ1lB,KAAKinC,QAAQkC,YACzBnpC,KAAKinC,QAAQmC,eACb,IAAIC,EAAOrpC,KAAKinC,QAAQ0B,MAExB,OADA3oC,KAAKinC,QAAQqC,aAAa5jB,GACJ,IAAd2jB,EAAKrmC,MACM,IAAdqmC,EAAKrmC,MAA8C,MAAfqmC,EAAKt+B,OAC3B,IAAds+B,EAAKrmC,MAA8C,MAAfqmC,EAAKt+B,OAC3B,IAAds+B,EAAKrmC,MAA2C,QAAfqmC,EAAKt+B,OACxB,IAAds+B,EAAKrmC,MAA2C,UAAfqmC,EAAKt+B,OAE/Cy0B,EAAO36B,UAAUq1C,wBAA0B,SAAU16C,GACjD,IAAImd,EAAO3c,KAAK+zC,aACZ9zC,EAAOD,KAAKqnC,YAAYt8B,MAC5BwkC,EAASqD,OAAgB,QAAT3yC,GAA2B,UAATA,EAAkB,mDACpD,IAAIqvC,EAAetvC,KAAK66C,iBAAiB56C,EAAMT,GAE/C,OADAQ,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKX,oBAAoBkK,EAAcrvC,KAG1Eu/B,EAAO36B,UAAUi2C,wBAA0B,SAAUh1C,EAAQ7F,GACzD,IAAI0c,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,OACZ,IAAI1jB,EAAMzwB,KAAK06C,aAAa50C,EAAQ7F,GACpC,OAAOD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1B,YAAY5T,KAEpD+O,EAAO36B,UAAUk2C,kBAAoB,SAAUj1C,EAAQ7F,GACnD,IAAI0c,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,KAEZ,IADA,IAAItH,EAAW,IACP7sC,KAAKogB,MAAM,MACf,GAAIpgB,KAAKogB,MAAM,KACXpgB,KAAKqnC,YACLwF,EAAS/pC,KAAK,UAEb,CACD,GAAI9C,KAAKogB,MAAM,OAAQ,CACnBysB,EAAS/pC,KAAK9C,KAAK86C,wBAAwBh1C,EAAQ7F,IACnD,MAGA4sC,EAAS/pC,KAAK9C,KAAKg7C,wBAAwBl1C,EAAQ7F,IAElDD,KAAKogB,MAAM,MACZpgB,KAAKm0C,OAAO,KAKxB,OADAn0C,KAAKm0C,OAAO,KACLn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnE,aAAaiL,KAErDrN,EAAO36B,UAAUo2C,qBAAuB,SAAUn1C,EAAQ7F,GACtD,IAIIiC,EACA6I,EALA4R,EAAO3c,KAAK+zC,aACZvG,GAAW,EACXgB,GAAY,EAIhB,GAA4B,IAAxBxuC,KAAKyxC,UAAUzuC,KAA6B,CAC5C,IAAIk4C,EAAWl7C,KAAKyxC,UACpBvvC,EAAMlC,KAAKm7C,0BACX,IAAIjN,EAAOluC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAW6X,EAASnwC,QAC5D,GAAI/K,KAAKogB,MAAM,KAAM,CACjBta,EAAOhD,KAAKo4C,GACZ1M,GAAY,EACZxuC,KAAKqnC,YACL,IAAIV,EAAO3mC,KAAKsqC,4BAChBv/B,EAAQ/K,KAAK0pC,SAAS1pC,KAAKg0C,UAAUkH,GAAW,IAAInV,EAAKrE,kBAAkBwM,EAAMvH,SAE3E3mC,KAAKogB,MAAM,MAMjBpgB,KAAKm0C,OAAO,KACZppC,EAAQ/K,KAAKg7C,wBAAwBl1C,EAAQ7F,KAN7C6F,EAAOhD,KAAKo4C,GACZ1M,GAAY,EACZzjC,EAAQmjC,QAQZV,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXx2C,KAAKm0C,OAAO,KACZppC,EAAQ/K,KAAKg7C,wBAAwBl1C,EAAQ7F,GAEjD,OAAOD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3B,SAAS,OAAQliC,EAAKsrC,EAAUziC,GA9BvD,EA8BsEyjC,KAEvFhP,EAAO36B,UAAUu2C,mBAAqB,SAAUt1C,EAAQ7F,GACpD,IAAI0c,EAAO3c,KAAK+zC,aACZp1B,EAAa,GAEjB,IADA3e,KAAKm0C,OAAO,MACJn0C,KAAKogB,MAAM,MACfzB,EAAW7b,KAAK9C,KAAKi7C,qBAAqBn1C,EAAQ7F,IAC7CD,KAAKogB,MAAM,MACZpgB,KAAKm0C,OAAO,KAIpB,OADAn0C,KAAKm0C,OAAO,KACLn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK5B,cAAcxlB,KAEtD6gB,EAAO36B,UAAU61C,aAAe,SAAU50C,EAAQ7F,GAC9C,IAAIyuC,EAcJ,OAbI1uC,KAAKogB,MAAM,KACXsuB,EAAU1uC,KAAK+6C,kBAAkBj1C,EAAQ7F,GAEpCD,KAAKogB,MAAM,KAChBsuB,EAAU1uC,KAAKo7C,mBAAmBt1C,EAAQ7F,KAGtCD,KAAKu0C,aAAa,QAAoB,UAATt0C,GAA6B,QAATA,GACjDD,KAAK2zC,wBAAwB3zC,KAAKyxC,UAAWhC,EAAWsD,SAASsI,qBAErEv1C,EAAOhD,KAAK9C,KAAKyxC,WACjB/C,EAAU1uC,KAAKm7C,wBAAwBl7C,IAEpCyuC,GAEXlP,EAAO36B,UAAUm2C,wBAA0B,SAAUl1C,EAAQ7F,GACzD,IAAIu3C,EAAax3C,KAAKyxC,UAClB/C,EAAU1uC,KAAK06C,aAAa50C,EAAQ7F,GACxC,GAAID,KAAKogB,MAAM,KAAM,CACjBpgB,KAAKqnC,YACL,IAAI+O,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAQI,YAAa,EAC1B,IAAIx1B,EAAQvc,KAAK20C,oBAAoB30C,KAAKsqC,2BAC1CtqC,KAAK2xC,QAAQI,WAAaqE,EAC1B1H,EAAU1uC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUwD,GAAa,IAAIzR,EAAKrE,kBAAkBgN,EAASnyB,IAE5F,OAAOmyB,GAGXlP,EAAO36B,UAAUs2C,wBAA0B,SAAUl7C,GACjD,IAAI0c,EAAO3c,KAAK+zC,aACZ3T,EAAQpgC,KAAKqnC,YAsBjB,OArBmB,IAAfjH,EAAMp9B,MAA4C,UAAhBo9B,EAAMr1B,MACpC/K,KAAK2xC,QAAQY,OACbvyC,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASU,oBAElDzzC,KAAK2xC,QAAQI,YACnB/xC,KAAKupC,qBAAqBnJ,GAGV,IAAfA,EAAMp9B,KACPhD,KAAK2xC,QAAQY,QAAyB,IAAfnS,EAAMp9B,MAA4BhD,KAAKinC,QAAQuM,yBAAyBpT,EAAMr1B,OACrG/K,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASU,qBAGpDzzC,KAAK2xC,QAAQY,QAA0B,QAAhBnS,EAAMr1B,OAA4B,QAAT9K,IAChDD,KAAKupC,qBAAqBnJ,IAI5BpgC,KAAK2xC,QAAQvS,UAAYp/B,KAAK2xC,QAAL,QAAsC,IAAfvR,EAAMp9B,MAA+C,UAAhBo9B,EAAMr1B,OACjG/K,KAAK2zC,wBAAwBvT,GAE1BpgC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1C,WAAWjD,EAAMr1B,SAEzDy0B,EAAO36B,UAAUy2C,yBAA2B,SAAU97C,GAClD,IAAImd,EAAO3c,KAAK+zC,aAEZ1uC,EAAKrF,KAAK06C,aADD,GACsB,OAC/B16C,KAAK2xC,QAAQY,QAAUltC,EAAGrC,OAASu9B,EAASC,OAAO6C,YAC/CrjC,KAAKinC,QAAQuR,iBAAiBnzC,EAAGvF,OACjCE,KAAKqqC,cAAcoF,EAAWsD,SAAS4H,eAG/C,IAAIzM,EAAO,KAQX,OAPIluC,KAAKogB,MAAM,MACXpgB,KAAKqnC,YACL6G,EAAOluC,KAAK20C,oBAAoB30C,KAAKsqC,4BAEhCjlC,EAAGrC,OAASu9B,EAASC,OAAO6C,YAAe7jC,EAAQ26C,OACxDn6C,KAAKm0C,OAAO,KAETn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKV,mBAAmBhgC,EAAI6oC,KAE/D1O,EAAO36B,UAAU02C,6BAA+B,SAAU/7C,GACtD,IAAIg8C,EAAM,CAAErB,MAAO36C,EAAQ26C,OACvBtkB,EAAO,GAEX,IADAA,EAAK/yB,KAAK9C,KAAKs7C,yBAAyBE,IACjCx7C,KAAKogB,MAAM,MACdpgB,KAAKqnC,YACLxR,EAAK/yB,KAAK9C,KAAKs7C,yBAAyBE,IAE5C,OAAO3lB,GAEX2J,EAAO36B,UAAU42C,uBAAyB,WACtC,IAAI9+B,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,OACnB,IAAI/E,EAAetvC,KAAKu7C,6BAA6B,CAAEpB,OAAO,IAE9D,OADAn6C,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKX,oBAAoBkK,EAAc,SAG1E9P,EAAO36B,UAAU62C,oBAAsB,WACnC,IAAI/+B,EAAO3c,KAAK+zC,aAEhB,OADA/zC,KAAKm0C,OAAO,KACLn0C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKrD,iBAGxClD,EAAO36B,UAAU82C,yBAA2B,WACxC,IAAIh/B,EAAO3c,KAAK+zC,aACZpN,EAAO3mC,KAAKs3C,kBAEhB,OADAt3C,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKhD,oBAAoB4D,KAG5DnH,EAAO36B,UAAU+2C,cAAgB,WAI7B,OAHI57C,KAAK2xC,QAAQY,QAAUvyC,KAAKu0C,aAAa,aACzCv0C,KAAKqqC,cAAcoF,EAAWsD,SAAS8I,gBAEpC77C,KAAKu6C,kBAEhB/a,EAAO36B,UAAUi3C,iBAAmB,WAChC,IACIrO,EADA9wB,EAAO3c,KAAK+zC,aAEZrG,EAAY,KAChB1tC,KAAKq0C,cAAc,MACnBr0C,KAAKm0C,OAAO,KACZ,IAAI5tB,EAAOvmB,KAAKs3C,kBAahB,OAZKt3C,KAAKogB,MAAM,MAAQpgB,KAAK4/B,OAAOC,UAChC7/B,KAAK2zC,wBAAwB3zC,KAAKqnC,aAClCoG,EAAaztC,KAAK0pC,SAAS1pC,KAAK+zC,aAAc,IAAIhO,EAAKrD,kBAGvD1iC,KAAKm0C,OAAO,KACZ1G,EAAaztC,KAAK47C,gBACd57C,KAAKu0C,aAAa,UAClBv0C,KAAKqnC,YACLqG,EAAY1tC,KAAK47C,kBAGlB57C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKzC,YAAY/c,EAAMknB,EAAYC,KAGtElO,EAAO36B,UAAUk3C,sBAAwB,WACrC,IAAIp/B,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,MACnB,IAAI2H,EAAsBh8C,KAAK2xC,QAAQS,YACvCpyC,KAAK2xC,QAAQS,aAAc,EAC3B,IAAI3U,EAAOz9B,KAAKu6C,iBAChBv6C,KAAK2xC,QAAQS,YAAc4J,EAC3Bh8C,KAAKq0C,cAAc,SACnBr0C,KAAKm0C,OAAO,KACZ,IAAI5tB,EAAOvmB,KAAKs3C,kBAUhB,OATKt3C,KAAKogB,MAAM,MAAQpgB,KAAK4/B,OAAOC,SAChC7/B,KAAK2zC,wBAAwB3zC,KAAKqnC,cAGlCrnC,KAAKm0C,OAAO,KACRn0C,KAAKogB,MAAM,MACXpgB,KAAKqnC,aAGNrnC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKvD,iBAAiB/E,EAAMlX,KAG/DiZ,EAAO36B,UAAUo3C,oBAAsB,WACnC,IACIxe,EADA9gB,EAAO3c,KAAK+zC,aAEhB/zC,KAAKq0C,cAAc,SACnBr0C,KAAKm0C,OAAO,KACZ,IAAI5tB,EAAOvmB,KAAKs3C,kBAChB,IAAKt3C,KAAKogB,MAAM,MAAQpgB,KAAK4/B,OAAOC,SAChC7/B,KAAK2zC,wBAAwB3zC,KAAKqnC,aAClC5J,EAAOz9B,KAAK0pC,SAAS1pC,KAAK+zC,aAAc,IAAIhO,EAAKrD,oBAEhD,CACD1iC,KAAKm0C,OAAO,KACZ,IAAI6H,EAAsBh8C,KAAK2xC,QAAQS,YACvCpyC,KAAK2xC,QAAQS,aAAc,EAC3B3U,EAAOz9B,KAAKu6C,iBACZv6C,KAAK2xC,QAAQS,YAAc4J,EAE/B,OAAOh8C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKT,eAAe/e,EAAMkX,KAI7D+B,EAAO36B,UAAUq3C,kBAAoB,WACjC,IAII5/B,EAAMC,EA4HNkhB,EAhIAyQ,EAAO,KACP3nB,EAAO,KACP4nB,EAAS,KACTgO,GAAQ,EAERx/B,EAAO3c,KAAK+zC,aAGhB,GAFA/zC,KAAKq0C,cAAc,OACnBr0C,KAAKm0C,OAAO,KACRn0C,KAAKogB,MAAM,KACXpgB,KAAKqnC,iBAGL,GAAIrnC,KAAKu0C,aAAa,OAAQ,CAC1BrG,EAAOluC,KAAK+zC,aACZ/zC,KAAKqnC,YACL,IAAI8Q,EAAkBn4C,KAAK2xC,QAAQE,QACnC7xC,KAAK2xC,QAAQE,SAAU,EACvB,IAAIvC,EAAetvC,KAAKu7C,6BAA6B,CAAEpB,OAAO,IAE9D,GADAn6C,KAAK2xC,QAAQE,QAAUsG,EACK,IAAxB7I,EAAartC,QAAgBjC,KAAKu0C,aAAa,MAAO,CACtD,IAAI6H,EAAO9M,EAAa,GACpB8M,EAAKlO,OAASkO,EAAK/2C,GAAGrC,OAASu9B,EAASC,OAAOoB,cAAgBwa,EAAK/2C,GAAGrC,OAASu9B,EAASC,OAAO2D,eAAiBnkC,KAAK2xC,QAAQY,SAC9HvyC,KAAKqqC,cAAcoF,EAAWsD,SAASsJ,uBAAwB,UAEnEnO,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAKX,oBAAoBkK,EAAc,QACtEtvC,KAAKqnC,YACL/qB,EAAO4xB,EACP3xB,EAAQvc,KAAKs3C,kBACbpJ,EAAO,UAEsB,IAAxBoB,EAAartC,QAAyC,OAAzBqtC,EAAa,GAAGpB,MAAiBluC,KAAKw0C,uBAAuB,OAC/FtG,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAKX,oBAAoBkK,EAAc,QACtEtvC,KAAKqnC,YACL/qB,EAAO4xB,EACP3xB,EAAQvc,KAAKsqC,4BACb4D,EAAO,KACPiO,GAAQ,IAGRjO,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAKX,oBAAoBkK,EAAc,QACtEtvC,KAAKm0C,OAAO,WAGf,GAAIn0C,KAAKu0C,aAAa,UAAYv0C,KAAKu0C,aAAa,OAAQ,CAC7DrG,EAAOluC,KAAK+zC,aACZ,IAAI9zC,EAAOD,KAAKqnC,YAAYt8B,MAC5B,GAAK/K,KAAK2xC,QAAQY,QAAmC,OAAzBvyC,KAAKyxC,UAAU1mC,MAOtC,CACGotC,EAAkBn4C,KAAK2xC,QAAQE,QACnC7xC,KAAK2xC,QAAQE,SAAU,EACnBvC,EAAetvC,KAAK66C,iBAAiB56C,EAAM,CAAEk6C,OAAO,IACxDn6C,KAAK2xC,QAAQE,QAAUsG,EACK,IAAxB7I,EAAartC,QAAyC,OAAzBqtC,EAAa,GAAGpB,MAAiBluC,KAAKu0C,aAAa,OAChFrG,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAKX,oBAAoBkK,EAAcrvC,IACtED,KAAKqnC,YACL/qB,EAAO4xB,EACP3xB,EAAQvc,KAAKs3C,kBACbpJ,EAAO,MAEsB,IAAxBoB,EAAartC,QAAyC,OAAzBqtC,EAAa,GAAGpB,MAAiBluC,KAAKw0C,uBAAuB,OAC/FtG,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAKX,oBAAoBkK,EAAcrvC,IACtED,KAAKqnC,YACL/qB,EAAO4xB,EACP3xB,EAAQvc,KAAKsqC,4BACb4D,EAAO,KACPiO,GAAQ,IAGRn8C,KAAKi1C,mBACL/G,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAKX,oBAAoBkK,EAAcrvC,UA5B1EiuC,EAAOluC,KAAK0pC,SAASwE,EAAM,IAAInI,EAAK1C,WAAWpjC,IAC/CD,KAAKqnC,YACL/qB,EAAO4xB,EACP3xB,EAAQvc,KAAKs3C,kBACbpJ,EAAO,SA4BV,CACD,IAAIoO,EAAiBt8C,KAAKyxC,UACtB0G,EAAkBn4C,KAAK2xC,QAAQE,QAInC,GAHA7xC,KAAK2xC,QAAQE,SAAU,EACvB3D,EAAOluC,KAAKg1C,oBAAoBh1C,KAAKsqC,2BACrCtqC,KAAK2xC,QAAQE,QAAUsG,EACnBn4C,KAAKu0C,aAAa,MACbv0C,KAAK2xC,QAAQM,oBAAsB/D,EAAKlrC,OAASu9B,EAASC,OAAOiB,sBAClEzhC,KAAKqqC,cAAcoF,EAAWsD,SAASwJ,mBAE3Cv8C,KAAKqnC,YACLrnC,KAAKu3C,+BAA+BrJ,GACpC5xB,EAAO4xB,EACP3xB,EAAQvc,KAAKs3C,kBACbpJ,EAAO,UAEN,GAAIluC,KAAKw0C,uBAAuB,MAC5Bx0C,KAAK2xC,QAAQM,oBAAsB/D,EAAKlrC,OAASu9B,EAASC,OAAOiB,sBAClEzhC,KAAKqqC,cAAcoF,EAAWsD,SAASyJ,qBAE3Cx8C,KAAKqnC,YACLrnC,KAAKu3C,+BAA+BrJ,GACpC5xB,EAAO4xB,EACP3xB,EAAQvc,KAAKsqC,4BACb4D,EAAO,KACPiO,GAAQ,MAEP,CACD,GAAIn8C,KAAKogB,MAAM,KAAM,CAEjB,IADA,IAAIq8B,EAAU,CAACvO,GACRluC,KAAKogB,MAAM,MACdpgB,KAAKqnC,YACLoV,EAAQ35C,KAAK9C,KAAK20C,oBAAoB30C,KAAKsqC,4BAE/C4D,EAAOluC,KAAK0pC,SAAS1pC,KAAKg0C,UAAUsI,GAAiB,IAAIvW,EAAKxB,mBAAmBkY,IAErFz8C,KAAKm0C,OAAO,MAcxB,QAVoB,IAAT73B,IACFtc,KAAKogB,MAAM,OACZmG,EAAOvmB,KAAKs3C,mBAEhBt3C,KAAKm0C,OAAO,KACPn0C,KAAKogB,MAAM,OACZ+tB,EAASnuC,KAAKs3C,qBAIjBt3C,KAAKogB,MAAM,MAAQpgB,KAAK4/B,OAAOC,SAChC7/B,KAAK2zC,wBAAwB3zC,KAAKqnC,aAClC5J,EAAOz9B,KAAK0pC,SAAS1pC,KAAK+zC,aAAc,IAAIhO,EAAKrD,oBAEhD,CACD1iC,KAAKm0C,OAAO,KACZ,IAAI6H,EAAsBh8C,KAAK2xC,QAAQS,YACvCpyC,KAAK2xC,QAAQS,aAAc,EAC3B3U,EAAOz9B,KAAK20C,oBAAoB30C,KAAKu6C,gBACrCv6C,KAAK2xC,QAAQS,YAAc4J,EAE/B,YAAwB,IAAT1/B,EACXtc,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK/C,aAAakL,EAAM3nB,EAAM4nB,EAAQ1Q,IAC9D0e,EAAQn8C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK7C,eAAe5mB,EAAMC,EAAOkhB,IAC7Dz9B,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK9C,eAAe3mB,EAAMC,EAAOkhB,KAGrE+B,EAAO36B,UAAU63C,uBAAyB,WACtC,IAAI//B,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,YACnB,IAAI30B,EAAQ,KACZ,GAA4B,IAAxB1f,KAAKyxC,UAAUzuC,OAAgChD,KAAK0xC,kBAAmB,CACvE,IAAIrsC,EAAKrF,KAAKm7C,0BACdz7B,EAAQra,EACR,IAAInD,EAAM,IAAMmD,EAAGvF,KACdH,OAAOkF,UAAUqe,eAAe3e,KAAKvE,KAAK2xC,QAAQW,SAAUpwC,IAC7DlC,KAAK2lB,WAAW8pB,EAAWsD,SAAS4J,aAAct3C,EAAGvF,MAO7D,OAJAE,KAAKi1C,mBACS,OAAVv1B,GAAmB1f,KAAK2xC,QAAQS,aAChCpyC,KAAK2lB,WAAW8pB,EAAWsD,SAAS6J,iBAEjC58C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKxD,kBAAkB7iB,KAG1D8f,EAAO36B,UAAUg4C,oBAAsB,WACnC,IAAIlgC,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,SACnB,IAAI30B,EAAQ,KACZ,GAA4B,IAAxB1f,KAAKyxC,UAAUzuC,OAAgChD,KAAK0xC,kBAAmB,CACvE,IAAIrsC,EAAKrF,KAAKm7C,0BACVj5C,EAAM,IAAMmD,EAAGvF,KACdH,OAAOkF,UAAUqe,eAAe3e,KAAKvE,KAAK2xC,QAAQW,SAAUpwC,IAC7DlC,KAAK2lB,WAAW8pB,EAAWsD,SAAS4J,aAAct3C,EAAGvF,MAEzD4f,EAAQra,EAMZ,OAJArF,KAAKi1C,mBACS,OAAVv1B,GAAmB1f,KAAK2xC,QAAQS,aAAgBpyC,KAAK2xC,QAAQU,UAC7DryC,KAAK2lB,WAAW8pB,EAAWsD,SAAS+J,cAEjC98C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK/D,eAAetiB,KAGvD8f,EAAO36B,UAAUk4C,qBAAuB,WAC/B/8C,KAAK2xC,QAAQQ,gBACdnyC,KAAKqqC,cAAcoF,EAAWsD,SAASiK,eAE3C,IAAIrgC,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,UACnB,IAIIxJ,GAJgB7qC,KAAKogB,MAAM,OAASpgB,KAAKogB,MAAM,OAC9CpgB,KAAK0xC,mBAA6C,IAAxB1xC,KAAKyxC,UAAUzuC,MAClB,IAAxBhD,KAAKyxC,UAAUzuC,MACS,KAAxBhD,KAAKyxC,UAAUzuC,KACUhD,KAAKs3C,kBAAoB,KAEtD,OADAt3C,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKzB,gBAAgBuG,KAGxDrL,EAAO36B,UAAUo4C,mBAAqB,WAC9Bj9C,KAAK2xC,QAAQY,QACbvyC,KAAKqqC,cAAcoF,EAAWsD,SAASmK,gBAE3C,IACIzf,EADA9gB,EAAO3c,KAAK+zC,aAEhB/zC,KAAKq0C,cAAc,QACnBr0C,KAAKm0C,OAAO,KACZ,IAAInnB,EAAShtB,KAAKs3C,kBASlB,OARKt3C,KAAKogB,MAAM,MAAQpgB,KAAK4/B,OAAOC,UAChC7/B,KAAK2zC,wBAAwB3zC,KAAKqnC,aAClC5J,EAAOz9B,KAAK0pC,SAAS1pC,KAAK+zC,aAAc,IAAIhO,EAAKrD,kBAGjD1iC,KAAKm0C,OAAO,KACZ1W,EAAOz9B,KAAKu6C,kBAETv6C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKR,cAAcvY,EAAQyQ,KAG9D+B,EAAO36B,UAAUs4C,gBAAkB,WAC/B,IACI52B,EADA5J,EAAO3c,KAAK+zC,aAEZ/zC,KAAKu0C,aAAa,YAClBv0C,KAAKqnC,YACL9gB,EAAO,OAGPvmB,KAAKq0C,cAAc,QACnB9tB,EAAOvmB,KAAKs3C,mBAEhBt3C,KAAKm0C,OAAO,KAEZ,IADA,IAAI1G,EAAa,KAETztC,KAAKogB,MAAM,MAAQpgB,KAAKu0C,aAAa,YAAcv0C,KAAKu0C,aAAa,UAGzE9G,EAAW3qC,KAAK9C,KAAK45C,0BAEzB,OAAO55C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKrB,WAAWne,EAAMknB,KAEzDjO,EAAO36B,UAAUu4C,qBAAuB,WACpC,IAAIzgC,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,UACnBr0C,KAAKm0C,OAAO,KACZ,IAAInF,EAAehvC,KAAKs3C,kBACxBt3C,KAAKm0C,OAAO,KACZ,IAAIkJ,EAAmBr9C,KAAK2xC,QAAQU,SACpCryC,KAAK2xC,QAAQU,UAAW,EACxB,IAAIpD,EAAQ,GACRqO,GAAe,EAEnB,IADAt9C,KAAKm0C,OAAO,MAEJn0C,KAAKogB,MAAM,MADN,CAIT,IAAIm9B,EAASv9C,KAAKm9C,kBACE,OAAhBI,EAAOh3B,OACH+2B,GACAt9C,KAAK2lB,WAAW8pB,EAAWsD,SAASyK,0BAExCF,GAAe,GAEnBrO,EAAMnsC,KAAKy6C,GAIf,OAFAv9C,KAAKm0C,OAAO,KACZn0C,KAAK2xC,QAAQU,SAAWgL,EACjBr9C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpB,gBAAgBqK,EAAcC,KAGtEzP,EAAO36B,UAAU44C,uBAAyB,WACtC,IAEI5D,EAFAl9B,EAAO3c,KAAK+zC,aACZpN,EAAO3mC,KAAKs3C,kBAEhB,GAAK3Q,EAAK3jC,OAASu9B,EAASC,OAAO6C,YAAerjC,KAAKogB,MAAM,KAAM,CAC/DpgB,KAAKqnC,YACL,IAAIhiC,EAAKshC,EACLzkC,EAAM,IAAMmD,EAAGvF,KACfH,OAAOkF,UAAUqe,eAAe3e,KAAKvE,KAAK2xC,QAAQW,SAAUpwC,IAC5DlC,KAAK2lB,WAAW8pB,EAAWsD,SAAS2K,cAAe,QAASr4C,EAAGvF,MAEnEE,KAAK2xC,QAAQW,SAASpwC,IAAO,EAC7B,IAAIu7B,OAAO,EACX,GAAIz9B,KAAKu0C,aAAa,SAClBv0C,KAAK2zC,wBAAwB3zC,KAAKyxC,WAClChU,EAAOz9B,KAAKq6C,6BAEX,GAAIr6C,KAAKu0C,aAAa,YAAa,CACpC,IAAInU,EAAQpgC,KAAKyxC,UACb5D,EAAc7tC,KAAKo6C,2BACnBp6C,KAAK2xC,QAAQY,OACbvyC,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAAS8I,gBAEnDhO,EAAYf,WACjB9sC,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAAS4K,0BAE5DlgB,EAAOoQ,OAGPpQ,EAAOz9B,KAAKu6C,wBAETv6C,KAAK2xC,QAAQW,SAASpwC,GAC7B23C,EAAY,IAAI9T,EAAKnC,iBAAiBv+B,EAAIo4B,QAG1Cz9B,KAAKi1C,mBACL4E,EAAY,IAAI9T,EAAKhD,oBAAoB4D,GAE7C,OAAO3mC,KAAK0pC,SAAS/sB,EAAMk9B,IAG/Bra,EAAO36B,UAAU+4C,oBAAsB,WACnC,IAAIjhC,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,SACfr0C,KAAK0xC,mBACL1xC,KAAK2lB,WAAW8pB,EAAWsD,SAAS8K,mBAExC,IAAIhT,EAAW7qC,KAAKs3C,kBAEpB,OADAt3C,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKf,eAAe6F,KAGvDrL,EAAO36B,UAAUi5C,iBAAmB,WAChC,IAAInhC,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,SACnBr0C,KAAKm0C,OAAO,KACRn0C,KAAKogB,MAAM,MACXpgB,KAAKupC,qBAAqBvpC,KAAKyxC,WAKnC,IAHA,IAAI3rC,EAAS,GACT83B,EAAQ59B,KAAK06C,aAAa50C,GAC1Bi4C,EAAW,GACN9vC,EAAI,EAAGA,EAAInI,EAAO7D,OAAQgM,IAAK,CACpC,IAAI/L,EAAM,IAAM4D,EAAOmI,GAAGlD,MACtBpL,OAAOkF,UAAUqe,eAAe3e,KAAKw5C,EAAU77C,IAC/ClC,KAAKqqC,cAAcoF,EAAWsD,SAASiL,iBAAkBl4C,EAAOmI,GAAGlD,OAEvEgzC,EAAS77C,IAAO,EAEhBlC,KAAK2xC,QAAQY,QAAU3U,EAAM56B,OAASu9B,EAASC,OAAO6C,YAClDrjC,KAAKinC,QAAQuR,iBAAiB5a,EAAM99B,OACpCE,KAAKqqC,cAAcoF,EAAWsD,SAASkL,qBAG/Cj+C,KAAKm0C,OAAO,KACZ,IAAI1W,EAAOz9B,KAAKw6C,aAChB,OAAOx6C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK7D,YAAYtE,EAAOH,KAE3D+B,EAAO36B,UAAUq5C,mBAAqB,WAElC,OADAl+C,KAAKq0C,cAAc,WACZr0C,KAAKw6C,cAEhBhb,EAAO36B,UAAUs5C,kBAAoB,WACjC,IAAIxhC,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,OACnB,IAAIjF,EAAQpvC,KAAKw6C,aACb9lC,EAAU1U,KAAKu0C,aAAa,SAAWv0C,KAAK89C,mBAAqB,KACjEzO,EAAYrvC,KAAKu0C,aAAa,WAAav0C,KAAKk+C,qBAAuB,KAI3E,OAHKxpC,GAAY26B,GACbrvC,KAAK2lB,WAAW8pB,EAAWsD,SAASqL,kBAEjCp+C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKd,aAAamK,EAAO16B,EAAS26B,KAGrE7P,EAAO36B,UAAUw5C,uBAAyB,WACtC,IAAI1hC,EAAO3c,KAAK+zC,aAGhB,OAFA/zC,KAAKq0C,cAAc,YACnBr0C,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKtD,oBAGxCjD,EAAO36B,UAAU01C,eAAiB,WAC9B,IAAIV,EACJ,OAAQ75C,KAAKyxC,UAAUzuC,MACnB,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,EACD62C,EAAY75C,KAAK27C,2BACjB,MACJ,KAAK,EACD,IAAI5wC,EAAQ/K,KAAKyxC,UAAU1mC,MAEvB8uC,EADU,MAAV9uC,EACY/K,KAAKw6C,aAEF,MAAVzvC,EACO/K,KAAK27C,2BAEF,MAAV5wC,EACO/K,KAAK07C,sBAGL17C,KAAK27C,2BAErB,MACJ,KAAK,EACD9B,EAAY75C,KAAKk1C,qBAAuBl1C,KAAKo6C,2BAA6Bp6C,KAAKy9C,yBAC/E,MACJ,KAAK,EACD,OAAQz9C,KAAKyxC,UAAU1mC,OACnB,IAAK,QACD8uC,EAAY75C,KAAK68C,sBACjB,MACJ,IAAK,WACDhD,EAAY75C,KAAK08C,yBACjB,MACJ,IAAK,WACD7C,EAAY75C,KAAKq+C,yBACjB,MACJ,IAAK,KACDxE,EAAY75C,KAAK+7C,wBACjB,MACJ,IAAK,MACDlC,EAAY75C,KAAKk8C,oBACjB,MACJ,IAAK,WACDrC,EAAY75C,KAAKo6C,2BACjB,MACJ,IAAK,KACDP,EAAY75C,KAAK87C,mBACjB,MACJ,IAAK,SACDjC,EAAY75C,KAAK+8C,uBACjB,MACJ,IAAK,SACDlD,EAAY75C,KAAKo9C,uBACjB,MACJ,IAAK,QACDvD,EAAY75C,KAAK49C,sBACjB,MACJ,IAAK,MACD/D,EAAY75C,KAAKm+C,oBACjB,MACJ,IAAK,MACDtE,EAAY75C,KAAKy7C,yBACjB,MACJ,IAAK,QACD5B,EAAY75C,KAAKi8C,sBACjB,MACJ,IAAK,OACDpC,EAAY75C,KAAKi9C,qBACjB,MACJ,QACIpD,EAAY75C,KAAK27C,2BAGzB,MACJ,QACI9B,EAAY75C,KAAKupC,qBAAqBvpC,KAAKyxC,WAEnD,OAAOoI,GAGXra,EAAO36B,UAAUmxC,4BAA8B,WAC3C,IAAIr5B,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,KACZ,IAAI1W,EAAOz9B,KAAKs+C,0BACZC,EAAmBv+C,KAAK2xC,QAAQW,SAChC0J,EAAsBh8C,KAAK2xC,QAAQS,YACnCiL,EAAmBr9C,KAAK2xC,QAAQU,SAChCmM,EAAyBx+C,KAAK2xC,QAAQQ,eAK1C,IAJAnyC,KAAK2xC,QAAQW,SAAW,GACxBtyC,KAAK2xC,QAAQS,aAAc,EAC3BpyC,KAAK2xC,QAAQU,UAAW,EACxBryC,KAAK2xC,QAAQQ,gBAAiB,EACC,IAAxBnyC,KAAKyxC,UAAUzuC,OACdhD,KAAKogB,MAAM,MAGfqd,EAAK36B,KAAK9C,KAAK45C,0BAOnB,OALA55C,KAAKm0C,OAAO,KACZn0C,KAAK2xC,QAAQW,SAAWiM,EACxBv+C,KAAK2xC,QAAQS,YAAc4J,EAC3Bh8C,KAAK2xC,QAAQU,SAAWgL,EACxBr9C,KAAK2xC,QAAQQ,eAAiBqM,EACvBx+C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnF,eAAenD,KAEvD+B,EAAO36B,UAAUy0C,cAAgB,SAAU95C,EAASo+B,EAAO99B,GACvD,IAAIoC,EAAM,IAAMpC,EACZE,KAAK2xC,QAAQY,QACTvyC,KAAKinC,QAAQuR,iBAAiB14C,KAC9BN,EAAQ02C,SAAWtY,EACnBp+B,EAAQgF,QAAUirC,EAAWsD,SAAS0L,iBAEtC9+C,OAAOkF,UAAUqe,eAAe3e,KAAK/E,EAAQg6C,SAAUt3C,KACvD1C,EAAQ02C,SAAWtY,EACnBp+B,EAAQgF,QAAUirC,EAAWsD,SAAS0G,kBAGpCj6C,EAAQy2C,kBACVj2C,KAAKinC,QAAQuR,iBAAiB14C,IAC9BN,EAAQy2C,gBAAkBrY,EAC1Bp+B,EAAQgF,QAAUirC,EAAWsD,SAAS0L,iBAEjCz+C,KAAKinC,QAAQuM,yBAAyB1zC,IAC3CN,EAAQy2C,gBAAkBrY,EAC1Bp+B,EAAQgF,QAAUirC,EAAWsD,SAASU,oBAEjC9zC,OAAOkF,UAAUqe,eAAe3e,KAAK/E,EAAQg6C,SAAUt3C,KAC5D1C,EAAQ02C,SAAWtY,EACnBp+B,EAAQgF,QAAUirC,EAAWsD,SAAS0G,kBAIT,mBAA1B95C,OAAOgX,eACdhX,OAAOgX,eAAenX,EAAQg6C,SAAUt3C,EAAK,CAAE6I,OAAO,EAAMkR,YAAY,EAAMyiC,UAAU,EAAM9nC,cAAc,IAG5GpX,EAAQg6C,SAASt3C,IAAO,GAGhCs9B,EAAO36B,UAAU4yC,iBAAmB,SAAU3xC,GAC1C,IAAI6W,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,OACZ,IAAI1jB,EAAMzwB,KAAK06C,aAAa50C,GAO5B,OANI9F,KAAKogB,MAAM,MACXpgB,KAAK2lB,WAAW8pB,EAAWsD,SAAS4L,sBAEnC3+C,KAAKogB,MAAM,MACZpgB,KAAK2lB,WAAW8pB,EAAWsD,SAAS6L,6BAEjC5+C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1B,YAAY5T,KAEpD+O,EAAO36B,UAAUg6C,qBAAuB,SAAUr/C,GAG9C,IAFA,IAAIsG,EAAS,GACT83B,EAAQ59B,KAAKogB,MAAM,OAASpgB,KAAKy3C,iBAAiB3xC,GAAU9F,KAAKg7C,wBAAwBl1C,GACpFmI,EAAI,EAAGA,EAAInI,EAAO7D,OAAQgM,IAC/BjO,KAAKs5C,cAAc95C,EAASsG,EAAOmI,GAAInI,EAAOmI,GAAGlD,OAErDvL,EAAQu2C,OAASv2C,EAAQu2C,QAAWnY,aAAiBmI,EAAK1C,WAC1D7jC,EAAQsG,OAAOhD,KAAK86B,IAExB4B,EAAO36B,UAAUwxC,sBAAwB,SAAUJ,GAC/C,IAAIz2C,EAOJ,GANAA,EAAU,CACNu2C,QAAQ,EACRjwC,OAAQ,GACRmwC,gBAAiBA,GAErBj2C,KAAKm0C,OAAO,MACPn0C,KAAKogB,MAAM,KAEZ,IADA5gB,EAAQg6C,SAAW,GACY,IAAxBx5C,KAAKyxC,UAAUzuC,OAClBhD,KAAK6+C,qBAAqBr/C,IACtBQ,KAAKogB,MAAM,QAGfpgB,KAAKm0C,OAAO,MACRn0C,KAAKogB,MAAM,QAMvB,OADApgB,KAAKm0C,OAAO,KACL,CACH4B,OAAQv2C,EAAQu2C,OAChBjwC,OAAQtG,EAAQsG,OAChBowC,SAAU12C,EAAQ02C,SAClBD,gBAAiBz2C,EAAQy2C,gBACzBzxC,QAAShF,EAAQgF,UAGzBg7B,EAAO36B,UAAUqwC,mBAAqB,WAClC,IAAI90B,EAAQpgB,KAAKw0C,uBAAuB,SACxC,GAAIp0B,EAAO,CACP,IAAIsF,EAAQ1lB,KAAKinC,QAAQkC,YACzBnpC,KAAKinC,QAAQmC,eACb,IAAIC,EAAOrpC,KAAKinC,QAAQ0B,MACxB3oC,KAAKinC,QAAQqC,aAAa5jB,GAC1BtF,EAASsF,EAAMyhB,aAAekC,EAAKlC,YAA8B,IAAdkC,EAAKrmC,MAA6C,aAAfqmC,EAAKt+B,MAE/F,OAAOqV,GAEXof,EAAO36B,UAAUu1C,yBAA2B,SAAU0E,GAClD,IAAIniC,EAAO3c,KAAK+zC,aACZ6C,EAAU52C,KAAKw0C,uBAAuB,SACtCoC,GACA52C,KAAKqnC,YAETrnC,KAAKq0C,cAAc,YACnB,IAII7vC,EAJAu6C,GAAcnI,GAAkB52C,KAAKogB,MAAM,KAC3C2+B,GACA/+C,KAAKqnC,YAGT,IAAIhiC,EAAK,KACL4wC,EAAkB,KACtB,IAAK6I,IAAyB9+C,KAAKogB,MAAM,KAAM,CAC3C,IAAIggB,EAAQpgC,KAAKyxC,UACjBpsC,EAAKrF,KAAKm7C,0BACNn7C,KAAK2xC,QAAQY,OACTvyC,KAAKinC,QAAQuR,iBAAiBpY,EAAMr1B,QACpC/K,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASiM,oBAIxDh/C,KAAKinC,QAAQuR,iBAAiBpY,EAAMr1B,QACpCkrC,EAAkB7V,EAClB57B,EAAUirC,EAAWsD,SAASiM,oBAEzBh/C,KAAKinC,QAAQuM,yBAAyBpT,EAAMr1B,SACjDkrC,EAAkB7V,EAClB57B,EAAUirC,EAAWsD,SAASU,oBAI1C,IAAIwL,EAAqBj/C,KAAK2xC,QAAL,MACrByE,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAL,MAAqBiF,EACrB52C,KAAK2xC,QAAQI,YAAcgN,EAC3B,IAAIG,EAAmBl/C,KAAKq2C,sBAAsBJ,GAC9CnwC,EAASo5C,EAAiBp5C,OAC1BowC,EAAWgJ,EAAiBhJ,SAChCD,EAAkBiJ,EAAiBjJ,gBAC/BiJ,EAAiB16C,UACjBA,EAAU06C,EAAiB16C,SAE/B,IAAIqxC,EAAiB71C,KAAK2xC,QAAQY,OAC9BuD,EAA+B91C,KAAK2xC,QAAQG,qBAChD9xC,KAAK2xC,QAAQG,qBAAuBoN,EAAiBnJ,OACrD,IAAItY,EAAOz9B,KAAKg2C,8BAWhB,OAVIh2C,KAAK2xC,QAAQY,QAAU0D,GACvBj2C,KAAKupC,qBAAqB0M,EAAiBzxC,GAE3CxE,KAAK2xC,QAAQY,QAAU2D,GACvBl2C,KAAK2zC,wBAAwBuC,EAAU1xC,GAE3CxE,KAAK2xC,QAAQY,OAASsD,EACtB71C,KAAK2xC,QAAQG,qBAAuBgE,EACpC91C,KAAK2xC,QAAL,MAAqBsN,EACrBj/C,KAAK2xC,QAAQI,WAAaqE,EACnBQ,EAAU52C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKmH,yBAAyB7nC,EAAIS,EAAQ23B,IAC/Ez9B,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK5C,oBAAoB99B,EAAIS,EAAQ23B,EAAMshB,KAE3Evf,EAAO36B,UAAUswC,wBAA0B,WACvC,IAAIx4B,EAAO3c,KAAK+zC,aACZ6C,EAAU52C,KAAKw0C,uBAAuB,SACtCoC,GACA52C,KAAKqnC,YAETrnC,KAAKq0C,cAAc,YACnB,IAII7vC,EAJAu6C,GAAcnI,GAAkB52C,KAAKogB,MAAM,KAC3C2+B,GACA/+C,KAAKqnC,YAGT,IACI4O,EADA5wC,EAAK,KAEL45C,EAAqBj/C,KAAK2xC,QAAL,MACrByE,EAAqBp2C,KAAK2xC,QAAQI,WAGtC,GAFA/xC,KAAK2xC,QAAL,MAAqBiF,EACrB52C,KAAK2xC,QAAQI,YAAcgN,GACtB/+C,KAAKogB,MAAM,KAAM,CAClB,IAAIggB,EAAQpgC,KAAKyxC,UACjBpsC,EAAOrF,KAAK2xC,QAAQY,QAAWwM,IAAe/+C,KAAKu0C,aAAa,SAAyCv0C,KAAKm7C,0BAAlCn7C,KAAKy1C,sBAC7Ez1C,KAAK2xC,QAAQY,OACTvyC,KAAKinC,QAAQuR,iBAAiBpY,EAAMr1B,QACpC/K,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASiM,oBAIxDh/C,KAAKinC,QAAQuR,iBAAiBpY,EAAMr1B,QACpCkrC,EAAkB7V,EAClB57B,EAAUirC,EAAWsD,SAASiM,oBAEzBh/C,KAAKinC,QAAQuM,yBAAyBpT,EAAMr1B,SACjDkrC,EAAkB7V,EAClB57B,EAAUirC,EAAWsD,SAASU,oBAI1C,IAAIyL,EAAmBl/C,KAAKq2C,sBAAsBJ,GAC9CnwC,EAASo5C,EAAiBp5C,OAC1BowC,EAAWgJ,EAAiBhJ,SAChCD,EAAkBiJ,EAAiBjJ,gBAC/BiJ,EAAiB16C,UACjBA,EAAU06C,EAAiB16C,SAE/B,IAAIqxC,EAAiB71C,KAAK2xC,QAAQY,OAC9BuD,EAA+B91C,KAAK2xC,QAAQG,qBAChD9xC,KAAK2xC,QAAQG,qBAAuBoN,EAAiBnJ,OACrD,IAAItY,EAAOz9B,KAAKg2C,8BAWhB,OAVIh2C,KAAK2xC,QAAQY,QAAU0D,GACvBj2C,KAAKupC,qBAAqB0M,EAAiBzxC,GAE3CxE,KAAK2xC,QAAQY,QAAU2D,GACvBl2C,KAAK2zC,wBAAwBuC,EAAU1xC,GAE3CxE,KAAK2xC,QAAQY,OAASsD,EACtB71C,KAAK2xC,QAAQG,qBAAuBgE,EACpC91C,KAAK2xC,QAAL,MAAqBsN,EACrBj/C,KAAK2xC,QAAQI,WAAaqE,EACnBQ,EAAU52C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKoH,wBAAwB9nC,EAAIS,EAAQ23B,IAC9Ez9B,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3C,mBAAmB/9B,EAAIS,EAAQ23B,EAAMshB,KAG1Evf,EAAO36B,UAAUs6C,eAAiB,WAC9B,IAAI/e,EAAQpgC,KAAKyxC,UACb90B,EAAO3c,KAAK+zC,aACZpN,EAAO3mC,KAAKs3C,kBACZ1J,EAAajH,EAAK3jC,OAASu9B,EAASC,OAAOmD,QAAW3jC,KAAKmqC,YAAY/J,GAAO32B,MAAM,GAAI,GAAK,KAEjG,OADAzJ,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAMixB,EAAY,IAAI7H,EAAK4H,UAAUhH,EAAMiH,GAAa,IAAI7H,EAAKhD,oBAAoB4D,KAE9GnH,EAAO36B,UAAUy5C,wBAA0B,WAGvC,IAFA,IAAIrI,EAAkB,KAClBxY,EAAO,KACE,CACT,IAAI2C,EAAQpgC,KAAKyxC,UACjB,GAAmB,IAAfrR,EAAMp9B,KACN,MAEJ,IAAI62C,EAAY75C,KAAKm/C,iBACrB1hB,EAAK36B,KAAK+2C,GACV,IAAIjM,EAAYiM,EAAUjM,UAC1B,GAAyB,iBAAdA,EACP,MAEc,eAAdA,GACA5tC,KAAK2xC,QAAQY,QAAS,EAClB0D,GACAj2C,KAAK2zC,wBAAwBsC,EAAiBxG,EAAWsD,SAASqC,oBAEjEp1C,KAAK2xC,QAAQG,sBACd9xC,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAASqM,gCAIvDnJ,GAAmB7V,EAAMzS,QAC1BsoB,EAAkB7V,GAI9B,OAAO3C,GAGX+B,EAAO36B,UAAUiyC,sBAAwB,SAAU1W,GAC/C,OAAQA,EAAMp9B,MACV,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAO,EACX,KAAK,EACD,MAAuB,MAAhBo9B,EAAMr1B,MAIrB,OAAO,GAEXy0B,EAAO36B,UAAUkyC,kBAAoB,WACjC,IAAIp6B,EAAO3c,KAAK+zC,aAEZqC,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAQI,YAAa,EAC1B,IAAImN,EAAmBl/C,KAAKq2C,wBACxB6I,EAAiBp5C,OAAO7D,OAAS,GACjCjC,KAAKqqC,cAAcoF,EAAWsD,SAASsM,gBAE3C,IAAI35C,EAAS1F,KAAK41C,oBAAoBsJ,GAEtC,OADAl/C,KAAK2xC,QAAQI,WAAaqE,EACnBp2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3C,mBAAmB,KAAM8b,EAAiBp5C,OAAQJ,GATpE,KAWtB85B,EAAO36B,UAAUmyC,kBAAoB,WACjC,IAAIr6B,EAAO3c,KAAK+zC,aAEZqC,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAQI,YAAa,EAC1B,IAAImN,EAAmBl/C,KAAKq2C,wBACW,IAAnC6I,EAAiBp5C,OAAO7D,OACxBjC,KAAKqqC,cAAcoF,EAAWsD,SAASuM,gBAElCJ,EAAiBp5C,OAAO,aAAcigC,EAAK1B,aAChDrkC,KAAKqqC,cAAcoF,EAAWsD,SAASwM,wBAE3C,IAAI75C,EAAS1F,KAAK41C,oBAAoBsJ,GAEtC,OADAl/C,KAAK2xC,QAAQI,WAAaqE,EACnBp2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3C,mBAAmB,KAAM8b,EAAiBp5C,OAAQJ,GAZpE,KActB85B,EAAO36B,UAAUoyC,qBAAuB,WACpC,IAAIt6B,EAAO3c,KAAK+zC,aAEZqC,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAQI,YAAa,EAC1B,IAAIjsC,EAAS9F,KAAKq2C,wBAClBr2C,KAAK2xC,QAAQI,YAAa,EAC1B,IAAIrsC,EAAS1F,KAAK41C,oBAAoB9vC,GAEtC,OADA9F,KAAK2xC,QAAQI,WAAaqE,EACnBp2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3C,mBAAmB,KAAMt9B,EAAOA,OAAQJ,GAP1D,KAUtB85B,EAAO36B,UAAUunC,oBAAsB,WACnC,IAAIhkC,GAAQ,EACR2C,EAAQ/K,KAAKyxC,UAAU1mC,MAC3B,OAAQ/K,KAAKyxC,UAAUzuC,MACnB,KAAK,EACDoF,EAAmB,MAAV2C,GAA6B,MAAVA,GAA6B,MAAVA,GAChC,MAAVA,GAA6B,MAAVA,GACT,MAAVA,GAA6B,MAAVA,GACT,OAAVA,GAA8B,OAAVA,GACV,MAAVA,GAA6B,OAAVA,EACxB,MACJ,KAAK,EACD3C,EAAmB,UAAV2C,GAAiC,WAAVA,GACjB,aAAVA,GAAoC,QAAVA,GAA+B,QAAVA,GACrC,UAAVA,GAAiC,SAAVA,GAAgC,WAAVA,GACnC,SAAVA,GAAgC,UAAVA,EAKnC,OAAO3C,GAEXo3B,EAAO36B,UAAU60C,qBAAuB,WACpC,IAAI/8B,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,SACnB,IAAIxJ,EAAW,KACXrM,GAAW,EACf,IAAKx+B,KAAK0xC,kBAAmB,CACzB,IAAI0E,EAAqBp2C,KAAK2xC,QAAQI,WACtC/xC,KAAK2xC,QAAQI,YAAa,GAC1BvT,EAAWx+B,KAAKogB,MAAM,OAElBpgB,KAAKqnC,YACLwD,EAAW7qC,KAAKsqC,6BAEXtqC,KAAKosC,wBACVvB,EAAW7qC,KAAKsqC,6BAEpBtqC,KAAK2xC,QAAQI,WAAaqE,EAE9B,OAAOp2C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKP,gBAAgBqF,EAAUrM,KAGlEgB,EAAO36B,UAAU26C,kBAAoB,SAAUC,GAC3C,IAAIrf,EAAQpgC,KAAKyxC,UACb90B,EAAO3c,KAAK+zC,aACZ9zC,EAAO,GACPiC,EAAM,KACN6I,EAAQ,KACRyiC,GAAW,EACX9nC,GAAS,EACT4oC,GAAW,EACXsI,GAAU,EACd,GAAI52C,KAAKogB,MAAM,KACXpgB,KAAKqnC,iBAiBL,GAdAmG,EAAWxtC,KAAKogB,MAAM,KAGN,YAFhBle,EAAMlC,KAAKw2C,0BAEJ12C,OAAsBE,KAAK82C,sBAAsB92C,KAAKyxC,YAAczxC,KAAKogB,MAAM,QAClFggB,EAAQpgC,KAAKyxC,UACbnD,GAAW,EACXd,EAAWxtC,KAAKogB,MAAM,KAClBpgB,KAAKogB,MAAM,KACXpgB,KAAKqnC,YAGLnlC,EAAMlC,KAAKw2C,0BAGC,IAAfpW,EAAMp9B,OAAiChD,KAAK0xC,mBAAsC,UAAhBtR,EAAMr1B,MAAoB,CAC7F,IAAI20C,EAAa1/C,KAAKyxC,UAAU1mC,MACb,MAAf20C,GAAqC,MAAfA,GAAqC,MAAfA,IAC5C9I,GAAU,EACVxW,EAAQpgC,KAAKyxC,UACbvvC,EAAMlC,KAAKw2C,yBACQ,IAAfpW,EAAMp9B,MAA+C,gBAAhBo9B,EAAMr1B,OAC3C/K,KAAK2zC,wBAAwBvT,EAAOqP,EAAWsD,SAAS4M,qBAKxE,IAAI9I,EAAuB72C,KAAK82C,sBAAsB92C,KAAKyxC,WAmD3D,OAlDmB,IAAfrR,EAAMp9B,KACc,QAAhBo9B,EAAMr1B,OAAmB8rC,GACzB52C,EAAO,MACPutC,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXx2C,KAAK2xC,QAAQI,YAAa,EAC1BhnC,EAAQ/K,KAAK+2C,qBAEQ,QAAhB3W,EAAMr1B,OAAmB8rC,IAC9B52C,EAAO,MACPutC,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXzrC,EAAQ/K,KAAKg3C,qBAGG,IAAf5W,EAAMp9B,MAA+C,MAAhBo9B,EAAMr1B,OAAiB8rC,IACjE52C,EAAO,OACPutC,EAAWxtC,KAAKogB,MAAM,KACtBle,EAAMlC,KAAKw2C,yBACXzrC,EAAQ/K,KAAKi3C,uBACbvxC,GAAS,IAERzF,GAAQiC,GAAOlC,KAAKogB,MAAM,OAC3BngB,EAAO,OACP8K,EAAQ6rC,EAAU52C,KAAKs2C,mCAAqCt2C,KAAKm2C,8BACjEzwC,GAAS,GAERzF,GACDD,KAAKupC,qBAAqBvpC,KAAKyxC,WAEtB,SAATxxC,IACAA,EAAO,UAENutC,IACGc,GAAYtuC,KAAKy2C,cAAcv0C,EAAK,cACpClC,KAAKupC,qBAAqBnJ,EAAOqP,EAAWsD,SAAS6M,kBAEpDtR,GAAYtuC,KAAKy2C,cAAcv0C,EAAK,kBACxB,WAATjC,IAAsByF,GAAWqF,GAASA,EAAM+hC,YAChD9sC,KAAKupC,qBAAqBnJ,EAAOqP,EAAWsD,SAAS8M,0BAErDJ,EAAe10C,MACf/K,KAAKupC,qBAAqBnJ,EAAOqP,EAAWsD,SAAS+M,sBAGrDL,EAAe10C,OAAQ,EAE3B9K,EAAO,gBAGRD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK/B,iBAAiB9hC,EAAKsrC,EAAUziC,EAAO9K,EAAMquC,KAErF9O,EAAO36B,UAAUk7C,sBAAwB,WACrC,IAAItiB,EAAO,GACPgiB,EAAiB,CAAE10C,OAAO,GAE9B,IADA/K,KAAKm0C,OAAO,MACJn0C,KAAKogB,MAAM,MACXpgB,KAAKogB,MAAM,KACXpgB,KAAKqnC,YAGL5J,EAAK36B,KAAK9C,KAAKw/C,kBAAkBC,IAIzC,OADAz/C,KAAKm0C,OAAO,KACL1W,GAEX+B,EAAO36B,UAAUm7C,eAAiB,WAC9B,IAAIrjC,EAAO3c,KAAK+zC,aACZkM,EAAcjgD,KAAK+/C,wBACvB,OAAO//C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK5D,UAAU8d,KAElDzgB,EAAO36B,UAAUw1C,sBAAwB,SAAUyE,GAC/C,IAAIniC,EAAO3c,KAAK+zC,aACZ8B,EAAiB71C,KAAK2xC,QAAQY,OAClCvyC,KAAK2xC,QAAQY,QAAS,EACtBvyC,KAAKq0C,cAAc,SACnB,IAAIhvC,EAAMy5C,GAAiD,IAAxB9+C,KAAKyxC,UAAUzuC,KAAgC,KAAOhD,KAAKm7C,0BAC1F7N,EAAa,KACbttC,KAAKu0C,aAAa,aAClBv0C,KAAKqnC,YACLiG,EAAattC,KAAK20C,oBAAoB30C,KAAKi4C,uCAE/C,IAAIiI,EAAYlgD,KAAKggD,iBAErB,OADAhgD,KAAK2xC,QAAQY,OAASsD,EACf71C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK3D,iBAAiB/8B,EAAIioC,EAAY4S,KAEzE1gB,EAAO36B,UAAU6wC,qBAAuB,WACpC,IAAI/4B,EAAO3c,KAAK+zC,aACZ8B,EAAiB71C,KAAK2xC,QAAQY,OAClCvyC,KAAK2xC,QAAQY,QAAS,EACtBvyC,KAAKq0C,cAAc,SACnB,IAAIhvC,EAA8B,IAAxBrF,KAAKyxC,UAAUzuC,KAA+BhD,KAAKm7C,0BAA4B,KACrF7N,EAAa,KACbttC,KAAKu0C,aAAa,aAClBv0C,KAAKqnC,YACLiG,EAAattC,KAAK20C,oBAAoB30C,KAAKi4C,uCAE/C,IAAIiI,EAAYlgD,KAAKggD,iBAErB,OADAhgD,KAAK2xC,QAAQY,OAASsD,EACf71C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK1D,gBAAgBh9B,EAAIioC,EAAY4S,KAIxE1gB,EAAO36B,UAAU46B,YAAc,WAC3Bz/B,KAAK2xC,QAAQY,QAAS,EACtBvyC,KAAK2xC,QAAQvS,UAAW,EACxBp/B,KAAKinC,QAAQ7H,UAAW,EAGxB,IAFA,IAAIziB,EAAO3c,KAAK+zC,aACZtW,EAAOz9B,KAAKs+C,0BACe,IAAxBt+C,KAAKyxC,UAAUzuC,MAClBy6B,EAAK36B,KAAK9C,KAAK45C,0BAEnB,OAAO55C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKwI,OAAO9Q,KAE/C+B,EAAO36B,UAAU66B,YAAc,WAG3B,IAFA,IAAI/iB,EAAO3c,KAAK+zC,aACZtW,EAAOz9B,KAAKs+C,0BACe,IAAxBt+C,KAAKyxC,UAAUzuC,MAClBy6B,EAAK36B,KAAK9C,KAAK45C,0BAEnB,OAAO55C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAK8I,OAAOpR,KAG/C+B,EAAO36B,UAAUs7C,qBAAuB,WACpC,IAAIxjC,EAAO3c,KAAK+zC,aACY,IAAxB/zC,KAAKyxC,UAAUzuC,MACfhD,KAAK2lB,WAAW8pB,EAAWsD,SAASqN,wBAExC,IAAIhgB,EAAQpgC,KAAKqnC,YACb6C,EAAMlqC,KAAKmqC,YAAY/J,GAC3B,OAAOpgC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpC,QAAQvD,EAAMr1B,MAAOm/B,KAG7D1K,EAAO36B,UAAUw7C,qBAAuB,WACpC,IACIjS,EACAL,EAFApxB,EAAO3c,KAAK+zC,aAsBhB,OAnB4B,IAAxB/zC,KAAKyxC,UAAUzuC,MAEf+qC,EADAK,EAAWpuC,KAAKm7C,0BAEZn7C,KAAKw0C,uBAAuB,QAC5Bx0C,KAAKqnC,YACL0G,EAAQ/tC,KAAKm7C,6BAKjBpN,EADAK,EAAWpuC,KAAKy1C,sBAEZz1C,KAAKw0C,uBAAuB,OAC5Bx0C,KAAKqnC,YACL0G,EAAQ/tC,KAAKm7C,2BAGbn7C,KAAKupC,qBAAqBvpC,KAAKqnC,cAGhCrnC,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKrC,gBAAgBqK,EAAOK,KAG/D5O,EAAO36B,UAAUy7C,kBAAoB,WACjCtgD,KAAKm0C,OAAO,KAEZ,IADA,IAAIrG,EAAa,IACT9tC,KAAKogB,MAAM,MACf0tB,EAAWhrC,KAAK9C,KAAKqgD,wBAChBrgD,KAAKogB,MAAM,MACZpgB,KAAKm0C,OAAO,KAIpB,OADAn0C,KAAKm0C,OAAO,KACLrG,GAGXtO,EAAO36B,UAAU07C,4BAA8B,WAC3C,IAAI5jC,EAAO3c,KAAK+zC,aACZhG,EAAQ/tC,KAAKy1C,sBACjB,OAAOz1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKvC,uBAAuBuK,KAG/DvO,EAAO36B,UAAU27C,8BAAgC,WAC7C,IAAI7jC,EAAO3c,KAAK+zC,aAChB/zC,KAAKm0C,OAAO,KACPn0C,KAAKw0C,uBAAuB,OAC7Bx0C,KAAK2lB,WAAW8pB,EAAWsD,SAAS0N,0BAExCzgD,KAAKqnC,YACL,IAAI0G,EAAQ/tC,KAAKy1C,sBACjB,OAAOz1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKtC,yBAAyBsK,KAEjEvO,EAAO36B,UAAUo1C,uBAAyB,WAClCj6C,KAAK2xC,QAAQQ,gBACbnyC,KAAK2lB,WAAW8pB,EAAWsD,SAASiH,0BAExC,IAEInf,EAFAle,EAAO3c,KAAK+zC,aAChB/zC,KAAKq0C,cAAc,UAEnB,IAAIvG,EAAa,GACjB,GAA4B,IAAxB9tC,KAAKyxC,UAAUzuC,KAEf63B,EAAM76B,KAAKmgD,2BAEV,CA8BD,GA7BIngD,KAAKogB,MAAM,KAEX0tB,EAAaA,EAAWt5B,OAAOxU,KAAKsgD,qBAE/BtgD,KAAKogB,MAAM,KAEhB0tB,EAAWhrC,KAAK9C,KAAKwgD,iCAEhBxgD,KAAK43C,iBAAiB53C,KAAKyxC,aAAezxC,KAAKu0C,aAAa,YAEjEzG,EAAWhrC,KAAK9C,KAAKugD,+BACjBvgD,KAAKogB,MAAM,OACXpgB,KAAKqnC,YACDrnC,KAAKogB,MAAM,KAEX0tB,EAAWhrC,KAAK9C,KAAKwgD,iCAEhBxgD,KAAKogB,MAAM,KAEhB0tB,EAAaA,EAAWt5B,OAAOxU,KAAKsgD,qBAGpCtgD,KAAKupC,qBAAqBvpC,KAAKyxC,aAKvCzxC,KAAKupC,qBAAqBvpC,KAAKqnC,cAE9BrnC,KAAKw0C,uBAAuB,QAAS,CACtC,IAAIhwC,EAAUxE,KAAKyxC,UAAU1mC,MAAQ0kC,EAAWsD,SAASC,gBAAkBvD,EAAWsD,SAAS2N,kBAC/F1gD,KAAK2lB,WAAWnhB,EAASxE,KAAKyxC,UAAU1mC,OAE5C/K,KAAKqnC,YACLxM,EAAM76B,KAAKmgD,uBAGf,OADAngD,KAAKi1C,mBACEj1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKxC,kBAAkBuK,EAAYjT,KAGtE2E,EAAO36B,UAAU87C,qBAAuB,WACpC,IAAIhkC,EAAO3c,KAAK+zC,aACZhG,EAAQ/tC,KAAKy1C,sBACbzH,EAAWD,EAKf,OAJI/tC,KAAKw0C,uBAAuB,QAC5Bx0C,KAAKqnC,YACL2G,EAAWhuC,KAAKy1C,uBAEbz1C,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKjD,gBAAgBiL,EAAOC,KAE/DxO,EAAO36B,UAAUk1C,uBAAyB,WAClC/5C,KAAK2xC,QAAQQ,gBACbnyC,KAAK2lB,WAAW8pB,EAAWsD,SAAS+G,0BAExC,IAEI8G,EAFAjkC,EAAO3c,KAAK+zC,aAGhB,GAFA/zC,KAAKq0C,cAAc,UAEfr0C,KAAKu0C,aAAa,WAGlB,GADAv0C,KAAKqnC,YACDrnC,KAAKu0C,aAAa,YAAa,CAG/B,IAAI1G,EAAc7tC,KAAKo6C,0BAAyB,GAChDwG,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnD,yBAAyBiL,SAEzE,GAAI7tC,KAAKu0C,aAAa,SAAU,CAE7B1G,EAAc7tC,KAAKq6C,uBAAsB,GAC7CuG,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnD,yBAAyBiL,SAEzE,GAAI7tC,KAAKw0C,uBAAuB,SAAU,CAIvC3G,EAAc7tC,KAAKk1C,qBAAuBl1C,KAAKo6C,0BAAyB,GAAQp6C,KAAKsqC,4BACzFsW,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnD,yBAAyBiL,QAEzE,CACG7tC,KAAKw0C,uBAAuB,SAC5Bx0C,KAAK2lB,WAAW8pB,EAAWsD,SAASC,gBAAiBhzC,KAAKyxC,UAAU1mC,OAKpE8iC,EAAc7tC,KAAKogB,MAAM,KAAOpgB,KAAKw1C,yBACrCx1C,KAAKogB,MAAM,KAAOpgB,KAAKu1C,wBAA0Bv1C,KAAKsqC,4BAC1DtqC,KAAKi1C,mBACL2L,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKnD,yBAAyBiL,SAG7E,GAAI7tC,KAAKogB,MAAM,KAAM,CAGtB,GADApgB,KAAKqnC,aACArnC,KAAKw0C,uBAAuB,QAAS,CACtC,IAAIhwC,EAAUxE,KAAKyxC,UAAU1mC,MAAQ0kC,EAAWsD,SAASC,gBAAkBvD,EAAWsD,SAAS2N,kBAC/F1gD,KAAK2lB,WAAWnhB,EAASxE,KAAKyxC,UAAU1mC,OAE5C/K,KAAKqnC,YACL,IAAIxM,EAAM76B,KAAKmgD,uBACfngD,KAAKi1C,mBACL2L,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKpD,qBAAqB9H,SAErE,GAA4B,IAAxB76B,KAAKyxC,UAAUzuC,KAA0B,CAE1C6qC,OAAc,EAClB,OAAQ7tC,KAAKyxC,UAAU1mC,OACnB,IAAK,MACL,IAAK,QACD8iC,EAAc7tC,KAAKk6C,wBAAwB,CAAEC,OAAO,IACpD,MACJ,IAAK,MACL,IAAK,QACL,IAAK,WACDtM,EAAc7tC,KAAK45C,yBACnB,MACJ,QACI55C,KAAKupC,qBAAqBvpC,KAAKyxC,WAEvCmP,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKlD,uBAAuBgL,EAAa,GAAI,YAExF,GAAI7tC,KAAKk1C,qBAAsB,CAC5BrH,EAAc7tC,KAAKo6C,2BACvBwG,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKlD,uBAAuBgL,EAAa,GAAI,WAExF,CACD,IAAIC,EAAa,GACb/rC,EAAS,KACT8+C,GAAyB,EAE7B,IADA7gD,KAAKm0C,OAAO,MACJn0C,KAAKogB,MAAM,MACfygC,EAAyBA,GAA0B7gD,KAAKu0C,aAAa,WACrEzG,EAAWhrC,KAAK9C,KAAK2gD,wBAChB3gD,KAAKogB,MAAM,MACZpgB,KAAKm0C,OAAO,KAIpB,GADAn0C,KAAKm0C,OAAO,KACRn0C,KAAKw0C,uBAAuB,QAG5Bx0C,KAAKqnC,YACLtlC,EAAS/B,KAAKmgD,uBACdngD,KAAKi1C,wBAEJ,GAAI4L,EAAwB,CAEzBr8C,EAAUxE,KAAKyxC,UAAU1mC,MAAQ0kC,EAAWsD,SAASC,gBAAkBvD,EAAWsD,SAAS2N,kBAC/F1gD,KAAK2lB,WAAWnhB,EAASxE,KAAKyxC,UAAU1mC,YAIxC/K,KAAKi1C,mBAET2L,EAAoB5gD,KAAK0pC,SAAS/sB,EAAM,IAAIopB,EAAKlD,uBAAuB,KAAMiL,EAAY/rC,IAE9F,OAAO6+C,GAEJphB,EA1jGG,GA4jGdlgC,EAAQkgC,OAASA,GAKZ,SAASngC,EAAQC,GAEtB,aAKAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IAOtDzL,EAAQszC,OANR,SAAgBkO,EAAWt8C,GAEvB,IAAKs8C,EACD,MAAM,IAAIx8C,MAAM,WAAaE,KAQhC,SAASnF,EAAQC,GAEtB,aAEAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAI4kC,EAAgB,WAChB,SAASA,IACL3vC,KAAK8/B,OAAS,GACd9/B,KAAK6/B,UAAW,EAgDpB,OA9CA8P,EAAa9qC,UAAUk8C,YAAc,SAAUx7C,GAC3CvF,KAAK8/B,OAAOh9B,KAAKyC,IAErBoqC,EAAa9qC,UAAUy7B,SAAW,SAAU/6B,GACxC,IAAIvF,KAAK6/B,SAIL,MAAMt6B,EAHNvF,KAAK+gD,YAAYx7C,IAMzBoqC,EAAa9qC,UAAUm8C,eAAiB,SAAUtO,EAAKnmB,GACnD,IAAIhnB,EAAQ,IAAIjB,MAAMouC,GACtB,IACI,MAAMntC,EAEV,MAAOioB,GAEC7tB,OAAOqE,QAAUrE,OAAOgX,iBACxBpR,EAAQ5F,OAAOqE,OAAOwpB,GACtB7tB,OAAOgX,eAAepR,EAAO,SAAU,CAAEwF,MAAOwhB,KAIxD,OAAOhnB,GAEXoqC,EAAa9qC,UAAUguC,YAAc,SAAU7wC,EAAOqjB,EAAM47B,EAAKC,GAC7D,IAAIxO,EAAM,QAAUrtB,EAAO,KAAO67B,EAC9B37C,EAAQvF,KAAKghD,eAAetO,EAAKuO,GAIrC,OAHA17C,EAAMvD,MAAQA,EACduD,EAAM4hC,WAAa9hB,EACnB9f,EAAM27C,YAAcA,EACb37C,GAEXoqC,EAAa9qC,UAAU8gB,WAAa,SAAU3jB,EAAOqjB,EAAM47B,EAAKC,GAC5D,MAAMlhD,KAAK6yC,YAAY7wC,EAAOqjB,EAAM47B,EAAKC,IAE7CvR,EAAa9qC,UAAUwlC,cAAgB,SAAUroC,EAAOqjB,EAAM47B,EAAKC,GAC/D,IAAI37C,EAAQvF,KAAK6yC,YAAY7wC,EAAOqjB,EAAM47B,EAAKC,GAC/C,IAAIlhD,KAAK6/B,SAIL,MAAMt6B,EAHNvF,KAAK+gD,YAAYx7C,IAMlBoqC,EAnDS,GAqDpBrwC,EAAQqwC,aAAeA,GAKlB,SAAStwC,EAAQC,GAEtB,aACAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IAEtDzL,EAAQyzC,SAAW,CACfsM,eAAgB,6CAChBC,eAAgB,gDAChBC,uBAAwB,wDACxBI,mBAAoB,+CACpBE,yBAA0B,2CAC1BjF,8BAA+B,wCAC/B+D,qBAAsB,qBACtBX,iBAAkB,uBAClB8B,qBAAsB,wCACtB5I,uBAAwB,gEACxBmF,uBAAwB,2DACxBsB,yBAA0B,4DAC1Bb,aAAc,0BACdF,gBAAiB,6BACjB9C,yBAA0B,mBAC1BE,yBAA0B,mBAC1BoF,6BAA8B,4EAC9BpC,cAAe,2BACfmE,2BAA4B,8CAC5BC,yBAA0B,sCAC1B1I,uBAAwB,uCACxB6D,kBAAmB,mCACnBC,oBAAqB,qCACrB4D,uBAAwB,mBACxBiB,cAAe,6BACfhG,oBAAqB,8CACrBqF,kBAAmB,mBACnBlD,yBAA0B,mDAC1BK,kBAAmB,8BACnB4C,yBAA0B,mBAC1BrC,iBAAkB,qCAClBQ,4BAA6B,+CAC7BlB,cAAe,oCACfkC,gBAAiB,uDACjB3B,oBAAqB,6DACrBpF,aAAc,sDACdgD,eAAgB,qFAChBmD,mBAAoB,4DACpBrF,oBAAqB,gEACrBhB,iBAAkB,oFAClBF,gBAAiB,mFACjByE,eAAgB,oDAChB9H,mBAAoB,iDACpBqE,gBAAiB,8DACjBgF,gBAAiB,iEACjBhL,mBAAoB,6CACpBkH,cAAe,4DACf2G,qBAAsB,sDACtBrO,cAAe,0BACfC,qBAAsB,wBACtBC,iBAAkB,oBAClBI,mBAAoB,2BACpBH,iBAAkB,oBAClBC,mBAAoB,sBACpBL,gBAAiB,sBACjBuO,uBAAwB,2BACxB5E,aAAc,uBACd6E,mBAAoB,0CAMnB,SAASniD,EAAQC,EAAS0+B,GAE/B,aACAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAIwkC,EAAWvR,EAAoB,GAC/B4H,EAAc5H,EAAoB,GAClCyR,EAAazR,EAAoB,IACrC,SAASyjB,EAAS95B,GACd,MAAO,mBAAmB5nB,QAAQ4nB,EAAGsG,eAEzC,SAASyzB,EAAW/5B,GAChB,MAAO,WAAW5nB,QAAQ4nB,GAE9B,IAAIioB,EAAW,WACX,SAASA,EAAQngB,EAAM/a,GACnB1U,KAAK+B,OAAS0tB,EACdzvB,KAAK+/B,aAAerrB,EACpB1U,KAAK6vC,cAAe,EACpB7vC,KAAKo/B,UAAW,EAChBp/B,KAAKiC,OAASwtB,EAAKxtB,OACnBjC,KAAKgC,MAAQ,EACbhC,KAAKmnC,WAAc1X,EAAKxtB,OAAS,EAAK,EAAI,EAC1CjC,KAAKslB,UAAY,EACjBtlB,KAAK2hD,WAAa,GAimCtB,OA/lCA/R,EAAQ/qC,UAAUskC,UAAY,WAC1B,MAAO,CACHnnC,MAAOhC,KAAKgC,MACZmlC,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,YAGxBsqB,EAAQ/qC,UAAUykC,aAAe,SAAU5jB,GACvC1lB,KAAKgC,MAAQ0jB,EAAM1jB,MACnBhC,KAAKmnC,WAAazhB,EAAMyhB,WACxBnnC,KAAKslB,UAAYI,EAAMJ,WAE3BsqB,EAAQ/qC,UAAUmjC,IAAM,WACpB,OAAOhoC,KAAKgC,OAAShC,KAAKiC,QAE9B2tC,EAAQ/qC,UAAU0kC,qBAAuB,SAAU/kC,GAE/C,YADgB,IAAZA,IAAsBA,EAAUirC,EAAWsD,SAASwO,wBACjDvhD,KAAK+/B,aAAapa,WAAW3lB,KAAKgC,MAAOhC,KAAKmnC,WAAYnnC,KAAKgC,MAAQhC,KAAKslB,UAAY,EAAG9gB,IAEtGorC,EAAQ/qC,UAAU8uC,wBAA0B,SAAUnvC,QAClC,IAAZA,IAAsBA,EAAUirC,EAAWsD,SAASwO,wBACxDvhD,KAAK+/B,aAAasK,cAAcrqC,KAAKgC,MAAOhC,KAAKmnC,WAAYnnC,KAAKgC,MAAQhC,KAAKslB,UAAY,EAAG9gB,IAGlGorC,EAAQ/qC,UAAU+8C,sBAAwB,SAAUjzC,GAChD,IACIvG,EAAOo5B,EADP7B,EAAW,GAaf,IAXI3/B,KAAK6vC,eACLlQ,EAAW,GACXv3B,EAAQpI,KAAKgC,MAAQ2M,EACrB6yB,EAAM,CACFp5B,MAAO,CACHid,KAAMrlB,KAAKmnC,WACX5a,OAAQvsB,KAAKgC,MAAQhC,KAAKslB,UAAY3W,GAE1CtG,IAAK,MAGLrI,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,OAErC,KADEhC,KAAKgC,MACH4jC,EAAYqC,UAAUgB,iBAAiBthB,GAAK,CAC5C,GAAI3nB,KAAK6vC,aAAc,CACnBrO,EAAIn5B,IAAM,CACNgd,KAAMrlB,KAAKmnC,WACX5a,OAAQvsB,KAAKgC,MAAQhC,KAAKslB,UAAY,GAE1C,IAAIwb,EAAQ,CACR8S,WAAW,EACXnqC,MAAO,CAACrB,EAAQuG,EAAQ3O,KAAKgC,MAAQ,GACrCw7B,MAAO,CAACp1B,EAAOpI,KAAKgC,MAAQ,GAC5Bw/B,IAAKA,GAET7B,EAAS78B,KAAKg+B,GAOlB,OALW,KAAPnZ,GAAoD,KAAvC3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,UACvChC,KAAKgC,QAEThC,KAAKmnC,WACPnnC,KAAKslB,UAAYtlB,KAAKgC,MACf29B,GAGf,GAAI3/B,KAAK6vC,aAAc,CACnBrO,EAAIn5B,IAAM,CACNgd,KAAMrlB,KAAKmnC,WACX5a,OAAQvsB,KAAKgC,MAAQhC,KAAKslB,WAE1Bwb,EAAQ,CACR8S,WAAW,EACXnqC,MAAO,CAACrB,EAAQuG,EAAQ3O,KAAKgC,OAC7Bw7B,MAAO,CAACp1B,EAAOpI,KAAKgC,OACpBw/B,IAAKA,GAET7B,EAAS78B,KAAKg+B,GAElB,OAAOnB,GAEXiQ,EAAQ/qC,UAAUg9C,qBAAuB,WACrC,IACIz5C,EAAOo5B,EADP7B,EAAW,GAaf,IAXI3/B,KAAK6vC,eACLlQ,EAAW,GACXv3B,EAAQpI,KAAKgC,MAAQ,EACrBw/B,EAAM,CACFp5B,MAAO,CACHid,KAAMrlB,KAAKmnC,WACX5a,OAAQvsB,KAAKgC,MAAQhC,KAAKslB,UAAY,GAE1Cjd,IAAK,MAGLrI,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,OACrC,GAAI4jC,EAAYqC,UAAUgB,iBAAiBthB,GAC5B,KAAPA,GAA0D,KAA3C3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,MAAQ,MACjDhC,KAAKgC,QAEThC,KAAKmnC,aACLnnC,KAAKgC,MACPhC,KAAKslB,UAAYtlB,KAAKgC,WAErB,GAAW,KAAP2lB,EAAa,CAElB,GAA+C,KAA3C3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,MAAQ,GAAa,CAEjD,GADAhC,KAAKgC,OAAS,EACVhC,KAAK6vC,aAAc,CACnBrO,EAAIn5B,IAAM,CACNgd,KAAMrlB,KAAKmnC,WACX5a,OAAQvsB,KAAKgC,MAAQhC,KAAKslB,WAE9B,IAAIwb,EAAQ,CACR8S,WAAW,EACXnqC,MAAO,CAACrB,EAAQ,EAAGpI,KAAKgC,MAAQ,GAChCw7B,MAAO,CAACp1B,EAAOpI,KAAKgC,OACpBw/B,IAAKA,GAET7B,EAAS78B,KAAKg+B,GAElB,OAAOnB,IAET3/B,KAAKgC,YAGLhC,KAAKgC,MAIf,GAAIhC,KAAK6vC,aAAc,CACnBrO,EAAIn5B,IAAM,CACNgd,KAAMrlB,KAAKmnC,WACX5a,OAAQvsB,KAAKgC,MAAQhC,KAAKslB,WAE1Bwb,EAAQ,CACR8S,WAAW,EACXnqC,MAAO,CAACrB,EAAQ,EAAGpI,KAAKgC,OACxBw7B,MAAO,CAACp1B,EAAOpI,KAAKgC,OACpBw/B,IAAKA,GAET7B,EAAS78B,KAAKg+B,GAGlB,OADA9gC,KAAK2zC,0BACEhU,GAEXiQ,EAAQ/qC,UAAUukC,aAAe,WAC7B,IAAIzJ,EACA3/B,KAAK6vC,eACLlQ,EAAW,IAGf,IADA,IAAIv3B,EAAwB,IAAfpI,KAAKgC,OACVhC,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,OACrC,GAAI4jC,EAAYqC,UAAUwE,aAAa9kB,KACjC3nB,KAAKgC,WAEN,GAAI4jC,EAAYqC,UAAUgB,iBAAiBthB,KAC1C3nB,KAAKgC,MACI,KAAP2lB,GAAsD,KAAvC3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,UACzChC,KAAKgC,QAEThC,KAAKmnC,WACPnnC,KAAKslB,UAAYtlB,KAAKgC,MACtBoG,GAAQ,OAEP,GAAW,KAAPuf,EAEL,GAAW,MADXA,EAAK3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,MAAQ,IACxB,CACbhC,KAAKgC,OAAS,EACd,IAAI+8B,EAAU/+B,KAAK4hD,sBAAsB,GACrC5hD,KAAK6vC,eACLlQ,EAAWA,EAASnrB,OAAOuqB,IAE/B32B,GAAQ,MAEP,IAAW,KAAPuf,EAQL,MAPA3nB,KAAKgC,OAAS,EACV+8B,EAAU/+B,KAAK6hD,uBACf7hD,KAAK6vC,eACLlQ,EAAWA,EAASnrB,OAAOuqB,SAOlC,GAAI32B,GAAgB,KAAPuf,EAAa,CAE3B,GAAgD,KAA3C3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,MAAQ,IAA4D,KAA3ChC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,MAAQ,GAS1F,MAPAhC,KAAKgC,OAAS,EACV+8B,EAAU/+B,KAAK4hD,sBAAsB,GACrC5hD,KAAK6vC,eACLlQ,EAAWA,EAASnrB,OAAOuqB,QAOlC,IAAW,KAAPpX,GAAgB3nB,KAAKo/B,SAa1B,MAZA,GAA0D,QAAtDp/B,KAAK+B,OAAO0H,MAAMzJ,KAAKgC,MAAQ,EAAGhC,KAAKgC,MAAQ,GAQ/C,MAPAhC,KAAKgC,OAAS,EACV+8B,EAAU/+B,KAAK4hD,sBAAsB,GACrC5hD,KAAK6vC,eACLlQ,EAAWA,EAASnrB,OAAOuqB,KAW3C,OAAOY,GAGXiQ,EAAQ/qC,UAAUyuC,qBAAuB,SAAUjuC,GAC/C,OAAQA,GACJ,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,QACD,OAAO,EACX,QACI,OAAO,IAGnBuqC,EAAQ/qC,UAAU2uC,yBAA2B,SAAUnuC,GACnD,OAAQA,GACJ,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,MACD,OAAO,EACX,QACI,OAAO,IAGnBuqC,EAAQ/qC,UAAU2zC,iBAAmB,SAAUnzC,GAC3C,MAAc,SAAPA,GAAwB,cAAPA,GAG5BuqC,EAAQ/qC,UAAUi9C,UAAY,SAAUz8C,GACpC,OAAQA,EAAGpD,QACP,KAAK,EACD,MAAe,OAAPoD,GAAwB,OAAPA,GAAwB,OAAPA,EAC9C,KAAK,EACD,MAAe,QAAPA,GAAyB,QAAPA,GAAyB,QAAPA,GAChC,QAAPA,GAAyB,QAAPA,EAC3B,KAAK,EACD,MAAe,SAAPA,GAA0B,SAAPA,GAA0B,SAAPA,GAClC,SAAPA,GAA0B,SAAPA,GAA0B,SAAPA,EAC/C,KAAK,EACD,MAAe,UAAPA,GAA2B,UAAPA,GAA2B,UAAPA,GACpC,UAAPA,GAA2B,UAAPA,GAA2B,UAAPA,GACjC,UAAPA,GAA2B,UAAPA,EAC7B,KAAK,EACD,MAAe,WAAPA,GAA4B,WAAPA,GAA4B,WAAPA,GACtC,WAAPA,GAA4B,WAAPA,GAA4B,WAAPA,EACnD,KAAK,EACD,MAAe,YAAPA,GAA6B,YAAPA,GAA6B,YAAPA,EACxD,KAAK,EACD,MAAe,aAAPA,GAA8B,aAAPA,GAA8B,aAAPA,EAC1D,KAAK,GACD,MAAe,eAAPA,EACZ,QACI,OAAO,IAGnBuqC,EAAQ/qC,UAAUk9C,YAAc,SAAU9zC,GACtC,IAAIq6B,EAAKtoC,KAAK+B,OAAOglB,WAAW9Y,GAChC,GAAIq6B,GAAM,OAAUA,GAAM,MAAQ,CAC9B,IAAIzZ,EAAS7uB,KAAK+B,OAAOglB,WAAW9Y,EAAI,GACxC,GAAI4gB,GAAU,OAAUA,GAAU,MAE9ByZ,EAAwB,MADZA,EACE,OAAkBzZ,EAAS,MAAS,MAG1D,OAAOyZ,GAEXsH,EAAQ/qC,UAAUm9C,cAAgB,SAAU17B,GAGxC,IAFA,IAAIkL,EAAkB,MAAXlL,EAAkB,EAAI,EAC7BmJ,EAAO,EACFxhB,EAAI,EAAGA,EAAIujB,IAAOvjB,EAAG,CAC1B,GAAKjO,KAAKgoC,QAASpC,EAAYqC,UAAUE,WAAWnoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,QAI5E,OAAO,KAHPytB,EAAc,GAAPA,EAAYgyB,EAASzhD,KAAK+B,OAAO/B,KAAKgC,UAMrD,OAAOpB,OAAO6jB,aAAagL,IAE/BmgB,EAAQ/qC,UAAUo9C,2BAA6B,WAC3C,IAAIt6B,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,OACtBytB,EAAO,EAKX,IAHW,MAAP9H,GACA3nB,KAAKupC,wBAEDvpC,KAAKgoC,QACTrgB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SACjB4jC,EAAYqC,UAAUE,WAAWxgB,EAAGZ,WAAW,MAGpD0I,EAAc,GAAPA,EAAYgyB,EAAS95B,GAKhC,OAHI8H,EAAO,SAAmB,MAAP9H,IACnB3nB,KAAKupC,uBAEF3D,EAAYqC,UAAUuE,cAAc/c,IAE/CmgB,EAAQ/qC,UAAUq9C,cAAgB,WAE9B,IADA,IAAI95C,EAAQpI,KAAKgC,SACThC,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,OACrC,GAAW,KAAP2lB,EAGA,OADA3nB,KAAKgC,MAAQoG,EACNpI,KAAKmiD,uBAEX,GAAIx6B,GAAM,OAAUA,EAAK,MAG1B,OADA3nB,KAAKgC,MAAQoG,EACNpI,KAAKmiD,uBAEhB,IAAIvc,EAAYqC,UAAUS,iBAAiB/gB,GAIvC,QAHE3nB,KAAKgC,MAMf,OAAOhC,KAAK+B,OAAO0H,MAAMrB,EAAOpI,KAAKgC,QAEzC4tC,EAAQ/qC,UAAUs9C,qBAAuB,WACrC,IAIIx6B,EAJA2gB,EAAKtoC,KAAK+hD,YAAY/hD,KAAKgC,OAC3BqD,EAAKugC,EAAYqC,UAAUuE,cAAclE,GAqB7C,IApBAtoC,KAAKgC,OAASqD,EAAGpD,OAGN,KAAPqmC,IAC2C,MAAvCtoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,QAC5BhC,KAAKupC,yBAEPvpC,KAAKgC,MACyB,MAA5BhC,KAAK+B,OAAO/B,KAAKgC,UACfhC,KAAKgC,MACP2lB,EAAK3nB,KAAKiiD,8BAIC,QADXt6B,EAAK3nB,KAAKgiD,cAAc,OACE,OAAPr6B,GAAgBie,EAAYqC,UAAUQ,kBAAkB9gB,EAAGZ,WAAW,KACrF/mB,KAAKupC,uBAGblkC,EAAKsiB,IAED3nB,KAAKgoC,QACTM,EAAKtoC,KAAK+hD,YAAY/hD,KAAKgC,OACtB4jC,EAAYqC,UAAUS,iBAAiBJ,KAI5CjjC,GADAsiB,EAAKie,EAAYqC,UAAUuE,cAAclE,GAEzCtoC,KAAKgC,OAAS2lB,EAAG1lB,OAEN,KAAPqmC,IACAjjC,EAAKA,EAAGguB,OAAO,EAAGhuB,EAAGpD,OAAS,GACa,MAAvCjC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,QAC5BhC,KAAKupC,yBAEPvpC,KAAKgC,MACyB,MAA5BhC,KAAK+B,OAAO/B,KAAKgC,UACfhC,KAAKgC,MACP2lB,EAAK3nB,KAAKiiD,8BAIC,QADXt6B,EAAK3nB,KAAKgiD,cAAc,OACE,OAAPr6B,GAAgBie,EAAYqC,UAAUS,iBAAiB/gB,EAAGZ,WAAW,KACpF/mB,KAAKupC,uBAGblkC,GAAMsiB,GAGd,OAAOtiB,GAEXuqC,EAAQ/qC,UAAUu9C,eAAiB,SAAUz6B,GAEzC,IAAIgG,EAAgB,MAAPhG,EACT8H,EAAOiyB,EAAW/5B,GAUtB,OATK3nB,KAAKgoC,OAASpC,EAAYqC,UAAUyE,aAAa1sC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,UAC9E2rB,GAAQ,EACR8B,EAAc,EAAPA,EAAWiyB,EAAW1hD,KAAK+B,OAAO/B,KAAKgC,UAG1C,OAAOjC,QAAQ4nB,IAAO,IAAM3nB,KAAKgoC,OAASpC,EAAYqC,UAAUyE,aAAa1sC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,UACzGytB,EAAc,EAAPA,EAAWiyB,EAAW1hD,KAAK+B,OAAO/B,KAAKgC,YAG/C,CACHytB,KAAMA,EACN9B,MAAOA,IAIfiiB,EAAQ/qC,UAAUw9C,eAAiB,WAC/B,IAAIr/C,EACAoF,EAAQpI,KAAKgC,MAEbqD,EAAwC,KAAlCrF,KAAK+B,OAAOglB,WAAW3e,GAAmBpI,KAAKmiD,uBAAyBniD,KAAKkiD,gBAkBvF,GAAa,KAdTl/C,EADc,IAAdqC,EAAGpD,OACI,EAEFjC,KAAK8hD,UAAUz8C,GACb,EAEK,SAAPA,EACE,EAEK,SAAPA,GAAwB,UAAPA,EACf,EAGA,IAEyB+C,EAAQ/C,EAAGpD,SAAWjC,KAAKgC,MAAQ,CACnE,IAAIsgD,EAAUtiD,KAAKgC,MACnBhC,KAAKgC,MAAQoG,EACbpI,KAAK2zC,wBAAwBlE,EAAWsD,SAASoO,4BACjDnhD,KAAKgC,MAAQsgD,EAEjB,MAAO,CACHt/C,KAAMA,EACN+H,MAAO1F,EACP8hC,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAIlB4tC,EAAQ/qC,UAAU09C,eAAiB,WAC/B,IAAIn6C,EAAQpI,KAAKgC,MAEbyxB,EAAMzzB,KAAK+B,OAAO/B,KAAKgC,OAC3B,OAAQyxB,GACJ,IAAK,IACL,IAAK,IACW,MAARA,GACAzzB,KAAK2hD,WAAW7+C,KAAK,OAEvB9C,KAAKgC,MACP,MACJ,IAAK,MACChC,KAAKgC,MACyB,MAA5BhC,KAAK+B,OAAO/B,KAAKgC,QAAkD,MAAhChC,KAAK+B,OAAO/B,KAAKgC,MAAQ,KAE5DhC,KAAKgC,OAAS,EACdyxB,EAAM,OAEV,MACJ,IAAK,MACCzzB,KAAKgC,MACPhC,KAAK2hD,WAAWjnC,MAChB,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACC1a,KAAKgC,MACP,MACJ,QAGgB,UADZyxB,EAAMzzB,KAAK+B,OAAOsxB,OAAOrzB,KAAKgC,MAAO,IAEjChC,KAAKgC,OAAS,EAKF,SADZyxB,EAAMA,EAAIJ,OAAO,EAAG,KACS,QAARI,GAAyB,QAARA,GAC1B,QAARA,GAAyB,QAARA,GAAyB,QAARA,EAClCzzB,KAAKgC,OAAS,EAKF,QADZyxB,EAAMA,EAAIJ,OAAO,EAAG,KACQ,OAARI,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,EAChDzzB,KAAKgC,OAAS,GAIdyxB,EAAMzzB,KAAK+B,OAAO/B,KAAKgC,OACnB,eAAejC,QAAQ0zB,IAAQ,KAC7BzzB,KAAKgC,OAS/B,OAHIhC,KAAKgC,QAAUoG,GACfpI,KAAKupC,uBAEF,CACHvmC,KAAM,EACN+H,MAAO0oB,EACP0T,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAIlB4tC,EAAQ/qC,UAAU29C,eAAiB,SAAUp6C,GAEzC,IADA,IAAI4zB,EAAM,IACFh8B,KAAKgoC,OACJpC,EAAYqC,UAAUE,WAAWnoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SAGlEg6B,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SAQ5B,OANmB,IAAfg6B,EAAI/5B,QACJjC,KAAKupC,uBAEL3D,EAAYqC,UAAUQ,kBAAkBzoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SACpEhC,KAAKupC,uBAEF,CACHvmC,KAAM,EACN+H,MAAOmb,SAAS,KAAO8V,EAAK,IAC5BmL,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAGlB4tC,EAAQ/qC,UAAU49C,kBAAoB,SAAUr6C,GAG5C,IAFA,IACIuf,EADAqU,EAAM,IAEFh8B,KAAKgoC,QAEE,OADXrgB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SACG,MAAP2lB,IAGlBqU,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SAa5B,OAXmB,IAAfg6B,EAAI/5B,QAEJjC,KAAKupC,uBAEJvpC,KAAKgoC,QACNrgB,EAAK3nB,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,QAE7B4jC,EAAYqC,UAAUQ,kBAAkB9gB,IAAOie,EAAYqC,UAAUC,eAAevgB,KACpF3nB,KAAKupC,wBAGN,CACHvmC,KAAM,EACN+H,MAAOmb,SAAS8V,EAAK,GACrBmL,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAGlB4tC,EAAQ/qC,UAAU69C,iBAAmB,SAAUp8B,EAAQle,GACnD,IAAI4zB,EAAM,GACNrO,GAAQ,EAQZ,IAPIiY,EAAYqC,UAAUyE,aAAapmB,EAAOS,WAAW,KACrD4G,GAAQ,EACRqO,EAAM,IAAMh8B,KAAK+B,OAAO/B,KAAKgC,YAG3BhC,KAAKgC,OAEHhC,KAAKgoC,OACJpC,EAAYqC,UAAUyE,aAAa1sC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SAGpEg6B,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SAS5B,OAPK2rB,GAAwB,IAAfqO,EAAI/5B,QAEdjC,KAAKupC,wBAEL3D,EAAYqC,UAAUQ,kBAAkBzoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SAAW4jC,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,UAChJhC,KAAKupC,uBAEF,CACHvmC,KAAM,EACN+H,MAAOmb,SAAS8V,EAAK,GACrBrO,MAAOA,EACPwZ,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAGlB4tC,EAAQ/qC,UAAU89C,uBAAyB,WAGvC,IAAK,IAAI10C,EAAIjO,KAAKgC,MAAQ,EAAGiM,EAAIjO,KAAKiC,SAAUgM,EAAG,CAC/C,IAAI0Z,EAAK3nB,KAAK+B,OAAOkM,GACrB,GAAW,MAAP0Z,GAAqB,MAAPA,EACd,OAAO,EAEX,IAAKie,EAAYqC,UAAUyE,aAAa/kB,EAAGZ,WAAW,IAClD,OAAO,EAGf,OAAO,GAEX6oB,EAAQ/qC,UAAU+9C,mBAAqB,WACnC,IAAIx6C,EAAQpI,KAAKgC,MACb2lB,EAAK3nB,KAAK+B,OAAOqG,GACrBmnC,EAASqD,OAAOhN,EAAYqC,UAAUC,eAAevgB,EAAGZ,WAAW,KAAe,MAAPY,EAAa,sEACxF,IAAIqU,EAAM,GACV,GAAW,MAAPrU,EAAY,CAOZ,GANAqU,EAAMh8B,KAAK+B,OAAO/B,KAAKgC,SACvB2lB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,OAKV,MAARg6B,EAAa,CACb,GAAW,MAAPrU,GAAqB,MAAPA,EAEd,QADE3nB,KAAKgC,MACAhC,KAAKwiD,eAAep6C,GAE/B,GAAW,MAAPuf,GAAqB,MAAPA,EAEd,QADE3nB,KAAKgC,MACAhC,KAAKyiD,kBAAkBr6C,GAElC,GAAW,MAAPuf,GAAqB,MAAPA,EACd,OAAO3nB,KAAK0iD,iBAAiB/6B,EAAIvf,GAErC,GAAIuf,GAAMie,EAAYqC,UAAUyE,aAAa/kB,EAAGZ,WAAW,KACnD/mB,KAAK2iD,yBACL,OAAO3iD,KAAK0iD,iBAAiB/6B,EAAIvf,GAI7C,KAAOw9B,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SACpEg6B,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SAE5B2lB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,OAE1B,GAAW,MAAP2lB,EAAY,CAEZ,IADAqU,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SACjB4jC,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SACpEg6B,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SAE5B2lB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,OAE1B,GAAW,MAAP2lB,GAAqB,MAAPA,EAMd,GALAqU,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,SAEb,OADX2lB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SACG,MAAP2lB,IACdqU,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,UAExB4jC,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,QACjE,KAAO4jC,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SACpEg6B,GAAOh8B,KAAK+B,OAAO/B,KAAKgC,cAI5BhC,KAAKupC,uBAMb,OAHI3D,EAAYqC,UAAUQ,kBAAkBzoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SACpEhC,KAAKupC,uBAEF,CACHvmC,KAAM,EACN+H,MAAOqjB,WAAW4N,GAClBmL,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAIlB4tC,EAAQ/qC,UAAUg+C,kBAAoB,WAClC,IAAIz6C,EAAQpI,KAAKgC,MACb4lC,EAAQ5nC,KAAK+B,OAAOqG,GACxBmnC,EAASqD,OAAkB,MAAVhL,GAA4B,MAAVA,EAAgB,6CACjD5nC,KAAKgC,MAGP,IAFA,IAAI2rB,GAAQ,EACR8F,EAAM,IACFzzB,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SAC1B,GAAI2lB,IAAOigB,EAAO,CACdA,EAAQ,GACR,MAEC,GAAW,OAAPjgB,EAEL,IADAA,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,WACV4jC,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,MA0D3D/mB,KAAKmnC,WACI,OAAPxf,GAA2C,OAA5B3nB,KAAK+B,OAAO/B,KAAKgC,UAC9BhC,KAAKgC,MAEXhC,KAAKslB,UAAYtlB,KAAKgC,WA7DtB,OAAQ2lB,GACJ,IAAK,IACD,GAAgC,MAA5B3nB,KAAK+B,OAAO/B,KAAKgC,SACfhC,KAAKgC,MACPyxB,GAAOzzB,KAAKiiD,iCAEX,CACD,IAAIa,EAAc9iD,KAAKgiD,cAAcr6B,GACjB,OAAhBm7B,GACA9iD,KAAKupC,uBAET9V,GAAOqvB,EAEX,MACJ,IAAK,IACD,IAAIC,EAAY/iD,KAAKgiD,cAAcr6B,GACjB,OAAdo7B,GACA/iD,KAAKupC,qBAAqBkG,EAAWsD,SAASqO,0BAElD3tB,GAAOsvB,EACP,MACJ,IAAK,IACDtvB,GAAO,KACP,MACJ,IAAK,IACDA,GAAO,KACP,MACJ,IAAK,IACDA,GAAO,KACP,MACJ,IAAK,IACDA,GAAO,KACP,MACJ,IAAK,IACDA,GAAO,KACP,MACJ,IAAK,IACDA,GAAO,KACP,MACJ,IAAK,IACL,IAAK,IACDA,GAAO9L,EACP3nB,KAAK2zC,0BACL,MACJ,QACI,GAAIhsB,GAAMie,EAAYqC,UAAUyE,aAAa/kB,EAAGZ,WAAW,IAAK,CAC5D,IAAIi8B,EAAWhjD,KAAKoiD,eAAez6B,GACnCgG,EAAQq1B,EAASr1B,OAASA,EAC1B8F,GAAO7yB,OAAO6jB,aAAau+B,EAASvzB,WAGpCgE,GAAO9L,MAatB,IAAIie,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,IAC1D,MAGA0M,GAAO9L,GAOf,MAJc,KAAVigB,IACA5nC,KAAKgC,MAAQoG,EACbpI,KAAKupC,wBAEF,CACHvmC,KAAM,EACN+H,MAAO0oB,EACP9F,MAAOA,EACPwZ,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAIlB4tC,EAAQ/qC,UAAUo+C,aAAe,WAC7B,IAAI7L,EAAS,GACTvP,GAAa,EACbz/B,EAAQpI,KAAKgC,MACb2qB,EAA+B,MAAvB3sB,KAAK+B,OAAOqG,GACpBwkB,GAAO,EACPs2B,EAAY,EAEhB,MADEljD,KAAKgC,OACChC,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SAC1B,GAAW,MAAP2lB,EAAY,CACZu7B,EAAY,EACZt2B,GAAO,EACPib,GAAa,EACb,MAEC,GAAW,MAAPlgB,EAAY,CACjB,GAAgC,MAA5B3nB,KAAK+B,OAAO/B,KAAKgC,OAAgB,CACjChC,KAAK2hD,WAAW7+C,KAAK,QACnB9C,KAAKgC,MACP6lC,GAAa,EACb,MAEJuP,GAAUzvB,OAET,GAAW,OAAPA,EAEL,GADAA,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SACjB4jC,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,MA+DpD/mB,KAAKmnC,WACI,OAAPxf,GAA2C,OAA5B3nB,KAAK+B,OAAO/B,KAAKgC,UAC9BhC,KAAKgC,MAEXhC,KAAKslB,UAAYtlB,KAAKgC,WAlEtB,OAAQ2lB,GACJ,IAAK,IACDyvB,GAAU,KACV,MACJ,IAAK,IACDA,GAAU,KACV,MACJ,IAAK,IACDA,GAAU,KACV,MACJ,IAAK,IACD,GAAgC,MAA5Bp3C,KAAK+B,OAAO/B,KAAKgC,SACfhC,KAAKgC,MACPo1C,GAAUp3C,KAAKiiD,iCAEd,CACD,IAAIK,EAAUtiD,KAAKgC,MACfmhD,EAAcnjD,KAAKgiD,cAAcr6B,GACjB,OAAhBw7B,EACA/L,GAAU+L,GAGVnjD,KAAKgC,MAAQsgD,EACblL,GAAUzvB,GAGlB,MACJ,IAAK,IACD,IAAIo7B,EAAY/iD,KAAKgiD,cAAcr6B,GACjB,OAAdo7B,GACA/iD,KAAKupC,qBAAqBkG,EAAWsD,SAASqO,0BAElDhK,GAAU2L,EACV,MACJ,IAAK,IACD3L,GAAU,KACV,MACJ,IAAK,IACDA,GAAU,KACV,MACJ,IAAK,IACDA,GAAU,KACV,MACJ,QACe,MAAPzvB,GACIie,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,SAEjEhC,KAAKupC,qBAAqBkG,EAAWsD,SAASuO,sBAElDlK,GAAU,MAELxR,EAAYqC,UAAUyE,aAAa/kB,EAAGZ,WAAW,IAEtD/mB,KAAKupC,qBAAqBkG,EAAWsD,SAASuO,sBAG9ClK,GAAUzvB,OAarBie,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,OACxD/mB,KAAKmnC,WACI,OAAPxf,GAA2C,OAA5B3nB,KAAK+B,OAAO/B,KAAKgC,UAC9BhC,KAAKgC,MAEXhC,KAAKslB,UAAYtlB,KAAKgC,MACtBo1C,GAAU,MAGVA,GAAUzvB,EASlB,OANKkgB,GACD7nC,KAAKupC,uBAEJ5c,GACD3sB,KAAK2hD,WAAWjnC,MAEb,CACH1X,KAAM,GACN+H,MAAO/K,KAAK+B,OAAO0H,MAAMrB,EAAQ,EAAGpI,KAAKgC,MAAQkhD,GACjD9L,OAAQA,EACRzqB,KAAMA,EACNC,KAAMA,EACNua,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAIlB4tC,EAAQ/qC,UAAUu+C,WAAa,SAAU1U,EAASC,GAO9C,IACIhkB,EAAM+jB,EACN2U,EAAOrjD,KACP2uC,EAAM5uC,QAAQ,MAAQ,IACtB4qB,EAAMA,EACDlJ,QAAQ,6CAA8C,SAAU6hC,EAAIC,EAAIC,GACzE,IAAI7uB,EAAYzO,SAASq9B,GAAMC,EAAI,IAInC,OAHI7uB,EAAY,SACZ0uB,EAAK9Z,qBAAqBkG,EAAWsD,SAASsO,eAE9C1sB,GAAa,MACN/zB,OAAO6jB,aAAakQ,GAXhB,MAedlT,QAAQ,kCAfM,MAkBvB,IACItV,OAAOwe,GAEX,MAAOxlB,GACHnF,KAAKupC,qBAAqBkG,EAAWsD,SAASsO,eAKlD,IACI,OAAO,IAAIl1C,OAAOuiC,EAASC,GAE/B,MAAO8U,GAEH,OAAO,OAGf7T,EAAQ/qC,UAAU6+C,eAAiB,WAC/B,IAAI/7B,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,OAC1ButC,EAASqD,OAAc,MAAPjrB,EAAY,sDAI5B,IAHA,IAAI8L,EAAMzzB,KAAK+B,OAAO/B,KAAKgC,SACvB2hD,GAAc,EACd9b,GAAa,GACT7nC,KAAKgoC,OAGT,GADAvU,GADA9L,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SAEX,OAAP2lB,EACAA,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,SAElB4jC,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,KACrD/mB,KAAKupC,qBAAqBkG,EAAWsD,SAASyO,oBAElD/tB,GAAO9L,OAEN,GAAIie,EAAYqC,UAAUgB,iBAAiBthB,EAAGZ,WAAW,IAC1D/mB,KAAKupC,qBAAqBkG,EAAWsD,SAASyO,yBAE7C,GAAImC,EACM,MAAPh8B,IACAg8B,GAAc,OAGjB,CACD,GAAW,MAAPh8B,EAAY,CACZkgB,GAAa,EACb,MAEY,MAAPlgB,IACLg8B,GAAc,GAQ1B,OAJK9b,GACD7nC,KAAKupC,qBAAqBkG,EAAWsD,SAASyO,oBAG3C/tB,EAAIJ,OAAO,EAAGI,EAAIxxB,OAAS,IAEtC2tC,EAAQ/qC,UAAU++C,gBAAkB,WAGhC,IAFA,IACIjV,EAAQ,IACJ3uC,KAAKgoC,OAAO,CAChB,IAAIrgB,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,OAC1B,IAAK4jC,EAAYqC,UAAUS,iBAAiB/gB,EAAGZ,WAAW,IACtD,MAGJ,KADE/mB,KAAKgC,MACI,OAAP2lB,GAAgB3nB,KAAKgoC,MAyBrB2G,GAAShnB,EACFA,OAxBP,GAAW,OADXA,EAAK3nB,KAAK+B,OAAO/B,KAAKgC,QACN,GACVhC,KAAKgC,MACP,IAAIsgD,EAAUtiD,KAAKgC,MACf6hD,EAAO7jD,KAAKgiD,cAAc,KAC9B,GAAa,OAAT6B,EAEA,IADAlV,GAASkV,EACG,MAAOvB,EAAUtiD,KAAKgC,QAASsgD,EAChCtiD,KAAK+B,OAAOugD,QAIvBtiD,KAAKgC,MAAQsgD,EACb3T,GAAS,IACF,MAEX3uC,KAAK2zC,8BAGE,KACP3zC,KAAK2zC,0BAQjB,OAAOhF,GAEXiB,EAAQ/qC,UAAUivC,WAAa,WAC3B,IAAI1rC,EAAQpI,KAAKgC,MACb0sC,EAAU1uC,KAAK0jD,iBACf/U,EAAQ3uC,KAAK4jD,kBAEjB,MAAO,CACH5gD,KAAM,EACN+H,MAAO,GACP2jC,QAASA,EACTC,MAAOA,EACPC,MANQ5uC,KAAKojD,WAAW1U,EAASC,GAOjCxH,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOA,EACPC,IAAKrI,KAAKgC,QAGlB4tC,EAAQ/qC,UAAU8jC,IAAM,WACpB,GAAI3oC,KAAKgoC,MACL,MAAO,CACHhlC,KAAM,EACN+H,MAAO,GACPo8B,WAAYnnC,KAAKmnC,WACjB7hB,UAAWtlB,KAAKslB,UAChBld,MAAOpI,KAAKgC,MACZqG,IAAKrI,KAAKgC,OAGlB,IAAIsmC,EAAKtoC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,OACrC,OAAI4jC,EAAYqC,UAAUQ,kBAAkBH,GACjCtoC,KAAKqiD,iBAGL,KAAP/Z,GAAsB,KAAPA,GAAsB,KAAPA,EACvBtoC,KAAKuiD,iBAGL,KAAPja,GAAsB,KAAPA,EACRtoC,KAAK6iD,oBAIL,KAAPva,EACI1C,EAAYqC,UAAUC,eAAeloC,KAAK+B,OAAOglB,WAAW/mB,KAAKgC,MAAQ,IAClEhC,KAAK4iD,qBAET5iD,KAAKuiD,iBAEZ3c,EAAYqC,UAAUC,eAAeI,GAC9BtoC,KAAK4iD,qBAIL,KAAPta,GAAuB,MAAPA,GAA+D,OAAhDtoC,KAAK2hD,WAAW3hD,KAAK2hD,WAAW1/C,OAAS,GACjEjC,KAAKijD,eAGZ3a,GAAM,OAAUA,EAAK,OACjB1C,EAAYqC,UAAUQ,kBAAkBzoC,KAAK+hD,YAAY/hD,KAAKgC,QACvDhC,KAAKqiD,iBAGbriD,KAAKuiD,kBAET3S,EA3mCI,GA6mCftwC,EAAQswC,QAAUA,GAKb,SAASvwC,EAAQC,GAEtB,aACAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtDzL,EAAQsnC,UAAY,GACpBtnC,EAAQsnC,UAAU,GAA0B,UAC5CtnC,EAAQsnC,UAAU,GAAe,QACjCtnC,EAAQsnC,UAAU,GAAsB,aACxCtnC,EAAQsnC,UAAU,GAAmB,UACrCtnC,EAAQsnC,UAAU,GAAuB,OACzCtnC,EAAQsnC,UAAU,GAA0B,UAC5CtnC,EAAQsnC,UAAU,GAAsB,aACxCtnC,EAAQsnC,UAAU,GAAyB,SAC3CtnC,EAAQsnC,UAAU,GAA6B,oBAC/CtnC,EAAQsnC,UAAU,IAAqB,YAKlC,SAASvnC,EAAQC,GAEtB,aAEAK,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtDzL,EAAQ8oC,cAAgB,CACpB0b,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,GAAI,IACJC,KAAM,IACNC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,IAAK,IACLhzB,KAAM,IACNizB,KAAM,IACNC,MAAO,IACPC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,QAAS,IACTC,KAAM,IACNC,IAAK,IACLC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,QAAS,IACTC,GAAI,IACJC,IAAK,IACLC,MAAO,IACPC,IAAK,IACLC,QAAS,IACTC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPp9B,MAAO,IACPq9B,QAAS,IACTC,KAAM,IACNC,IAAK,IACLC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,QAAS,IACTC,GAAI,IACJC,IAAK,IACLC,OAAQ,IACRC,MAAO,IACPC,IAAK,IACLC,QAAS,IACTC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,SAAU,IACVC,MAAO,IACPC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,OAAQ,IACRC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,QAAS,IACTC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,GAAI,IACJC,KAAM,IACNC,IAAK,IACLC,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,OAAQ,IACRC,IAAK,IACLC,KAAM,IACNC,MAAO,IACPC,GAAI,IACJC,MAAO,IACPC,GAAI,IACJC,GAAI,IACJz4B,IAAK,IACL04B,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,IAAK,IACLC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,KAAM,MAML,SAASj0D,EAAQC,EAAS0+B,GAE/B,aACAr+B,OAAOgX,eAAerX,EAAS,aAAc,CAAEyL,OAAO,IACtD,IAAIykC,EAAkBxR,EAAoB,IACtC0R,EAAY1R,EAAoB,IAChCgI,EAAUhI,EAAoB,IAC9Bu1B,EAAU,WACV,SAASA,IACLvzD,KAAKwO,OAAS,GACdxO,KAAKwzD,MAAQxzD,KAAKyzD,OAAS,EA8D/B,OA3DAF,EAAO1uD,UAAU6uD,yBAA2B,SAAUj+C,GAClD,MAAO,CAAC,IAAK,IAAK,IAAK,KAAM,SAAU,aAAc,MACjD,SAAU,OAAQ,SAAU,QAAS,OAErC,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,MAAO,MAAO,OACxD,KAAM,KAAM,KAAM,IAElB,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,IAC9D,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,MAAO,KAAM,KACvD,KAAM,IAAK,IAAK,KAAM,OAAO1V,QAAQ0V,IAAM,GAInD89C,EAAO1uD,UAAU8uD,aAAe,WAC5B,IAAIC,EAAW5zD,KAAKwO,OAAOxO,KAAKwO,OAAOvM,OAAS,GAC5C2sC,EAAsB,OAAbglB,EACb,OAAQA,GACJ,IAAK,OACL,IAAK,IACDhlB,GAAQ,EACR,MACJ,IAAK,IACD,IAAI0F,EAAUt0C,KAAKwO,OAAOxO,KAAKyzD,MAAQ,GACvC7kB,EAAqB,OAAZ0F,GAAgC,UAAZA,GAAmC,QAAZA,GAAiC,SAAZA,EACzE,MACJ,IAAK,IAID,GADA1F,GAAQ,EAC4B,aAAhC5uC,KAAKwO,OAAOxO,KAAKwzD,MAAQ,GAGzB5kB,KADIilB,EAAQ7zD,KAAKwO,OAAOxO,KAAKwzD,MAAQ,MACpBxzD,KAAK0zD,yBAAyBG,QAE9C,GAAoC,aAAhC7zD,KAAKwO,OAAOxO,KAAKwzD,MAAQ,GAAmB,CAEjD,IAAIK,EACJjlB,IADIilB,EAAQ7zD,KAAKwO,OAAOxO,KAAKwzD,MAAQ,MACpBxzD,KAAK0zD,yBAAyBG,IAM3D,OAAOjlB,GAEX2kB,EAAO1uD,UAAU/B,KAAO,SAAUs9B,GACX,IAAfA,EAAMp9B,MAA8C,IAAfo9B,EAAMp9B,MACvB,MAAhBo9B,EAAMr1B,MACN/K,KAAKwzD,MAAQxzD,KAAKwO,OAAOvM,OAEJ,MAAhBm+B,EAAMr1B,QACX/K,KAAKyzD,MAAQzzD,KAAKwO,OAAOvM,QAE7BjC,KAAKwO,OAAO1L,KAAKs9B,EAAMr1B,QAGvB/K,KAAKwO,OAAO1L,KAAK,OAGlBywD,EAjEG,GAmEVpzB,EAAa,WACb,SAASA,EAAU1Q,EAAMmQ,GACrB5/B,KAAK+/B,aAAe,IAAIyP,EAAgBG,aACxC3vC,KAAK+/B,aAAaF,WAAWD,IAAqC,kBAApBA,EAAOC,UAA0BD,EAAOC,UACtF7/B,KAAKinC,QAAU,IAAIyI,EAAUE,QAAQngB,EAAMzvB,KAAK+/B,cAChD//B,KAAKinC,QAAQ4I,eAAejQ,IAAoC,kBAAnBA,EAAOb,SAAyBa,EAAOb,SACpF/+B,KAAK8zD,aAAal0B,IAAkC,kBAAjBA,EAAOpC,OAAuBoC,EAAOpC,OACxEx9B,KAAK+zD,WAAWn0B,IAAgC,kBAAfA,EAAO4B,KAAqB5B,EAAO4B,KACpExhC,KAAKssB,OAAS,GACdtsB,KAAKg0D,OAAS,IAAIT,EA+DtB,OA7DApzB,EAAUt7B,UAAUi7B,OAAS,WACzB,OAAO9/B,KAAK+/B,aAAaD,QAE7BK,EAAUt7B,UAAUw7B,aAAe,WAC/B,GAA2B,IAAvBrgC,KAAKssB,OAAOrqB,OAAc,CAC1B,IAAI09B,EAAW3/B,KAAKinC,QAAQmC,eAC5B,GAAIppC,KAAKinC,QAAQ4I,aACb,IAAK,IAAI5hC,EAAI,EAAGA,EAAI0xB,EAAS19B,SAAUgM,EAAG,CACtC,IAAI9I,EAAIw6B,EAAS1xB,GACblD,EAAQ/K,KAAKinC,QAAQllC,OAAO0H,MAAMtE,EAAEsE,MAAM,GAAItE,EAAEsE,MAAM,IACtDs1B,EAAU,CACV/7B,KAAMmC,EAAEyuC,UAAY,eAAiB,cACrC7oC,MAAOA,GAEP/K,KAAK8zD,aACL/0B,EAAQvB,MAAQr4B,EAAEq4B,OAElBx9B,KAAK+zD,WACLh1B,EAAQyC,IAAMr8B,EAAEq8B,KAEpBxhC,KAAKssB,OAAOxpB,KAAKi8B,GAGzB,IAAK/+B,KAAKinC,QAAQe,MAAO,CACrB,IAAIxG,OAAM,EACNxhC,KAAK+zD,WACLvyB,EAAM,CACFp5B,MAAO,CACHid,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,WAE9Cjd,IAAK,KAGb,IACI+3B,EAD0D,MAA5CpgC,KAAKinC,QAAQllC,OAAO/B,KAAKinC,QAAQjlC,QAAmBhC,KAAKg0D,OAAOL,eACzD3zD,KAAKinC,QAAQ6M,aAAe9zC,KAAKinC,QAAQ0B,MAClE3oC,KAAKg0D,OAAOlxD,KAAKs9B,GACjB,IAAIU,EAAQ,CACR99B,KAAMgjC,EAAQY,UAAUxG,EAAMp9B,MAC9B+H,MAAO/K,KAAKinC,QAAQllC,OAAO0H,MAAM22B,EAAMh4B,MAAOg4B,EAAM/3B,MAYxD,GAVIrI,KAAK8zD,aACLhzB,EAAMtD,MAAQ,CAAC4C,EAAMh4B,MAAOg4B,EAAM/3B,MAElCrI,KAAK+zD,WACLvyB,EAAIn5B,IAAM,CACNgd,KAAMrlB,KAAKinC,QAAQE,WACnB5a,OAAQvsB,KAAKinC,QAAQjlC,MAAQhC,KAAKinC,QAAQ3hB,WAE9Cwb,EAAMU,IAAMA,GAEG,IAAfpB,EAAMp9B,KAAoC,CAC1C,IAAI0rC,EAAUtO,EAAMsO,QAChBC,EAAQvO,EAAMuO,MAClB7N,EAAM8N,MAAQ,CAAEF,QAASA,EAASC,MAAOA,GAE7C3uC,KAAKssB,OAAOxpB,KAAKg+B,IAGzB,OAAO9gC,KAAKssB,OAAOtR,SAEhBmlB,EAxEM,GA0EjB7gC,EAAQ6gC,UAAYA,MA5iNE,WAAnBn/B,EAAO1B,IAA0C,WAAlB0B,EAAO3B,GACxCA,EAAOC,QAAUu+B,KAEjBo2B,EAAO,QAADjjC,KAAAkjC,EAAA,mBAAAC,EAAA,GAAAA,EAAA3qD,MAAAlK,EAAA80D,GAAAD,KAAA90D,EAAAC,QAAA40D,6RCDR,IAAI9xD,EAAsBlD,EAAQ,IAC9BD,EAAsBC,EAAQ,IAC9BgjB,EAAsBhjB,EAAQ,IAC9B+iB,EAAsB/iB,EAAQ,IAE9B09B,EAAkBj9B,OAAOkF,UAAUJ,SACnCwe,EAAkBtjB,OAAOkF,UAAUqe,eAEnCmxC,EAA4B,EAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,IAC5BC,EAA4B,IAC5BC,EAA4B,IAE5BC,EAAmB,CAEvBA,EAA2B,MAC3BA,EAA2B,MAC3BA,EAA2B,MAC3BA,EAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,OAC3BA,IAA2B,MAC3BA,IAA2B,MAC3BA,KAA2B,MAC3BA,KAA2B,OAEvBC,EAA6B,CAC/B,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,KAC3C,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,OA8B5C,SAASC,EAAUC,GACjB,IAAIx0D,EAAQ+kB,EAAQpkB,EAIpB,GAFAX,EAASw0D,EAAUrxD,SAAS,IAAIqpB,cAE5BgoC,GAAa,IACfzvC,EAAS,IACTpkB,EAAS,OACJ,GAAI6zD,GAAa,MACtBzvC,EAAS,IACTpkB,EAAS,MACJ,MAAI6zD,GAAa,YAItB,MAAM,IAAI72D,EAAc,iEAHxBonB,EAAS,IACTpkB,EAAS,EAKX,MAAO,KAAOokB,EAASjkB,EAAOf,OAAO,IAAKY,EAASX,EAAOW,QAAUX,EAGtE,SAASsjB,EAAMplB,GACbQ,KAAKuC,OAAgB/C,EAAO,QAAc0iB,EAC1CliB,KAAKysB,OAAgBjkB,KAAKmV,IAAI,EAAIne,EAAO,QAAc,GACvDQ,KAAK+1D,cAAgBv2D,EAAO,gBAAqB,EACjDQ,KAAKg2D,YAAgBx2D,EAAO,cAAmB,EAC/CQ,KAAKi2D,UAAiB7zD,EAAOvB,UAAUrB,EAAO,YAAkB,EAAIA,EAAO,UAC3EQ,KAAKk2D,SAtDP,SAAyB3zD,EAAQ9C,GAC/B,IAAIC,EAAQE,EAAMoC,EAAOC,EAAQ1C,EAAKmB,EAAOsC,EAE7C,GAAY,OAARvD,EAAc,MAAO,GAKzB,IAHAC,EAAS,GAGJsC,EAAQ,EAAGC,GAFhBrC,EAAOD,OAAOC,KAAKH,IAEWwC,OAAQD,EAAQC,EAAQD,GAAS,EAC7DzC,EAAMK,EAAKoC,GACXtB,EAAQE,OAAOnB,EAAIF,IAEK,OAApBA,EAAIkK,MAAM,EAAG,KACflK,EAAM,qBAAuBA,EAAIkK,MAAM,KAEzCzG,EAAOT,EAAOiB,gBAAP,SAAmCjE,KAE9B0jB,EAAgB1e,KAAKvB,EAAKvC,aAAcC,KAClDA,EAAQsC,EAAKvC,aAAaC,IAG5BhB,EAAOH,GAAOmB,EAGhB,OAAOhB,EA8Bcy2D,CAAgBn2D,KAAKuC,OAAQ/C,EAAO,QAAc,MACvEQ,KAAKo2D,SAAgB52D,EAAO,WAAgB,EAC5CQ,KAAKq2D,UAAgB72D,EAAO,WAAiB,GAC7CQ,KAAKs2D,OAAgB92D,EAAO,SAAc,EAC1CQ,KAAKu2D,aAAgB/2D,EAAO,eAAoB,EAChDQ,KAAKw2D,aAAgBh3D,EAAO,eAAoB,EAEhDQ,KAAKklB,cAAgBllB,KAAKuC,OAAOe,iBACjCtD,KAAKy2D,cAAgBz2D,KAAKuC,OAAOgB,iBAEjCvD,KAAKT,IAAM,KACXS,KAAKN,OAAS,GAEdM,KAAK02D,WAAa,GAClB12D,KAAK22D,eAAiB,KAIxB,SAASC,EAAat1D,EAAQu1D,GAQ5B,IAPA,IAIIxxC,EAJAyxC,EAAM10D,EAAOf,OAAO,IAAKw1D,GACzBzxC,EAAW,EACXikB,GAAQ,EACR3pC,EAAS,GAETuC,EAASX,EAAOW,OAEbmjB,EAAWnjB,IAEF,KADdonC,EAAO/nC,EAAOvB,QAAQ,KAAMqlB,KAE1BC,EAAO/jB,EAAOmI,MAAM2b,GACpBA,EAAWnjB,IAEXojB,EAAO/jB,EAAOmI,MAAM2b,EAAUikB,EAAO,GACrCjkB,EAAWikB,EAAO,GAGhBhkB,EAAKpjB,QAAmB,OAATojB,IAAe3lB,GAAUo3D,GAE5Cp3D,GAAU2lB,EAGZ,OAAO3lB,EAGT,SAASq3D,EAAiBrxC,EAAOsxC,GAC/B,MAAO,KAAO50D,EAAOf,OAAO,IAAKqkB,EAAM+G,OAASuqC,GAkBlD,SAASC,EAAahyD,GACpB,OAAOA,IAAMsvD,GAActvD,IAAMovD,EAOnC,SAAS6C,EAAYjyD,GACnB,OAAS,IAAWA,GAAKA,GAAK,KACrB,KAAWA,GAAKA,GAAK,OAAmB,OAANA,GAAsB,OAANA,GAClD,OAAWA,GAAKA,GAAK,OAAmB,QAANA,GAClC,OAAWA,GAAKA,GAAK,QAIhC,SAASkyD,EAAYlyD,GAGnB,OAAOiyD,EAAYjyD,IAAY,QAANA,GAEpBA,IAAM8vD,GACN9vD,IAAMowD,GACNpwD,IAAMqwD,GACNrwD,IAAMuwD,GACNvwD,IAAMywD,GAENzwD,IAAMgwD,GACNhwD,IAAMyvD,EAmCb,SAAS0C,EAAoB91D,GAE3B,MADqB,QACCilB,KAAKjlB,GAG7B,IAAI+1D,EAAgB,EAChBC,EAAgB,EAChBC,EAAgB,EAChBC,EAAgB,EAChBC,EAAgB,EASpB,SAASC,EAAkBp2D,EAAQq2D,EAAgBC,EAAgBvB,EAAWwB,GAC5E,IAAI5pD,EACA41C,EAnDoB5+C,EAoDpB6yD,GAAe,EACfC,GAAkB,EAClBC,GAAkC,IAAf3B,EACnB4B,GAAqB,EACrBC,EArDGhB,EAHiBjyD,EAwDK3D,EAAOylB,WAAW,KArDhB,QAAN9hB,IACnBgyD,EAAahyD,IAGdA,IAAM+vD,GACN/vD,IAAMkwD,GACNlwD,IAAMgwD,GACNhwD,IAAM8vD,GACN9vD,IAAMowD,GACNpwD,IAAMqwD,GACNrwD,IAAMuwD,GACNvwD,IAAMywD,GAENzwD,IAAMyvD,GACNzvD,IAAM2vD,GACN3vD,IAAM6vD,GACN7vD,IAAMuvD,GACNvvD,IAAMwwD,GACNxwD,IAAMiwD,GACNjwD,IAAM4vD,GACN5vD,IAAMwvD,GAENxvD,IAAM0vD,GACN1vD,IAAMmwD,GACNnwD,IAAMswD,IA8BC0B,EAAa31D,EAAOylB,WAAWzlB,EAAOW,OAAS,IAE3D,GAAI01D,EAGF,IAAK1pD,EAAI,EAAGA,EAAI3M,EAAOW,OAAQgM,IAAK,CAElC,IAAKipD,EADLrT,EAAOviD,EAAOylB,WAAW9Y,IAEvB,OAAOwpD,EAETS,EAAQA,GAASf,EAAYtT,OAE1B,CAEL,IAAK51C,EAAI,EAAGA,EAAI3M,EAAOW,OAAQgM,IAAK,CAElC,IADA41C,EAAOviD,EAAOylB,WAAW9Y,MACZqmD,EACXwD,GAAe,EAEXE,IACFD,EAAkBA,GAEf9pD,EAAIgqD,EAAoB,EAAI5B,GACM,MAAlC/0D,EAAO22D,EAAoB,GAC9BA,EAAoBhqD,QAEjB,IAAKipD,EAAYrT,GACtB,OAAO4T,EAETS,EAAQA,GAASf,EAAYtT,GAG/BkU,EAAkBA,GAAoBC,GACnC/pD,EAAIgqD,EAAoB,EAAI5B,GACM,MAAlC/0D,EAAO22D,EAAoB,GAKhC,OAAKH,GAAiBC,EAOlBH,EAAiB,GAAKR,EAAoB91D,GACrCm2D,EAIFM,EAAkBP,EAAeD,EAT/BW,IAAUL,EAAkBv2D,GAC/B+1D,EAAcC,EAiBtB,SAASa,EAAYzyC,EAAOpkB,EAAQ01D,EAAOoB,GACzC1yC,EAAMnD,KAAQ,WACZ,GAAsB,IAAlBjhB,EAAOW,OACT,MAAO,KAET,IAAKyjB,EAAM6wC,eACyC,IAAhDX,EAA2B71D,QAAQuB,GACrC,MAAO,IAAMA,EAAS,IAGxB,IAAImrB,EAAS/G,EAAM+G,OAASjkB,KAAKmV,IAAI,EAAGq5C,GAQpCX,GAAiC,IAArB3wC,EAAM2wC,WACjB,EAAI7tD,KAAKmV,IAAInV,KAAKgC,IAAIkb,EAAM2wC,UAAW,IAAK3wC,EAAM2wC,UAAY5pC,GAG/DkrC,EAAiBS,GAEf1yC,EAAMuwC,WAAa,GAAKe,GAAStxC,EAAMuwC,UAK7C,OAAQyB,EAAkBp2D,EAAQq2D,EAAgBjyC,EAAM+G,OAAQ4pC,EAJhE,SAAuB/0D,GACrB,OA9LN,SAA+BokB,EAAO+N,GACpC,IAAIzxB,EAAOC,EAEX,IAAKD,EAAQ,EAAGC,EAASyjB,EAAMR,cAAcjjB,OAAQD,EAAQC,EAAQD,GAAS,EAG5E,GAFO0jB,EAAMR,cAAcljB,GAElB9B,QAAQuzB,GACf,OAAO,EAIX,OAAO,EAmLI4kC,CAAsB3yC,EAAOpkB,MAIpC,KAAK+1D,EACH,OAAO/1D,EACT,KAAKg2D,EACH,MAAO,IAAMh2D,EAAOmgB,QAAQ,KAAM,MAAQ,IAC5C,KAAK81C,EACH,MAAO,IAAMe,EAAYh3D,EAAQokB,EAAM+G,QACnC8rC,EAAkB3B,EAAat1D,EAAQmrB,IAC7C,KAAK+qC,EACH,MAAO,IAAMc,EAAYh3D,EAAQokB,EAAM+G,QACnC8rC,EAAkB3B,EA4B9B,SAAoBt1D,EAAQk3D,GAK1B,IAWIC,EAGAr4C,EAdAs4C,EAAS,iBAGTh5D,GACEi5D,EAASr3D,EAAOvB,QAAQ,MAC5B44D,GAAqB,IAAZA,EAAgBA,EAASr3D,EAAOW,OACzCy2D,EAAOE,UAAYD,EACZE,EAASv3D,EAAOmI,MAAM,EAAGkvD,GAASH,IAGvCM,EAAiC,OAAdx3D,EAAO,IAA6B,MAAdA,EAAO,GAPtC,IACRq3D,EAWN,KAAQv4C,EAAQs4C,EAAOnvD,KAAKjI,IAAU,CACpC,IAAIglB,EAASlG,EAAM,GAAIiF,EAAOjF,EAAM,GACpCq4C,EAA4B,MAAZpzC,EAAK,GACrB3lB,GAAU4mB,GACJwyC,GAAqBL,GAAyB,KAATpzC,EAC9B,GAAP,MACFwzC,EAASxzC,EAAMmzC,GACnBM,EAAmBL,EAGrB,OAAO/4D,EA1DkCq5D,CAAWz3D,EAAQ+0D,GAAY5pC,IACpE,KAAKgrC,EACH,MAAO,IAuGf,SAAsBn2D,GAKpB,IAJA,IACIuiD,EAAMmV,EACNC,EAFAv5D,EAAS,GAIJuO,EAAI,EAAGA,EAAI3M,EAAOW,OAAQgM,KACjC41C,EAAOviD,EAAOylB,WAAW9Y,KAEb,OAAU41C,GAAQ,QAC5BmV,EAAW13D,EAAOylB,WAAW9Y,EAAI,KACjB,OAAU+qD,GAAY,OAEpCt5D,GAAUm2D,EAA4B,MAAjBhS,EAAO,OAAkBmV,EAAW,MAAS,OAElE/qD,MAGJgrD,EAAYtD,EAAiB9R,GAC7BnkD,IAAWu5D,GAAa/B,EAAYrT,GAChCviD,EAAO2M,GACPgrD,GAAapD,EAAUhS,IAG7B,OAAOnkD,EA9HYw5D,CAAa53D,GAAqB,IACjD,QACE,MAAM,IAAIrC,EAAc,2CA1ChB,GAgDhB,SAASq5D,EAAYh3D,EAAQs2D,GAC3B,IAAIuB,EAAkB/B,EAAoB91D,GAAUV,OAAOg3D,GAAkB,GAGzEwB,EAA8C,OAA9B93D,EAAOA,EAAOW,OAAS,GAI3C,OAAOk3D,GAHIC,IAAuC,OAA9B93D,EAAOA,EAAOW,OAAS,IAA0B,OAAXX,GACvC,IAAO83D,EAAO,GAAK,KAEL,KAInC,SAASb,EAAkBj3D,GACzB,MAAqC,OAA9BA,EAAOA,EAAOW,OAAS,GAAcX,EAAOmI,MAAM,GAAI,GAAKnI,EA0CpE,SAASu3D,EAASxzC,EAAMmzC,GACtB,GAAa,KAATnzC,GAA2B,MAAZA,EAAK,GAAY,OAAOA,EAa3C,IAVA,IACIjF,EAEW/X,EAHXgxD,EAAU,SAGVjxD,EAAQ,EAAQkxD,EAAO,EAAGjwB,EAAO,EACjC3pC,EAAS,GAML0gB,EAAQi5C,EAAQ9vD,KAAK8b,KAC3BgkB,EAAOjpB,EAAMpe,OAEFoG,EAAQowD,IACjBnwD,EAAOixD,EAAOlxD,EAASkxD,EAAOjwB,EAC9B3pC,GAAU,KAAO2lB,EAAK5b,MAAMrB,EAAOC,GAEnCD,EAAQC,EAAM,GAEhBixD,EAAOjwB,EAaT,OARA3pC,GAAU,KAEN2lB,EAAKpjB,OAASmG,EAAQowD,GAASc,EAAOlxD,EACxC1I,GAAU2lB,EAAK5b,MAAMrB,EAAOkxD,GAAQ,KAAOj0C,EAAK5b,MAAM6vD,EAAO,GAE7D55D,GAAU2lB,EAAK5b,MAAMrB,GAGhB1I,EAAO+J,MAAM,GA6LtB,SAAS8vD,EAAW7zC,EAAOsH,EAAQ5pB,GACjC,IAAI0jB,EAAS0yC,EAAUx3D,EAAOC,EAAQe,EAAMtC,EAI5C,IAAKsB,EAAQ,EAAGC,GAFhBu3D,EAAWp2D,EAAWsiB,EAAM+wC,cAAgB/wC,EAAMR,eAEhBjjB,OAAQD,EAAQC,EAAQD,GAAS,EAGjE,KAFAgB,EAAOw2D,EAASx3D,IAEN3B,YAAe2C,EAAK1C,cACxB0C,EAAK3C,YAAkC,WAAlBW,EAAOgsB,IAAyBA,aAAkBhqB,EAAK3C,eAC5E2C,EAAK1C,WAAc0C,EAAK1C,UAAU0sB,IAAU,CAIhD,GAFAtH,EAAMnmB,IAAM6D,EAAWJ,EAAKzD,IAAM,IAE9ByD,EAAKzC,UAAW,CAGlB,GAFAG,EAAQglB,EAAMwwC,SAASlzD,EAAKzD,MAAQyD,EAAKxC,aAEF,sBAAnCo8B,EAAUr4B,KAAKvB,EAAKzC,WACtBumB,EAAU9jB,EAAKzC,UAAUysB,EAAQtsB,OAC5B,KAAIuiB,EAAgB1e,KAAKvB,EAAKzC,UAAWG,GAG9C,MAAM,IAAIzB,EAAc,KAAO+D,EAAKzD,IAAM,+BAAiCmB,EAAQ,WAFnFomB,EAAU9jB,EAAKzC,UAAUG,GAAOssB,EAAQtsB,GAK1CglB,EAAMnD,KAAOuE,EAGf,OAAO,EAIX,OAAO,EAMT,SAAS2yC,EAAU/zC,EAAOsxC,EAAOhqC,EAAQoiB,EAAOtqC,EAASszD,GACvD1yC,EAAMnmB,IAAM,KACZmmB,EAAMnD,KAAOyK,EAERusC,EAAW7zC,EAAOsH,GAAQ,IAC7BusC,EAAW7zC,EAAOsH,GAAQ,GAG5B,IAAIhqB,EAAO45B,EAAUr4B,KAAKmhB,EAAMnD,MAE5B6sB,IACFA,EAAS1pB,EAAMuwC,UAAY,GAAKvwC,EAAMuwC,UAAYe,GAGpD,IACI0C,EACAC,EAFAC,EAAyB,oBAAT52D,GAAuC,mBAATA,EAalD,GATI42D,IAEFD,GAAgC,KADhCD,EAAiBh0C,EAAMgxC,WAAW32D,QAAQitB,MAIzB,OAAdtH,EAAMnmB,KAA8B,MAAdmmB,EAAMnmB,KAAgBo6D,GAA+B,IAAjBj0C,EAAM+G,QAAgBuqC,EAAQ,KAC3FlyD,GAAU,GAGR60D,GAAaj0C,EAAMixC,eAAe+C,GACpCh0C,EAAMnD,KAAO,QAAUm3C,MAClB,CAIL,GAHIE,GAAiBD,IAAcj0C,EAAMixC,eAAe+C,KACtDh0C,EAAMixC,eAAe+C,IAAkB,GAE5B,oBAAT12D,EACEosC,GAA6C,IAAnCzvC,OAAOC,KAAK8lB,EAAMnD,MAAMtgB,SAlJ5C,SAA2ByjB,EAAOsxC,EAAOhqC,EAAQloB,GAC/C,IAGI9C,EACAC,EACA43D,EACAC,EACAC,EACAC,EARAlzC,EAAgB,GAChBuB,EAAgB3C,EAAMnmB,IACtB06D,EAAgBt6D,OAAOC,KAAKotB,GAShC,IAAuB,IAAnBtH,EAAM0wC,SAER6D,EAAcprD,YACT,GAA8B,mBAAnB6W,EAAM0wC,SAEtB6D,EAAcprD,KAAK6W,EAAM0wC,eACpB,GAAI1wC,EAAM0wC,SAEf,MAAM,IAAIn3D,EAAc,4CAG1B,IAAK+C,EAAQ,EAAGC,EAASg4D,EAAch4D,OAAQD,EAAQC,EAAQD,GAAS,EACtEg4D,EAAa,GAERl1D,GAAqB,IAAV9C,IACdg4D,GAAcjD,EAAiBrxC,EAAOsxC,IAIxC8C,EAAc9sC,EADd6sC,EAAYI,EAAcj4D,IAGrBy3D,EAAU/zC,EAAOsxC,EAAQ,EAAG6C,GAAW,GAAM,GAAM,MAIxDE,EAA8B,OAAdr0C,EAAMnmB,KAA8B,MAAdmmB,EAAMnmB,KAC5BmmB,EAAMnD,MAAQmD,EAAMnD,KAAKtgB,OAAS,QAG5CyjB,EAAMnD,MAAQ+xC,IAAmB5uC,EAAMnD,KAAKwE,WAAW,GACzDizC,GAAc,IAEdA,GAAc,MAIlBA,GAAct0C,EAAMnD,KAEhBw3C,IACFC,GAAcjD,EAAiBrxC,EAAOsxC,IAGnCyC,EAAU/zC,EAAOsxC,EAAQ,EAAG8C,GAAa,EAAMC,KAIhDr0C,EAAMnD,MAAQ+xC,IAAmB5uC,EAAMnD,KAAKwE,WAAW,GACzDizC,GAAc,IAEdA,GAAc,KAMhBlzC,GAHAkzC,GAAct0C,EAAMnD,OAMtBmD,EAAMnmB,IAAM8oB,EACZ3C,EAAMnD,KAAOuE,GAAW,KA4ElBozC,CAAkBx0C,EAAOsxC,EAAOtxC,EAAMnD,KAAMzd,GACxC60D,IACFj0C,EAAMnD,KAAO,QAAUm3C,EAAiBh0C,EAAMnD,SA7LxD,SAA0BmD,EAAOsxC,EAAOhqC,GACtC,IAGIhrB,EACAC,EACA43D,EACAC,EACAE,EAPAlzC,EAAgB,GAChBuB,EAAgB3C,EAAMnmB,IACtB06D,EAAgBt6D,OAAOC,KAAKotB,GAOhC,IAAKhrB,EAAQ,EAAGC,EAASg4D,EAAch4D,OAAQD,EAAQC,EAAQD,GAAS,EACtEg4D,EAAat0C,EAAM8wC,aAAe,IAAM,GAE1B,IAAVx0D,IAAag4D,GAAc,MAG/BF,EAAc9sC,EADd6sC,EAAYI,EAAcj4D,IAGrBy3D,EAAU/zC,EAAOsxC,EAAO6C,GAAW,GAAO,KAI3Cn0C,EAAMnD,KAAKtgB,OAAS,OAAM+3D,GAAc,MAE5CA,GAAct0C,EAAMnD,MAAQmD,EAAM8wC,aAAe,IAAM,IAAM,KAAO9wC,EAAM8wC,aAAe,GAAK,KAEzFiD,EAAU/zC,EAAOsxC,EAAO8C,GAAa,GAAO,KAOjDhzC,GAHAkzC,GAAct0C,EAAMnD,OAMtBmD,EAAMnmB,IAAM8oB,EACZ3C,EAAMnD,KAAO,IAAMuE,EAAU,IA2JvBqzC,CAAiBz0C,EAAOsxC,EAAOtxC,EAAMnD,MACjCo3C,IACFj0C,EAAMnD,KAAO,QAAUm3C,EAAiB,IAAMh0C,EAAMnD,YAGnD,GAAa,mBAATvf,EAA2B,CACpC,IAAIo3D,EAAc10C,EAAMqwC,eAAkBiB,EAAQ,EAAMA,EAAQ,EAAIA,EAChE5nB,GAAgC,IAAtB1pB,EAAMnD,KAAKtgB,SAlO/B,SAA4ByjB,EAAOsxC,EAAOhqC,EAAQloB,GAChD,IAEI9C,EACAC,EAHA6kB,EAAU,GACVuB,EAAU3C,EAAMnmB,IAIpB,IAAKyC,EAAQ,EAAGC,EAAS+qB,EAAO/qB,OAAQD,EAAQC,EAAQD,GAAS,EAE3Dy3D,EAAU/zC,EAAOsxC,EAAQ,EAAGhqC,EAAOhrB,IAAQ,GAAM,KAC9C8C,GAAqB,IAAV9C,IACd8kB,GAAWiwC,EAAiBrxC,EAAOsxC,IAGjCtxC,EAAMnD,MAAQ+xC,IAAmB5uC,EAAMnD,KAAKwE,WAAW,GACzDD,GAAW,IAEXA,GAAW,KAGbA,GAAWpB,EAAMnD,MAIrBmD,EAAMnmB,IAAM8oB,EACZ3C,EAAMnD,KAAOuE,GAAW,KA2MlBuzC,CAAmB30C,EAAO00C,EAAY10C,EAAMnD,KAAMzd,GAC9C60D,IACFj0C,EAAMnD,KAAO,QAAUm3C,EAAiBh0C,EAAMnD,SAvPxD,SAA2BmD,EAAOsxC,EAAOhqC,GACvC,IAEIhrB,EACAC,EAHA6kB,EAAU,GACVuB,EAAU3C,EAAMnmB,IAIpB,IAAKyC,EAAQ,EAAGC,EAAS+qB,EAAO/qB,OAAQD,EAAQC,EAAQD,GAAS,EAE3Dy3D,EAAU/zC,EAAOsxC,EAAOhqC,EAAOhrB,IAAQ,GAAO,KAClC,IAAVA,IAAa8kB,GAAW,KAAQpB,EAAM8wC,aAAqB,GAAN,MACzD1vC,GAAWpB,EAAMnD,MAIrBmD,EAAMnmB,IAAM8oB,EACZ3C,EAAMnD,KAAO,IAAMuE,EAAU,IA2OvBwzC,CAAkB50C,EAAO00C,EAAY10C,EAAMnD,MACvCo3C,IACFj0C,EAAMnD,KAAO,QAAUm3C,EAAiB,IAAMh0C,EAAMnD,WAGnD,IAAa,oBAATvf,EAIJ,CACL,GAAI0iB,EAAMswC,YAAa,OAAO,EAC9B,MAAM,IAAI/2D,EAAc,0CAA4C+D,GALlD,MAAd0iB,EAAMnmB,KACR44D,EAAYzyC,EAAOA,EAAMnD,KAAMy0C,EAAOoB,GAOxB,OAAd1yC,EAAMnmB,KAA8B,MAAdmmB,EAAMnmB,MAC9BmmB,EAAMnD,KAAO,KAAOmD,EAAMnmB,IAAM,KAAOmmB,EAAMnD,MAIjD,OAAO,EAGT,SAASg4C,GAAuBvtC,EAAQtH,GACtC,IAEI1jB,EACAC,EAHAu4D,EAAU,GACVC,EAAoB,GAMxB,IAMF,SAASC,EAAY1tC,EAAQwtC,EAASC,GACpC,IAAIR,EACAj4D,EACAC,EAEJ,GAAe,OAAX+qB,GAAqC,WAAlBhsB,EAAOgsB,GAE5B,IAAe,KADfhrB,EAAQw4D,EAAQz6D,QAAQitB,KAEoB,IAAtCytC,EAAkB16D,QAAQiC,IAC5By4D,EAAkB33D,KAAKd,QAKzB,GAFAw4D,EAAQ13D,KAAKkqB,GAET7rB,MAAMC,QAAQ4rB,GAChB,IAAKhrB,EAAQ,EAAGC,EAAS+qB,EAAO/qB,OAAQD,EAAQC,EAAQD,GAAS,EAC/D04D,EAAY1tC,EAAOhrB,GAAQw4D,EAASC,QAKtC,IAFAR,EAAgBt6D,OAAOC,KAAKotB,GAEvBhrB,EAAQ,EAAGC,EAASg4D,EAAch4D,OAAQD,EAAQC,EAAQD,GAAS,EACtE04D,EAAY1tC,EAAOitC,EAAcj4D,IAASw4D,EAASC,GA9B3DC,CAAY1tC,EAAQwtC,EAASC,GAExBz4D,EAAQ,EAAGC,EAASw4D,EAAkBx4D,OAAQD,EAAQC,EAAQD,GAAS,EAC1E0jB,EAAMgxC,WAAW5zD,KAAK03D,EAAQC,EAAkBz4D,KAElD0jB,EAAMixC,eAAiB,IAAIx1D,MAAMc,GAgCnC,SAASsgB,GAAK3C,EAAOpgB,GAGnB,IAAIkmB,EAAQ,IAAId,EAFhBplB,EAAUA,GAAW,IAMrB,OAFKkmB,EAAM4wC,QAAQiE,GAAuB36C,EAAO8F,GAE7C+zC,EAAU/zC,EAAO,EAAG9F,GAAO,GAAM,GAAc8F,EAAMnD,KAAO,KAEzD,GAOTljB,EAAOC,QAAQijB,KAAWA,GAC1BljB,EAAOC,QAAQkjB,SALf,SAAkB5C,EAAOpgB,GACvB,OAAO+iB,GAAK3C,EAAOxd,EAAOP,OAAO,CAAEU,OAAQ0f,GAAuBziB,wpKChwBpEwe,YAAQ,CACNC,UAAWC,YAAFC,KAiLTC,GAAI,gBACJG,eAAgB,CAACC,KAAM,UAAWm8C,UAAW,GAE7Ch8C,WAAY,CAMVi8C,IAAK,CAAC53D,KAAMpC,OAAQge,SAAU,eAK9Bi8C,WAAY,CAAC73D,KAAMmc,QAASpU,OAAO,EAAO6T,SAAU,sBAIpDwG,SAAU,CAACpiB,KAAMpC,OAAQmK,MAAO,UAIhC+vD,mBAAoB,CAAC93D,KAAMmc,QAASpU,OAAO,GAK3C4D,OAAQ,CAAC3L,KAAMrB,OAAQoJ,MAAO,IAO9BgwD,UAAW,CAAC/3D,KAAMrB,OAAQoJ,MAAO,IAKjCiwD,eAAgB,CAACh4D,KAAMrB,OAAQoJ,MAAO,IAAK6T,SAAU,gBAOrDq8C,eAAgB,CAACj4D,KAAMpC,OAAQmK,MAAO,IAOtCmwD,cAAe,CAACl4D,KAAMpC,OAAQmK,MAAO,IAYrCowD,gBAAiB,CACfn4D,KAAMrD,OACNoL,MAAO,WACL,MAAO,CACL+1B,MACI,CAAC,CAAChhC,KAAM,oBAAqB6c,KAAM3c,KAAMuH,OAAQ,CAAC+C,MAAO,KACzD8wD,KAAQ,CAAC,CAACt7D,KAAM,qBAAsB6c,KAAM3c,UAItDq7D,SAAU,CAACr4D,KAAMmc,QAASpU,OAAO,IAGnC4U,UAAW,CACT27C,mBAAsB,mBAUxBx5D,aACE,IAAIy5D,EAAap6C,YAAInhB,MAAMu7D,WAEvBC,EAAYr6C,YAAInhB,MAAMy7D,eAS1B,OAPIz7D,KAAA,IACOmhB,YAAIq6C,GAAWE,cAAc,IAAM17D,KAAA,KAEnCu7D,EAAWI,UAAY51B,KAAK61B,uBACjCJ,EAAUK,KACVN,GAQRt7C,SAAU,WACRjgB,KAAK87D,eAMPC,SAAU,WACH/7D,KAAK66D,YACR76D,KAAKg8D,oBAQTC,cAAe,SAASj5D,GACT,UAATA,EACFhD,KAAKk8D,OACa,SAATl5D,GACThD,KAAKm8D,QAOTC,gBAAiB,WAEfp8D,KAAK8f,EAAEu8C,QAAQC,UAAUC,IAAI,qBAO/BL,KAAM,WAEJ,IAAIl8D,KAAKq7D,SAAT,CAGA,GAAqC,KAAjCl6C,YAAInhB,MAAMw8D,YAAY9hC,OAAe,CAIvC,IAFA,IAAI+hC,GAAmB,EACnBC,EAAoBv7C,YAAInhB,MAAM28D,yBACzB1uD,EAAI,EAAGA,EAAIyuD,EAAkBz6D,OAAQgM,IAC5C,GAAgD,KAA5CyuD,EAAkBzuD,GAAGuuD,YAAY9hC,OAAe,CAClD+hC,GAAmB,EACnB,MAGJ,GAAIA,EACF,OAIJz8D,KAAKq7D,UAAW,EAChBr7D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO,UAChC1W,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO,oBAChC1W,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO1W,KAAK48D,kBAAkB,SACvD58D,KAAK68D,iBACL78D,KAAK88D,mBAAoB,EACzB98D,KAAK8f,EAAEu8C,QAAQC,UAAUC,IAAIv8D,KAAK48D,kBAAkB,YAOtDT,KAAM,WAEJ,GAAKn8D,KAAKq7D,SAAV,CAMA,GAAIr7D,KAAK88D,kBAGP,OAFA98D,KAAKq7D,UAAW,OAChBr7D,KAAK+8D,mBAIL/8D,KAAKg9D,qBAGPh9D,KAAKq7D,UAAW,EAChBr7D,KAAK88D,mBAAoB,IAM3BD,eAAgB,WACd,GAAK78D,KAAKi9D,SAAYj9D,KAAKk9D,aAA3B,CAEA,IAAIvuD,EAAS3O,KAAK2O,OAEI,IAAlB3O,KAAK+6D,WAAkC,IAAf/6D,KAAK2O,SAC/BA,EAAS3O,KAAK+6D,WAChB,IAOIoC,EAAaC,EAPbC,EAAar9D,KAAKk9D,aAAaI,wBAC/BC,EAAav9D,KAAKi9D,QAAQK,wBAC1BE,EAAWx9D,KAAKs9D,wBAChBG,GAA0BF,EAAW/E,MAAQgF,EAAShF,OAAS,EAC/DkF,GAAwBH,EAAWI,OAASH,EAASG,QAAU,EAC/DC,EAAaL,EAAWjhD,KAAO+gD,EAAW/gD,KAC1CuhD,EAAYN,EAAWO,IAAMT,EAAWS,IAE5C,OAAQ99D,KAAKolB,UACX,IAAK,MACH+3C,EAAcS,EAAaH,EAC3BL,EAAaS,EAAYL,EAASG,OAAShvD,EAC3C,MACF,IAAK,SACHwuD,EAAcS,EAAaH,EAC3BL,EAAaS,EAAYN,EAAWI,OAAShvD,EAC7C,MACF,IAAK,OACHwuD,EAAcS,EAAaJ,EAAShF,MAAQ7pD,EAC5CyuD,EAAaS,EAAYH,EACzB,MACF,IAAK,QACHP,EAAcS,EAAaL,EAAW/E,MAAQ7pD,EAC9CyuD,EAAaS,EAAYH,EAIzB19D,KAAK86D,oBAEHuC,EAAW/gD,KAAO6gD,EAAcK,EAAShF,MAAQpnD,OAAO2sD,YAC1D/9D,KAAKU,MAAM6b,MAAQ,MACnBvc,KAAKU,MAAM4b,KAAO,SAElBtc,KAAKU,MAAM4b,KAAO9T,KAAKmV,IAAI,EAAGw/C,GAAe,KAC7Cn9D,KAAKU,MAAM6b,MAAQ,QAGjB8gD,EAAWS,IAAMV,EAAaI,EAASG,OAASvsD,OAAO4sD,aACzDh+D,KAAKU,MAAMu9D,OAAUZ,EAAWM,OAASE,EAAYlvD,EAAU,KAC/D3O,KAAKU,MAAMo9D,IAAM,SAEjB99D,KAAKU,MAAMo9D,IAAMt1D,KAAKmV,KAAK0/C,EAAWS,IAAKV,GAAc,KACzDp9D,KAAKU,MAAMu9D,OAAS,UAGtBj+D,KAAKU,MAAM4b,KAAO6gD,EAAc,KAChCn9D,KAAKU,MAAMo9D,IAAMV,EAAa,QAIlCc,cAAe,WACTl+D,KAAKi9D,UACPj9D,KAAKm+D,OAAOn+D,KAAKi9D,QAAS,aAAc,QACxCj9D,KAAKm+D,OAAOn+D,KAAKi9D,QAAS,QAAS,QACnCj9D,KAAKm+D,OAAOn+D,KAAKi9D,QAAS,aAAc,QACxCj9D,KAAKm+D,OAAOn+D,KAAKi9D,QAAS,OAAQ,QAClCj9D,KAAKm+D,OAAOn+D,KAAKi9D,QAAS,MAAO,SAEnCj9D,KAAKm+D,OAAOn+D,KAAK8f,EAAEu8C,QAAS,eAAgB,mBAC5Cr8D,KAAKm+D,OAAOn+D,KAAM,aAAc,SAGlC87D,YAAa,WACN97D,KAAK66D,YACR76D,KAAKg8D,mBACPh8D,KAAKi9D,QAAUj9D,KAAK8B,OACf9B,KAAK66D,YACR76D,KAAKk+D,iBAGTE,aAAc,SAASC,GAEJ,MAAbA,GACFr+D,KAAKs+D,aAAa,CAACC,2BAA4BF,EAAW,QAI9DG,mBAAoB,WACdx+D,KAAK66D,WACP76D,KAAKg8D,mBAELh8D,KAAKk+D,iBAGTnB,iBAAkB,WAEhB/8D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO1W,KAAK48D,kBAAkB,UACvD58D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO1W,KAAK48D,kBAAkB,SACvD58D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO,oBAChC1W,KAAK8f,EAAEu8C,QAAQC,UAAUC,IAAI,WAG/BS,mBAAoB,WACdh9D,KAAKq7D,WACPr7D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO1W,KAAK48D,kBAAkB,UACvD58D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO,oBAChC1W,KAAK8f,EAAEu8C,QAAQC,UAAUC,IAAIv8D,KAAK48D,kBAAkB,WAIxD6B,gBAAiB,WAEfz+D,KAAK88D,mBAAoB,EACpB98D,KAAKq7D,WACRr7D,KAAK8f,EAAEu8C,QAAQC,UAAU5lD,OAAO1W,KAAK48D,kBAAkB,SACvD58D,KAAK8f,EAAEu8C,QAAQC,UAAUC,IAAI,YAIjCK,kBAAmB,SAAS55D,GAE1B,GAAc,UAATA,GAA8C,KAAxBhD,KAAKi7D,eAC9B,OAAOj7D,KAAKi7D,eAEd,GAAc,SAATj4D,GAA4C,KAAvBhD,KAAKk7D,cAC7B,OAAOl7D,KAAKk7D,cAGd,GAAIl7D,KAAKm7D,gBAAgBn4D,IACyB,iBAAvChD,KAAKm7D,gBAAgBn4D,GAAM,GAAGlD,KAAmB,CAE1D,GAAIE,KAAKm7D,gBAAgBn4D,GAAM,GAAGuE,QAC9BvH,KAAKm7D,gBAAgBn4D,GAAM,GAAGuE,OAAO+C,OACU,IAA/CtK,KAAKm7D,gBAAgBn4D,GAAM,GAAGuE,OAAO+C,MAAa,CACpD,IAAIo0D,EAAc1+D,KAAKm7D,gBAAgBn4D,GAAM,GAAGuE,OAAO+C,MAE1C,UAATtH,EACFhD,KAAKs+D,aAAa,CAACC,2BAA4BG,EAAc,OAC3C,SAAT17D,GACThD,KAAKs+D,aAAa,CAACK,4BAA6BD,EAAc,OAGlE,OAAO1+D,KAAKm7D,gBAAgBn4D,GAAM,GAAGlD,OAIzCk8D,iBAAkB,WACZh8D,KAAKi9D,UACPj9D,KAAK4+D,SAAS5+D,KAAKi9D,QAAS,aAAc,QAC1Cj9D,KAAK4+D,SAAS5+D,KAAKi9D,QAAS,QAAS,QACrCj9D,KAAK4+D,SAAS5+D,KAAKi9D,QAAS,aAAc,QAC1Cj9D,KAAK4+D,SAAS5+D,KAAKi9D,QAAS,OAAQ,QACpCj9D,KAAK4+D,SAAS5+D,KAAKi9D,QAAS,MAAO,SAErCj9D,KAAK4+D,SAAS5+D,KAAK8f,EAAEu8C,QAAS,eAAgB,mBAC9Cr8D,KAAK4+D,SAAS5+D,KAAM,aAAc,mGC9jBhC6+D,EAAsBp5D,SAASuD,cAAc,YACnD61D,EAAoBC,aAAa,QAAS,kBAE1CD,EAAoB99C,UAApB,yKAOAtb,SAASknB,KAAKoyC,YAAYF,EAAoBG,SCV9C,IAAMH,EAAsBp5D,SAASuD,cAAc,YACnD61D,EAAoBC,aAAa,QAAS,kBAE1CD,EAAoB99C,UAApB,88CAoEAtb,SAASknB,KAAKoyC,YAAYF,EAAoBG,0yDCI9ChhD,YAAQ,CACNC,UAAWC,YAAFC,KAmBTC,GAAI,sBAEJC,UAAW,CACT4gD,IACAvgD,IACAwgD,IACAzgD,KAGFE,WAAY,CAMVwgD,kBAAmB,CAACn8D,KAAMpC,OAAQie,QAAQ,EAAMugD,UAAU,GAS1DC,aAAc,CAACr8D,KAAMrD,OAAQkf,QAAQ,EAAMugD,UAAU,GAOrDr0D,MAAO,CACL/H,KAAMpC,OACNie,QAAQ,GAMVa,MAAO,CAAC1c,KAAMpC,QAKdye,YAAa,CAACrc,KAAMpC,QAKpB0+D,aAAc,CAACt8D,KAAMpC,QAKrB2+D,OACI,CAACv8D,KAAMmc,QAASN,QAAQ,EAAM9T,OAAO,EAAO6T,SAAU,kBAQ1D4gD,mBAAoB,CAACx8D,KAAMmc,QAASpU,OAAO,GAM3C00D,aAAc,CAACz8D,KAAMmc,QAASpU,OAAO,EAAO20D,oBAAoB,GAMhEC,iBAAkB,CAAC38D,KAAMmc,QAASpU,OAAO,GAMzC60D,aAAc,CAAC58D,KAAMmc,QAASpU,OAAO,GAMrC80D,gBAAiB,CAAC78D,KAAMpC,OAAQmK,MAAO,SAMvC+0D,cAAe,CAAC98D,KAAMpC,OAAQmK,MAAO,OAMrCg1D,eAAgBp+D,OAQhBq+D,aAAc,CAACh9D,KAAMmc,SAKrB8gD,oBAAqB,CAACj9D,KAAMmc,QAASpU,OAAO,IAG9C4U,UAAW,CAACugD,IAAO,UAKnBC,YAAa,CAACC,UAAW,OAAQC,IAAO,SAExC9hD,eACI,CAACC,KAAM,WAAY8hD,oBAAqB,OAAQC,gBAAiB,QAErEC,UAAW,CAAC,sCAEZvgD,SAAU,WAKR,IAAIwgD,EAAiBzgE,KAAKygE,eACtBA,GAAkBA,EAAepB,cACnCr/D,KAAK0gE,iBAAiBD,EAAepB,eAOzCoB,qBAGE,IADA,IAAIE,EAAQx/C,YAAInhB,KAAK8f,EAAEk/C,SAAS4B,sBACvB3yD,EAAI,EAAG4yD,EAAIF,EAAM1+D,OAAQgM,EAAI4yD,EAAG5yD,IACvC,GAAI0yD,EAAM1yD,GAAG0tD,WAAa51B,KAAK+6B,aAC7B,OAAOH,EAAM1yD,IAQnB8yD,KAAM,WACJ/gE,KAAK8f,EAAEkhD,WAAWD,QAMpBE,MAAO,WACLjhE,KAAK8f,EAAEkhD,WAAWC,SAQpBC,cAAe,SAAS5sD,GACtBtU,KAAK0gE,iBAAiBpsD,EAAM6sD,OAAOC,OAQrCC,gBAAiB,SAAS/sD,GACxBtU,KAAK0gE,iBAAiB,OAQxBY,OAAQ,SAAShtD,GACXitD,IAA4BjtD,KAAWtU,MACzCA,KAAK+gE,QAUTS,qBAAsB,SAASnC,GAC7B,IAAIt0D,EAAQ,GAIVA,EAHGs0D,EAGKA,EAAa3/C,OAAS2/C,EAAaoC,aAAa,UACpDpC,EAAa7C,YAAY9hC,OAHrB,GAMV16B,KAAK+K,MAAQA,EACb/K,KAAK0hE,sBAAsB32D,IAW7B42D,2BAA4B,SAASlC,EAAcmC,GAEjD,OAAIA,IAQGnC,GAAgB,EAAI,IAU7BoC,aAAc,SAASC,GACrB,OAAO9hE,KAAK+hE,WAAa/hE,KAAKuf,UAAavf,KAAKuf,YAAcvf,KAAK+K,OAGrEi3D,eAAgB,WACd,IAAIC,EAAYjiE,KAAKu/D,OAAS,OAAS,QACnCp6D,EAAInF,KAAKygE,eACTt7D,GACFA,EAAE25D,aAAa,gBAAiBmD,qECrVhCpD,EAAsBp5D,SAASuD,cAAc,YACnD61D,EAAoBC,aAAa,QAAS,kBAE1CD,EAAoB99C,UAApB,40CAwDAtb,SAASknB,KAAKoyC,YAAYF,EAAoBG,2CC/CjCkD,EACT,CAACjD,IAAiBvgD,IANe,CACnCH,eAAgB,CAACC,KAAM,SAAUm8C,SAAU,waCsE7C38C,YAAQ,CACNC,UAAWC,YAAFC,KAaTC,GAAI,aACJC,UAAW,CAAC6jD","file":"chunk.f49e500cf58ea310d452.js","sourcesContent":["'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n!function(a,b){var c={},d={},e={};!function(a,b){function c(a){if(\"number\"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function d(){this._delay=0,this._endDelay=0,this._fill=\"none\",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction=\"normal\",this._easing=\"linear\",this._easingFunction=x}function e(){return a.isDeprecated(\"Invalid timing inputs\",\"2016-03-02\",\"TypeError exceptions will be thrown instead.\",!0)}function f(b,c,e){var f=new d;return c&&(f.fill=\"both\",f.duration=\"auto\"),\"number\"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if(\"auto\"!=b[c]){if((\"number\"==typeof f[c]||\"duration\"==c)&&(\"number\"!=typeof b[c]||isNaN(b[c])))return;if(\"fill\"==c&&-1==v.indexOf(b[c]))return;if(\"direction\"==c&&-1==w.indexOf(b[c]))return;if(\"playbackRate\"==c&&1!==b[c]&&a.isDeprecated(\"AnimationEffectTiming.playbackRate\",\"2014-11-28\",\"Use Animation.playbackRate instead.\"))return;f[c]=b[c]}}):f.duration=b,f}function g(a){return\"number\"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function h(b,c){return b=a.numericTimingToObject(b),f(b,c)}function i(a,b,c,d){return a<0||a>1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i=1)return 1;var d=1/a;return(c+=b*d)-c%d}}function k(a){C||(C=document.createElement(\"div\").style),C.animationTimingFunction=\"\",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(\"\"==b&&e())throw new TypeError(a+\" is not a valid value for easing\");return b}function l(a){if(\"linear\"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);return c?j(Number(c[1]),{start:y,middle:z,end:A}[c[2]]):B[a]||x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return G;var d=c.delay+a+c.endDelay;return b=Math.min(c.delay+a,d)?I:J}function p(a,b,c,d,e){switch(d){case H:return\"backwards\"==b||\"both\"==b?0:null;case J:return c-e;case I:return\"forwards\"==b||\"both\"==b?a:null;case G:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==H&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==I||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===I&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if(\"normal\"!==a&&\"reverse\"!==a){var e=b;\"alternate-reverse\"===a&&(e+=1),d=\"normal\",e!==1/0&&e%2!=0&&(d=\"reverse\")}return\"normal\"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v=\"backwards|forwards|both|none\".split(\"|\"),w=\"reverse|alternate|alternate-reverse\".split(\"|\"),x=function(a){return a};d.prototype={_setMember:function(b,c){this[\"_\"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember(\"delay\",a)},get delay(){return this._delay},set endDelay(a){this._setMember(\"endDelay\",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember(\"fill\",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterationStart must be a non-negative number, received: \"+timing.iterationStart);this._setMember(\"iterationStart\",a)},get iterationStart(){return this._iterationStart},set duration(a){if(\"auto\"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError(\"duration must be non-negative or auto, received: \"+a);this._setMember(\"duration\",a)},get duration(){return this._duration},set direction(a){this._setMember(\"direction\",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember(\"easing\",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterations must be non-negative, received: \"+a);this._setMember(\"iterations\",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),\"ease-in\":i(.42,0,1,1),\"ease-out\":i(0,0,.58,1),\"ease-in-out\":i(.42,0,.58,1),\"step-start\":j(1,y),\"step-middle\":j(1,z),\"step-end\":j(1,A)},C=null,D=\"\\\\s*(-?\\\\d+\\\\.?\\\\d*|-?\\\\.\\\\d+)\\\\s*\",E=new RegExp(\"cubic-bezier\\\\(\"+D+\",\"+D+\",\"+D+\",\"+D+\"\\\\)\"),F=/steps\\(\\s*(\\d+)\\s*,\\s*(start|middle|end)\\s*\\)/,G=0,H=1,I=2,J=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(c),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return\"display\"===a||0===a.lastIndexOf(\"animation\",0)||0===a.lastIndexOf(\"transition\",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in[\"easing\",\"offset\",\"composite\"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e1)throw new TypeError(\"Keyframe offsets must be between 0 and 1.\")}}else if(\"composite\"==d){if(\"add\"==f||\"accumulate\"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:\"NotSupportedError\",message:\"add compositing is not supported\"};if(\"replace\"!=f)throw new TypeError(\"Invalid composite mode \"+f+\".\")}else f=\"easing\"==d?a.normalizeEasing(f):\"\"+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing=\"linear\"),c}),g=!0,h=-1/0,i=0;i=0&&a.offset<=1}),g||c(),d}var h={background:[\"backgroundImage\",\"backgroundPosition\",\"backgroundSize\",\"backgroundRepeat\",\"backgroundAttachment\",\"backgroundOrigin\",\"backgroundClip\",\"backgroundColor\"],border:[\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\"],borderBottom:[\"borderBottomWidth\",\"borderBottomStyle\",\"borderBottomColor\"],borderColor:[\"borderTopColor\",\"borderRightColor\",\"borderBottomColor\",\"borderLeftColor\"],borderLeft:[\"borderLeftWidth\",\"borderLeftStyle\",\"borderLeftColor\"],borderRadius:[\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\"],borderRight:[\"borderRightWidth\",\"borderRightStyle\",\"borderRightColor\"],borderTop:[\"borderTopWidth\",\"borderTopStyle\",\"borderTopColor\"],borderWidth:[\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\"],flex:[\"flexGrow\",\"flexShrink\",\"flexBasis\"],font:[\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontVariant\",\"fontWeight\",\"lineHeight\"],margin:[\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\"],outline:[\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],padding:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"]},i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),j={thin:\"1px\",medium:\"3px\",thick:\"5px\"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{\"xx-small\":\"60%\",\"x-small\":\"75%\",small:\"89%\",medium:\"100%\",large:\"120%\",\"x-large\":\"150%\",\"xx-large\":\"200%\"},fontWeight:{normal:\"400\",bold:\"700\"},outlineWidth:j,textShadow:{none:\"0px 0px 0px transparent\"},boxShadow:{none:\"0px 0px 0px 0px transparent\"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(c),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?\"are\":\"is\",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g=a.applyFrom&&c0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,\"paused\"!=this.playState&&\"idle\"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?\"idle\":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?\"pending\":this._paused?\"paused\":this._isFinished?\"finished\":\"running\"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException(\"Unable to rewind negative playback rate animation with infinite duration\",\"InvalidStateError\");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._isFinished=!0,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){\"function\"==typeof b&&\"finish\"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if(\"finish\"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();-1===a.indexOf(this)&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);-1!==b&&a.splice(b,1)}}}(c,d),function(a,b,c){function d(a){var b=j;j=[],ad?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){return a(c)||[b,c]}}function i(b,c){for(var d=[],e=0;e=1?b:\"visible\"}]}a.addPropertiesHandler(String,c,[\"visibility\"])}(d),function(a,b){function c(a){a=a.trim(),f.fillStyle=\"#000\",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle=\"#fff\",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),\"rgba(\"+b.join(\",\")+\")\"}]}var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=e.height=1;var f=e.getContext(\"2d\");a.addPropertiesHandler(c,d,[\"background-color\",\"border-bottom-color\",\"border-left-color\",\"border-right-color\",\"border-top-color\",\"color\",\"fill\",\"flood-color\",\"lighting-color\",\"outline-color\",\"stop-color\",\"stroke\",\"text-decoration-color\"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(d),function(a,b){function c(a){function b(){var b=h.exec(a);g=b?b[0]:void 0}function c(){var a=Number(g);return b(),a}function d(){if(\"(\"!==g)return c();b();var a=f();return\")\"!==g?NaN:(b(),a)}function e(){for(var a=d();\"*\"===g||\"/\"===g;){var c=g;b();var e=d();\"*\"===c?a*=e:a/=e}return a}function f(){for(var a=e();\"+\"===g||\"-\"===g;){var c=g;b();var d=e();\"+\"===c?a+=d:a-=d}return a}var g,h=/([\\+\\-\\w\\.]+|[\\(\\)\\*\\/])/g;return b(),f()}function d(a,b){if(\"0\"==(b=b.trim().toLowerCase())&&\"px\".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\\(/g,\"(\");var d={};b=b.replace(a,function(a){return d[a]=null,\"U\"+a});for(var e=\"U(\"+a.source+\")\",f=b.replace(/[-+]?(\\d*\\.)?\\d+([Ee][-+]?\\d+)?/g,\"N\").replace(new RegExp(\"N\"+e,\"g\"),\"D\").replace(/\\s[+-]\\s/g,\"O\").replace(/\\s/g,\"\"),g=[/N\\*(D)/g,/(N|D)[*\\/]N/g,/(N|D)O\\1/g,/\\((N|D)\\)/g],h=0;h1?\"calc(\"+c+\")\":c}]}var g=\"px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc\",h=d.bind(null,new RegExp(g,\"g\")),i=d.bind(null,new RegExp(g+\"|%\",\"g\")),j=d.bind(null,/deg|rad|grad|turn/g);a.parseLength=h,a.parseLengthOrPercent=i,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,i),a.parseAngle=j,a.mergeDimensions=f;var k=a.consumeParenthesised.bind(null,h),l=a.consumeRepeated.bind(void 0,k,/^/),m=a.consumeRepeated.bind(void 0,l,/^,/);a.consumeSizePairList=m;var n=function(a){var b=m(a);if(b&&\"\"==b[1])return b[0]},o=a.mergeNestedRepeated.bind(void 0,e,\" \"),p=a.mergeNestedRepeated.bind(void 0,o,\",\");a.mergeNonNegativeSizePair=o,a.addPropertiesHandler(n,p,[\"background-size\"]),a.addPropertiesHandler(i,e,[\"border-bottom-width\",\"border-image-width\",\"border-left-width\",\"border-right-width\",\"border-top-width\",\"flex-basis\",\"font-size\",\"height\",\"line-height\",\"max-height\",\"max-width\",\"outline-width\",\"width\"]),a.addPropertiesHandler(i,f,[\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"bottom\",\"left\",\"letter-spacing\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"min-height\",\"min-width\",\"outline-offset\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"perspective\",\"right\",\"shape-margin\",\"stroke-dashoffset\",\"text-indent\",\"top\",\"vertical-align\",\"word-spacing\"])}(d),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return\"auto\"==b||\"auto\"==c?[!0,!1,function(d){var e=d?b:c;if(\"auto\"==e)return\"auto\";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return\"rect(\"+a+\")\"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,\", \");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,[\"clip\"])}(d),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(\"none\"==(b=b.toLowerCase().trim()))return[];for(var c,d=/\\s*(\\w+)\\(([^)]*)\\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(\",\"),j=h[0];if(j.length=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue(\"opacity\"),f=\"0\"==e?\"1\":\"0\";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue(\"opacity\")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(c),function(a,b,c){function d(a){var c=b.timeline;c.currentTime=a,c._discardAnimations(),0==c._animations.length?f=!1:requestAnimationFrame(d)}var e=window.requestAnimationFrame;window.requestAnimationFrame=function(a){return e(function(c){b.timeline._updateAnimationsPromises(),a(c),b.timeline._updateAnimationsPromises()})},b.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},b.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){b.animationsWithPromises=b.animationsWithPromises.filter(function(a){return a._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(a){return\"finished\"!=a.playState&&\"idle\"!=a.playState})},_play:function(a){var c=new b.Animation(a,this);return this._animations.push(c),b.restartWebAnimationsNextTick(),c._updatePromises(),c._animation.play(),c._updatePromises(),c},play:function(a){return a&&a.remove(),this._play(a)}};var f=!1;b.restartWebAnimationsNextTick=function(){f||(f=!0,requestAnimationFrame(d))};var g=new b.AnimationTimeline;b.timeline=g;try{Object.defineProperty(window.document,\"timeline\",{configurable:!0,get:function(){return g}})}catch(a){}try{window.document.timeline=g}catch(a){}}(0,e),function(a,b,c){b.animationsWithPromises=[],b.Animation=function(b,c){if(this.id=\"\",b&&b._id&&(this.id=b._id),this.effect=b,b&&(b._animation=this),!c)throw new Error(\"Animation with null timeline is not supported\");this._timeline=c,this._sequenceNumber=a.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState=\"idle\",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},b.Animation.prototype={_updatePromises:function(){var a=this._oldPlayState,b=this.playState;return this._readyPromise&&b!==a&&(\"idle\"==b?(this._rejectReadyPromise(),this._readyPromise=void 0):\"pending\"==a?this._resolveReadyPromise():\"pending\"==b&&(this._readyPromise=void 0)),this._finishedPromise&&b!==a&&(\"idle\"==b?(this._rejectFinishedPromise(),this._finishedPromise=void 0):\"finished\"==b?this._resolveFinishedPromise():\"finished\"==a&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var a,c,d,e,f=!!this._animation;f&&(a=this.playbackRate,c=this._paused,d=this.startTime,e=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=b.newUnderlyingAnimationForKeyframeEffect(this.effect),b.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=b.newUnderlyingAnimationForGroup(this.effect),b.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&b.bindAnimationForCustomEffect(this),f&&(1!=a&&(this.playbackRate=a),null!==d?this.startTime=d:null!==e?this.currentTime=e:null!==this._holdTime&&(this.currentTime=this._holdTime),c&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&\"idle\"!=this.playState){var a=this.effect._timing.delay;this._childAnimations.forEach(function(c){this._arrangeChildren(c,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c.effect))}.bind(this))}},_setExternalAnimation:function(a){if(this.effect&&this._isGroup)for(var b=0;b` implements an accessible listbox control with Material Design\nstyling. The focused item is highlighted, and the selected item has bolded text.\n\n \n Item 1\n Item 2\n \n\nAn initial selection can be specified with the `selected` attribute.\n\n \n Item 1\n Item 2\n \n\nMake a multi-select listbox with the `multi` attribute. Items in a multi-select\nlistbox can be deselected, and multiple item can be selected.\n\n \n Item 1\n Item 2\n \n\n### Styling\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-listbox-background-color` | Menu background color |\n`--primary-background-color`\n`--paper-listbox-color` | Menu foreground color |\n`--primary-text-color`\n`--paper-listbox` | Mixin applied to the listbox | `{}`\n\n### Accessibility\n\n`` has `role=\"listbox\"` by default. A multi-select listbox will\nalso have `aria-multiselectable` set. It implements key bindings to navigate\nthrough the listbox with the up and down arrow keys, esc to exit the listbox,\nand enter to activate a listbox item. Typing the first letter of a listbox item\nwill also focus it.\n\n@group Paper Elements\n@element paper-listbox\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n\n \n`,\n\n is: 'paper-listbox',\n behaviors: [IronMenuBehavior],\n\n /** @private */\n hostAttributes: {role: 'listbox'}\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\n\nimport {IronControlState} from '@polymer/iron-behaviors/iron-control-state.js';\nimport {IronValidatableBehavior} from '@polymer/iron-validatable-behavior/iron-validatable-behavior.js';\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\n/**\n`iron-autogrow-textarea` is an element containing a textarea that grows in\nheight as more lines of input are entered. Unless an explicit height or the\n`maxRows` property is set, it will never scroll.\n\nExample:\n\n \n\n### Styling\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--iron-autogrow-textarea` | Mixin applied to the textarea | `{}`\n`--iron-autogrow-textarea-placeholder` | Mixin applied to the textarea placeholder | `{}`\n\n@group Iron Elements\n@hero hero.svg\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n\n \n \n
     
    \n\n \n
    \n \n
    \n`,\n\n is: 'iron-autogrow-textarea',\n behaviors: [IronValidatableBehavior, IronControlState],\n\n properties: {\n /**\n * Use this property instead of `bind-value` for two-way data binding.\n * @type {string|number}\n */\n value: {observer: '_valueChanged', type: String, notify: true},\n\n /**\n * This property is deprecated, and just mirrors `value`. Use `value`\n * instead.\n * @type {string|number}\n */\n bindValue: {observer: '_bindValueChanged', type: String, notify: true},\n\n /**\n * The initial number of rows.\n *\n * @attribute rows\n * @type number\n * @default 1\n */\n rows: {type: Number, value: 1, observer: '_updateCached'},\n\n /**\n * The maximum number of rows this element can grow to until it\n * scrolls. 0 means no maximum.\n *\n * @attribute maxRows\n * @type number\n * @default 0\n */\n maxRows: {type: Number, value: 0, observer: '_updateCached'},\n\n /**\n * Bound to the textarea's `autocomplete` attribute.\n */\n autocomplete: {type: String, value: 'off'},\n\n /**\n * Bound to the textarea's `autofocus` attribute.\n */\n autofocus: {type: Boolean, value: false},\n\n /**\n * Bound to the textarea's `inputmode` attribute.\n */\n inputmode: {type: String},\n\n /**\n * Bound to the textarea's `placeholder` attribute.\n */\n placeholder: {type: String},\n\n /**\n * Bound to the textarea's `readonly` attribute.\n */\n readonly: {type: String},\n\n /**\n * Set to true to mark the textarea as required.\n */\n required: {type: Boolean},\n\n /**\n * The minimum length of the input value.\n */\n minlength: {type: Number},\n\n /**\n * The maximum length of the input value.\n */\n maxlength: {type: Number},\n\n /**\n * Bound to the textarea's `aria-label` attribute.\n */\n label: {type: String}\n\n },\n\n listeners: {'input': '_onInput'},\n\n /**\n * Returns the underlying textarea.\n * @return {!HTMLTextAreaElement}\n */\n get textarea() {\n return this.$.textarea;\n },\n\n /**\n * Returns textarea's selection start.\n * @return {number}\n */\n get selectionStart() {\n return this.$.textarea.selectionStart;\n },\n\n /**\n * Returns textarea's selection end.\n * @return {number}\n */\n get selectionEnd() {\n return this.$.textarea.selectionEnd;\n },\n\n /**\n * Sets the textarea's selection start.\n */\n set selectionStart(value) {\n this.$.textarea.selectionStart = value;\n },\n\n /**\n * Sets the textarea's selection end.\n */\n set selectionEnd(value) {\n this.$.textarea.selectionEnd = value;\n },\n\n attached: function() {\n /* iOS has an arbitrary left margin of 3px that isn't present\n * in any other browser, and means that the paper-textarea's cursor\n * overlaps the label.\n * See https://github.com/PolymerElements/paper-input/issues/468.\n */\n var IS_IOS = navigator.userAgent.match(/iP(?:[oa]d|hone)/);\n if (IS_IOS) {\n this.$.textarea.style.marginLeft = '-3px';\n }\n },\n\n /**\n * Returns true if `value` is valid. The validator provided in `validator`\n * will be used first, if it exists; otherwise, the `textarea`'s validity\n * is used.\n * @return {boolean} True if the value is valid.\n */\n validate: function() {\n // Use the nested input's native validity.\n var valid = this.$.textarea.validity.valid;\n\n // Only do extra checking if the browser thought this was valid.\n if (valid) {\n // Empty, required input is invalid\n if (this.required && this.value === '') {\n valid = false;\n } else if (this.hasValidator()) {\n valid = IronValidatableBehavior.validate.call(this, this.value);\n }\n }\n\n this.invalid = !valid;\n this.fire('iron-input-validate');\n return valid;\n },\n\n _bindValueChanged: function(bindValue) {\n this.value = bindValue;\n },\n\n _valueChanged: function(value) {\n var textarea = this.textarea;\n if (!textarea) {\n return;\n }\n\n // If the bindValue changed manually, then we need to also update\n // the underlying textarea's value. Otherwise this change was probably\n // generated from the _onInput handler, and the two values are already\n // the same.\n if (textarea.value !== value) {\n textarea.value = !(value || value === 0) ? '' : value;\n }\n\n this.bindValue = value;\n this.$.mirror.innerHTML = this._valueForMirror();\n\n // Manually notify because we don't want to notify until after setting\n // value.\n this.fire('bind-value-changed', {value: this.bindValue});\n },\n\n _onInput: function(event) {\n var eventPath = dom(event).path;\n this.value = eventPath ? eventPath[0].value : event.target.value;\n },\n\n _constrain: function(tokens) {\n var _tokens;\n tokens = tokens || [''];\n // Enforce the min and max heights for a multiline input to avoid\n // measurement\n if (this.maxRows > 0 && tokens.length > this.maxRows) {\n _tokens = tokens.slice(0, this.maxRows);\n } else {\n _tokens = tokens.slice(0);\n }\n while (this.rows > 0 && _tokens.length < this.rows) {\n _tokens.push('');\n }\n // Use   instead   of to allow this element to be used in XHTML.\n return _tokens.join('
    ') + ' ';\n },\n\n _valueForMirror: function() {\n var input = this.textarea;\n if (!input) {\n return;\n }\n this.tokens = (input && input.value) ? input.value.replace(/&/gm, '&')\n .replace(/\"/gm, '"')\n .replace(/'/gm, ''')\n .replace(//gm, '>')\n .split('\\n') :\n [''];\n return this._constrain(this.tokens);\n },\n\n _updateCached: function() {\n this.$.mirror.innerHTML = this._constrain(this.tokens);\n }\n});\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!state.anchorMap.hasOwnProperty(alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only assigned to plain scalars. So, it isn't\n // needed to check for 'kind' conformity.\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n var documents = loadDocuments(input, options), index, length;\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, output, options) {\n if (typeof output === 'function') {\n loadAll(input, output, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n } else {\n return loadAll(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n }\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /*global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `\n \n \n \n
    \n \n \n \n \n \n \n
    \n \n
    \n`,\n\n is: 'paper-dropdown-menu',\n\n behaviors: [\n IronButtonState,\n IronControlState,\n IronFormElementBehavior,\n IronValidatableBehavior\n ],\n\n properties: {\n /**\n * The derived \"label\" of the currently selected item. This value\n * is the `label` property on the selected item if set, or else the\n * trimmed text content of the selected item.\n */\n selectedItemLabel: {type: String, notify: true, readOnly: true},\n\n /**\n * The last selected item. An item is selected if the dropdown menu has\n * a child with slot `dropdown-content`, and that child triggers an\n * `iron-select` event with the selected `item` in the `detail`.\n *\n * @type {?Object}\n */\n selectedItem: {type: Object, notify: true, readOnly: true},\n\n /**\n * The value for this element that will be used when submitting in\n * a form. It reflects the value of `selectedItemLabel`. If set directly,\n * it will not update the `selectedItemLabel` value.\n */\n value: {\n type: String,\n notify: true,\n },\n\n /**\n * The label for the dropdown.\n */\n label: {type: String},\n\n /**\n * The placeholder for the dropdown.\n */\n placeholder: {type: String},\n\n /**\n * The error message to display when invalid.\n */\n errorMessage: {type: String},\n\n /**\n * True if the dropdown is open. Otherwise, false.\n */\n opened:\n {type: Boolean, notify: true, value: false, observer: '_openedChanged'},\n\n /**\n * By default, the dropdown will constrain scrolling on the page\n * to itself when opened.\n * Set to true in order to prevent scroll from being constrained\n * to the dropdown when it opens.\n */\n allowOutsideScroll: {type: Boolean, value: false},\n\n /**\n * Set to true to disable the floating label. Bind this to the\n * ``'s `noLabelFloat` property.\n */\n noLabelFloat: {type: Boolean, value: false, reflectToAttribute: true},\n\n /**\n * Set to true to always float the label. Bind this to the\n * ``'s `alwaysFloatLabel` property.\n */\n alwaysFloatLabel: {type: Boolean, value: false},\n\n /**\n * Set to true to disable animations when opening and closing the\n * dropdown.\n */\n noAnimations: {type: Boolean, value: false},\n\n /**\n * The orientation against which to align the menu dropdown\n * horizontally relative to the dropdown trigger.\n */\n horizontalAlign: {type: String, value: 'right'},\n\n /**\n * The orientation against which to align the menu dropdown\n * vertically relative to the dropdown trigger.\n */\n verticalAlign: {type: String, value: 'top'},\n\n /**\n * Overrides the vertical offset computed in\n * _computeMenuVerticalOffset.\n */\n verticalOffset: Number,\n\n /**\n * If true, the `horizontalAlign` and `verticalAlign` properties will\n * be considered preferences instead of strict requirements when\n * positioning the dropdown and may be changed if doing so reduces\n * the area of the dropdown falling outside of `fitInto`.\n */\n dynamicAlign: {type: Boolean},\n\n /**\n * Whether focus should be restored to the dropdown when the menu closes.\n */\n restoreFocusOnClose: {type: Boolean, value: true},\n },\n\n listeners: {'tap': '_onTap'},\n\n /**\n * @type {!Object}\n */\n keyBindings: {'up down': 'open', 'esc': 'close'},\n\n hostAttributes:\n {role: 'combobox', 'aria-autocomplete': 'none', 'aria-haspopup': 'true'},\n\n observers: ['_selectedItemChanged(selectedItem)'],\n\n attached: function() {\n // NOTE(cdata): Due to timing, a preselected value in a `IronSelectable`\n // child will cause an `iron-select` event to fire while the element is\n // still in a `DocumentFragment`. This has the effect of causing\n // handlers not to fire. So, we double check this value on attached:\n var contentElement = this.contentElement;\n if (contentElement && contentElement.selectedItem) {\n this._setSelectedItem(contentElement.selectedItem);\n }\n },\n\n /**\n * The content element that is contained by the dropdown menu, if any.\n */\n get contentElement() {\n // Polymer 2.x returns slot.assignedNodes which can contain text nodes.\n var nodes = dom(this.$.content).getDistributedNodes();\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (nodes[i].nodeType === Node.ELEMENT_NODE) {\n return nodes[i];\n }\n }\n },\n\n /**\n * Show the dropdown content.\n */\n open: function() {\n this.$.menuButton.open();\n },\n\n /**\n * Hide the dropdown content.\n */\n close: function() {\n this.$.menuButton.close();\n },\n\n /**\n * A handler that is called when `iron-select` is fired.\n *\n * @param {CustomEvent} event An `iron-select` event.\n */\n _onIronSelect: function(event) {\n this._setSelectedItem(event.detail.item);\n },\n\n /**\n * A handler that is called when `iron-deselect` is fired.\n *\n * @param {CustomEvent} event An `iron-deselect` event.\n */\n _onIronDeselect: function(event) {\n this._setSelectedItem(null);\n },\n\n /**\n * A handler that is called when the dropdown is tapped.\n *\n * @param {CustomEvent} event A tap event.\n */\n _onTap: function(event) {\n if (gestures.findOriginalTarget(event) === this) {\n this.open();\n }\n },\n\n /**\n * Compute the label for the dropdown given a selected item.\n *\n * @param {Element} selectedItem A selected Element item, with an\n * optional `label` property.\n */\n _selectedItemChanged: function(selectedItem) {\n var value = '';\n if (!selectedItem) {\n value = '';\n } else {\n value = selectedItem.label || selectedItem.getAttribute('label') ||\n selectedItem.textContent.trim();\n }\n\n this.value = value;\n this._setSelectedItemLabel(value);\n },\n\n /**\n * Compute the vertical offset of the menu based on the value of\n * `noLabelFloat`.\n *\n * @param {boolean} noLabelFloat True if the label should not float\n * @param {number=} opt_verticalOffset Optional offset from the user\n * above the input, otherwise false.\n */\n _computeMenuVerticalOffset: function(noLabelFloat, opt_verticalOffset) {\n // Override offset if it's passed from the user.\n if (opt_verticalOffset) {\n return opt_verticalOffset;\n }\n\n // NOTE(cdata): These numbers are somewhat magical because they are\n // derived from the metrics of elements internal to `paper-input`'s\n // template. The metrics will change depending on whether or not the\n // input has a floating label.\n return noLabelFloat ? -4 : 8;\n },\n\n /**\n * Returns false if the element is required and does not have a selection,\n * and true otherwise.\n * @param {*=} _value Ignored.\n * @return {boolean} true if `required` is false, or if `required` is true\n * and the element has a valid selection.\n */\n _getValidity: function(_value) {\n return this.disabled || !this.required || (this.required && !!this.value);\n },\n\n _openedChanged: function() {\n var openState = this.opened ? 'true' : 'false';\n var e = this.contentElement;\n if (e) {\n e.setAttribute('aria-expanded', openState);\n }\n }\n});\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport '@polymer/paper-styles/color.js';\nimport '@polymer/paper-styles/default-theme.js';\nimport '@polymer/paper-styles/typography.js';\nconst $_documentContainer = document.createElement('template');\n$_documentContainer.setAttribute('style', 'display: none;');\n\n$_documentContainer.innerHTML = `\n \n`;\n\ndocument.head.appendChild($_documentContainer.content);\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\n\nimport {IronButtonState} from '@polymer/iron-behaviors/iron-button-state.js';\nimport {IronControlState} from '@polymer/iron-behaviors/iron-control-state.js';\n\n/*\n`PaperItemBehavior` is a convenience behavior shared by and\n that manages the shared control states and attributes of\nthe items.\n*/\n/** @polymerBehavior PaperItemBehavior */\nexport const PaperItemBehaviorImpl = {\n hostAttributes: {role: 'option', tabindex: '0'}\n};\n\n/** @polymerBehavior */\nexport const PaperItemBehavior =\n [IronButtonState, IronControlState, PaperItemBehaviorImpl];\n","/**\n@license\nCopyright (c) 2015 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/\nimport '@polymer/polymer/polymer-legacy.js';\nimport '@polymer/iron-flex-layout/iron-flex-layout.js';\nimport './paper-item-shared-styles.js';\n\nimport {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';\nimport {html} from '@polymer/polymer/lib/utils/html-tag.js';\n\nimport {PaperItemBehavior} from './paper-item-behavior.js';\n\n/**\nMaterial design:\n[Lists](https://www.google.com/design/spec/components/lists.html)\n\n`` is an interactive list item. By default, it is a horizontal\nflexbox.\n\n Item\n\nUse this element with `` to make Material Design styled\ntwo-line and three-line items.\n\n \n \n
    Show your status
    \n
    Your status is visible to everyone
    \n
    \n \n
    \n\nTo use `paper-item` as a link, wrap it in an anchor tag. Since `paper-item` will\nalready receive focus, you may want to prevent the anchor tag from receiving\nfocus as well by setting its tabindex to -1.\n\n
    \n Polymer Project\n \n\nIf you are concerned about performance and want to use `paper-item` in a\n`paper-listbox` with many items, you can just use a native `button` with the\n`paper-item` class applied (provided you have correctly included the shared\nstyles):\n\n \n\n \n \n \n \n \n\n### Styling\n\nThe following custom properties and mixins are available for styling:\n\nCustom property | Description | Default\n----------------|-------------|----------\n`--paper-item-min-height` | Minimum height of the item | `48px`\n`--paper-item` | Mixin applied to the item | `{}`\n`--paper-item-selected-weight` | The font weight of a selected item | `bold`\n`--paper-item-selected` | Mixin applied to selected paper-items | `{}`\n`--paper-item-disabled-color` | The color for disabled paper-items | `--disabled-text-color`\n`--paper-item-disabled` | Mixin applied to disabled paper-items | `{}`\n`--paper-item-focused` | Mixin applied to focused paper-items | `{}`\n`--paper-item-focused-before` | Mixin applied to :before focused paper-items | `{}`\n\n### Accessibility\n\nThis element has `role=\"listitem\"` by default. Depending on usage, it may be\nmore appropriate to set `role=\"menuitem\"`, `role=\"menuitemcheckbox\"` or\n`role=\"menuitemradio\"`.\n\n \n \n Show your status\n \n \n \n\n@group Paper Elements\n@element paper-item\n@demo demo/index.html\n*/\nPolymer({\n _template: html`\n \n \n`,\n\n is: 'paper-item',\n behaviors: [PaperItemBehavior]\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/entrypoint.js b/hassio/api/panel/entrypoint.js index 370f68607..be6021113 100644 --- a/hassio/api/panel/entrypoint.js +++ b/hassio/api/panel/entrypoint.js @@ -1,2 +1,2 @@ -!function(e){function n(n){for(var t,o,a=n[0],i=n[1],c=0,f=[];cCC>I^AamL*rA==B~Z}0WrtvP~q_mPr)A6jPU zYGrrkcC{L#<2dX?e?Tjg`HkRP?|=(B9dz`&RCdgv$`E$$R&@A>&Kla)szo^4@!}~R zqha5*E~FuyW`N=}F)L2RhELmv7#JUet_|Hz-%<;1v^wzn2tFK*b;H(+TH&w6soQAQ zZ?0l?CT>pCv^@)f7g{i1WSM1;dqeTii!1(kH<<{;)695V8Y9k}usgWjqF?+<2uHnx zR4?&!y96;qKfuf{g@*S5hUm}@5I$(rXz;YC5j#BGPIUW3fsk}Y)-fd-qs9Yh7by$U z!Ebu-r;rTFc1K6(Rz+$r?Ep@Y(X}@fVJdRn0nF$`oN#6$tyU`)A;&MAvt2zp2#GdY z0hx)EAq-`F35hHSi#G(aLKVDdnsv;1 z6&JG2P<^r?>qN$}RB>H#;7wVj>n0&A-H^ECX%#mLVhL^Drl|r&ShgXYH&CW|0(qQe zX;GC>*M#LrP+414RoSlV63~$tnX?^P*0&s?GBzNf8GklxvkMm8Vrv#&OM4#nTum2(d1B!nw@Lrf7?F zoyB#^k&+-KK^O(+S(>P_ka^lv3MmM(%9AoJGno_x!fV&5lxw6Q$~Id=&beyy3S=7d zCd(6~Aj~FPr*TszIfkyus#+#BkO@oWnnZ5~GKH{IM?2TnZ>%+T+dXCvJ4QuDgTEJk z*BjXgJ@!3QJxKfSr8dHG(ekpG=XP6)-3X1XOuRf1Lg>hM{m%%N^3dr!vRN)Dlb#O` z(%yl4-1(x~w$TBGLEeENe?~nh7tHk(kZZUmK`Xl+n&`C-$+fvA8@!g+gc8<9S{_j7 zSDx8R&N%UYwkZs5Ec|zb!3oJ64#cpf)7($*OxFZ_nr3vP7{FZ+KZFQDh9|FQL)=0m zZ1H)cCOTnGA*0*RM6qKJ?YIZoMDln9-TZ3b^-ZYgv~+?$!r|ZM zNux2%FxDnAeoH@oJdfB0+D^k|u+D5J&}i4nx`z!;DetPAX5IE#T&%gj@WnN1OK!33+7|A`(gJqj&lJv(<9o1w3N>eXSu zLiZ)t9V2)n$KH{b5noUMqE2RqhB+>eK?Ztxt8LI}JYuF%pJh)Q^T}&8MRli}*)L`( z-JVI#$4GzX-FbobXAc~YTBEb?)8;e8ho{i{r5TX~qtCQAXI`Y_%=lgJy%+F0j)J_B z$LB z{|zMP*K&!Wq}$~vG?Pdf`c6Sex0i${!C!tQ>Ck^AUFK-FHCPve;B*RiFT3+SnlSI9 z-p`^sp#!R>WNJH6^S@M zul%#338m8l&3^gw!QJ;ju^nI? zv%Q!^-tKPiHbKVue0jjR-04lQoQ|?-Q1)`%pP6IM-|g{cdacPGl4^MbjJQwKXx&)A=5m*dSzGd@Eh#nPpO#ZL(t;k95bBNLVAb zyN&vZ&OdM^+ctL0(%H;y z?QS+}__6QyaRAT?W#J-{O>n?R+C-XumrBh%s*GXlcS7SII%?==vpzO>KYL0W-tBec zV;a+83{ac~=EP}HCd1|_2R7tDH?iNE9d+P)XQFWDaDTMUcbg#UL_mp?E)8qTiXrEC=zjGQpO?j59CX7Iqu-E4dKD)8HUAQ~vxm z!a%q+?_nt6W>vAHaC797qqpX(2!{ z>6Ft)Pv}N*wU@2~FG%m3%Yrb)y*_~Ly-2f!S#H#9rZ{r^!h5Hy-a|}`H44Z`qzs8p zy^8fQZI&PBMD2U?fs^?uDakU)l1wg|qRv;>iCX8&ye2Fy$y$NTvbSuPSY1Pn zgsdbgk@-q4ih5P7WwpwSqF54^m!!&4q$KM_QmA!RK$8{;Vat-pv|3fGbk(S0t@1Q$ zmeq=|71~G=wX7G7tcq#{Rjn$8glm+@oAr8`RB4hH#iB@-*)k)nC`nP|^$Hf5Di+8A zd79*CV~vDdN?FNV<=2b6NmT|}ig93sX|_(XMV43Vw16~Q=Ict50Sh%J{C!7;7^d3v zV`YEioOK)hoIC7S#jSyW7va`gSqsy*EmJK>_wT7PaWiRo+e%}zPpxK!!9gNHo(Lff z4>R{Of{oN^b3@7rL75DE2uODW{`nS4y6O1=x=!AJAb&M>@jL013Bxc_Ep{brkn>7`yq_>N-k>VT`U3 z9r$y^PbtD6<5SR65R;`3TgQqHQ_r4< zjfY`3sLt|(0Q{?j$G`Q9HfM%mt}VCWN*b{A!Df^49`xeMR z*_VXL4?jTn$aWUHNG5mvtMJEmOJ||aKv)cbvSMb=ixxs#=7CD=Xo`q)OfZ{;AO39V zS!inO(Yf=|ibMa?pbirj`!Bif89|KfTTk9*e2M}v>TGnV8}ssj7WmnXC|1l zuS;?k`L5R%*wo=iL9XOcUm;JYEnbgTB&dGH;ReFH_CaB>W#&| z=tM$?c>8ub@6d$3<89bM|62Z{mPZdRrrhtryj&?Sr+(`>#0h2LSkm1ivwuBU_J5bQyT2TnyMwiUk1bzDH%>luSbdn-usR>K|Ab2#uVt%c z2leJ`5_$E_-j`9HBqQ>GTUVPhnxLbsYm_~M`$y(9NpAOu8QvN4l?CkRfEE4G)zy!q l&h}2hUyzFG{`1d23lwk-_ {\n // eslint-disable-next-line\n import(/* webpackChunkName: \"hassio-icons\" */ \"./resources/hassio-icons\");\n // eslint-disable-next-line\n import(/* webpackChunkName: \"hassio-main\" */ \"./hassio-main\");\n});\nconst styleEl = document.createElement(\"style\");\nstyleEl.innerHTML = `\nbody {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-weight: 400;\n margin: 0;\n padding: 0;\n height: 100vh;\n}\n`;\ndocument.head.appendChild(styleEl);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./hassio/src/entrypoint.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","6","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","0","1","2","3","4","5","7","8","9","10","11","12","13","14","15","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","self","oldJsonpFunction","slice","s","window","loadES5Adapter","then","styleEl","innerHTML"],"mappings":"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","file":"entrypoint.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t6: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"chunk.\" + {\"0\":\"87b1d37fc9b8a6f7e2a6\",\"1\":\"e46c606dd9100816af4e\",\"2\":\"92a11ac1b80e0d7839d2\",\"3\":\"170381dce1aef5f33cec\",\"4\":\"00de7352e51443687ebb\",\"5\":\"0c4f6887f9b7e7b11ef5\",\"7\":\"2412396b4c6d55f3dec7\",\"8\":\"0b82745c7bdffe5c1404\",\"9\":\"990ee58006b248f55d23\",\"10\":\"a9c5cc5386711b03c031\",\"11\":\"b60200a57d6f63941b30\",\"12\":\"b2dce600432c76a53d8c\",\"13\":\"8527374a266cecf93aa9\",\"14\":\"f49e500cf58ea310d452\",\"15\":\"d4931d72592ad48ba2be\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/api/hassio/app/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = self[\"webpackJsonp\"] = self[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","window.loadES5Adapter().then(() => {\n // eslint-disable-next-line\n import(/* webpackChunkName: \"roboto\" */ \"../../src/resources/roboto\");\n // eslint-disable-next-line\n import(/* webpackChunkName: \"hassio-icons\" */ \"./resources/hassio-icons\");\n // eslint-disable-next-line\n import(/* webpackChunkName: \"hassio-main\" */ \"./hassio-main\");\n});\n\nconst styleEl = document.createElement(\"style\");\nstyleEl.innerHTML = `\nbody {\n font-family: Roboto, sans-serif;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-weight: 400;\n margin: 0;\n padding: 0;\n height: 100vh;\n}\n`;\ndocument.head.appendChild(styleEl);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/hassio/api/panel/manifest.json b/hassio/api/panel/manifest.json index 30efdb638..06e603bfe 100644 --- a/hassio/api/panel/manifest.json +++ b/hassio/api/panel/manifest.json @@ -1,31 +1,43 @@ { - "vendors~hassio-icons~hassio-main.js": "/api/hassio/app/chunk.50202a3f8d4670c9454d.js", - "vendors~hassio-icons~hassio-main.js.map": "/api/hassio/app/chunk.50202a3f8d4670c9454d.js.map", - "dialog-hassio-markdown.js": "/api/hassio/app/chunk.9cea224f33b375867edd.js", - "dialog-hassio-markdown.js.map": "/api/hassio/app/chunk.9cea224f33b375867edd.js.map", - "dialog-hassio-snapshot.js": "/api/hassio/app/chunk.c0a46a38d689ab648885.js", - "dialog-hassio-snapshot.js.map": "/api/hassio/app/chunk.c0a46a38d689ab648885.js.map", + "vendors~confirmation~hassio-addon-view.js": "/api/hassio/app/chunk.87b1d37fc9b8a6f7e2a6.js", + "vendors~confirmation~hassio-addon-view.js.map": "/api/hassio/app/chunk.87b1d37fc9b8a6f7e2a6.js.map", + "vendors~hassio-icons~hassio-main.js": "/api/hassio/app/chunk.e46c606dd9100816af4e.js", + "vendors~hassio-icons~hassio-main.js.map": "/api/hassio/app/chunk.e46c606dd9100816af4e.js.map", + "codemirror.js": "/api/hassio/app/chunk.92a11ac1b80e0d7839d2.js", + "codemirror.js.map": "/api/hassio/app/chunk.92a11ac1b80e0d7839d2.js.map", + "confirmation.js": "/api/hassio/app/chunk.170381dce1aef5f33cec.js", + "confirmation.js.map": "/api/hassio/app/chunk.170381dce1aef5f33cec.js.map", + "dialog-hassio-markdown.js": "/api/hassio/app/chunk.00de7352e51443687ebb.js", + "dialog-hassio-markdown.js.map": "/api/hassio/app/chunk.00de7352e51443687ebb.js.map", + "dialog-hassio-snapshot.js": "/api/hassio/app/chunk.0c4f6887f9b7e7b11ef5.js", + "dialog-hassio-snapshot.js.map": "/api/hassio/app/chunk.0c4f6887f9b7e7b11ef5.js.map", "entrypoint.js": "/api/hassio/app/entrypoint.js", "entrypoint.js.map": "/api/hassio/app/entrypoint.js.map", - "hassio-addon-view.js": "/api/hassio/app/chunk.b21a4609308c9b8ef180.js", - "hassio-addon-view.js.map": "/api/hassio/app/chunk.b21a4609308c9b8ef180.js.map", - "hassio-icons.js": "/api/hassio/app/chunk.a1b6b616fc89c412f5b6.js", - "hassio-icons.js.map": "/api/hassio/app/chunk.a1b6b616fc89c412f5b6.js.map", - "hassio-ingress-view.js": "/api/hassio/app/chunk.900c5d3fab8b6ebdcbc6.js", - "hassio-ingress-view.js.map": "/api/hassio/app/chunk.900c5d3fab8b6ebdcbc6.js.map", - "hassio-main.js": "/api/hassio/app/chunk.a4f9950b101883805252.js", - "hassio-main.js.map": "/api/hassio/app/chunk.a4f9950b101883805252.js.map", - "mdi-icons.js": "/api/hassio/app/chunk.884d6e32c83f99e41040.js", - "mdi-icons.js.map": "/api/hassio/app/chunk.884d6e32c83f99e41040.js.map", - "vendors~hassio-addon-view.js": "/api/hassio/app/chunk.84aaaba4c4734f1c2e21.js", - "vendors~hassio-addon-view.js.map": "/api/hassio/app/chunk.84aaaba4c4734f1c2e21.js.map", - "vendors~hassio-main.js": "/api/hassio/app/chunk.12902324b918e12549ba.js", - "vendors~hassio-main.js.map": "/api/hassio/app/chunk.12902324b918e12549ba.js.map", + "hassio-addon-view.js": "/api/hassio/app/chunk.2412396b4c6d55f3dec7.js", + "hassio-addon-view.js.map": "/api/hassio/app/chunk.2412396b4c6d55f3dec7.js.map", + "hassio-icons.js": "/api/hassio/app/chunk.0b82745c7bdffe5c1404.js", + "hassio-icons.js.map": "/api/hassio/app/chunk.0b82745c7bdffe5c1404.js.map", + "hassio-ingress-view.js": "/api/hassio/app/chunk.990ee58006b248f55d23.js", + "hassio-ingress-view.js.map": "/api/hassio/app/chunk.990ee58006b248f55d23.js.map", + "hassio-main.js": "/api/hassio/app/chunk.a9c5cc5386711b03c031.js", + "hassio-main.js.map": "/api/hassio/app/chunk.a9c5cc5386711b03c031.js.map", + "mdi-icons.js": "/api/hassio/app/chunk.b60200a57d6f63941b30.js", + "mdi-icons.js.map": "/api/hassio/app/chunk.b60200a57d6f63941b30.js.map", + "roboto.js": "/api/hassio/app/chunk.b2dce600432c76a53d8c.js", + "roboto.js.map": "/api/hassio/app/chunk.b2dce600432c76a53d8c.js.map", + "vendors~codemirror.js": "/api/hassio/app/chunk.8527374a266cecf93aa9.js", + "vendors~codemirror.js.map": "/api/hassio/app/chunk.8527374a266cecf93aa9.js.map", + "vendors~hassio-addon-view.js": "/api/hassio/app/chunk.f49e500cf58ea310d452.js", + "vendors~hassio-addon-view.js.map": "/api/hassio/app/chunk.f49e500cf58ea310d452.js.map", + "vendors~hassio-main.js": "/api/hassio/app/chunk.d4931d72592ad48ba2be.js", + "vendors~hassio-main.js.map": "/api/hassio/app/chunk.d4931d72592ad48ba2be.js.map", "201359fd5a526afe13ef.worker.js": "/api/hassio/app/201359fd5a526afe13ef.worker.js", "201359fd5a526afe13ef.worker.js.map": "/api/hassio/app/201359fd5a526afe13ef.worker.js.map", - "chunk.12902324b918e12549ba.js.LICENSE": "/api/hassio/app/chunk.12902324b918e12549ba.js.LICENSE", - "chunk.50202a3f8d4670c9454d.js.LICENSE": "/api/hassio/app/chunk.50202a3f8d4670c9454d.js.LICENSE", - "chunk.84aaaba4c4734f1c2e21.js.LICENSE": "/api/hassio/app/chunk.84aaaba4c4734f1c2e21.js.LICENSE", - "chunk.9cea224f33b375867edd.js.LICENSE": "/api/hassio/app/chunk.9cea224f33b375867edd.js.LICENSE", - "chunk.c0a46a38d689ab648885.js.LICENSE": "/api/hassio/app/chunk.c0a46a38d689ab648885.js.LICENSE" + "chunk.00de7352e51443687ebb.js.LICENSE": "/api/hassio/app/chunk.00de7352e51443687ebb.js.LICENSE", + "chunk.0c4f6887f9b7e7b11ef5.js.LICENSE": "/api/hassio/app/chunk.0c4f6887f9b7e7b11ef5.js.LICENSE", + "chunk.170381dce1aef5f33cec.js.LICENSE": "/api/hassio/app/chunk.170381dce1aef5f33cec.js.LICENSE", + "chunk.87b1d37fc9b8a6f7e2a6.js.LICENSE": "/api/hassio/app/chunk.87b1d37fc9b8a6f7e2a6.js.LICENSE", + "chunk.d4931d72592ad48ba2be.js.LICENSE": "/api/hassio/app/chunk.d4931d72592ad48ba2be.js.LICENSE", + "chunk.e46c606dd9100816af4e.js.LICENSE": "/api/hassio/app/chunk.e46c606dd9100816af4e.js.LICENSE", + "chunk.f49e500cf58ea310d452.js.LICENSE": "/api/hassio/app/chunk.f49e500cf58ea310d452.js.LICENSE" } \ No newline at end of file diff --git a/home-assistant-polymer b/home-assistant-polymer index 72e537579..004ff58c2 160000 --- a/home-assistant-polymer +++ b/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 72e537579549f1792efe15967221cdd2b523c38f +Subproject commit 004ff58c21c85db045ce87db972167cb05b331d4 From 6ef99974cffad91650c5fc05117f30fac32f42dd Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 4 Feb 2020 17:40:46 +0100 Subject: [PATCH 8/9] Cleanup service (#1471) * Cleanup services on uninstall * Fix active list --- hassio/addons/__init__.py | 13 +++++++++++-- hassio/addons/addon.py | 7 ------- hassio/services/interface.py | 18 ++++++++++++------ hassio/services/modules/mqtt.py | 9 ++++++++- hassio/services/modules/mysql.py | 9 ++++++++- 5 files changed, 39 insertions(+), 17 deletions(-) diff --git a/hassio/addons/__init__.py b/hassio/addons/__init__.py index 47f85a4eb..ce75fc408 100644 --- a/hassio/addons/__init__.py +++ b/hassio/addons/__init__.py @@ -166,8 +166,17 @@ class AddonManager(CoreSysAttributes): with suppress(HomeAssistantAPIError): await self.sys_ingress.update_hass_panel(addon) - # Cleanup internal data - addon.remove_discovery() + # Cleanup discovery data + for message in self.sys_discovery.list_messages: + if message.addon != addon.slug: + continue + self.sys_discovery.remove(message) + + # Cleanup services data + for service in self.sys_services.list_services: + if addon.slug not in service.active: + continue + service.del_service_data(addon) self.data.uninstall(addon) self.local.pop(slug) diff --git a/hassio/addons/addon.py b/hassio/addons/addon.py index 50e6f9eac..429a2e12f 100644 --- a/hassio/addons/addon.py +++ b/hassio/addons/addon.py @@ -371,13 +371,6 @@ class Addon(AddonModel): raise AddonsError() - def remove_discovery(self): - """Remove all discovery message from add-on.""" - for message in self.sys_discovery.list_messages: - if message.addon != self.slug: - continue - self.sys_discovery.remove(message) - async def remove_data(self): """Remove add-on data.""" if not self.path_data.is_dir(): diff --git a/hassio/services/interface.py b/hassio/services/interface.py index c138ceaa6..768078a72 100644 --- a/hassio/services/interface.py +++ b/hassio/services/interface.py @@ -1,4 +1,5 @@ """Interface for single service.""" +from abc import ABC, abstractmethod from typing import Any, Dict, List, Optional import voluptuous as vol @@ -8,7 +9,7 @@ from ..const import PROVIDE_SERVICE from ..coresys import CoreSys, CoreSysAttributes -class ServiceInterface(CoreSysAttributes): +class ServiceInterface(CoreSysAttributes, ABC): """Interface class for service integration.""" def __init__(self, coresys: CoreSys): @@ -16,19 +17,19 @@ class ServiceInterface(CoreSysAttributes): self.coresys: CoreSys = coresys @property + @abstractmethod def slug(self) -> str: """Return slug of this service.""" - raise NotImplementedError() @property + @abstractmethod def _data(self) -> Dict[str, Any]: """Return data of this service.""" - raise NotImplementedError() @property + @abstractmethod def schema(self) -> vol.Schema: """Return data schema of this service.""" - raise NotImplementedError() @property def providers(self) -> List[str]: @@ -39,6 +40,11 @@ class ServiceInterface(CoreSysAttributes): addons.append(addon.slug) return addons + @property + @abstractmethod + def active(self) -> List[str]: + """Return list of addon slug they have enable that.""" + @property def enabled(self) -> bool: """Return True if the service is in use.""" @@ -54,10 +60,10 @@ class ServiceInterface(CoreSysAttributes): return self._data return None + @abstractmethod def set_service_data(self, addon: Addon, data: Dict[str, Any]) -> None: """Write the data into service object.""" - raise NotImplementedError() + @abstractmethod def del_service_data(self, addon: Addon) -> None: """Remove the data from service object.""" - raise NotImplementedError() diff --git a/hassio/services/modules/mqtt.py b/hassio/services/modules/mqtt.py index 5520d57e4..eec10603f 100644 --- a/hassio/services/modules/mqtt.py +++ b/hassio/services/modules/mqtt.py @@ -1,6 +1,6 @@ """Provide the MQTT Service.""" import logging -from typing import Any, Dict +from typing import Any, Dict, List from hassio.addons.addon import Addon from hassio.exceptions import ServicesError @@ -59,6 +59,13 @@ class MQTTService(ServiceInterface): """Return data schema of this service.""" return SCHEMA_SERVICE_MQTT + @property + def active(self) -> List[str]: + """Return list of addon slug they have enable that.""" + if not self.enabled: + return [] + return [self._data[ATTR_ADDON]] + def set_service_data(self, addon: Addon, data: Dict[str, Any]) -> None: """Write the data into service object.""" if self.enabled: diff --git a/hassio/services/modules/mysql.py b/hassio/services/modules/mysql.py index 066eaa45a..368646416 100644 --- a/hassio/services/modules/mysql.py +++ b/hassio/services/modules/mysql.py @@ -1,6 +1,6 @@ """Provide the MySQL Service.""" import logging -from typing import Any, Dict +from typing import Any, Dict, List from hassio.addons.addon import Addon from hassio.exceptions import ServicesError @@ -53,6 +53,13 @@ class MySQLService(ServiceInterface): """Return data schema of this service.""" return SCHEMA_SERVICE_MYSQL + @property + def active(self) -> List[str]: + """Return list of addon slug they have enable that.""" + if not self.enabled: + return [] + return [self._data[ATTR_ADDON]] + def set_service_data(self, addon: Addon, data: Dict[str, Any]) -> None: """Write the data into service object.""" if self.enabled: From 6f6e5c97dfa7b6e02437e54b729c584325902374 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 4 Feb 2020 16:50:06 +0000 Subject: [PATCH 9/9] [skip ci] fix pipelines --- azure-pipelines-ci.yml | 48 +++++++++++ azure-pipelines-release.yml | 56 +++++++++++++ azure-pipelines-wheels.yml | 60 ++++++++++++++ azure-pipelines.yml | 154 ------------------------------------ 4 files changed, 164 insertions(+), 154 deletions(-) create mode 100644 azure-pipelines-ci.yml create mode 100644 azure-pipelines-release.yml create mode 100644 azure-pipelines-wheels.yml delete mode 100644 azure-pipelines.yml diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml new file mode 100644 index 000000000..6cee89ace --- /dev/null +++ b/azure-pipelines-ci.yml @@ -0,0 +1,48 @@ +# https://dev.azure.com/home-assistant + +trigger: + batch: true + branches: + include: + - master + - dev +pr: + - dev +variables: + - name: versionHadolint + value: "v1.16.3" + +jobs: + - job: "Tox" + pool: + vmImage: "ubuntu-latest" + steps: + - task: UsePythonVersion@0 + displayName: "Use Python 3.7" + inputs: + versionSpec: "3.7" + - script: pip install tox + displayName: "Install Tox" + - script: tox + displayName: "Run Tox" + - job: "JQ" + pool: + vmImage: "ubuntu-latest" + steps: + - script: sudo apt-get install -y jq + displayName: "Install JQ" + - bash: | + shopt -s globstar + cat **/*.json | jq '.' + displayName: "Run JQ" + - job: "Hadolint" + pool: + vmImage: "ubuntu-latest" + steps: + - script: sudo docker pull hadolint/hadolint:$(versionHadolint) + displayName: "Install Hadolint" + - script: | + sudo docker run --rm -i \ + -v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \ + hadolint/hadolint:$(versionHadolint) < Dockerfile + displayName: "Run Hadolint" diff --git a/azure-pipelines-release.yml b/azure-pipelines-release.yml new file mode 100644 index 000000000..313b368e5 --- /dev/null +++ b/azure-pipelines-release.yml @@ -0,0 +1,56 @@ +# https://dev.azure.com/home-assistant + +trigger: + batch: true + branches: + exclude: + - "*" + tags: + include: + - "*" +pr: none +variables: + - name: basePythonTag + value: "3.7-alpine3.11" + - name: versionBuilder + value: "6.9" + - group: docker + +jobs: + - job: "VersionValidate" + pool: + vmImage: "ubuntu-latest" + steps: + - task: UsePythonVersion@0 + displayName: "Use Python 3.7" + inputs: + versionSpec: "3.7" + - script: | + setup_version="$(python setup.py -V)" + branch_version="$(Build.SourceBranchName)" + + if [ "${branch_version}" == "dev" ]; then + exit 0 + elif [ "${setup_version}" != "${branch_version}" ]; then + echo "Version of tag ${branch_version} don't match with ${setup_version}!" + exit 1 + fi + displayName: "Check version of branch/tag" + - job: "Release" + dependsOn: + - "VersionValidate" + pool: + vmImage: "ubuntu-latest" + steps: + - script: sudo docker login -u $(dockerUser) -p $(dockerPassword) + displayName: "Docker hub login" + - script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder) + displayName: "Install Builder" + - script: | + sudo docker run --rm --privileged \ + -v ~/.docker:/root/.docker \ + -v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \ + homeassistant/amd64-builder:$(versionBuilder) \ + --supervisor $(basePythonTag) --version $(Build.SourceBranchName) \ + --all -t /data --docker-hub homeassistant + displayName: "Build Release" diff --git a/azure-pipelines-wheels.yml b/azure-pipelines-wheels.yml new file mode 100644 index 000000000..0d07aea1e --- /dev/null +++ b/azure-pipelines-wheels.yml @@ -0,0 +1,60 @@ +# https://dev.azure.com/home-assistant + +trigger: + batch: true + branches: + include: + - dev +pr: none +variables: + - name: versionWheels + value: "1.6-3.7-alpine3.11" + - group: wheels + +jobs: + - job: "Wheels" + timeoutInMinutes: 360 + pool: + vmImage: "ubuntu-latest" + strategy: + maxParallel: 5 + matrix: + amd64: + buildArch: "amd64" + i386: + buildArch: "i386" + armhf: + buildArch: "armhf" + armv7: + buildArch: "armv7" + aarch64: + buildArch: "aarch64" + steps: + - script: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + qemu-user-static \ + binfmt-support \ + curl + + sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc + sudo update-binfmts --enable qemu-arm + sudo update-binfmts --enable qemu-aarch64 + displayName: "Initial cross build" + - script: | + mkdir -p .ssh + echo -e "-----BEGIN RSA PRIVATE KEY-----\n$(wheelsSSH)\n-----END RSA PRIVATE KEY-----" >> .ssh/id_rsa + ssh-keyscan -H $(wheelsHost) >> .ssh/known_hosts + chmod 600 .ssh/* + displayName: "Install ssh key" + - script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels) + displayName: "Install wheels builder" + - script: | + sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \ + homeassistant/$(buildArch)-wheels:$(versionWheels) \ + --apk "build-base;libffi-dev;openssl-dev" \ + --index $(wheelsIndex) \ + --requirement requirements.txt \ + --upload rsync \ + --remote wheels@$(wheelsHost):/opt/wheels + displayName: "Run wheels build" diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index aaa5da796..000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,154 +0,0 @@ -# https://dev.azure.com/home-assistant - -trigger: - batch: true - branches: - include: - - master - - dev - tags: - include: - - "*" - exclude: - - untagged* -pr: - - dev -variables: - - name: basePythonTag - value: "3.7-alpine3.11" - - name: versionHadolint - value: "v1.16.3" - - name: versionBuilder - value: "6.9" - - name: versionWheels - value: "1.6-3.7-alpine3.11" - - group: docker - - group: wheels - -stages: - - stage: "Test" - jobs: - - job: "Tox" - pool: - vmImage: "ubuntu-latest" - steps: - - task: UsePythonVersion@0 - displayName: "Use Python 3.7" - inputs: - versionSpec: "3.7" - - script: pip install tox - displayName: "Install Tox" - - script: tox - displayName: "Run Tox" - - job: "JQ" - pool: - vmImage: "ubuntu-latest" - steps: - - script: sudo apt-get install -y jq - displayName: "Install JQ" - - bash: | - shopt -s globstar - cat **/*.json | jq '.' - displayName: "Run JQ" - - job: "Hadolint" - pool: - vmImage: "ubuntu-latest" - steps: - - script: sudo docker pull hadolint/hadolint:$(versionHadolint) - displayName: "Install Hadolint" - - script: | - sudo docker run --rm -i \ - -v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \ - hadolint/hadolint:$(versionHadolint) < Dockerfile - displayName: "Run Hadolint" - - - stage: "Wheels" - jobs: - - job: "Wheels" - condition: eq(variables['Build.SourceBranchName'], 'dev') - timeoutInMinutes: 360 - pool: - vmImage: "ubuntu-latest" - strategy: - maxParallel: 5 - matrix: - amd64: - buildArch: "amd64" - i386: - buildArch: "i386" - armhf: - buildArch: "armhf" - armv7: - buildArch: "armv7" - aarch64: - buildArch: "aarch64" - steps: - - script: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - qemu-user-static \ - binfmt-support \ - curl - - sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc - sudo update-binfmts --enable qemu-arm - sudo update-binfmts --enable qemu-aarch64 - displayName: "Initial cross build" - - script: | - mkdir -p .ssh - echo -e "-----BEGIN RSA PRIVATE KEY-----\n$(wheelsSSH)\n-----END RSA PRIVATE KEY-----" >> .ssh/id_rsa - ssh-keyscan -H $(wheelsHost) >> .ssh/known_hosts - chmod 600 .ssh/* - displayName: "Install ssh key" - - script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels) - displayName: "Install wheels builder" - - script: | - sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \ - homeassistant/$(buildArch)-wheels:$(versionWheels) \ - --apk "build-base;libffi-dev;openssl-dev" \ - --index $(wheelsIndex) \ - --requirement requirements.txt \ - --upload rsync \ - --remote wheels@$(wheelsHost):/opt/wheels - displayName: "Run wheels build" - - - stage: "Deploy" - jobs: - - job: "VersionValidate" - condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), eq(variables['Build.SourceBranchName'], 'dev')) - pool: - vmImage: "ubuntu-latest" - steps: - - task: UsePythonVersion@0 - displayName: "Use Python 3.7" - inputs: - versionSpec: "3.7" - - script: | - setup_version="$(python setup.py -V)" - branch_version="$(Build.SourceBranchName)" - - if [ "${branch_version}" == "dev" ]; then - exit 0 - elif [ "${setup_version}" != "${branch_version}" ]; then - echo "Version of tag ${branch_version} don't match with ${setup_version}!" - exit 1 - fi - displayName: "Check version of branch/tag" - - job: "Release" - dependsOn: - - "VersionValidate" - pool: - vmImage: "ubuntu-latest" - steps: - - script: sudo docker login -u $(dockerUser) -p $(dockerPassword) - displayName: "Docker hub login" - - script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder) - displayName: "Install Builder" - - script: | - sudo docker run --rm --privileged \ - -v ~/.docker:/root/.docker \ - -v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \ - homeassistant/amd64-builder:$(versionBuilder) \ - --supervisor $(basePythonTag) --version $(Build.SourceBranchName) \ - --all -t /data --docker-hub homeassistant - displayName: "Build Release"