{
  "version": 3,
  "sources": ["../../../node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@rails/actioncable/src/index.js", "../../../node_modules/namespace-emitter/index.js", "../../../node_modules/lodash/isObject.js", "../../../node_modules/lodash/_freeGlobal.js", "../../../node_modules/lodash/_root.js", "../../../node_modules/lodash/now.js", "../../../node_modules/lodash/_trimmedEndIndex.js", "../../../node_modules/lodash/_baseTrim.js", "../../../node_modules/lodash/_Symbol.js", "../../../node_modules/lodash/_getRawTag.js", "../../../node_modules/lodash/_objectToString.js", "../../../node_modules/lodash/_baseGetTag.js", "../../../node_modules/lodash/isObjectLike.js", "../../../node_modules/lodash/isSymbol.js", "../../../node_modules/lodash/toNumber.js", "../../../node_modules/lodash/debounce.js", "../../../node_modules/lodash/throttle.js", "../../../node_modules/@uppy/core/node_modules/@transloadit/prettier-bytes/prettierBytes.js", "../../../node_modules/wildcard/index.js", "../../../node_modules/mime-match/index.js", "../../../node_modules/classnames/index.js", "../../../node_modules/@transloadit/prettier-bytes/src/prettierBytes.ts", "../../../node_modules/eventemitter3/index.js", "../../../node_modules/is-shallow-equal/index.js", "../../../node_modules/retry/lib/retry_operation.js", "../../../node_modules/retry/lib/retry.js", "../../../node_modules/retry/index.js", "../../../node_modules/jquery/dist/jquery.js", "../../../node_modules/toastr/toastr.js", "../javascripts/redactor/redactor.min.js", "../../../node_modules/intl-tel-input/build/js/intlTelInput.js", "../../../node_modules/intl-tel-input/build/js/utils.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/form_submissions.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../javascript/controllers/accordion_controller.js", "../../javascript/controllers/collapse_controller.js", "../../javascript/controllers/copy_to_clipboard_controller.js", "../../javascript/controllers/dynamic_ubo_controller.js", "../../../node_modules/@uppy/utils/lib/Translator.js", "../../../node_modules/@uppy/core/lib/Uppy.js", "../../../node_modules/nanoid/non-secure/index.js", "../../../node_modules/@uppy/store-default/lib/index.js", "../../../node_modules/@uppy/utils/lib/getFileNameAndExtension.js", "../../../node_modules/@uppy/utils/lib/mimeTypes.js", "../../../node_modules/@uppy/utils/lib/getFileType.js", "../../../node_modules/@uppy/utils/lib/generateFileID.js", "../../../node_modules/@uppy/core/lib/supportsUploadProgress.js", "../../../node_modules/@uppy/core/lib/getFileName.js", "../../../node_modules/@uppy/utils/lib/getTimeStamp.js", "../../../node_modules/@uppy/core/lib/loggers.js", "../../../node_modules/@uppy/core/lib/Restricter.js", "../../../node_modules/@uppy/core/lib/locale.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/src/util.js", "../../../node_modules/preact/src/options.js", "../../../node_modules/preact/src/create-element.js", "../../../node_modules/preact/src/component.js", "../../../node_modules/preact/src/create-context.js", "../../../node_modules/preact/src/diff/children.js", "../../../node_modules/preact/src/diff/props.js", "../../../node_modules/preact/src/diff/index.js", "../../../node_modules/preact/src/render.js", "../../../node_modules/preact/src/clone-element.js", "../../../node_modules/preact/src/diff/catch-error.js", "../../../node_modules/@uppy/utils/lib/isDOMElement.js", "../../../node_modules/@uppy/utils/lib/findDOMElement.js", "../../../node_modules/@uppy/utils/lib/getTextDirection.js", "../../../node_modules/@uppy/core/lib/BasePlugin.js", "../../../node_modules/@uppy/core/lib/UIPlugin.js", "../../../node_modules/@uppy/utils/lib/emaFilter.js", "../../../node_modules/@uppy/status-bar/lib/StatusBarStates.js", "../../../node_modules/@uppy/status-bar/lib/StatusBarUI.js", "../../../node_modules/@uppy/status-bar/lib/calculateProcessingProgress.js", "../../../node_modules/@uppy/status-bar/lib/Components.js", "../../../node_modules/@uppy/utils/lib/secondsToTime.js", "../../../node_modules/@uppy/utils/lib/prettyETA.js", "../../../node_modules/@uppy/status-bar/lib/locale.js", "../../../node_modules/@uppy/status-bar/lib/StatusBar.js", "../../../node_modules/@uppy/informer/lib/FadeIn.js", "../../../node_modules/@uppy/informer/lib/TransitionGroup.js", "../../../node_modules/@uppy/informer/lib/Informer.js", "../../../node_modules/@uppy/utils/lib/dataURItoBlob.js", "../../../node_modules/@uppy/utils/lib/isObjectURL.js", "../../../node_modules/@uppy/utils/lib/isPreviewSupported.js", "../../../node_modules/exifr/dist/mini.esm.mjs", "../../../node_modules/@uppy/thumbnail-generator/lib/locale.js", "../../../node_modules/@uppy/thumbnail-generator/lib/index.js", "../../../node_modules/@uppy/utils/lib/findAllDOMElements.js", "../../../node_modules/@uppy/utils/lib/toArray.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/fallbackApi.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/index.js", "../../../node_modules/eventemitter3/index.mjs", "../../../node_modules/p-timeout/index.js", "../../../node_modules/p-queue/dist/lower-bound.js", "../../../node_modules/p-queue/dist/priority-queue.js", "../../../node_modules/p-queue/dist/index.js", "../../../node_modules/preact/hooks/src/index.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/AuthView.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/User.js", "../../../node_modules/@uppy/provider-views/lib/Breadcrumbs.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/Header.js", "../../../node_modules/@uppy/provider-views/lib/Browser.js", "../../../node_modules/@uppy/utils/lib/remoteFileObjToLocal.js", "../../../node_modules/@uppy/utils/lib/VirtualList.js", "../../../node_modules/@uppy/provider-views/lib/SearchFilterInput.js", "../../../node_modules/@uppy/provider-views/lib/FooterActions.js", "../../../node_modules/@uppy/provider-views/lib/Item/index.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/ItemIcon.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/GridLi.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/ListLi.js", "../../../node_modules/@uppy/provider-views/lib/CloseWrapper.js", "../../../node_modules/@uppy/provider-views/lib/View.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/ProviderView.js", "../../../node_modules/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js", "../../../node_modules/memoize-one/dist/memoize-one.esm.js", "../../../node_modules/@uppy/utils/lib/FOCUSABLE_ELEMENTS.js", "../../../node_modules/@uppy/dashboard/lib/utils/getActiveOverlayEl.js", "../../../node_modules/@uppy/dashboard/lib/utils/trapFocus.js", "../../../node_modules/@uppy/dashboard/lib/utils/createSuperFocus.js", "../../../node_modules/@uppy/dashboard/lib/components/Dashboard.js", "../../../node_modules/@uppy/utils/lib/isDragDropSupported.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/index.js", "../../../node_modules/@uppy/dashboard/lib/utils/getFileTypeIcon.js", "../../../node_modules/@uppy/dashboard/lib/components/FilePreview.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileProgress/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileInfo/index.js", "../../../node_modules/@uppy/utils/lib/truncateString.js", "../../../node_modules/@uppy/dashboard/lib/utils/copyToClipboard.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/Buttons/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileList.js", "../../../node_modules/@uppy/dashboard/lib/components/AddFiles.js", "../../../node_modules/@uppy/dashboard/lib/components/AddFilesPanel.js", "../../../node_modules/@uppy/dashboard/lib/components/PickerPanelContent.js", "../../../node_modules/@uppy/dashboard/lib/utils/ignoreEvent.js", "../../../node_modules/@uppy/dashboard/lib/components/EditorPanel.js", "../../../node_modules/@uppy/dashboard/lib/components/PickerPanelTopBar.js", "../../../node_modules/@uppy/dashboard/lib/components/FileCard/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileCard/RenderMetaFields.js", "../../../node_modules/@uppy/dashboard/lib/components/Slide.js", "../../../node_modules/@uppy/dashboard/lib/locale.js", "../../../node_modules/@uppy/dashboard/lib/Dashboard.js", "../../../node_modules/get-form-data/es/index.js", "../../../node_modules/@uppy/form/lib/index.js", "../../../node_modules/@uppy/file-input/lib/locale.js", "../../../node_modules/@uppy/file-input/lib/FileInput.js", "../../../node_modules/@uppy/utils/lib/UserFacingApiError.js", "../../../node_modules/p-retry/index.js", "../../../node_modules/is-network-error/index.js", "../../../node_modules/@uppy/utils/lib/NetworkError.js", "../../../node_modules/@uppy/utils/lib/fetchWithNetworkError.js", "../../../node_modules/@uppy/utils/lib/hasProperty.js", "../../../node_modules/@uppy/utils/lib/ErrorWithCause.js", "../../../node_modules/@uppy/utils/lib/emitSocketProgress.js", "../../../node_modules/@uppy/utils/lib/getSocketHost.js", "../../../node_modules/@uppy/companion-client/lib/AuthError.js", "../../../node_modules/@uppy/companion-client/lib/RequestClient.js", "../../../node_modules/@uppy/companion-client/lib/Socket.js", "../../../node_modules/@uppy/utils/lib/EventManager.js", "../../../node_modules/@uppy/utils/lib/RateLimitedQueue.js", "../../../node_modules/@uppy/utils/lib/fileFilters.js", "../../../node_modules/@uppy/utils/lib/AbortController.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/MultipartUploader.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/createSignedURL.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/index.js", "../../../node_modules/@uppy/locales/lib/fr_FR.js", "../../javascript/controllers/direct_upload_form_controller.js", "../../javascript/controllers/direct_upload_input_controller.js", "../../javascript/controllers/file_back_selection_menu_controller.js", "../../javascript/controllers/flash_controller.js", "../../javascript/controllers/form_controller.js", "../../javascript/controllers/form_validation_controller.js", "../../javascript/controllers/hello_controller.js", "../../javascript/controllers/lemonway_iframe_controller.js", "../../javascript/controllers/mobile_sidebar_controller.js", "../../javascript/controllers/modal_controller.js", "../../../node_modules/@popperjs/core/lib/enums.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/math.js", "../../../node_modules/@popperjs/core/lib/utils/userAgent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/contains.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../../../node_modules/@popperjs/core/lib/utils/within.js", "../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../../../node_modules/@popperjs/core/lib/modifiers/arrow.js", "../../../node_modules/@popperjs/core/lib/utils/getVariation.js", "../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../../../node_modules/@popperjs/core/lib/modifiers/flip.js", "../../../node_modules/@popperjs/core/lib/modifiers/hide.js", "../../../node_modules/@popperjs/core/lib/modifiers/offset.js", "../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../../../node_modules/@popperjs/core/lib/utils/debounce.js", "../../../node_modules/@popperjs/core/lib/utils/mergeByName.js", "../../../node_modules/@popperjs/core/lib/createPopper.js", "../../../node_modules/@popperjs/core/lib/popper.js", "../../javascript/controllers/popper_controller.js", "../../javascript/controllers/profile_switcher_controller.js", "../../javascript/controllers/sign_controller.js", "../../javascript/controllers/scrollspy_controller.js", "../../javascript/controllers/users/profiles/kyc_document_form_controller.js", "../../javascript/controllers/users/profiles/recovery_fee_collections/subscription_form_controller.js", "../../javascript/controllers/nested_form_drag_controller.js", "../../javascript/controllers/redactor_controller.js", "../../javascript/controllers/universign_controller.js", "../../javascript/controllers/phone_input_controller.js", "../../javascript/controllers/search_form_controller.js", "../../javascript/controllers/password_visibility_controller.js", "../../javascript/controllers/verification_code_controller.js", "../../javascript/controllers/index.js", "../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js", "../../javascript/channels/consumer.js", "../../javascript/channels/export_channel.js", "../../javascript/application.js"],
  "sourcesContent": ["export default {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n//   ActionCable.logger.enabled = true\n//\n//   Example:\n//\n//   import * as ActionCable from '@rails/actioncable'\n//\n//   ActionCable.logger.enabled = true\n//   ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now())\n      adapters.logger.log(\"[ActionCable]\", ...messages)\n    }\n  },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this)\n    this.connection = connection\n    this.reconnectAttempts = 0\n  }\n\n  start() {\n    if (!this.isRunning()) {\n      this.startedAt = now()\n      delete this.stoppedAt\n      this.startPolling()\n      addEventListener(\"visibilitychange\", this.visibilityDidChange)\n      logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n    }\n  }\n\n  stop() {\n    if (this.isRunning()) {\n      this.stoppedAt = now()\n      this.stopPolling()\n      removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n      logger.log(\"ConnectionMonitor stopped\")\n    }\n  }\n\n  isRunning() {\n    return this.startedAt && !this.stoppedAt\n  }\n\n  recordPing() {\n    this.pingedAt = now()\n  }\n\n  recordConnect() {\n    this.reconnectAttempts = 0\n    this.recordPing()\n    delete this.disconnectedAt\n    logger.log(\"ConnectionMonitor recorded connect\")\n  }\n\n  recordDisconnect() {\n    this.disconnectedAt = now()\n    logger.log(\"ConnectionMonitor recorded disconnect\")\n  }\n\n  // Private\n\n  startPolling() {\n    this.stopPolling()\n    this.poll()\n  }\n\n  stopPolling() {\n    clearTimeout(this.pollTimeout)\n  }\n\n  poll() {\n    this.pollTimeout = setTimeout(() => {\n      this.reconnectIfStale()\n      this.poll()\n    }\n    , this.getPollInterval())\n  }\n\n  getPollInterval() {\n    const { staleThreshold, reconnectionBackoffRate } = this.constructor\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n    const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n    const jitter = jitterMax * Math.random()\n    return staleThreshold * 1000 * backoff * (1 + jitter)\n  }\n\n  reconnectIfStale() {\n    if (this.connectionIsStale()) {\n      logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n      this.reconnectAttempts++\n      if (this.disconnectedRecently()) {\n        logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n      } else {\n        logger.log(\"ConnectionMonitor reopening\")\n        this.connection.reopen()\n      }\n    }\n  }\n\n  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt\n  }\n\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n  }\n\n  disconnectedRecently() {\n    return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n  }\n\n  visibilityDidChange() {\n    if (document.visibilityState === \"visible\") {\n      setTimeout(() => {\n        if (this.connectionIsStale() || !this.connection.isOpen()) {\n          logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n          this.connection.reopen()\n        }\n      }\n      , 200)\n    }\n  }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n  \"message_types\": {\n    \"welcome\": \"welcome\",\n    \"disconnect\": \"disconnect\",\n    \"ping\": \"ping\",\n    \"confirmation\": \"confirm_subscription\",\n    \"rejection\": \"reject_subscription\"\n  },\n  \"disconnect_reasons\": {\n    \"unauthorized\": \"unauthorized\",\n    \"invalid_request\": \"invalid_request\",\n    \"server_restart\": \"server_restart\",\n    \"remote\": \"remote\"\n  },\n  \"default_mount_path\": \"/cable\",\n  \"protocols\": [\n    \"actioncable-v1-json\",\n    \"actioncable-unsupported\"\n  ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n  constructor(consumer) {\n    this.open = this.open.bind(this)\n    this.consumer = consumer\n    this.subscriptions = this.consumer.subscriptions\n    this.monitor = new ConnectionMonitor(this)\n    this.disconnected = true\n  }\n\n  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data))\n      return true\n    } else {\n      return false\n    }\n  }\n\n  open() {\n    if (this.isActive()) {\n      logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n      return false\n    } else {\n      const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n      if (this.webSocket) { this.uninstallEventHandlers() }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n      this.installEventHandlers()\n      this.monitor.start()\n      return true\n    }\n  }\n\n  close({allowReconnect} = {allowReconnect: true}) {\n    if (!allowReconnect) { this.monitor.stop() }\n    // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n    if (this.isOpen()) {\n      return this.webSocket.close()\n    }\n  }\n\n  reopen() {\n    logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n    if (this.isActive()) {\n      try {\n        return this.close()\n      } catch (error) {\n        logger.log(\"Failed to reopen WebSocket\", error)\n      }\n      finally {\n        logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n        setTimeout(this.open, this.constructor.reopenDelay)\n      }\n    } else {\n      return this.open()\n    }\n  }\n\n  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol\n    }\n  }\n\n  isOpen() {\n    return this.isState(\"open\")\n  }\n\n  isActive() {\n    return this.isState(\"open\", \"connecting\")\n  }\n\n  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0\n  }\n\n  // Private\n\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n  }\n\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0\n  }\n\n  getState() {\n    if (this.webSocket) {\n      for (let state in adapters.WebSocket) {\n        if (adapters.WebSocket[state] === this.webSocket.readyState) {\n          return state.toLowerCase()\n        }\n      }\n    }\n    return null\n  }\n\n  installEventHandlers() {\n    for (let eventName in this.events) {\n      const handler = this.events[eventName].bind(this)\n      this.webSocket[`on${eventName}`] = handler\n    }\n  }\n\n  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {}\n    }\n  }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) { return }\n    const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n    switch (type) {\n      case message_types.welcome:\n        if (this.triedToReconnect()) {\n          this.reconnectAttempted = true\n        }\n        this.monitor.recordConnect()\n        return this.subscriptions.reload()\n      case message_types.disconnect:\n        logger.log(`Disconnecting. Reason: ${reason}`)\n        return this.close({allowReconnect: reconnect})\n      case message_types.ping:\n        return this.monitor.recordPing()\n      case message_types.confirmation:\n        this.subscriptions.confirmSubscription(identifier)\n        if (this.reconnectAttempted) {\n          this.reconnectAttempted = false\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n        } else {\n          return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n        }\n      case message_types.rejection:\n        return this.subscriptions.reject(identifier)\n      default:\n        return this.subscriptions.notify(identifier, \"received\", message)\n    }\n  },\n\n  open() {\n    logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n    this.disconnected = false\n    if (!this.isProtocolSupported()) {\n      logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n      return this.close({allowReconnect: false})\n    }\n  },\n\n  close(event) {\n    logger.log(\"WebSocket onclose event\")\n    if (this.disconnected) { return }\n    this.disconnected = true\n    this.monitor.recordDisconnect()\n    return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n  },\n\n  error() {\n    logger.log(\"WebSocket onerror event\")\n  }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n//     connected() {\n//       // Called once the subscription has been successfully completed\n//     },\n//\n//     disconnected({ willAttemptReconnect: boolean }) {\n//       // Called when the client has disconnected with the server.\n//       // The object will have an `willAttemptReconnect` property which\n//       // says whether the client has the intention of attempting\n//       // to reconnect.\n//     },\n//\n//     appear() {\n//       this.perform('appear', {appearing_on: this.appearingOn()})\n//     },\n//\n//     away() {\n//       this.perform('away')\n//     },\n//\n//     appearingOn() {\n//       $('main').data('appearing-on')\n//     }\n//   })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n//   class AppearanceChannel < ApplicationActionCable::Channel\n//     def subscribed\n//       current_user.appear\n//     end\n//\n//     def unsubscribed\n//       current_user.disappear\n//     end\n//\n//     def appear(data)\n//       current_user.appear on: data['appearing_on']\n//     end\n//\n//     def away\n//       current_user.away\n//     end\n//   end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n  if (properties != null) {\n    for (let key in properties) {\n      const value = properties[key]\n      object[key] = value\n    }\n  }\n  return object\n}\n\nexport default class Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer\n    this.identifier = JSON.stringify(params)\n    extend(this, mixin)\n  }\n\n  // Perform a channel action with the optional data passed as an attribute\n  perform(action, data = {}) {\n    data.action = action\n    return this.send(data)\n  }\n\n  send(data) {\n    return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n  }\n\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this)\n  }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions\n    this.pendingSubscriptions = []\n  }\n\n  guarantee(subscription) {\n    if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n      this.pendingSubscriptions.push(subscription) \n    }\n    else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n    }\n    this.startGuaranteeing()\n  }\n\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n    this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n  }\n\n  startGuaranteeing() {\n    this.stopGuaranteeing()\n    this.retrySubscribing()\n  }\n  \n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout)\n  }\n\n  retrySubscribing() {\n    this.retryTimeout = setTimeout(() => {\n      if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n        this.pendingSubscriptions.map((subscription) => {\n          logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n          this.subscriptions.subscribe(subscription)\n        })\n      }\n    }\n    , 500)\n  }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer\n    this.guarantor = new SubscriptionGuarantor(this)\n    this.subscriptions = []\n  }\n\n  create(channelName, mixin) {\n    const channel = channelName\n    const params = typeof channel === \"object\" ? channel : {channel}\n    const subscription = new Subscription(this.consumer, params, mixin)\n    return this.add(subscription)\n  }\n\n  // Private\n\n  add(subscription) {\n    this.subscriptions.push(subscription)\n    this.consumer.ensureActiveConnection()\n    this.notify(subscription, \"initialized\")\n    this.subscribe(subscription)\n    return subscription\n  }\n\n  remove(subscription) {\n    this.forget(subscription)\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\")\n    }\n    return subscription\n  }\n\n  reject(identifier) {\n    return this.findAll(identifier).map((subscription) => {\n      this.forget(subscription)\n      this.notify(subscription, \"rejected\")\n      return subscription\n    })\n  }\n\n  forget(subscription) {\n    this.guarantor.forget(subscription)\n    this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n    return subscription\n  }\n\n  findAll(identifier) {\n    return this.subscriptions.filter((s) => s.identifier === identifier)\n  }\n\n  reload() {\n    return this.subscriptions.map((subscription) =>\n      this.subscribe(subscription))\n  }\n\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription) =>\n      this.notify(subscription, callbackName, ...args))\n  }\n\n  notify(subscription, callbackName, ...args) {\n    let subscriptions\n    if (typeof subscription === \"string\") {\n      subscriptions = this.findAll(subscription)\n    } else {\n      subscriptions = [subscription]\n    }\n\n    return subscriptions.map((subscription) =>\n      (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n  }\n\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription)\n    }\n  }\n\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`)\n    this.findAll(identifier).map((subscription) =>\n      this.guarantor.forget(subscription))\n  }\n\n  sendCommand(subscription, command) {\n    const {identifier} = subscription\n    return this.consumer.send({command, identifier})\n  }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n//   App = {}\n//   App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n//   App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n//   App.cable.disconnect()\n//\n// and to restart the connection:\n//\n//   App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n  constructor(url) {\n    this._url = url\n    this.subscriptions = new Subscriptions(this)\n    this.connection = new Connection(this)\n    this.subprotocols = []\n  }\n\n  get url() {\n    return createWebSocketURL(this._url)\n  }\n\n  send(data) {\n    return this.connection.send(data)\n  }\n\n  connect() {\n    return this.connection.open()\n  }\n\n  disconnect() {\n    return this.connection.close({allowReconnect: false})\n  }\n\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open()\n    }\n  }\n\n  addSubProtocol(subprotocol) {\n    this.subprotocols = [...this.subprotocols, subprotocol]\n  }\n}\n\nexport function createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url()\n  }\n\n  if (url && !/^wss?:/i.test(url)) {\n    const a = document.createElement(\"a\")\n    a.href = url\n    // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n    a.href = a.href\n    a.protocol = a.protocol.replace(\"http\", \"ws\")\n    return a.href\n  } else {\n    return url\n  }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n  Connection,\n  ConnectionMonitor,\n  Consumer,\n  INTERNAL,\n  Subscription,\n  Subscriptions,\n  SubscriptionGuarantor,\n  adapters,\n  createWebSocketURL,\n  logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url)\n}\n\nexport function getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n  if (element) {\n    return element.getAttribute(\"content\")\n  }\n}\n", "/**\n* Create an event emitter with namespaces\n* @name createNamespaceEmitter\n* @example\n* var emitter = require('./index')()\n*\n* emitter.on('*', function () {\n*   console.log('all events emitted', this.event)\n* })\n*\n* emitter.on('example', function () {\n*   console.log('example event emitted')\n* })\n*/\nmodule.exports = function createNamespaceEmitter () {\n  var emitter = {}\n  var _fns = emitter._fns = {}\n\n  /**\n  * Emit an event. Optionally namespace the event. Handlers are fired in the order in which they were added with exact matches taking precedence. Separate the namespace and event with a `:`\n  * @name emit\n  * @param {String} event \u2013 the name of the event, with optional namespace\n  * @param {...*} data \u2013 up to 6 arguments that are passed to the event listener\n  * @example\n  * emitter.emit('example')\n  * emitter.emit('demo:test')\n  * emitter.emit('data', { example: true}, 'a string', 1)\n  */\n  emitter.emit = function emit (event, arg1, arg2, arg3, arg4, arg5, arg6) {\n    var toEmit = getListeners(event)\n\n    if (toEmit.length) {\n      emitAll(event, toEmit, [arg1, arg2, arg3, arg4, arg5, arg6])\n    }\n  }\n\n  /**\n  * Create en event listener.\n  * @name on\n  * @param {String} event\n  * @param {Function} fn\n  * @example\n  * emitter.on('example', function () {})\n  * emitter.on('demo', function () {})\n  */\n  emitter.on = function on (event, fn) {\n    if (!_fns[event]) {\n      _fns[event] = []\n    }\n\n    _fns[event].push(fn)\n  }\n\n  /**\n  * Create en event listener that fires once.\n  * @name once\n  * @param {String} event\n  * @param {Function} fn\n  * @example\n  * emitter.once('example', function () {})\n  * emitter.once('demo', function () {})\n  */\n  emitter.once = function once (event, fn) {\n    function one () {\n      fn.apply(this, arguments)\n      emitter.off(event, one)\n    }\n    this.on(event, one)\n  }\n\n  /**\n  * Stop listening to an event. Stop all listeners on an event by only passing the event name. Stop a single listener by passing that event handler as a callback.\n  * You must be explicit about what will be unsubscribed: `emitter.off('demo')` will unsubscribe an `emitter.on('demo')` listener,\n  * `emitter.off('demo:example')` will unsubscribe an `emitter.on('demo:example')` listener\n  * @name off\n  * @param {String} event\n  * @param {Function} [fn] \u2013 the specific handler\n  * @example\n  * emitter.off('example')\n  * emitter.off('demo', function () {})\n  */\n  emitter.off = function off (event, fn) {\n    var keep = []\n\n    if (event && fn) {\n      var fns = this._fns[event]\n      var i = 0\n      var l = fns ? fns.length : 0\n\n      for (i; i < l; i++) {\n        if (fns[i] !== fn) {\n          keep.push(fns[i])\n        }\n      }\n    }\n\n    keep.length ? this._fns[event] = keep : delete this._fns[event]\n  }\n\n  function getListeners (e) {\n    var out = _fns[e] ? _fns[e] : []\n    var idx = e.indexOf(':')\n    var args = (idx === -1) ? [e] : [e.substring(0, idx), e.substring(idx + 1)]\n\n    var keys = Object.keys(_fns)\n    var i = 0\n    var l = keys.length\n\n    for (i; i < l; i++) {\n      var key = keys[i]\n      if (key === '*') {\n        out = out.concat(_fns[key])\n      }\n\n      if (args.length === 2 && args[0] === key) {\n        out = out.concat(_fns[key])\n        break\n      }\n    }\n\n    return out\n  }\n\n  function emitAll (e, fns, args) {\n    var i = 0\n    var l = fns.length\n\n    for (i; i < l; i++) {\n      if (!fns[i]) break\n      fns[i].event = e\n      fns[i].apply(fns[i], args)\n    }\n  }\n\n  return emitter\n}\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n", "var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n", "var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n", "var debounce = require('./debounce'),\n    isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nmodule.exports = throttle;\n", "// Adapted from https://github.com/Flet/prettier-bytes/\n// Changing 1000 bytes to 1024, so we can keep uppercase KB vs kB\n// ISC License (c) Dan Flettre https://github.com/Flet/prettier-bytes/blob/master/LICENSE\nmodule.exports = function prettierBytes (num) {\n  if (typeof num !== 'number' || isNaN(num)) {\n    throw new TypeError(`Expected a number, got ${typeof num}`)\n  }\n\n  const neg = num < 0\n  const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n  if (neg) {\n    num = -num\n  }\n\n  if (num < 1) {\n    return `${(neg ? '-' : '') + num} B`\n  }\n\n  const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n  num = Number(num / Math.pow(1024, exponent))\n  const unit = units[exponent]\n\n  if (num >= 10 || num % 1 === 0) {\n    // Do not show decimals when the number is two-digit, or if the number has no\n    // decimal component.\n    return `${(neg ? '-' : '') + num.toFixed(0)} ${unit}`\n  }\n  return `${(neg ? '-' : '') + num.toFixed(1)} ${unit}`\n}\n", "/* jshint node: true */\n'use strict';\n\n/**\n  # wildcard\n\n  Very simple wildcard matching, which is designed to provide the same\n  functionality that is found in the\n  [eve](https://github.com/adobe-webplatform/eve) eventing library.\n\n  ## Usage\n\n  It works with strings:\n\n  <<< examples/strings.js\n\n  Arrays:\n\n  <<< examples/arrays.js\n\n  Objects (matching against keys):\n\n  <<< examples/objects.js\n\n  While the library works in Node, if you are are looking for file-based\n  wildcard matching then you should have a look at:\n\n  <https://github.com/isaacs/node-glob>\n**/\n\nfunction WildcardMatcher(text, separator) {\n  this.text = text = text || '';\n  this.hasWild = ~text.indexOf('*');\n  this.separator = separator;\n  this.parts = text.split(separator);\n}\n\nWildcardMatcher.prototype.match = function(input) {\n  var matches = true;\n  var parts = this.parts;\n  var ii;\n  var partsCount = parts.length;\n  var testParts;\n\n  if (typeof input == 'string' || input instanceof String) {\n    if (!this.hasWild && this.text != input) {\n      matches = false;\n    } else {\n      testParts = (input || '').split(this.separator);\n      for (ii = 0; matches && ii < partsCount; ii++) {\n        if (parts[ii] === '*')  {\n          continue;\n        } else if (ii < testParts.length) {\n          matches = parts[ii] === testParts[ii];\n        } else {\n          matches = false;\n        }\n      }\n\n      // If matches, then return the component parts\n      matches = matches && testParts;\n    }\n  }\n  else if (typeof input.splice == 'function') {\n    matches = [];\n\n    for (ii = input.length; ii--; ) {\n      if (this.match(input[ii])) {\n        matches[matches.length] = input[ii];\n      }\n    }\n  }\n  else if (typeof input == 'object') {\n    matches = {};\n\n    for (var key in input) {\n      if (this.match(key)) {\n        matches[key] = input[key];\n      }\n    }\n  }\n\n  return matches;\n};\n\nmodule.exports = function(text, test, separator) {\n  var matcher = new WildcardMatcher(text, separator || /[\\/\\.]/);\n  if (typeof test != 'undefined') {\n    return matcher.match(test);\n  }\n\n  return matcher;\n};\n", "var wildcard = require('wildcard');\nvar reMimePartSplit = /[\\/\\+\\.]/;\n\n/**\n  # mime-match\n\n  A simple function to checker whether a target mime type matches a mime-type\n  pattern (e.g. image/jpeg matches image/jpeg OR image/*).\n\n  ## Example Usage\n\n  <<< example.js\n\n**/\nmodule.exports = function(target, pattern) {\n  function test(pattern) {\n    var result = wildcard(pattern, target, reMimePartSplit);\n\n    // ensure that we have a valid mime type (should have two parts)\n    return result && result.length >= 2;\n  }\n\n  return pattern ? test(pattern.split(';')[0]) : test;\n};\n", "/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n", "// Adapted from https://github.com/Flet/prettier-bytes/\n// Changing 1000 bytes to 1024, so we can keep uppercase KB vs kB\n// ISC License (c) Dan Flettre https://github.com/Flet/prettier-bytes/blob/master/LICENSE\nexport = function prettierBytes(num: number): string {\n  if (typeof num !== 'number' || Number.isNaN(num)) {\n    throw new TypeError(`Expected a number, got ${typeof num}`)\n  }\n\n  const neg = num < 0\n  const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n  if (neg) {\n    num = -num\n  }\n\n  if (num < 1) {\n    return `${(neg ? '-' : '') + num} B`\n  }\n\n  const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1)\n  num = Number(num / 1024 ** exponent)\n  const unit = units[exponent]\n\n  if (num >= 10 || num % 1 === 0) {\n    // Do not show decimals when the number is two-digit, or if the number has no\n    // decimal component.\n    return `${(neg ? '-' : '') + num.toFixed(0)} ${unit}`\n  }\n\n  return `${(neg ? '-' : '') + num.toFixed(1)} ${unit}`\n}\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n", "module.exports = function isShallowEqual (a, b) {\n  if (a === b) return true\n  for (var i in a) if (!(i in b)) return false\n  for (var i in b) if (a[i] !== b[i]) return false\n  return true\n}\n", "function RetryOperation(timeouts, options) {\n  // Compatibility for the old (timeouts, retryForever) signature\n  if (typeof options === 'boolean') {\n    options = { forever: options };\n  }\n\n  this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n  this._timeouts = timeouts;\n  this._options = options || {};\n  this._maxRetryTime = options && options.maxRetryTime || Infinity;\n  this._fn = null;\n  this._errors = [];\n  this._attempts = 1;\n  this._operationTimeout = null;\n  this._operationTimeoutCb = null;\n  this._timeout = null;\n  this._operationStart = null;\n  this._timer = null;\n\n  if (this._options.forever) {\n    this._cachedTimeouts = this._timeouts.slice(0);\n  }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n  this._attempts = 1;\n  this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n  if (this._timeout) {\n    clearTimeout(this._timeout);\n  }\n  if (this._timer) {\n    clearTimeout(this._timer);\n  }\n\n  this._timeouts       = [];\n  this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n  if (this._timeout) {\n    clearTimeout(this._timeout);\n  }\n\n  if (!err) {\n    return false;\n  }\n  var currentTime = new Date().getTime();\n  if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n    this._errors.push(err);\n    this._errors.unshift(new Error('RetryOperation timeout occurred'));\n    return false;\n  }\n\n  this._errors.push(err);\n\n  var timeout = this._timeouts.shift();\n  if (timeout === undefined) {\n    if (this._cachedTimeouts) {\n      // retry forever, only keep last error\n      this._errors.splice(0, this._errors.length - 1);\n      timeout = this._cachedTimeouts.slice(-1);\n    } else {\n      return false;\n    }\n  }\n\n  var self = this;\n  this._timer = setTimeout(function() {\n    self._attempts++;\n\n    if (self._operationTimeoutCb) {\n      self._timeout = setTimeout(function() {\n        self._operationTimeoutCb(self._attempts);\n      }, self._operationTimeout);\n\n      if (self._options.unref) {\n          self._timeout.unref();\n      }\n    }\n\n    self._fn(self._attempts);\n  }, timeout);\n\n  if (this._options.unref) {\n      this._timer.unref();\n  }\n\n  return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n  this._fn = fn;\n\n  if (timeoutOps) {\n    if (timeoutOps.timeout) {\n      this._operationTimeout = timeoutOps.timeout;\n    }\n    if (timeoutOps.cb) {\n      this._operationTimeoutCb = timeoutOps.cb;\n    }\n  }\n\n  var self = this;\n  if (this._operationTimeoutCb) {\n    this._timeout = setTimeout(function() {\n      self._operationTimeoutCb();\n    }, self._operationTimeout);\n  }\n\n  this._operationStart = new Date().getTime();\n\n  this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n  console.log('Using RetryOperation.try() is deprecated');\n  this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n  console.log('Using RetryOperation.start() is deprecated');\n  this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n  return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n  return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n  if (this._errors.length === 0) {\n    return null;\n  }\n\n  var counts = {};\n  var mainError = null;\n  var mainErrorCount = 0;\n\n  for (var i = 0; i < this._errors.length; i++) {\n    var error = this._errors[i];\n    var message = error.message;\n    var count = (counts[message] || 0) + 1;\n\n    counts[message] = count;\n\n    if (count >= mainErrorCount) {\n      mainError = error;\n      mainErrorCount = count;\n    }\n  }\n\n  return mainError;\n};\n", "var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n  var timeouts = exports.timeouts(options);\n  return new RetryOperation(timeouts, {\n      forever: options && (options.forever || options.retries === Infinity),\n      unref: options && options.unref,\n      maxRetryTime: options && options.maxRetryTime\n  });\n};\n\nexports.timeouts = function(options) {\n  if (options instanceof Array) {\n    return [].concat(options);\n  }\n\n  var opts = {\n    retries: 10,\n    factor: 2,\n    minTimeout: 1 * 1000,\n    maxTimeout: Infinity,\n    randomize: false\n  };\n  for (var key in options) {\n    opts[key] = options[key];\n  }\n\n  if (opts.minTimeout > opts.maxTimeout) {\n    throw new Error('minTimeout is greater than maxTimeout');\n  }\n\n  var timeouts = [];\n  for (var i = 0; i < opts.retries; i++) {\n    timeouts.push(this.createTimeout(i, opts));\n  }\n\n  if (options && options.forever && !timeouts.length) {\n    timeouts.push(this.createTimeout(i, opts));\n  }\n\n  // sort the array numerically ascending\n  timeouts.sort(function(a,b) {\n    return a - b;\n  });\n\n  return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n  var random = (opts.randomize)\n    ? (Math.random() + 1)\n    : 1;\n\n  var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n  timeout = Math.min(timeout, opts.maxTimeout);\n\n  return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n  if (options instanceof Array) {\n    methods = options;\n    options = null;\n  }\n\n  if (!methods) {\n    methods = [];\n    for (var key in obj) {\n      if (typeof obj[key] === 'function') {\n        methods.push(key);\n      }\n    }\n  }\n\n  for (var i = 0; i < methods.length; i++) {\n    var method   = methods[i];\n    var original = obj[method];\n\n    obj[method] = function retryWrapper(original) {\n      var op       = exports.operation(options);\n      var args     = Array.prototype.slice.call(arguments, 1);\n      var callback = args.pop();\n\n      args.push(function(err) {\n        if (op.retry(err)) {\n          return;\n        }\n        if (err) {\n          arguments[0] = op.mainError();\n        }\n        callback.apply(this, arguments);\n      });\n\n      op.attempt(function() {\n        original.apply(obj, args);\n      });\n    }.bind(obj, original);\n    obj[method].options = options;\n  }\n};\n", "module.exports = require('./lib/retry');", "/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n", "/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fj\u00E4llemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n    define(['jquery'], function ($) {\n        return (function () {\n            var $container;\n            var listener;\n            var toastId = 0;\n            var toastType = {\n                error: 'error',\n                info: 'info',\n                success: 'success',\n                warning: 'warning'\n            };\n\n            var toastr = {\n                clear: clear,\n                remove: remove,\n                error: error,\n                getContainer: getContainer,\n                info: info,\n                options: {},\n                subscribe: subscribe,\n                success: success,\n                version: '2.1.4',\n                warning: warning\n            };\n\n            var previousToast;\n\n            return toastr;\n\n            ////////////////\n\n            function error(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.error,\n                    iconClass: getOptions().iconClasses.error,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function getContainer(options, create) {\n                if (!options) { options = getOptions(); }\n                $container = $('#' + options.containerId);\n                if ($container.length) {\n                    return $container;\n                }\n                if (create) {\n                    $container = createContainer(options);\n                }\n                return $container;\n            }\n\n            function info(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.info,\n                    iconClass: getOptions().iconClasses.info,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function subscribe(callback) {\n                listener = callback;\n            }\n\n            function success(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.success,\n                    iconClass: getOptions().iconClasses.success,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function warning(message, title, optionsOverride) {\n                return notify({\n                    type: toastType.warning,\n                    iconClass: getOptions().iconClasses.warning,\n                    message: message,\n                    optionsOverride: optionsOverride,\n                    title: title\n                });\n            }\n\n            function clear($toastElement, clearOptions) {\n                var options = getOptions();\n                if (!$container) { getContainer(options); }\n                if (!clearToast($toastElement, options, clearOptions)) {\n                    clearContainer(options);\n                }\n            }\n\n            function remove($toastElement) {\n                var options = getOptions();\n                if (!$container) { getContainer(options); }\n                if ($toastElement && $(':focus', $toastElement).length === 0) {\n                    removeToast($toastElement);\n                    return;\n                }\n                if ($container.children().length) {\n                    $container.remove();\n                }\n            }\n\n            // internal functions\n\n            function clearContainer (options) {\n                var toastsToClear = $container.children();\n                for (var i = toastsToClear.length - 1; i >= 0; i--) {\n                    clearToast($(toastsToClear[i]), options);\n                }\n            }\n\n            function clearToast ($toastElement, options, clearOptions) {\n                var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n                if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n                    $toastElement[options.hideMethod]({\n                        duration: options.hideDuration,\n                        easing: options.hideEasing,\n                        complete: function () { removeToast($toastElement); }\n                    });\n                    return true;\n                }\n                return false;\n            }\n\n            function createContainer(options) {\n                $container = $('<div/>')\n                    .attr('id', options.containerId)\n                    .addClass(options.positionClass);\n\n                $container.appendTo($(options.target));\n                return $container;\n            }\n\n            function getDefaults() {\n                return {\n                    tapToDismiss: true,\n                    toastClass: 'toast',\n                    containerId: 'toast-container',\n                    debug: false,\n\n                    showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n                    showDuration: 300,\n                    showEasing: 'swing', //swing and linear are built into jQuery\n                    onShown: undefined,\n                    hideMethod: 'fadeOut',\n                    hideDuration: 1000,\n                    hideEasing: 'swing',\n                    onHidden: undefined,\n                    closeMethod: false,\n                    closeDuration: false,\n                    closeEasing: false,\n                    closeOnHover: true,\n\n                    extendedTimeOut: 1000,\n                    iconClasses: {\n                        error: 'toast-error',\n                        info: 'toast-info',\n                        success: 'toast-success',\n                        warning: 'toast-warning'\n                    },\n                    iconClass: 'toast-info',\n                    positionClass: 'toast-top-right',\n                    timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n                    titleClass: 'toast-title',\n                    messageClass: 'toast-message',\n                    escapeHtml: false,\n                    target: 'body',\n                    closeHtml: '<button type=\"button\">&times;</button>',\n                    closeClass: 'toast-close-button',\n                    newestOnTop: true,\n                    preventDuplicates: false,\n                    progressBar: false,\n                    progressClass: 'toast-progress',\n                    rtl: false\n                };\n            }\n\n            function publish(args) {\n                if (!listener) { return; }\n                listener(args);\n            }\n\n            function notify(map) {\n                var options = getOptions();\n                var iconClass = map.iconClass || options.iconClass;\n\n                if (typeof (map.optionsOverride) !== 'undefined') {\n                    options = $.extend(options, map.optionsOverride);\n                    iconClass = map.optionsOverride.iconClass || iconClass;\n                }\n\n                if (shouldExit(options, map)) { return; }\n\n                toastId++;\n\n                $container = getContainer(options, true);\n\n                var intervalId = null;\n                var $toastElement = $('<div/>');\n                var $titleElement = $('<div/>');\n                var $messageElement = $('<div/>');\n                var $progressElement = $('<div/>');\n                var $closeElement = $(options.closeHtml);\n                var progressBar = {\n                    intervalId: null,\n                    hideEta: null,\n                    maxHideTime: null\n                };\n                var response = {\n                    toastId: toastId,\n                    state: 'visible',\n                    startTime: new Date(),\n                    options: options,\n                    map: map\n                };\n\n                personalizeToast();\n\n                displayToast();\n\n                handleEvents();\n\n                publish(response);\n\n                if (options.debug && console) {\n                    console.log(response);\n                }\n\n                return $toastElement;\n\n                function escapeHtml(source) {\n                    if (source == null) {\n                        source = '';\n                    }\n\n                    return source\n                        .replace(/&/g, '&amp;')\n                        .replace(/\"/g, '&quot;')\n                        .replace(/'/g, '&#39;')\n                        .replace(/</g, '&lt;')\n                        .replace(/>/g, '&gt;');\n                }\n\n                function personalizeToast() {\n                    setIcon();\n                    setTitle();\n                    setMessage();\n                    setCloseButton();\n                    setProgressBar();\n                    setRTL();\n                    setSequence();\n                    setAria();\n                }\n\n                function setAria() {\n                    var ariaValue = '';\n                    switch (map.iconClass) {\n                        case 'toast-success':\n                        case 'toast-info':\n                            ariaValue =  'polite';\n                            break;\n                        default:\n                            ariaValue = 'assertive';\n                    }\n                    $toastElement.attr('aria-live', ariaValue);\n                }\n\n                function handleEvents() {\n                    if (options.closeOnHover) {\n                        $toastElement.hover(stickAround, delayedHideToast);\n                    }\n\n                    if (!options.onclick && options.tapToDismiss) {\n                        $toastElement.click(hideToast);\n                    }\n\n                    if (options.closeButton && $closeElement) {\n                        $closeElement.click(function (event) {\n                            if (event.stopPropagation) {\n                                event.stopPropagation();\n                            } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n                                event.cancelBubble = true;\n                            }\n\n                            if (options.onCloseClick) {\n                                options.onCloseClick(event);\n                            }\n\n                            hideToast(true);\n                        });\n                    }\n\n                    if (options.onclick) {\n                        $toastElement.click(function (event) {\n                            options.onclick(event);\n                            hideToast();\n                        });\n                    }\n                }\n\n                function displayToast() {\n                    $toastElement.hide();\n\n                    $toastElement[options.showMethod](\n                        {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n                    );\n\n                    if (options.timeOut > 0) {\n                        intervalId = setTimeout(hideToast, options.timeOut);\n                        progressBar.maxHideTime = parseFloat(options.timeOut);\n                        progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n                        if (options.progressBar) {\n                            progressBar.intervalId = setInterval(updateProgress, 10);\n                        }\n                    }\n                }\n\n                function setIcon() {\n                    if (map.iconClass) {\n                        $toastElement.addClass(options.toastClass).addClass(iconClass);\n                    }\n                }\n\n                function setSequence() {\n                    if (options.newestOnTop) {\n                        $container.prepend($toastElement);\n                    } else {\n                        $container.append($toastElement);\n                    }\n                }\n\n                function setTitle() {\n                    if (map.title) {\n                        var suffix = map.title;\n                        if (options.escapeHtml) {\n                            suffix = escapeHtml(map.title);\n                        }\n                        $titleElement.append(suffix).addClass(options.titleClass);\n                        $toastElement.append($titleElement);\n                    }\n                }\n\n                function setMessage() {\n                    if (map.message) {\n                        var suffix = map.message;\n                        if (options.escapeHtml) {\n                            suffix = escapeHtml(map.message);\n                        }\n                        $messageElement.append(suffix).addClass(options.messageClass);\n                        $toastElement.append($messageElement);\n                    }\n                }\n\n                function setCloseButton() {\n                    if (options.closeButton) {\n                        $closeElement.addClass(options.closeClass).attr('role', 'button');\n                        $toastElement.prepend($closeElement);\n                    }\n                }\n\n                function setProgressBar() {\n                    if (options.progressBar) {\n                        $progressElement.addClass(options.progressClass);\n                        $toastElement.prepend($progressElement);\n                    }\n                }\n\n                function setRTL() {\n                    if (options.rtl) {\n                        $toastElement.addClass('rtl');\n                    }\n                }\n\n                function shouldExit(options, map) {\n                    if (options.preventDuplicates) {\n                        if (map.message === previousToast) {\n                            return true;\n                        } else {\n                            previousToast = map.message;\n                        }\n                    }\n                    return false;\n                }\n\n                function hideToast(override) {\n                    var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n                    var duration = override && options.closeDuration !== false ?\n                        options.closeDuration : options.hideDuration;\n                    var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n                    if ($(':focus', $toastElement).length && !override) {\n                        return;\n                    }\n                    clearTimeout(progressBar.intervalId);\n                    return $toastElement[method]({\n                        duration: duration,\n                        easing: easing,\n                        complete: function () {\n                            removeToast($toastElement);\n                            clearTimeout(intervalId);\n                            if (options.onHidden && response.state !== 'hidden') {\n                                options.onHidden();\n                            }\n                            response.state = 'hidden';\n                            response.endTime = new Date();\n                            publish(response);\n                        }\n                    });\n                }\n\n                function delayedHideToast() {\n                    if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n                        intervalId = setTimeout(hideToast, options.extendedTimeOut);\n                        progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n                        progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n                    }\n                }\n\n                function stickAround() {\n                    clearTimeout(intervalId);\n                    progressBar.hideEta = 0;\n                    $toastElement.stop(true, true)[options.showMethod](\n                        {duration: options.showDuration, easing: options.showEasing}\n                    );\n                }\n\n                function updateProgress() {\n                    var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n                    $progressElement.width(percentage + '%');\n                }\n            }\n\n            function getOptions() {\n                return $.extend({}, getDefaults(), toastr.options);\n            }\n\n            function removeToast($toastElement) {\n                if (!$container) { $container = getContainer(); }\n                if ($toastElement.is(':visible')) {\n                    return;\n                }\n                $toastElement.remove();\n                $toastElement = null;\n                if ($container.children().length === 0) {\n                    $container.remove();\n                    previousToast = undefined;\n                }\n            }\n\n        })();\n    });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n    if (typeof module !== 'undefined' && module.exports) { //Node\n        module.exports = factory(require('jquery'));\n    } else {\n        window.toastr = factory(window.jQuery);\n    }\n}));\n", "if(void 0===CodeMirror)var CodeMirror=void 0;if(void 0===jQuery)var jQuery=void 0;!function(){var s={settings:{},post:function(t){return new n(\"post\",t)},get:function(t){return new n(\"get\",t)},request:function(t,e){return new n(t,e)}},n=function(t,e){var i={method:t,url:\"\",before:function(){},success:function(){},error:function(){},data:!1,async:!0,headers:{}};this.p=this.extend(i,e),this.p=this.extend(this.p,s.settings),this.p.method=this.p.method.toUpperCase(),this.prepareData(),this.xhr=new XMLHttpRequest,this.xhr.open(this.p.method,this.p.url,this.p.async),this.setHeaders(),!1!==(\"function\"!=typeof this.p.before||this.p.before(this.xhr))&&this.send()};n.prototype={extend:function(t,e){if(e)for(var i in e)t[i]=e[i];return t},prepareData:function(){-1===[\"POST\",\"PUT\"].indexOf(this.p.method)||this.isFormData()||(this.p.headers[\"Content-Type\"]=\"application/x-www-form-urlencoded\"),\"object\"!=typeof this.p.data||this.isFormData()||(this.p.data=this.toParams(this.p.data)),\"GET\"===this.p.method&&(this.p.url=this.p.data?this.p.url+\"?\"+this.p.data:this.p.url)},setHeaders:function(){for(var t in this.xhr.setRequestHeader(\"X-Requested-With\",this.p.headers[\"X-Requested-With\"]||\"XMLHttpRequest\"),this.p.headers)this.xhr.setRequestHeader(t,this.p.headers[t])},isFormData:function(){return void 0!==window.FormData&&this.p.data instanceof window.FormData},isComplete:function(){return!(this.xhr.status<200||300<=this.xhr.status&&304!==this.xhr.status)},send:function(){this.p.async?(this.xhr.onload=this.loaded.bind(this),this.xhr.send(this.p.data)):(this.xhr.send(this.p.data),this.loaded.call(this))},loaded:function(){if(this.isComplete()){var t=this.parseResponse();\"function\"==typeof this.p.success&&this.p.success(t,this.xhr)}else{t=this.parseResponse();\"function\"==typeof this.p.error&&this.p.error(t,this.xhr,this.xhr.status)}},parseResponse:function(){var t=this.xhr.response,e=this.parseJson(t);return e||t},parseJson:function(t){try{var e=JSON.parse(t);if(e&&\"object\"==typeof e)return e}catch(t){}return!1},toParams:function(e){return Object.keys(e).map(function(t){return encodeURIComponent(t)+\"=\"+encodeURIComponent(e[t])}).join(\"&\")}};function c(t,e){return this.parse(t,e)}var r=[0],o=\"data\"+(new Date).getTime(),a=\"is-hidden\",l=\"is-hidden-mobile\";c.ready=function(t){\"loading\"!==document.readyState?t():document.addEventListener(\"DOMContentLoaded\",t)},c.prototype={get sdom(){return!0},get length(){return this.nodes.length},parse:function(t,e){var i;if(t){if(t.sdom)return this.nodes=t.nodes,t;i=\"string\"!=typeof t?t.nodeType&&11===t.nodeType?t.childNodes:t.nodeType||t===window?[t]:t:/^\\s*<(\\w+|!)[^>]*>/.test(t)?this.create(t):this._query(t,e)}else i=[];this.nodes=this._slice(i)},create:function(t){if(/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/.test(t))return[document.createElement(RegExp.$1)];var e=[],i=document.createElement(\"div\"),s=i.childNodes;i.innerHTML=t;for(var n=0,r=s.length;n<r;n++)e.push(s[n]);return e},add:function(t){this.nodes=this.nodes.concat(this._toArray(t))},get:function(t){return this.nodes[t||0]||!1},getAll:function(){return this.nodes},eq:function(t){return new c(this.nodes[t])},first:function(){return new c(this.nodes[0])},last:function(){return new c(this.nodes[this.nodes.length-1])},contents:function(){return this.get().childNodes},each:function(t){for(var e=this.nodes.length,i=0;i<e;i++)t.call(this,this.nodes[i].sdom?this.nodes[i].get():this.nodes[i],i);return this},is:function(t){return 0<this.filter(t).length},filter:function(e){var t;return void 0===e?this:(t=\"function\"==typeof e?e:function(t){return e instanceof Node?e===t:e&&e.sdom?-1!==e.nodes.indexOf(t):(t.matches=t.matches||t.msMatchesSelector||t.webkitMatchesSelector,1===t.nodeType&&t.matches(e||\"*\"))},new c(this.nodes.filter(t)))},not:function(e){return this.filter(function(t){return!new c(t).is(e||!0)})},find:function(s){var n=[];return this.each(function(t){for(var e=this._query(s||\"*\",t),i=0;i<e.length;i++)n.push(e[i])}),new c(n)},children:function(t){var s=[];return this.each(function(t){if(t.children)for(var e=t.children,i=0;i<e.length;i++)s.push(e[i])}),new c(s).filter(t)},parent:function(t){var e=[];return this.each(function(t){t.parentNode&&e.push(t.parentNode)}),new c(e).filter(t)},parents:function(i,s){s=this._getContext(s);var n=[];return this.each(function(t){for(var e=t.parentNode;e&&e!==s;)i?new c(e).is(i)&&n.push(e):n.push(e),e=e.parentNode}),new c(n)},closest:function(e,i){i=this._getContext(i),e=e.sdom?e.get():e;var s=[],n=e&&e.nodeType;return this.each(function(t){do{if(n&&t===e||new c(t).is(e))return s.push(t)}while((t=t.parentNode)&&t!==i)}),new c(s)},next:function(t){return this._getSibling(t,\"nextSibling\")},nextElement:function(t){return this._getSibling(t,\"nextElementSibling\")},prev:function(t){return this._getSibling(t,\"previousSibling\")},prevElement:function(t){return this._getSibling(t,\"previousElementSibling\")},css:function(s,n){if(void 0!==n||\"object\"==typeof s)return this.each(function(t){var e={};for(var i in\"object\"==typeof s?e=s:e[s]=n,e)t.style&&(t.style[i]=e[i])});var t=this.get();return\"width\"===s||\"height\"===s?t.style?this._getHeightOrWidth(s,t,!1)+\"px\":void 0:t.style?getComputedStyle(t,null)[s]:void 0},attr:function(s,n,r){if(r=r?\"data-\":\"\",void 0!==n||\"object\"==typeof s)return this.each(function(t){var e={};for(var i in\"object\"==typeof s?e=s:e[s]=n,e)3!==t.nodeType&&(\"checked\"===i?t.checked=e[i]:t.setAttribute(r+i,e[i]))});var t=this.get();return t&&3!==t.nodeType?\"checked\"===s?t.checked:this._getBooleanFromStr(t.getAttribute(r+s)):void 0},data:function(t,e){if(void 0!==t)return this.attr(t,e,!0);function i(t){return t[1].toUpperCase()}var s=/^data-(.+)$/,n=this.get().attributes,r={};for(var o in n)if(n[o]&&s.test(n[o].nodeName)){var a=n[o].nodeName.match(s)[1],l=n[o].value;a=a.replace(/-([a-z])/g,i),l=this._isObjectString(l)?this._toObject(l):this._isNumber(l)?parseFloat(l):this._getBooleanFromStr(l),r[a]=l}return r},val:function(e){if(void 0!==e)return this.each(function(t){t.value=e});var t=this.get();return t.type&&\"checkbox\"===t.type?t.checked:t.value},removeAttr:function(t){return this.each(function(e){t.split(\" \").forEach(function(t){3!==e.nodeType&&e.removeAttribute(t)})})},removeData:function(t){return this.each(function(e){t.split(\" \").forEach(function(t){3!==e.nodeType&&e.removeAttribute(\"data-\"+t)})})},dataset:function(e,i){return this.each(function(t){r[this.dataindex(t)][e]=i})},dataget:function(t){return r[this.dataindex(this.get())][t]},dataindex:function(t){var e=t[o],i=r.length;return e||(e=t[o]=i,r[e]={}),e},addClass:function(t){return this._eachClass(t,\"add\")},removeClass:function(t){return this._eachClass(t,\"remove\")},toggleClass:function(t){return this._eachClass(t,\"toggle\")},hasClass:function(e){return this.nodes.some(function(t){return!!t.classList&&t.classList.contains(e)})},empty:function(){return this.each(function(t){t.innerHTML=\"\"})},html:function(t){return void 0===t?this.get().innerHTML||\"\":this.empty().append(t)},text:function(e){return void 0===e?this.get().textContent||\"\":this.each(function(t){t.textContent=e})},after:function(t){return this._inject(t,function(t,e){if(\"string\"==typeof t)e.insertAdjacentHTML(\"afterend\",t);else if(null!==e.parentNode)for(var i=t instanceof Node?[t]:this._toArray(t).reverse(),s=0;s<i.length;s++)e.parentNode.insertBefore(i[s],e.nextSibling);return e})},before:function(t){return this._inject(t,function(t,e){if(\"string\"==typeof t)e.insertAdjacentHTML(\"beforebegin\",t);else for(var i=t instanceof Node?[t]:this._toArray(t),s=0;s<i.length;s++)e.parentNode.insertBefore(i[s],e);return e})},append:function(t){return this._inject(t,function(t,e){if(\"string\"==typeof t||\"number\"==typeof t)e.insertAdjacentHTML(\"beforeend\",t);else for(var i=t instanceof Node?[t]:this._toArray(t),s=0;s<i.length;s++)e.appendChild(i[s]);return e})},prepend:function(t){return this._inject(t,function(t,e){if(\"string\"==typeof t||\"number\"==typeof t)e.insertAdjacentHTML(\"afterbegin\",t);else for(var i=t instanceof Node?[t]:this._toArray(t).reverse(),s=0;s<i.length;s++)e.insertBefore(i[s],e.firstChild);return e})},wrap:function(t){return this._inject(t,function(t,e){var i=\"string\"==typeof t||\"number\"==typeof t?this.create(t)[0]:t instanceof Node?t:this._toArray(t)[0];return e.parentNode&&e.parentNode.insertBefore(i,e),i.appendChild(e),new c(i)})},unwrap:function(){return this.each(function(t){var e=new c(t);return e.replaceWith(e.contents())})},replaceWith:function(t){return this._inject(t,function(t,e){for(var i=document.createDocumentFragment(),s=\"string\"==typeof t||\"number\"==typeof t?this.create(t):t instanceof Node?[t]:this._toArray(t),n=0;n<s.length;n++)i.appendChild(s[n]);var r=i.childNodes[0];return e.parentNode&&e.parentNode.replaceChild(i,e),r})},remove:function(){return this.each(function(t){t.parentNode&&t.parentNode.removeChild(t)})},clone:function(i){var s=[];return this.each(function(t){var e=this._clone(t);i&&(e=this._cloneEvents(t,e)),s.push(e)}),new c(s)},show:function(){return this.each(function(t){if(t.style&&this._hasDisplayNone(t)){var e,i=t.getAttribute(\"domTargetShow\"),s=!!t.classList&&t.classList.contains(a),n=!!t.classList&&t.classList.contains(l);s?(e=a,t.classList.remove(a)):n?(e=l,t.classList.remove(l)):t.style.display=i||\"block\",e&&t.setAttribute(\"domTargetHide\",e),t.removeAttribute(\"domTargetShow\")}}.bind(this))},hide:function(){return this.each(function(t){if(t.style&&!this._hasDisplayNone(t)){var e=t.style.display,i=t.getAttribute(\"domTargetHide\");i===a?t.classList.add(a):i===l?t.classList.add(l):(\"block\"!==e&&t.setAttribute(\"domTargetShow\",e),t.style.display=\"none\"),t.removeAttribute(\"domTargetHide\")}})},scrollTop:function(t){var e=this.get(),i=e===window,s=9===e.nodeType,n=s?document.scrollingElement||document.body.parentNode||document.body||document.documentElement:e;if(void 0===t)return s?void 0!==window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop?document.body.scrollTop:0:i?window.pageYOffset:n.scrollTop;i?window.scrollTo(0,t):n.scrollTop=t},offset:function(){return this._getDim(\"Offset\")},position:function(){return this._getDim(\"Position\")},width:function(t,e){return this._getSize(\"width\",\"Width\",t,e)},height:function(t,e){return this._getSize(\"height\",\"Height\",t,e)},outerWidth:function(){return this._getInnerOrOuter(\"width\",\"outer\")},outerHeight:function(){return this._getInnerOrOuter(\"height\",\"outer\")},innerWidth:function(){return this._getInnerOrOuter(\"width\",\"inner\")},innerHeight:function(){return this._getInnerOrOuter(\"height\",\"inner\")},click:function(){return this._triggerEvent(\"click\")},focus:function(){return this._triggerEvent(\"focus\")},trigger:function(n){return this.each(function(t){for(var e=n.split(\" \"),i=0;i<e.length;i++){var s;try{s=new window.CustomEvent(e[i],{bubbles:!0,cancelable:!0})}catch(t){(s=document.createEvent(\"CustomEvent\")).initCustomEvent(e[i],!0,!0)}t.dispatchEvent(s)}})},on:function(r,o,a){return this.each(function(t){for(var e=r.split(\" \"),i=0;i<e.length;i++){var s=this._getEventName(e[i]),n=this._getEventNamespace(e[i]);o=a?this._getOneHandler(o,r):o,t.addEventListener(s,o),t._e=t._e||{},t._e[n]=t._e[n]||{},t._e[n][s]=t._e[n][s]||[],t._e[n][s].push(o)}})},one:function(t,e){return this.on(t,e,!0)},off:function(r,o){function a(t,e,i){return t===i}function l(t,e,i,s){return e===s}function h(t,e,i,s){return t===i&&e===s}function e(){return!0}return void 0===r?this.each(function(t){this._offEvent(t,!1,!1,o,e)}):this.each(function(t){for(var e=r.split(\" \"),i=0;i<e.length;i++){var s=this._getEventName(e[i]),n=this._getEventNamespace(e[i]);\"_events\"===n?this._offEvent(t,s,n,o,a):s||\"_events\"===n?this._offEvent(t,s,n,o,h):this._offEvent(t,s,n,o,l)}})},serialize:function(t){for(var e={},i=this.get().elements,s=0;s<i.length;s++){var n=i[s];if((!/(checkbox|radio)/.test(n.type)||n.checked)&&(n.name&&!n.disabled&&\"file\"!==n.type)){if(\"select-multiple\"===n.type)for(var r=0;r<n.options.length;r++){var o=n.options[r];o.selected&&(e[n.name]=o.value)}e[n.name]=this._isNumber(n.value)?parseFloat(n.value):this._getBooleanFromStr(n.value)}}return t?e:this._toParams(e)},ajax:function(t,e){if(void 0!==n){var i=this.attr(\"method\")||\"post\",s={url:this.attr(\"action\"),data:this.serialize(),success:t,error:e};return new n(i,s)}},_queryContext:function(t,e){return 3!==(e=this._getContext(e)).nodeType&&\"function\"==typeof e.querySelectorAll?e.querySelectorAll(t):[]},_query:function(t,e){if(e)return this._queryContext(t,e);if(/^[.#]?[\\w-]*$/.test(t)){if(\"#\"!==t[0])return\".\"===t[0]?document.getElementsByClassName(t.slice(1)):document.getElementsByTagName(t);var i=document.getElementById(t.slice(1));return i?[i]:[]}return document.querySelectorAll(t)},_getContext:function(t){return(t=\"string\"==typeof t?document.querySelector(t):t)&&t.sdom?t.get():t||document},_inject:function(t,e){for(var i=this.nodes.length,s=[];i--;){var n=\"function\"==typeof t?t.call(this,this.nodes[i]):t,r=0===i?n:this._clone(n),o=e.call(this,r,this.nodes[i]);o&&(o.sdom?s.push(o.get()):s.push(o))}return new c(s)},_cloneEvents:function(t,e){var i=t._e;if(i)for(var s in(e._e=i)._events)for(var n=0;n<i._events[s].length;n++)e.addEventListener(s,i._events[s][n]);return e},_clone:function(t){if(void 0!==t)return\"string\"==typeof t?t:t instanceof Node||t.nodeType?t.cloneNode(!0):\"length\"in t?[].map.call(this._toArray(t),function(t){return t.cloneNode(!0)}):void 0},_slice:function(t){return t&&0!==t.length?t.length?[].slice.call(t.nodes||t):[t]:[]},_eachClass:function(t,i){return this.each(function(e){if(t){t.split(\" \").forEach(function(t){e.classList&&e.classList[i](t)})}})},_triggerEvent:function(t){var e=this.get();return e&&3!==e.nodeType&&e[t](),this},_getOneHandler:function(t,e){var i=this;return function(){t.apply(this,arguments),i.off(e)}},_getEventNamespace:function(t){var e=t.split(\".\"),i=e[1]?e[1]:\"_events\";return e[2]?i+e[2]:i},_getEventName:function(t){return t.split(\".\")[0]},_offEvent:function(t,e,i,s,n){for(var r in t._e)for(var o in t._e[r])if(n(o,r,e,i))for(var a=t._e[r][o],l=0;l<a.length;l++)void 0!==s&&a[l].toString()!==s.toString()||(t.removeEventListener(o,a[l]),t._e[r][o].splice(l,1),0===t._e[r][o].length&&delete t._e[r][o],0===Object.keys(t._e[r]).length&&delete t._e[r])},_getInnerOrOuter:function(t,e){return this[t](void 0,e)},_getDocSize:function(t,e){var i=t.body,s=t.documentElement;return Math.max(i[\"scroll\"+e],i[\"offset\"+e],s[\"client\"+e],s[\"scroll\"+e],s[\"offset\"+e])},_getSize:function(e,t,i,s){if(void 0!==i)return this.each(function(t){i=parseFloat(i),i+=this._adjustResultHeightOrWidth(e,t,s||\"normal\"),new c(t).css(e,i+\"px\")}.bind(this));var n=this.get();return i=3===n.nodeType?0:9===n.nodeType?this._getDocSize(n,t):n===window?window[\"inner\"+t]:this._getHeightOrWidth(e,n,s||\"normal\"),Math.round(i)},_getHeightOrWidth:function(t,e,i){if(!e)return 0;var s=t.charAt(0).toUpperCase()+t.slice(1),n=0,r=getComputedStyle(e,null),o=new c(e),a=o.parents().filter(function(t){return 1===t.nodeType&&\"none\"===getComputedStyle(t,null).display&&t});if(\"none\"===r.display&&a.add(e),0!==a.length){var l=\"visibility: hidden !important; display: block !important;\",h=[];a.each(function(t){var e=new c(t),i=e.attr(\"style\");null!==i&&h.push(i),e.attr(\"style\",null!==i?i+\";\"+l:l)}),n=o.get()[\"offset\"+s]-this._adjustResultHeightOrWidth(t,e,i),a.each(function(t,e){var i=new c(t);void 0===h[e]?i.removeAttr(\"style\"):i.attr(\"style\",h[e])})}else n=e[\"offset\"+s]-this._adjustResultHeightOrWidth(t,e,i);return n},_adjustResultHeightOrWidth:function(t,e,i){if(!e||!1===i)return 0;var s=0,n=getComputedStyle(e,null),r=\"border-box\"===n.boxSizing;return\"height\"===t?((\"inner\"===i||\"normal\"===i&&r)&&(s+=(parseFloat(n.borderTopWidth)||0)+(parseFloat(n.borderBottomWidth)||0)),\"outer\"===i&&(s-=(parseFloat(n.marginTop)||0)+(parseFloat(n.marginBottom)||0))):((\"inner\"===i||\"normal\"===i&&r)&&(s+=(parseFloat(n.borderLeftWidth)||0)+(parseFloat(n.borderRightWidth)||0)),\"outer\"===i&&(s-=(parseFloat(n.marginLeft)||0)+(parseFloat(n.marginRight)||0))),s},_getDim:function(t){var e=this.get();return 3===e.nodeType?{top:0,left:0}:this[\"_get\"+t](e)},_getPosition:function(t){return{top:t.offsetTop,left:t.offsetLeft}},_getOffset:function(t){var e=t.getBoundingClientRect(),i=t.ownerDocument,s=i.documentElement,n=i.defaultView;return{top:e.top+n.pageYOffset-s.clientTop,left:e.left+n.pageXOffset-s.clientLeft}},_getSibling:function(e,i){var s,n=(e=e&&e.sdom?e.get():e)&&e.nodeType;return this.each(function(t){for(;t=t[i];)if(n&&t===e||new c(t).is(e))return void(s=t)}),new c(s)},_toArray:function(t){if(t instanceof NodeList){for(var e=[],i=0;i<t.length;i++)e[i]=t[i];return e}return void 0===t?[]:t.sdom?t.nodes:t},_toParams:function(t){var e=\"\";for(var i in t)e+=\"&\"+this._encodeUri(i)+\"=\"+this._encodeUri(t[i]);return e.replace(/^&/,\"\")},_toObject:function(t){return new Function(\"return \"+t)()},_encodeUri:function(t){return encodeURIComponent(t).replace(/!/g,\"%21\").replace(/'/g,\"%27\").replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\").replace(/\\*/g,\"%2A\").replace(/%20/g,\"+\")},_isNumber:function(t){return!isNaN(t)&&!isNaN(parseFloat(t))},_isObjectString:function(t){return-1!==t.search(/^{/)},_getBooleanFromStr:function(t){return\"true\"===t||\"false\"!==t&&t},_hasDisplayNone:function(t){return\"none\"===t.style.display||\"none\"===(t.currentStyle?t.currentStyle.display:getComputedStyle(t,null).display)}};function y(t,e){return i(t,e,[].slice.call(arguments,2))}var p=0;y.app=[],y.version=\"3.5.2\",y.options={},y.modules={},y.services={},y.classes={},y.plugins={},y.mixins={},y.modals={},y.lang={},y.dom=function(t,e){return new c(t,e)},y.ajax=s,y.Dom=c,y.keycodes={BACKSPACE:8,DELETE:46,UP:38,DOWN:40,ENTER:13,SPACE:32,ESC:27,TAB:9,CTRL:17,META:91,SHIFT:16,ALT:18,RIGHT:39,LEFT:37},y.env={plugin:\"plugins\",module:\"modules\",service:\"services\",class:\"classes\",mixin:\"mixins\"},void 0!==jQuery&&(jQuery.fn.redactor=function(t){return i(this.toArray(),t,[].slice.call(arguments,1))});var i=function(t,e,i){for(var s,n=\"redactor\",r=Array.isArray(t)?t:t&&t.nodeType?[t]:document.querySelectorAll(t),o=\"string\"==typeof e||\"function\"==typeof e,a=[],l=0;l<r.length;l++){var h=r[l],c=y.dom(h);if((s=c.dataget(n))||o||(s=new f(h,e,p),c.dataset(n,s),y.app[p]=s,p++),s&&o){var d,u=\"destroy\"===e;void 0!==(d=\"function\"==typeof(e=u?\"stop\":e)?e.apply(s,i):(i.unshift(e),s.api.apply(s,i)))&&a.push(d),u&&c.dataset(n,!1)}}return 0===a.length||1===a.length?0===a.length?s:a[0]:a};y.add=function(t,e,i){if(void 0!==y.env[t])if(i.translations&&(y.lang=y.extend(!0,{},y.lang,i.translations)),i.modals&&(y.modals=y.extend(!0,{},y.modals,i.modals)),\"mixin\"===t)y[y.env[t]][e]=i;else{function s(){}if((s.prototype=i).mixins)for(var n=0;n<i.mixins.length;n++)y.inherit(s,y.mixins[i.mixins[n]]);y[y.env[t]][e]=s}},y.addLang=function(t,e){void 0===y.lang[t]&&(y.lang[t]={}),y.lang[t]=y.extend(y.lang[t],e)},y.create=function(t){var e=t.split(\".\"),i=[].slice.call(arguments,1),s=\"classes\";void 0!==y.env[e[0]]&&(s=y.env[e[0]],t=e.slice(1).join(\".\"));var n=new y[s][t];if(n.init){var r=n.init.apply(n,i);return r||n}return n},y.inherit=function(t,e){function i(){}i.prototype=e;var s=new i;for(var n in t.prototype)t.prototype.__lookupGetter__(n)?s.__defineGetter__(n,t.prototype.__lookupGetter__(n)):s[n]=t.prototype[n];return t.prototype=s,t.prototype.super=e,t},y.error=function(t){throw t},y.extend=function(){var i={},s=!1,t=0,e=arguments.length;\"[object Boolean]\"===Object.prototype.toString.call(arguments[0])&&(s=arguments[0],t++);function n(t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(s&&\"[object Object]\"===Object.prototype.toString.call(t[e])?i[e]=y.extend(!0,i[e],t[e]):i[e]=t[e])}for(;t<e;t++){n(arguments[t])}return i},y.opts={animation:!0,lang:\"en\",direction:\"ltr\",spellcheck:!0,structure:!1,scrollTarget:!1,styles:!0,stylesClass:\"redactor-styles\",placeholder:!1,source:!0,showSource:!1,inline:!1,breakline:!1,markup:\"p\",enterKey:!0,clickToEdit:!1,clickToSave:!1,clickToCancel:!1,focus:!1,focusEnd:!1,minHeight:!1,maxHeight:!1,maxWidth:!1,plugins:[],callbacks:{},preClass:!1,preSpaces:4,tabindex:!1,tabAsSpaces:!1,tabKey:!0,autosave:!1,autosaveName:!1,autosaveData:!1,autosaveMethod:\"post\",toolbar:!0,toolbarFixed:!0,toolbarFixedTarget:document,toolbarFixedTopOffset:0,toolbarExternal:!1,toolbarContext:!0,air:!1,formatting:[\"p\",\"blockquote\",\"pre\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],formattingAdd:!1,formattingHide:!1,buttons:[\"html\",\"format\",\"bold\",\"italic\",\"deleted\",\"lists\",\"image\",\"file\",\"link\"],buttonsTextLabeled:!1,buttonsAdd:[],buttonsAddFirst:[],buttonsAddAfter:!1,buttonsAddBefore:!1,buttonsHide:[],buttonsHideOnMobile:[],imageUpload:!1,imageUploadParam:\"file\",imageData:!1,imageEditable:!0,imageCaption:!0,imageLink:!0,imagePosition:!1,imageResizable:!1,imageFloatMargin:\"10px\",imageFigure:!0,imageObserve:!0,imageSrcData:!1,fileUpload:!1,fileUploadParam:\"file\",fileData:!1,fileAttachment:!1,uploadData:!1,dragUpload:!0,multipleUpload:!0,clipboardUpload:!0,uploadBase64:!1,linkTarget:!1,linkTitle:!1,linkNewTab:!0,linkNofollow:!1,linkSize:30,linkValidation:!0,cleanOnEnter:!0,cleanInlineOnEnter:!1,paragraphize:!0,removeScript:!0,removeNewLines:!1,removeComments:!0,replaceTags:{b:\"strong\",i:\"em\",strike:\"del\"},pastePlainText:!1,pasteLinkTarget:!1,pasteImages:!0,pasteLinks:!0,pasteClean:!0,pasteKeepStyle:[],pasteKeepClass:[],pasteKeepAttrs:[\"td\",\"th\"],pasteBlockTags:[\"pre\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"table\",\"tbody\",\"thead\",\"tfoot\",\"th\",\"tr\",\"td\",\"ul\",\"ol\",\"li\",\"blockquote\",\"p\",\"figure\",\"figcaption\"],pasteInlineTags:[\"a\",\"img\",\"br\",\"strong\",\"ins\",\"code\",\"del\",\"span\",\"samp\",\"kbd\",\"sup\",\"sub\",\"mark\",\"var\",\"cite\",\"small\",\"b\",\"u\",\"em\",\"i\",\"abbr\"],activeButtons:{b:\"bold\",strong:\"bold\",i:\"italic\",em:\"italic\",del:\"deleted\",strike:\"deleted\",u:\"underline\"},activeButtonsAdd:{},activeButtonsObservers:{},autoparse:!0,autoparseStart:!0,autoparsePaste:!0,autoparseLinks:!0,autoparseImages:!0,autoparseVideo:!0,autoparseHttps:!1,shortcodes:{\"p.\":{format:\"p\"},\"quote.\":{format:\"blockquote\"},\"pre.\":{format:\"pre\"},\"h1.\":{format:\"h1\"},\"h2.\":{format:\"h2\"},\"h3.\":{format:\"h3\"},\"h4.\":{format:\"h4\"},\"h5.\":{format:\"h5\"},\"h6.\":{format:\"h6\"},\"*.\":{format:\"ul\"}},shortcodesAdd:!1,shortcuts:{\"ctrl+shift+m, meta+shift+m\":{api:\"module.inline.clearformat\"},\"ctrl+b, meta+b\":{api:\"module.inline.format\",args:\"b\"},\"ctrl+i, meta+i\":{api:\"module.inline.format\",args:\"i\"},\"ctrl+u, meta+u\":{api:\"module.inline.format\",args:\"u\"},\"ctrl+h, meta+h\":{api:\"module.inline.format\",args:\"sup\"},\"ctrl+l, meta+l\":{api:\"module.inline.format\",args:\"sub\"},\"ctrl+k, meta+k\":{api:\"module.link.open\"},\"ctrl+alt+0, meta+alt+0\":{api:\"module.block.format\",args:\"p\"},\"ctrl+alt+1, meta+alt+1\":{api:\"module.block.format\",args:\"h1\"},\"ctrl+alt+2, meta+alt+2\":{api:\"module.block.format\",args:\"h2\"},\"ctrl+alt+3, meta+alt+3\":{api:\"module.block.format\",args:\"h3\"},\"ctrl+alt+4, meta+alt+4\":{api:\"module.block.format\",args:\"h4\"},\"ctrl+alt+5, meta+alt+5\":{api:\"module.block.format\",args:\"h5\"},\"ctrl+alt+6, meta+alt+6\":{api:\"module.block.format\",args:\"h6\"},\"ctrl+shift+7, meta+shift+7\":{api:\"module.list.toggle\",args:\"ol\"},\"ctrl+shift+8, meta+shift+8\":{api:\"module.list.toggle\",args:\"ul\"}},shortcutsAdd:!1,grammarly:!0,notranslate:!1,bufferLimit:100,emptyHtml:\"<p></p>\",markerChar:\"\\ufeff\",imageTypes:[\"image/png\",\"image/jpeg\",\"image/gif\"],imageAttrs:[\"alt\",\"title\",\"src\",\"class\",\"width\",\"height\",\"srcset\"],inlineTags:[\"a\",\"span\",\"strong\",\"strike\",\"b\",\"u\",\"em\",\"i\",\"code\",\"del\",\"ins\",\"samp\",\"kbd\",\"sup\",\"sub\",\"mark\",\"var\",\"cite\",\"small\",\"abbr\"],blockTags:[\"pre\",\"ul\",\"ol\",\"li\",\"p\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"dl\",\"dt\",\"dd\",\"div\",\"table\",\"tbody\",\"thead\",\"tfoot\",\"tr\",\"th\",\"td\",\"blockquote\",\"output\",\"figcaption\",\"figure\",\"address\",\"section\",\"header\",\"footer\",\"aside\",\"article\",\"iframe\"],regex:{youtube:/^https?\\:\\/\\/(?:www\\.youtube(?:\\-nocookie)?\\.com\\/|m\\.youtube\\.com\\/|youtube\\.com\\/)?(?:ytscreeningroom\\?vi?=|youtu\\.be\\/|vi?\\/|user\\/.+\\/u\\/\\w{1,2}\\/|embed\\/|watch\\?(?:.*\\&)?vi?=|\\&vi?=|\\?(?:.*\\&)?vi?=)([^#\\&\\?\\n\\/<>\"']*)/gi,vimeo:/(http|https)?:\\/\\/(?:www.|player.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^/]*)\\/videos\\/|album\\/(?:\\d+)\\/video\\/|video\\/|)(\\d+)(?:\\/[a-zA-Z0-9_-]+)?/gi,imageurl:/((https?|www)[^\\s]+\\.)(jpe?g|png|gif)(\\?[^\\s-]+)?/gi,url:/https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z\\u00F0-\\u02AF0-9()!@:%_+.~#?&//=]*)/gi,aurl1:/(\\b(https?|ftp):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/gim,aurl2:/(^|[^\\/])(www\\.[\\S]+(\\b|$))/gim},input:!0,zindex:!1,modes:{inline:{pastePlainText:!0,pasteImages:!1,enterKey:!1,toolbar:!1,autoparse:!1,source:!1,showSource:!1,styles:!1,air:!1},original:{styles:!1}}},y.lang.en={format:\"Format\",image:\"Image\",file:\"File\",link:\"Link\",bold:\"Bold\",italic:\"Italic\",deleted:\"Strikethrough\",underline:\"Underline\",superscript:\"Superscript\",subscript:\"Subscript\",\"bold-abbr\":\"B\",\"italic-abbr\":\"I\",\"deleted-abbr\":\"S\",\"underline-abbr\":\"U\",\"superscript-abbr\":\"Sup\",\"subscript-abbr\":\"Sub\",lists:\"Lists\",\"link-insert\":\"Insert Link\",\"link-edit\":\"Edit Link\",\"link-in-new-tab\":\"Open link in new tab\",unlink:\"Unlink\",cancel:\"Cancel\",close:\"Close\",insert:\"Insert\",save:\"Save\",delete:\"Delete\",text:\"Text\",edit:\"Edit\",title:\"Alt\",paragraph:\"Normal text\",quote:\"Quote\",code:\"Code\",heading1:\"Heading 1\",heading2:\"Heading 2\",heading3:\"Heading 3\",heading4:\"Heading 4\",heading5:\"Heading 5\",heading6:\"Heading 6\",filename:\"Name\",optional:\"optional\",unorderedlist:\"Unordered List\",orderedlist:\"Ordered List\",outdent:\"Outdent\",indent:\"Indent\",horizontalrule:\"Line\",upload:\"Upload\",\"upload-label\":\"Drop files here or click to upload\",\"accessibility-help-label\":\"Rich text editor\",caption:\"Caption\",bulletslist:\"Bullets\",numberslist:\"Numbers\",\"image-position\":\"Position\",none:\"None\",left:\"Left\",right:\"Right\",center:\"Center\",undo:\"Undo\",redo:\"Redo\"},y.buttons={html:{title:\"HTML\",icon:!0,api:\"module.source.toggle\"},undo:{title:\"## undo ##\",icon:!0,api:\"module.buffer.undo\"},redo:{title:\"## redo ##\",icon:!0,api:\"module.buffer.redo\"},format:{title:\"## format ##\",icon:!0,dropdown:{p:{title:\"## paragraph ##\",api:\"module.block.format\",args:{tag:\"p\"}},blockquote:{title:\"## quote ##\",api:\"module.block.format\",args:{tag:\"blockquote\"}},pre:{title:\"## code ##\",api:\"module.block.format\",args:{tag:\"pre\"}},h1:{title:\"## heading1 ##\",api:\"module.block.format\",args:{tag:\"h1\"}},h2:{title:\"## heading2 ##\",api:\"module.block.format\",args:{tag:\"h2\"}},h3:{title:\"## heading3 ##\",api:\"module.block.format\",args:{tag:\"h3\"}},h4:{title:\"## heading4 ##\",api:\"module.block.format\",args:{tag:\"h4\"}},h5:{title:\"## heading5 ##\",api:\"module.block.format\",args:{tag:\"h5\"}},h6:{title:\"## heading6 ##\",api:\"module.block.format\",args:{tag:\"h6\"}}}},bold:{title:\"## bold-abbr ##\",icon:!0,tooltip:\"## bold ##\",api:\"module.inline.format\",args:{tag:\"b\"}},italic:{title:\"## italic-abbr ##\",icon:!0,tooltip:\"## italic ##\",api:\"module.inline.format\",args:{tag:\"i\"}},deleted:{title:\"## deleted-abbr ##\",icon:!0,tooltip:\"## deleted ##\",api:\"module.inline.format\",args:{tag:\"del\"}},underline:{title:\"## underline-abbr ##\",icon:!0,tooltip:\"## underline ##\",api:\"module.inline.format\",args:{tag:\"u\"}},sup:{title:\"## superscript-abbr ##\",icon:!0,tooltip:\"## superscript ##\",api:\"module.inline.format\",args:{tag:\"sup\"}},sub:{title:\"## subscript-abbr ##\",icon:!0,tooltip:\"## subscript ##\",api:\"module.inline.format\",args:{tag:\"sub\"}},lists:{title:\"## lists ##\",icon:!0,observe:\"list\",dropdown:{observe:\"list\",unorderedlist:{title:\"&bull; ## unorderedlist ##\",api:\"module.list.toggle\",args:\"ul\"},orderedlist:{title:\"1. ## orderedlist ##\",api:\"module.list.toggle\",args:\"ol\"},outdent:{title:\"< ## outdent ##\",api:\"module.list.outdent\"},indent:{title:\"> ## indent ##\",api:\"module.list.indent\"}}},ul:{title:\"&bull; ## bulletslist ##\",icon:!0,api:\"module.list.toggle\",observe:\"list\",args:\"ul\"},ol:{title:\"1. ## numberslist ##\",icon:!0,api:\"module.list.toggle\",observe:\"list\",args:\"ol\"},outdent:{title:\"## outdent ##\",icon:!0,api:\"module.list.outdent\",observe:\"list\"},indent:{title:\"## indent ##\",icon:!0,api:\"module.list.indent\",observe:\"list\"},image:{title:\"## image ##\",icon:!0,api:\"module.image.open\"},file:{title:\"## file ##\",icon:!0,api:\"module.file.open\"},link:{title:\"## link ##\",icon:!0,observe:\"link\",dropdown:{observe:\"link\",link:{title:\"## link-insert ##\",api:\"module.link.open\"},unlink:{title:\"## unlink ##\",api:\"module.link.unlink\"}}},line:{title:\"## horizontalrule ##\",icon:!0,api:\"module.line.insert\"}};var f=function(t,e,i){this.module={},this.plugin={},this.instances={},this.started=!1,this.stopped=!1,this.uuid=i,this.rootElement=t,this.rootOpts=e,this.dragInside=!1,this.dragComponentInside=!1,this.keycodes=y.keycodes,this.namespace=\"redactor\",this.$win=y.dom(window),this.$doc=y.dom(document),this.$body=y.dom(\"body\"),this.editorReadOnly=!1,this.opts=y.create(\"service.options\",e,t),this.lang=y.create(\"service.lang\",this),this.buildServices(),this.buildModules(),this.buildPlugins(),this.start()};f.prototype={start:function(){this.stopped=!1,this.broadcast(\"start\"),this.broadcast(\"startcode\"),this.opts.clickToEdit?this.broadcast(\"startclicktoedit\"):(this.broadcast(\"enable\"),this.opts.showSource&&this.broadcast(\"startcodeshow\"),this.broadcast(\"enablefocus\")),this.broadcast(\"started\"),this.started=!0},stop:function(){this.started=!1,this.stopped=!0,this.broadcast(\"stop\"),this.broadcast(\"disable\"),this.broadcast(\"stopped\")},isStarted:function(){return this.started},isStopped:function(){return this.stopped},buildServices:function(){var t=[\"options\",\"lang\"],e=[\"uuid\",\"keycodes\",\"opts\",\"lang\",\"$win\",\"$doc\",\"$body\"],i=[];for(var s in y.services)-1===t.indexOf(s)&&(this[s]=y.create(\"service.\"+s,this),i.push(s),e.push(s));for(var n=0;n<i.length;n++)for(var r=i[n],o=0;o<e.length;o++){var a=e[o];r!==a&&(this[r][a]=this[a])}},buildModules:function(){for(var t in y.modules)this.module[t]=y.create(\"module.\"+t,this),this.instances[t]=this.module[t]},buildPlugins:function(){for(var t=this.opts.plugins,e=0;e<t.length;e++){var i=t[e];void 0!==y.plugins[i]&&(this.plugin[i]=y.create(\"plugin.\"+i,this),this.instances[i]=this.plugin[i])}},isDragInside:function(){return this.dragInside},setDragInside:function(t){this.dragInside=t},isDragComponentInside:function(){return this.dragComponentInside},setDragComponentInside:function(t){this.dragComponentInside=t},getDragComponentInside:function(){return this.dragComponentInside},isReadOnly:function(){return this.editorReadOnly},enableReadOnly:function(){this.editorReadOnly=!0,this.broadcast(\"enablereadonly\"),this.component.clearActive(),this.toolbar.disableButtons()},disableReadOnly:function(){this.editorReadOnly=!1,this.broadcast(\"disablereadonly\"),this.toolbar.enableButtons()},callMessageHandler:function(t,e,i){var s,n=e.split(\".\");if(1===n.length)\"function\"==typeof t[\"on\"+e]&&(s=t[\"on\"+e].apply(t,i));else{n[0]=\"on\"+n[0];var r=this.utils.checkProperty(t,n);\"function\"==typeof r&&(s=r.apply(t,i))}return s},broadcast:function(t){var e,i=[].slice.call(arguments,1);for(var s in this.instances){var n=this.callMessageHandler(this.instances[s],t,i);void 0!==n&&(e=n)}var r=this.callback.trigger(t,i);return void 0!==e?e:r},on:function(t,e){this.callback.add(t,e)},off:function(t,e){this.callback.remove(t,e)},api:function(t){if((this.isStarted()||\"start\"===t)&&(!this.isReadOnly()||\"disableReadOnly\"===t)){this.broadcast(\"state\");var e=[].slice.call(arguments,1),i=t.split(\".\"),s=1===i.length,n=\"on\"===i[0]||\"off\"===i[0],r=!n&&2===i.length,o=\"plugin\"===i[0],a=\"module\"===i[0];if(s){if(\"function\"==typeof this[i[0]])return this.callInstanceMethod(this,i[0],e)}else{if(n)return\"on\"===i[0]?this.on(i[1],e[0]):this.off(i[1],e[0]||void 0);if(r){if(this.isInstanceExists(this,i[0]))return this.callInstanceMethod(this[i[0]],i[1],e);y.error(new Error('Service \"'+i[0]+'\" not found'))}else if(o){if(this.isInstanceExists(this.plugin,i[1]))return this.callInstanceMethod(this.plugin[i[1]],i[2],e);y.error(new Error('Plugin \"'+i[1]+'\" not found'))}else if(a){if(this.isInstanceExists(this.module,i[1]))return this.callInstanceMethod(this.module[i[1]],i[2],e);y.error(new Error('Module \"'+i[1]+'\" not found'))}}}},isInstanceExists:function(t,e){return void 0!==t[e]},callInstanceMethod:function(t,e,i){if(\"function\"==typeof t[e])return t[e].apply(t,i)}},y.add(\"mixin\",\"formatter\",{buildArgs:function(t){this.args={class:t.class||!1,style:t.style||!1,attr:t.attr||!1},this.args.class||this.args.style||this.args.attr||(this.args=!1)},applyArgs:function(t,e){return t=this.args?this[this.type](this.args,!1,t,e):this._clearAll(t,e)},clearClass:function(t,e){this.selection.save();var i=e?y.dom(e):this.getElements(t,!0);return i.removeAttr(\"class\"),e=this._unwrapSpanWithoutAttr(i.getAll()),this.selection.restore(),e},clearStyle:function(t,e){this.selection.save();var i=e?y.dom(e):this.getElements(t,!0);return i.removeAttr(\"style\"),e=this._unwrapSpanWithoutAttr(i.getAll()),this.selection.restore(),e},clearAttr:function(t,e){this.selection.save();var i=e?y.dom(e):this.getElements(t,!0);return this._removeAllAttr(i),e=this._unwrapSpanWithoutAttr(i.getAll()),this.selection.restore(),e},set:function(t,e,i,s){!1!==s&&this.selection.save();var n=i?y.dom(i):this.getElements(e);return t.class&&(n.removeAttr(\"class\"),n.addClass(t.class)),t.style&&(n.removeAttr(\"style\"),n.css(t.style),n.each(function(t){var e=y.dom(t);e.attr(\"data-redactor-style-cache\",e.attr(\"style\"))})),t.attr&&(this._removeAllAttr(n),n.attr(t.attr)),!1!==s&&this.selection.restore(),n.getAll()},toggle:function(t,e,i,s){!1!==s&&this.selection.save();var r,n=i?y.dom(i):this.getElements(e);return t.class&&(n.toggleClass(t.class),n.each(function(t){\"\"===t.className&&t.removeAttribute(\"class\")})),t.style&&(r=t.style,n.each(function(t){var e=y.dom(t);for(var i in r){var s=r[i],n=e.css(i);n=this.utils.isRgb(n)?this.utils.rgb2hex(n):n.replace(/\"/g,\"\"),s=this.utils.isRgb(s)?this.utils.rgb2hex(s):s.replace(/\"/g,\"\"),n=this.utils.hex2long(n),(\"string\"==typeof(s=this.utils.hex2long(s))?s.toLowerCase():s)===(\"string\"==typeof n?n.toLowerCase():n)?e.css(i,\"\"):e.css(i,s)}this._convertStyleQuotes(e),this.utils.removeEmptyAttr(t,\"style\")?e.removeAttr(\"data-redactor-style-cache\"):e.attr(\"data-redactor-style-cache\",e.attr(\"style\"))}.bind(this))),t.attr&&(r=t.attr,n.each(function(t){var e=y.dom(t);for(var i in r)e.attr(i)?e.removeAttr(i):e.attr(i,r[i])})),!1!==s&&this.selection.restore(),n.getAll()},add:function(t,e,i,s){!1!==s&&this.selection.save();var n=i?y.dom(i):this.getElements(e);if(t.class&&n.addClass(t.class),t.style){var r=t.style;n.each(function(t){var e=y.dom(t);e.css(r),e.attr(\"data-redactor-style-cache\",e.attr(\"style\")),this._convertStyleQuotes(e)}.bind(this))}return t.attr&&n.attr(t.attr),!1!==s&&this.selection.restore(),n.getAll()},remove:function(t,e,i,s){!1!==s&&this.selection.save();var n=i?y.dom(i):this.getElements(e);if(t.class&&(n.removeClass(t.class),n.each(function(t){\"\"===t.className&&t.removeAttribute(\"class\")})),t.style){var r=t.style;n.each(function(t){var e=y.dom(t);e.css(r,\"\"),this.utils.removeEmptyAttr(t,\"style\")?e.removeAttr(\"data-redactor-style-cache\"):e.attr(\"data-redactor-style-cache\",e.attr(\"style\"))}.bind(this))}return t.attr&&n.removeAttr(t.attr),i=this._unwrapSpanWithoutAttr(n.getAll()),!1!==s&&this.selection.restore(),i},_removeAllAttr:function(t){t.each(function(t){for(var e=t.attributes.length;0<e--;){var i=t.attributes[e],s=i.name;\"style\"!==s&&\"class\"!==s&&t.removeAttributeNode(i)}})},_convertStyleQuotes:function(t){var e=t.attr(\"style\");e&&t.attr(\"style\",e.replace(/\"/g,\"'\"))},_clearAll:function(t,e){!1!==e&&this.selection.save();for(var i=0;i<t.length;i++)for(var s=t[i];0<s.attributes.length;)s.removeAttribute(s.attributes[0].name);return t=this._unwrapSpanWithoutAttr(t),!1!==e&&this.selection.restore(),t},_unwrapSpanWithoutAttr:function(t){for(var e=[],i=0;i<t.length;i++){var s=t[i];s.attributes.length<=0&&3!==s.nodeType&&\"SPAN\"===s.tagName?y.dom(s).unwrap():e.push(s)}return e}}),y.add(\"mixin\",\"dom\",y.Dom.prototype),y.add(\"mixin\",\"component\",{get cmnt(){return!0}}),y.add(\"service\",\"options\",{init:function(t,e){var i=y.dom(e),s=y.extend({},y.opts,e?i.data():{},y.options);return s=y.extend(!0,s,t)}}),y.add(\"service\",\"lang\",{init:function(t){this.app=t,this.opts=t.opts,this.vars=this._build(this.opts.lang)},rebuild:function(t){this.opts.lang=t,this.vars=this._build(t)},extend:function(t){this.vars=y.extend(this.vars,t)},parse:function(t){if(void 0===t)return\"\";var e=t.match(/## (.*?) ##/g);if(e)for(var i=0;i<e.length;i++){var s=e[i].replace(/^##\\s/g,\"\").replace(/\\s##$/g,\"\");t=t.replace(e[i],this.get(s))}return t},get:function(t){var e=\"\";return void 0!==this.vars[t]?e=this.vars[t]:\"en\"!==this.opts.lang&&void 0!==y.lang.en[t]&&(e=y.lang.en[t]),e},_build:function(t){var e=y.lang.en;return\"en\"!==t&&(e=void 0!==y.lang[t]?y.lang[t]:e),e}}),y.add(\"service\",\"callback\",{init:function(t){this.app=t,this.opts=t.opts,this.callbacks={},this.opts.callbacks&&this._set(this.opts.callbacks,\"\")},stop:function(){this.callbacks={}},add:function(t,e){this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(e)},remove:function(t,e){if(void 0===e)delete this.callbacks[t];else{for(var i=0;i<this.callbacks[t].length;i++)this.callbacks[t].splice(i,1);0===Object.keys(this.callbacks[t]).length&&delete this.callbacks[t]}},trigger:function(t,e){var i=this._loop(t,e,this.callbacks);return void 0===i&&e&&!1!==e[0]?e[0]:i},_set:function(t,e){for(var i in t){var s=\"\"===e?i:e+\".\"+i;\"object\"==typeof t[i]?this._set(t[i],s):(this.callbacks[s]=[],this.callbacks[s].push(t[i]))}},_loop:function(t,e,i){var s;for(var n in i)if(t===n)for(var r=0;r<i[n].length;r++)s=i[n][r].apply(this.app,e);return s}}),y.add(\"service\",\"animate\",{init:function(t){this.animationOpt=t.opts.animation},start:function(t,e,i,s){var n={duration:!1,iterate:!1,delay:!1,timing:!1,prefix:\"redactor-\"};return n=\"function\"==typeof i?n:y.extend(n,i),new y.AnimatePlay(t,e,n,s=\"function\"==typeof i?i:s,this.animationOpt)},stop:function(t){this.$el=y.dom(t),this.$el.removeClass(\"redactor-animated\");var e=this.$el.attr(\"redactor-animate-effect\");this.$el.removeClass(e),this.$el.removeAttr(\"redactor-animate-effect\");var i=this.$el.attr(\"redactor-animate-hide\");i&&this.$el.addClass(i).removeAttr(\"redactor-animate-hide\"),this.$el.off(\"animationend webkitAnimationEnd\")}}),(y.AnimatePlay=function(t,e,i,s,n){return this.hidableEffects=[\"fadeOut\",\"flipOut\",\"slideUp\",\"zoomOut\",\"slideOutUp\",\"slideOutRight\",\"slideOutLeft\"],this.prefixes=[\"\",\"-webkit-\"],this.$el=y.dom(t),this.$body=y.dom(\"body\"),this.callback=s,this.animation=n?e:this.buildAnimationOff(e),this.defaults=i,\"slideUp\"===this.animation&&this.$el.height(this.$el.height()),this.isInanimate()?this.inanimate():this.animate()}).prototype={buildAnimationOff:function(t){return this.isHidable(t)?\"hide\":\"show\"},buildHideClass:function(){return\"redactor-animate-hide\"},isInanimate:function(){return\"show\"===this.animation||\"hide\"===this.animation},isAnimated:function(){return this.$el.hasClass(\"redactor-animated\")},isHidable:function(t){return-1!==this.hidableEffects.indexOf(t)},inanimate:function(){var t;return this.defaults.timing=\"linear\",\"show\"===this.animation?(t=this.buildHideClass(),this.$el.attr(\"redactor-animate-hide\",t),this.$el.removeClass(t)):(t=this.$el.attr(\"redactor-animate-hide\"),this.$el.addClass(t).removeAttr(\"redactor-animate-hide\")),\"function\"==typeof this.callback&&this.callback(this),this},animate:function(){var t=this.defaults.delay?this.defaults.delay:0;return setTimeout(function(){if(this.$body.addClass(\"no-scroll-x\"),this.$el.addClass(\"redactor-animated\"),!this.$el.attr(\"redactor-animate-hide\")){var t=this.buildHideClass();this.$el.attr(\"redactor-animate-hide\",t),this.$el.removeClass(t)}this.$el.addClass(this.defaults.prefix+this.animation),this.$el.attr(\"redactor-animate-effect\",this.defaults.prefix+this.animation),this.set(this.defaults.duration+\"s\",this.defaults.iterate,this.defaults.timing),this.complete()}.bind(this),1e3*t),this},set:function(t,e,i){for(var s=this.prefixes.length;s--;)!1===t&&\"\"!==t||this.$el.css(this.prefixes[s]+\"animation-duration\",t),!1===e&&\"\"!==e||this.$el.css(this.prefixes[s]+\"animation-iteration-count\",e),!1===i&&\"\"!==i||this.$el.css(this.prefixes[s]+\"animation-timing-function\",i)},clean:function(){this.$body.removeClass(\"no-scroll-x\"),this.$el.removeClass(\"redactor-animated\"),this.$el.removeClass(this.defaults.prefix+this.animation),this.$el.removeAttr(\"redactor-animate-effect\"),this.set(\"\",\"\",\"\")},complete:function(){this.$el.one(\"animationend webkitAnimationEnd\",function(){if(this.$el.hasClass(this.defaults.prefix+this.animation)&&this.clean(),this.isHidable(this.animation)){var t=this.$el.attr(\"redactor-animate-hide\");this.$el.addClass(t).removeAttr(\"redactor-animate-hide\")}\"slideUp\"===this.animation&&this.$el.height(\"\"),\"function\"==typeof this.callback&&this.callback(this.$el)}.bind(this))}},y.add(\"service\",\"caret\",{init:function(t){this.app=t},setStart:function(t){this._setCaret(\"Start\",t)},setEnd:function(t){this._setCaret(\"End\",t)},setBefore:function(t){this._setCaret(\"Before\",t)},setAfter:function(t){this._setCaret(\"After\",t)},isStart:function(t){return this._isStartOrEnd(t,\"First\")},isEnd:function(t){return this._isStartOrEnd(t,\"Last\")},setAtEnd:function(t){var e=this.inspector.parse(t).getTag(),i=document.createRange();if(this._isInPage(t)){if(\"a\"===e){var s=this.utils.createInvisibleChar();y.dom(t).after(s),i.selectNodeContents(s),i.collapse(!0)}else i.selectNodeContents(t),i.collapse(!1);this.selection.setRange(i)}},setAtStart:function(t){var e=document.createRange(),i=this.inspector.parse(t);if(this._isInPage(t)){if(e.setStart(t,0),e.collapse(!0),i.isInline()){var s=this.utils.createInvisibleChar();e.insertNode(s),e.selectNodeContents(s),e.collapse(!1)}this.selection.setRange(e)}},setAtBefore:function(t){var e=this.inspector.parse(t),i=document.createRange();if(this._isInPage(t)){if(i.setStartBefore(t),i.collapse(!0),e.isInline()){var s=this.utils.createInvisibleChar();t.parentNode.insertBefore(s,t),i.selectNodeContents(s),i.collapse(!1)}this.selection.setRange(i)}},setAtAfter:function(t){var e=document.createRange();if(this._isInPage(t)){e.setStartAfter(t),e.collapse(!0);var i=this.utils.createInvisibleChar();e.insertNode(i),e.selectNodeContents(i),e.collapse(!1),this.selection.setRange(e)}},setAtPrev:function(t){var e=t.previousSibling;(e=e&&(3===e.nodeType&&this._isEmptyTextNode(e)?e.previousElementSibling:e))&&this.setEnd(e)},setAtNext:function(t){var e=t.nextSibling;(e=e&&(3===e.nodeType&&this._isEmptyTextNode(e)?e.nextElementSibling:e))&&this.setStart(e)},_setCaret:function(t,e){var i=this.inspector.parse(e),s=i.getNode();s&&(this.component.clearActive(),this[\"_set\"+t](s,i,i.getTag()))},_setStart:function(t,e,i){if(e.isText())return this.editor.focus(),this.setAtStart(t);if(\"ul\"===i||\"ol\"===i){t=e.findFirstNode(\"li\");var s=this.utils.getFirstElement(t),n=this.inspector.parse(s);if(s&&n.isComponent())return this.setStart(n.getComponent())}else if(\"dl\"===i)t=e.findFirstNode(\"dt\");else{if(\"br\"===i||\"hr\"===i)return this.setBefore(t);if(\"td\"===i||\"th\"===i){var r=e.getFirstElement(t);if(r)return this.setStart(r)}else{if(\"table\"===i||\"tr\"===i)return this.setStart(e.findFirstNode(\"th, td\"));if(e.isComponentType(\"code\")&&!e.isFigcaption()){var o=e.findLastNode(\"pre, code\");return this.editor.focus(),this.setAtStart(o)}if(\"figure\"===i&&e.isComponentType(\"table\")){var a=e.getTable(),l=this.inspector.parse(a);return this.setStart(l.findFirstNode(\"th, td\"))}if(!e.isComponentType(\"table\")&&e.isComponent()&&!e.isFigcaption())return this.component.setActive(t)}}this.editor.focus(),this._setInline(t,\"Start\")||this.setAtStart(t)},_setEnd:function(t,e,i){if(e.isText())return this.editor.focus(),this.setAtEnd(t);if(\"ul\"===i||\"ol\"===i){t=e.findLastNode(\"li\");var s=this.utils.getLastElement(t),n=this.inspector.parse(s);if(s&&n.isComponent())return this.setEnd(n.getComponent())}else if(\"dl\"===i)t=e.findLastNode(\"dd\");else{if(\"br\"===i||\"hr\"===i)return this.setAfter(t);if(\"td\"===i||\"th\"===i){var r=e.getLastElement();if(r)return this.setEnd(r)}else{if(\"table\"===i||\"tr\"===i)return this.setEnd(e.findLastNode(\"th, td\"));if(e.isComponentType(\"code\")&&!e.isFigcaption()){var o=e.findLastNode(\"pre, code\");return this.editor.focus(),this.setAtEnd(o)}if(\"figure\"===i&&e.isComponentType(\"table\")){var a=e.getTable(),l=this.inspector.parse(a);return this.setEnd(l.findLastNode(\"th, td\"))}if(!e.isComponentType(\"table\")&&e.isComponent()&&!e.isFigcaption())return this.component.setActive(t)}}if(this.editor.focus(),!this._setInline(t,\"End\")){if(this.utils.isEmpty(t))return this.setStart(t);this.setAtEnd(t)}},_setBefore:function(t,e,i){return 3===t.nodeType?this.setAtBefore(t):e.isInline()?this.setAtBefore(t):e.isFirstTableCell()?this.setAtPrev(e.getComponent()):\"td\"===i||\"th\"===i?this.setAtPrev(t):e.isFirstListItem()?this.setAtPrev(e.getList()):e.isFigcaption()?this.setStart(e.getComponent()):!e.isComponentType(\"table\")&&e.isComponent()?this.setAtPrev(e.getComponent()):e.isBlock()?this.setAtPrev(t):(this.editor.focus(),void this.setAtBefore(t))},_setAfter:function(t,e,i){return 3===t.nodeType?this.setAtAfter(t):e.isInline()?this.setAtAfter(t):e.isLastTableCell()?this.setAtNext(e.getComponent()):\"td\"===i||\"th\"===i?this.setAtNext(t):e.isFirstListItem()?this.setAtNext(e.getList()):!e.isComponentType(\"table\")&&e.isComponent()?this.setAtNext(e.getComponent()):e.isBlock()?this.setAtNext(t):(this.editor.focus(),void this.setAtAfter(t))},_setInline:function(t,e){var i=this._hasInlineChild(t,\"Start\"===e?\"first\":\"last\");if(i)return\"Start\"===e?this.setStart(i):this.setEnd(i),!0},_isStartOrEnd:function(t,e){var i=this.utils.getNode(t);if(!i)return!1;var s=this.inspector.parse(i);if((i=this._getStartEndNode(i,s,e))&&3!==i.nodeType&&\"LI\"!==i.tagName){var n=3===i.nodeType?i.textContent:i.innerHTML;if(\"\"===(n=this.utils.trimSpaces(n)))return!0}if(!s.isFigcaption()&&s.isComponent()&&!s.isComponentEditable())return!0;var r=this.offset.get(i,!0);return!!r&&(\"First\"===e?0===r.start:r.end===this.offset.size(i,!0))},_isInPage:function(t){return!(!t||!t.nodeType)&&(t!==document.body&&document.body.contains(t))},_hasInlineChild:function(t,e){var i=this.inspector.parse(t),s=\"first\"===e?i.getFirstNode():i.getLastNode(),n=y.dom(s);if(s&&3!==s.nodeType&&this.inspector.isInlineTag(s.tagName)&&!n.hasClass(\"redactor-component\")&&!n.hasClass(\"non-editable\"))return s},_isEmptyTextNode:function(t){var e=t.textContent.trim().replace(/\\n/,\"\");return\"\"===(e=this.utils.removeInvisibleChars(e))},_getStartEndNode:function(t,e,i){return e.isFigcaption()?t=e.getFigcaption():e.isTable()?t=e[\"find\"+i+\"Node\"](\"th, td\"):e.isList()?t=e[\"find\"+i+\"Node\"](\"li\"):e.isComponentType(\"code\")&&(t=e.findLastNode(\"pre, code\")),t}});var h=function(t){return document.getSelection().containsNode(t,!0)};\"containsNode\"in Selection.prototype||(h=function(t){var e=document.getSelection(),i=e.anchorNode.parentNode,s=e.focusNode.parentNode,n=e.getRangeAt(0).getBoundingClientRect(),r=t.getBoundingClientRect();return!!y.dom(i).closest(t).length||(!!y.dom(s).closest(t).length||n.top<r.top&&n.height>r.height)}),y.add(\"service\",\"selection\",{init:function(t){this.app=t},is:function(){var t=this.get();if(t){var e=t.anchorNode;return 0!==y.dom(e).closest(\".redactor-in-\"+this.uuid).length||e===this.editor.getElement().get()}return!1},isCollapsed:function(){var t=this.get(),e=this.getRange();return!(!t||!t.isCollapsed)||!(!e||0!==e.toString().length)},isBackwards:function(){var t=!1,e=this.get();if(e&&!e.isCollapsed){var i=document.createRange();i.setStart(e.anchorNode,e.anchorOffset),i.setEnd(e.focusNode,e.focusOffset),t=i.collapsed,i.detach()}return t},isIn:function(t){var e=y.dom(t).get(),i=this.getCurrent();return!(!i||!e)&&e.contains(i)},isText:function(){var t=this.get();if(t){var e=t.anchorNode,i=this.getBlock(e),s=this.getBlocks();if(i&&this.inspector.isTableCellTag(i.tagName)||!1===i&&0===s.length)return!0}return!1},isAll:function(t){var e=this.utils.getNode(t);if(!e)return!1;var i=this.editor.isEditor(e),s=this.inspector.parse(e);if(!s.isFigcaption()&&this.component.isNonEditable(e)&&this.component.isActive(e))return!0;if(i){var n=this.editor.getElement().html().replace(/<p><\\/p>$/i,\"\");if(this.getHtml(!1).length!==n.length)return!1}if(i&&this.editor.isEmpty()||this.isCollapsed())return!1;var r=this.offset.get(e,!0),o=this.offset.size(e,!0);return!i&&s.isComponentType(\"code\")&&(o=this.getText().trim().length),!(!r||0!==r.start||r.end!==o)},hasNonEditable:function(){var t=this.getHtml(),e=y.dom(\"<div>\").html(t);return!this.isCollapsed()&&0!==e.find(\".non-editable\").length},setRange:function(t){var e=window.getSelection();e.removeAllRanges(),e.addRange(t)},setAll:function(t){var e=this.utils.getNode(t);if(e){var i=this.inspector.parse(e);if(this.component.clearActive(),this.editor.focus(),this.editor.saveScroll(),this.editor.disableNonEditables(),e&&\"TABLE\"===e.tagName){var s=i.findFirstNode(\"td, th\"),n=i.findLastNode(\"td, th\");y.dom(s).prepend(this.marker.build(\"start\")),y.dom(n).append(this.marker.build(\"end\")),this.restoreMarkers()}else if(!i.isFigcaption()&&this.component.isNonEditable(e))this.component.setActive(e);else{i.isComponentType(\"code\")&&(e=i.getComponentCodeElement()).focus();var r=document.createRange();r.selectNodeContents(e),this.setRange(r)}this.editor.enableNonEditables(),this.editor.restoreScroll()}},get:function(){var t=window.getSelection();return 0<t.rangeCount?t:null},getRange:function(){var t=this.get();return t&&t.getRangeAt(0)?t.getRangeAt(0):null},getTextBeforeCaret:function(t){t=void 0===t?1:t;var e=this.editor.getElement().get(),i=this.getRange(),s=!1;return i&&((i=i.cloneRange()).collapse(!0),i.setStart(e,0),s=i.toString().slice(-t)),s},getTextAfterCaret:function(t){t=void 0===t?1:t;var e=this.editor.getElement().get(),i=this.getRange(),s=!1;if(i){var n=i.cloneRange();n.selectNodeContents(e),n.setStart(i.endContainer,i.endOffset),s=n.toString().slice(0,t)}return s},getPosition:function(){var t=this.getRange(),e={top:0,left:0,width:0,height:0};if(window.getSelection&&t.getBoundingClientRect){var i=(t=t.cloneRange()).startOffset-1;t.setStart(t.startContainer,i<0?0:i);var s=t.getBoundingClientRect();e={top:s.top,left:s.left,width:s.right-s.left,height:s.bottom-s.top}}return e},getCurrent:function(){var t=!1,e=this.get(),i=this.component.getActive();return i?t=i:e&&this.is()&&(t=e.anchorNode!==this.editor.getElement().get()&&e.anchorNode),t},getParent:function(){var t=!1,e=this.getCurrent();if(e){var i=e.parentNode;t=i!==this.editor.getElement().get()&&i}return t},getElement:function(t){for(var e=t||this.getCurrent();e;){var i=this.inspector.parse(e);if(i.isElement()&&i.isInEditor())return e;e=e.parentNode}return!1},getInline:function(t){for(var e=t||this.getCurrent(),i=!1;e;)this._isInlineNode(e)&&(i=e),e=e.parentNode;return i},getInlineFirst:function(t){for(var e=t||this.getCurrent();e;){if(this._isInlineNode(e))return e;e=e.parentNode}return!1},getInlineAll:function(t){for(var e=t||this.getCurrent(),i=[];e;)this._isInlineNode(e)&&i.push(e),e=e.parentNode;return i},getBlock:function(t){for(var e=t||this.getCurrent();e;){var i=this.inspector.parse(e);if(this.inspector.isBlockTag(e.tagName)&&i.isInEditor(e))return e;e=e.parentNode}return!1},getInlinesAllSelected:function(t){if(this.isAll())return[];var e=this.getInlines({all:!0,inside:!0}),i=this.getText().replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\"),s=[];if(\"\"===i)s=e;else if(1<e.length)for(var n=0;n<e.length;n++)this._isTextSelected(e[n],i)&&s.push(e[n]);else 1===e.length&&this._isTextSelected(e[0],i)&&(s=e);return s=t&&t.tags?this._filterNodesByTags(s,t.tags):s},getInlines:function(t){for(var e=this.getNodes(),i=[],s=0;s<e.length;s++){var n;if(t&&t.all)for(n=e[s];n;)this._isInlineNode(n)&&!this._isInNodesArray(i,n)&&i.push(n),n=n.parentNode;else(n=this.getInline(e[s]))&&!this._isInNodesArray(i,n)&&i.push(n)}return i=t&&t.tags?this._filterNodesByTags(i,t.tags):i,i=t&&t.inside?this._filterInlinesInside(i,t):i},getBlocks:function(t){var e=this.getNodes(),i=this.getBlock();e=0===e.length&&i?[i]:e;for(var s=[],n=0;n<e.length;n++){var r=this.getBlock(e[n]);y.dom(r).hasClass(\"non-editable\")||r&&!this._isInNodesArray(s,r)&&s.push(r)}return s=t&&t.tags?this._filterNodesByTags(s,t.tags):s,s=t&&t.first?this._filterBlocksFirst(s,t):s},getElements:function(t){var e=this.getNodes({textnodes:!1}),i=this.getBlock();e=0===e.length&&i?[i]:e;for(var s=[],n=0;n<e.length;n++)this._isInNodesArray(s,e[n])||s.push(e[n]);return s=t&&t.tags?this._filterNodesByTags(s,t.tags):s},getNodes:function(t){var e=[],i=this.component.getActive();if(i)e=this._getNodesComponent(i);else if(this.isCollapsed()){var s=this.getCurrent();e=s?[s]:[]}else this.is()&&!i&&(e=this._getRangeSelectedNodes());return e=this._filterServicesNodes(e),e=this._filterEditor(e),e=t&&t.tags?this._filterNodesByTags(e,t.tags):e,e=t&&t.textnodes?this._filterNodesTexts(e,t):e,e=t&&!t.textnodes?this._filterNodesElements(e):e},getText:function(){var t=this.get();return t?this.utils.removeInvisibleChars(t.toString()):\"\"},getHtml:function(t){var e=\"\",i=this.get();if(i){for(var s=document.createElement(\"div\"),n=i.rangeCount,r=0;r<n;++r)s.appendChild(i.getRangeAt(r).cloneContents());e=s.innerHTML,e=(e=!1!==t?this.cleaner.output(e):e).replace(/<p><\\/p>$/i,\"\")}return e},clear:function(){this.component.clearActive(),this.get().removeAllRanges()},collapseToStart:function(){var t=this.get();t&&!t.isCollapsed&&t.collapseToStart()},collapseToEnd:function(){var t=this.get();t&&!t.isCollapsed&&t.collapseToEnd()},saveActiveComponent:function(){var t=this.component.getActive();return!!t&&(this.savedComponent=t,!0)},restoreActiveComponent:function(){return!!this.savedComponent&&(this.component.setActive(this.savedComponent),!0)},save:function(){this._clearSaved();var t=this.getElement();!t||-1===[\"TD\",\"TH\",\"P\",\"DIV\",\"PRE\",\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\",\"LI\",\"BLOCKQUOTE\"].indexOf(t.tagName)||\"\"!==t.innerHTML&&\"<br>\"!==t.innerHTML?this.saveActiveComponent()||(this.saved=this.offset.get()):this.savedElement=t},restore:function(){(this.saved||this.savedComponent||this.savedElement)&&(this.editor.saveScroll(),this.savedElement?this.caret.setStart(this.savedElement):this.restoreActiveComponent()||this.offset.set(this.saved),this._clearSaved(),this.editor.restoreScroll())},saveMarkers:function(){this._clearSaved(),this.saveActiveComponent()||this.marker.insert()},restoreMarkers:function(){this.editor.saveScroll(),this.restoreActiveComponent()||this.marker.restore(),this._clearSaved(),this.editor.restoreScroll()},_getNextNode:function(t){if(t.hasChildNodes())return t.firstChild;for(;t&&!t.nextSibling;)t=t.parentNode;return t?t.nextSibling:null},_getNodesComponent:function(t){var e=this.getCurrent(),i=this.inspector.parse(e);return i.isFigcaption()?[i.getFigcaption()]:[t]},_getRangeSelectedNodes:function(){var t=[],e=this.getRange(),i=e.startContainer,s=e.startContainer,n=e.endContainer,r=this.editor.getElement();if(s===r.get()&&this.isAll())t=this.utils.getChildNodes(r);else if(i===n)t=[i];else{for(;i&&i!==n;)t.push(i=this._getNextNode(i));for(i=e.startContainer;i&&i!==e.commonAncestorContainer;)t.unshift(i),i=i.parentNode}return t},_isInNodesArray:function(t,e){return-1!==t.indexOf(e)},_filterEditor:function(t){for(var e=[],i=0;i<t.length;i++){this.inspector.parse(t[i]).isInEditor()&&e.push(t[i])}return e},_filterServicesNodes:function(t){for(var e=[],i=0;i<t.length;i++){var s=y.dom(t[i]),n=!1;t[i]&&3===t[i].nodeType&&this.utils.isEmpty(t[i])&&(n=!0),(s.hasClass(\"redactor-script-tag\")||s.hasClass(\"redactor-component-caret\")||s.hasClass(\"redactor-selection-marker\")||s.hasClass(\"non-editable\"))&&(n=!0),n||e.push(t[i])}return e},_filterNodesTexts:function(t,e){for(var i=[],s=0;s<t.length;s++){if(3===t[s].nodeType||e.keepbr&&\"BR\"===t[s].tagName)this.getInline(t[s])&&e&&!1===e.inline||i.push(t[s])}return i},_filterNodesElements:function(t){for(var e=[],i=0;i<t.length;i++)3!==t[i].nodeType&&e.push(t[i]);return e},_filterNodesByTags:function(t,e,i){for(var s=[],n=0;n<t.length;n++)if(i&&3===t[n].nodeType)s.push(t[n]);else if(3!==t[n].nodeType){var r=t[n].tagName.toLowerCase();-1!==e.indexOf(r.toLowerCase())&&s.push(t[n])}return s},_filterBlocksFirst:function(t){for(var e=[],i=0;i<t.length;i++){var s=y.dom(t[i]),n=s.parent().get(),r=s.parent().hasClass(\"redactor-in\"),o=n&&(\"TD\"===n.tagName||\"TH\"===n.tagName);(r||o)&&e.push(t[i])}return e},_filterInlinesInside:function(t){for(var e=[],i=0;i<t.length;i++)h(t[i],!0)&&e.push(t[i]);return e},_isTextSelected:function(t,e){var i=9!==t.nodeType?this.utils.removeInvisibleChars(t.textContent):\"\";return e===i||-1!==i.search(e)||-1!==e.search(new RegExp(\"^\"+this.utils.escapeRegExp(i)+\"$\"))},_isInlineNode:function(t){var e=this.inspector.parse(t);return this.inspector.isInlineTag(t.tagName)&&e.isInEditor()},_clearSaved:function(){this.saved=!1,this.savedComponent=!1,this.savedElement=!1}}),y.add(\"service\",\"element\",{init:function(t){this.app=t,this.rootElement=t.rootElement,this.$element={},this.type=\"inline\"},start:function(){this._build(),this._buildType()},isType:function(t){return t===this.type},getType:function(){return this.type},getElement:function(){return this.$element},_build:function(){this.$element=y.dom(this.rootElement)},_buildType:function(){var t=this.$element.get().tagName;this.type=\"TEXTAREA\"===t?\"textarea\":this.type,this.type=\"DIV\"===t?\"div\":this.type,this.type=this.opts.inline?\"inline\":this.type}}),y.add(\"service\",\"editor\",{init:function(t){this.app=t,this.scrolltop=!1,this.pasting=!1},start:function(){this._build()},focus:function(){this.isFocus()||this._isContenteditableFocus()||(this.saveScroll(),this.$editor.focus(),this.restoreScroll())},startFocus:function(){this.caret.setStart(this.getFirstNode())},endFocus:function(){this.caret.setEnd(this.getLastNode())},isPasting:function(){return this.pasting},enablePasting:function(){this.pasting=!0},disablePasting:function(){this.pasting=!1},saveScroll:function(){this.scrolltop=this._getScrollTarget().scrollTop(),this.opts.maxHeight&&(this.scrolltopin=this.$editor.scrollTop())},restoreScroll:function(){!1!==this.scrolltop&&(this._getScrollTarget().scrollTop(this.scrolltop),this.scrolltop=!1),this.scrolltopin&&(this.$editor.scrollTop(this.scrolltopin),this.scrolltopin=!1)},disableNonEditables:function(){this.$noneditables=this.$editor.find(\"[contenteditable=false]\"),this.$noneditables.attr(\"contenteditable\",!0)},enableNonEditables:function(){this.$noneditables&&setTimeout(function(){this.$noneditables.attr(\"contenteditable\",!1)}.bind(this),1)},getFirstNode:function(){return this.$editor.contents()[0]},getLastNode:function(){var t=this.$editor.contents();return t[t.length-1]},isSourceMode:function(){return this.source.getElement().hasClass(\"redactor-source-open\")},isEditor:function(t){return y.dom(t).get()===this.$editor.get()},isEmpty:function(t){return this.utils.isEmptyHtml(this.$editor.html(),!1,t)},isFocus:function(){var t=y.dom(document.activeElement);return 0!==this.$editor.find(\".redactor-component-active\").length||0!==t.closest(\".redactor-in-\"+this.uuid).length},setEmpty:function(){this.$editor.html(this.opts.emptyHtml)},getElement:function(){return this.$editor},_build:function(){var t=this.element.getElement(),e=this.element.isType(\"textarea\")?\"<div>\":t.get();this.$editor=y.dom(e)},_getScrollTarget:function(){var t=this.$doc;return t=this.opts.toolbarFixedTarget!==document?y.dom(this.opts.toolbarFixedTarget):this.opts.scrollTarget?y.dom(this.opts.scrollTarget):t},_isContenteditableFocus:function(){var t=this.selection.getBlock();return 0!==(t?y.dom(t).closest(\"[contenteditable=true]\").not(\".redactor-in\"):[]).length}}),y.add(\"service\",\"container\",{init:function(t){this.app=t},start:function(){this._build()},getElement:function(){return this.$container},_build:function(){var t=this.element.isType(\"inline\")?\"<span>\":\"<div>\";this.$container=y.dom(t)}}),y.add(\"service\",\"source\",{init:function(t){this.app=t,this.$source={},this.content=\"\"},start:function(){this._build(),this._buildName(),this._buildStartedContent()},getElement:function(){return this.$source},getCode:function(){return this.$source.val()},getName:function(){return this.$source.attr(\"name\")},getStartedContent:function(){return this.content},setCode:function(t){return this.insertion.set(t,!0,!1)},isNameGenerated:function(){return this.name},rebuildStartedContent:function(){this._buildStartedContent()},_build:function(){var t=this.element.getElement(),e=this.element.isType(\"textarea\")?t.get():\"<textarea>\";this.$source=y.dom(e)},_buildName:function(){var t=this.element.getElement();this.name=t.attr(\"name\"),this.$source.attr(\"name\",this.name?this.name:\"content-\"+this.uuid)},_buildStartedContent:function(){var t=this.element.getElement(),e=this.element.isType(\"textarea\")?t.val():t.html();this.content=e.trim()}}),y.add(\"service\",\"statusbar\",{init:function(t){this.app=t,this.$statusbar={},this.items=[]},start:function(){this.$statusbar=y.dom(\"<ul>\"),this.$statusbar.attr(\"dir\",this.opts.direction)},add:function(t,e){return this.update(t,e)},update:function(t,e){var i;return void 0!==this.items[t]?i=this.items[t]:(i=y.dom(\"<li>\"),this.$statusbar.append(i),this.items[t]=i),i.html(e)},get:function(t){return!!this.items[t]&&this.items[t]},remove:function(t){this.items[t]&&(this.items[t].remove(),delete this.items[t])},getItems:function(){return this.items},removeItems:function(){this.items={},this.$statusbar.html(\"\")},getElement:function(){return this.$statusbar}}),y.add(\"service\",\"toolbar\",{init:function(t){this.app=t,this.buttons=[],this.dropdownOpened=!1,this.buttonsObservers={}},start:function(){this.is()&&(this.opts.activeButtons=this.opts.activeButtonsAdd?this._extendActiveButtons():this.opts.activeButtons,this.create())},stopObservers:function(){this.buttonsObservers={}},create:function(){this.$wrapper=y.dom(\"<div>\"),this.$toolbar=y.dom(\"<div>\")},observe:function(){if(this.is()){var t,e;for(var i in this.setButtonsInactive(),this.buttonsObservers)e=this.buttonsObservers[i],t=this.getButton(i),this.app.broadcast(\"button.\"+e+\".observe\",t);var s=this.opts.activeButtons,n=this.selection.getInlinesAllSelected(),r=this.selection.getInline(),o=this.selection.getInlineAll();this.selection.isCollapsed()&&(r&&n.push(r),0!==o.length&&(n=n.concat(o)));var a=this._inlinesToTags(n);for(var l in s)-1!==a.indexOf(l)&&(t=this.getButton(s[l]))&&t.setActive()}},is:function(){return!(!this.opts.toolbar||this.detector.isMobile()&&this.opts.air)},isAir:function(){return!!this.is()&&this.$toolbar.hasClass(\"redactor-air\")},isFixed:function(){return!!this.is()&&this.$toolbar.hasClass(\"redactor-toolbar-fixed\")},isContextBar:function(){return this.$body.find(\"#redactor-context-toolbar-\"+this.uuid).hasClass(\"open\")},isTarget:function(){return this.opts.toolbarFixedTarget!==document},getElement:function(){return this.$toolbar},getWrapper:function(){return this.$wrapper},getDropdown:function(){return this.dropdownOpened},getTargetElement:function(){return y.dom(this.opts.toolbarFixedTarget)},getButton:function(t){var e=this._findButton(\".re-\"+t);return 0!==e.length&&e.dataget(\"data-button-instance\")},getButtons:function(){var i=[];return this._findButtons().each(function(t){var e=y.dom(t);i.push(e.dataget(\"data-button-instance\"))}),i},getButtonsKeys:function(){var i=[];return this._findButtons().each(function(t){var e=y.dom(t);i.push(e.attr(\"data-re-name\"))}),i},addButton:function(t,e,i,s,n){i=i||\"end\";var r=y.create(\"toolbar.button\",this.app,t,e);if(e.observe&&(this.opts.activeButtonsObservers[t]={observe:e.observe,button:r}),this.is())if(\"first\"===i)this.$toolbar.prepend(r);else if(\"after\"===i)s.after(r);else if(\"before\"===i)s.before(r);else{var o=this.opts.buttons.indexOf(t);if(!0!==n&&-1!==o)if(0===o)this.$toolbar.prepend(r);else{var a=this._findButtons().eq(o-1);0<a.length?a.after(r):this.$toolbar.append(r)}else this.$toolbar.append(r)}return r},addButtonFirst:function(t,e){return this.addButton(t,e,\"first\")},addButtonAfter:function(t,e,i){var s=this.getButton(t);return s?this.addButton(e,i,\"after\",s):this.addButton(e,i)},addButtonBefore:function(t,e,i){var s=this.getButton(t);return s?this.addButton(e,i,\"before\",s):this.addButton(e,i)},addButtonObserver:function(t,e){this.buttonsObservers[t]=e},setButtons:function(t){this.buttons=t},setDropdown:function(t){this.dropdownOpened=t},setButtonsInactive:function(){for(var t=this.getButtons(),e=0;e<t.length;e++)t[e].setInactive()},setButtonsActive:function(){for(var t=this.getButtons(),e=0;e<t.length;e++)t[e].setActive()},disableButtons:function(){for(var t=this.getButtons(),e=0;e<t.length;e++)t[e].disable()},enableButtons:function(){for(var t=this.getButtons(),e=0;e<t.length;e++)t[e].enable()},_findButton:function(t){return this.is()?this.$toolbar.find(t):y.dom()},_findButtons:function(){return this.is()?this.$toolbar.find(\".re-button\"):y.dom()},_extendActiveButtons:function(){return y.extend({},this.opts.activeButtons,this.opts.activeButtonsAdd)},_inlinesToTags:function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i].tagName.toLowerCase());return e}}),y.add(\"class\",\"toolbar.button\",{mixins:[\"dom\"],init:function(t,e,i){this.app=t,this.opts=t.opts,this.lang=t.lang,this.$body=t.$body,this.toolbar=t.toolbar,this.detector=t.detector,this.obj=i,this.name=e,this.dropdown=!1,this.tooltip=!1,this._init()},isActive:function(){return this.hasClass(\"redactor-button-active\")},isDisabled:function(){return this.hasClass(\"redactor-button-disabled\")},hasIcon:function(){return this.obj.icon&&!this.opts.buttonsTextLabeled},setDropdown:function(t){this.obj.dropdown=t,this.obj.message=!1,this.dropdown=y.create(\"toolbar.dropdown\",this.app,this.name,this.obj.dropdown),this.attr(\"data-dropdown\",!0)},setMessage:function(t,e){this.obj.message=t,this.obj.args=e,this.obj.dropdown=!1},setApi:function(t,e){this.obj.api=t,this.obj.args=e,this.obj.dropdown=!1},setTitle:function(t){this.obj.title=this.lang.parse(t),this.obj.tooltip=this.obj.title,this.attr({alt:this.obj.tooltip,\"aria-label\":this.obj.tooltip}),this.attr(\"data-re-icon\")||this.html(this.obj.title)},setTooltip:function(t){this.obj.tooltip=this.lang.parse(t),this.attr({alt:this.obj.tooltip,\"aria-label\":this.obj.tooltip})},setIcon:function(t){this.opts.buttonsTextLabeled||(this.obj.icon=!0,this.$icon=y.dom(t),this.html(\"\"),this.append(this.$icon),this.attr(\"data-re-icon\",!0),this.addClass(\"re-button-icon\"),this.setTooltip(this.obj.title),this._buildTooltip())},setActive:function(){this.addClass(\"redactor-button-active\")},setInactive:function(){this.removeClass(\"redactor-button-active\")},hideTooltip:function(){this.$body.find(\".re-button-tooltip\").remove()},getDropdown:function(){return this.dropdown},disable:function(){this.addClass(\"redactor-button-disabled\")},enable:function(){this.removeClass(\"redactor-button-disabled\")},toggle:function(t){t&&t.preventDefault(),this.isDisabled()||(this.obj.dropdown?this.dropdown.toggle(t):this.obj.api?this.app.api(this.obj.api,this.obj.args,this.name):this.obj.message&&this.app.broadcast(this.obj.message,this.obj.args,this.name),this.hideTooltip())},_init:function(){this._parseTitle(),this._parseTooltip(),this._build(),this._buildCallback(),this._buildAttributes(),this._buildObserver(),this.hasIcon()?(this._buildIcon(),this._buildTooltip()):this.html(this.obj.title)},_parseTooltip:function(){this.obj.tooltip=this.obj.tooltip?this.lang.parse(this.obj.tooltip):this.obj.title},_parseTitle:function(){this.obj.title=this.lang.parse(this.obj.title)},_build:function(){this.parse(\"<a>\"),this.addClass(\"re-button re-\"+this.name),this.attr(\"data-re-name\",this.name),this.dataset(\"data-button-instance\",this),this.obj.dropdown&&this.setDropdown(this.obj.dropdown)},_buildCallback:function(){this.on(\"click\",this.toggle.bind(this))},_buildAttributes:function(){var t={href:\"#\",alt:this.obj.tooltip,rel:this.name,role:\"button\",\"aria-label\":this.obj.tooltip,tabindex:\"-1\"};this.attr(t)},_buildObserver:function(){void 0!==this.obj.observe&&this.toolbar.addButtonObserver(this.name,this.obj.observe)},_buildIcon:function(){var t=this.obj.icon,e=/(<([^>]+)>)/gi.test(t);this.$icon=y.dom(e?t:\"<i>\"),e||this.$icon.addClass(\"re-icon-\"+this.name),this.append(this.$icon),this.attr(\"data-re-icon\",!0),this.addClass(\"re-button-icon\")},_buildTooltip:function(){this.detector.isDesktop()&&(this.tooltip=y.create(\"toolbar.button.tooltip\",this.app,this))}}),y.add(\"class\",\"toolbar.button.tooltip\",{mixins:[\"dom\"],init:function(t,e){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.$body=t.$body,this.toolbar=t.toolbar,this.$button=e,this.created=!1,this._init()},open:function(){if(!this.$button.hasClass(\"redactor-button-disabled\")&&!this.$button.hasClass(\"redactor-button-active\")){this.created=!0,this.parse(\"<span>\"),this.addClass(\"re-button-tooltip re-button-tooltip-\"+this.uuid),this.$body.append(this),this.html(this.$button.attr(\"alt\"));var t=this.$button.offset(),e=this.$button.height(),i=this.$button.width();this.css({top:t.top+e+4+\"px\",left:t.left+i/2-this.width()/2+\"px\",position:\"absolute\"}),this.show()}},close:function(){this.created&&!this.$button.hasClass(\"redactor-button-disabled\")&&(this.remove(),this.created=!1)},_init:function(){this.$button.on(\"mouseover\",this.open.bind(this)),this.$button.on(\"mouseout\",this.close.bind(this))}}),y.add(\"class\",\"toolbar.dropdown\",{mixins:[\"dom\"],init:function(t,e,i){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.$win=t.$win,this.$doc=t.$doc,this.$body=t.$body,this.animate=t.animate,this.toolbar=t.toolbar,this.name=e,this.started=!1,this.items=\"format\"===e?y.extend({},!0,i):i,this.$items=[]},toggle:function(t){this.started||this._build(),this.isOpened()&&this.isActive()?this.close(!1):this.open(t)},isOpened:function(){var t=this.$body.find(\".redactor-dropdown-\"+this.uuid+\".open\");return 0!==t.length&&t.attr(\"data-re-name\")===this.name},isActive:function(){return 0!==this.$body.find(\"#redactor-dropdown-\"+this.uuid+\"-\"+this.name+\".open\").length},getName:function(){return this.attr(\"data-re-name\")},getItem:function(t){return this.$items[t]},getItemsByClass:function(t){var e=[];for(var i in this.$items){var s=this.$items[i];\"object\"==typeof s&&s.attr(\"data-re-name\")&&s.hasClass(t)&&e.push(s)}return e},open:function(t){this._closeAll(),this.$btn=this.toolbar.getButton(this.name),this.app.broadcast(\"dropdown.open\",t,this,this.$btn),this.toolbar.setDropdown(this),this.show(),this.removeClass(\"redactor-animate-hide\"),this.addClass(\"open\"),this._observe(),this.$btn.hideTooltip(),this.$btn.setActive(),this.$doc.on(\"keyup.redactor.dropdown-\"+this.uuid,this._handleKeyboard.bind(this)),this.$doc.on(\"click.redactor.dropdown-\"+this.uuid,this.close.bind(this)),this.updatePosition(),this.app.broadcast(\"dropdown.opened\",t,this,this.$btn)},close:function(t,e){if(t){var i=y.dom(t.target);if(this._isButton(t)||i.hasClass(\"redactor-dropdown-not-close\")||i.hasClass(\"redactor-dropdown-item-disabled\"))return void t.preventDefault()}this.app.broadcast(\"dropdown.close\",this,this.$btn),this.toolbar.setDropdown(!1),this.$btn.setInactive(),!1===e?this._close():this.animate.start(this,\"fadeOut\",this._close.bind(this))},updatePosition:function(){this.toolbar.isFixed(),this.toolbar.isTarget();var t=this.$btn.height(),e=this.$btn.width(),i=this.$btn.offset(),s=i.left+0,n=parseFloat(this.css(\"width\")),r=s-(this.$win.width()<s+n?n-e:0),o=i.top+t+2;r=r<0?4:r,this.css({maxHeight:\"\",position:\"absolute\",top:o+\"px\",left:r+\"px\"});var a=this.$win.height()-(o-this.$doc.scrollTop())-10;this.css(\"max-height\",a+\"px\")},_build:function(){this.parse(\"<div>\"),this.attr(\"dir\",this.opts.direction),this.attr(\"id\",\"redactor-dropdown-\"+this.uuid+\"-\"+this.name),this.attr(\"data-re-name\",this.name),this.addClass(\"redactor-dropdown redactor-dropdown-\"+this.uuid+\" redactor-dropdown-\"+this.name),this.dataset(\"data-dropdown-instance\",this),this.items.sdom||\"string\"==typeof this.items?this._buildDom():this._buildItems(),this.$body.append(this),this.started=!0},_buildDom:function(){this.html(\"\").append(y.dom(this.items))},_buildItems:function(){for(var t in this.items=\"format\"===this.name?this._buildFormattingItems():this.items,this.items){var e=this.items[t];if(\"observe\"===t)this.attr(\"data-observe\",this.items[t]);else{var i=y.create(\"toolbar.dropdown.item\",this.app,t,e,this);this.$items[t]=i,this.append(i)}}},_buildFormattingItems:function(){for(var t in this.items)-1===this.opts.formatting.indexOf(t)&&delete this.items[t];if(this.opts.formattingHide)for(var t in this.items)-1!==this.opts.formattingHide.indexOf(t)&&delete this.items[t];if(this.opts.formattingAdd)for(var t in this.opts.formattingAdd)this.items[t]=this.opts.formattingAdd[t];return this.items},_handleKeyboard:function(t){27===t.which&&this.close()},_isButton:function(t){return y.dom(t.target).closest(\".re-button\").get()===this.$btn.get()},_close:function(){this.$btn.setInactive(),this.$doc.off(\".redactor.dropdown-\"+this.uuid),this.removeClass(\"open\"),this.addClass(\"redactor-animate-hide\"),this.app.broadcast(\"dropdown.closed\",this,this.$btn)},_closeAll:function(){this.$body.find(\".redactor-dropdown-\"+this.uuid+\".open\").each(function(t){y.dom(t).dataget(\"data-dropdown-instance\")._close()})},_observe:function(){var t=this.attr(\"data-observe\");t&&this.app.broadcast(\"dropdown.\"+t+\".observe\",this)}}),y.add(\"class\",\"toolbar.dropdown.item\",{mixins:[\"dom\"],init:function(t,e,i,s){this.app=t,this.lang=t.lang,this.dropdown=s,this.name=e,this.obj=i,this._init()},setTitle:function(t){this.$span.html(t)},getTitle:function(){return this.$span.html()},enable:function(){this.removeClass(\"redactor-dropdown-item-disabled\")},disable:function(){this.addClass(\"redactor-dropdown-item-disabled\")},toggle:function(t){t&&t.preventDefault(),this.hasClass(\"redactor-dropdown-item-disabled\")||(this.obj.message?this.app.broadcast(this.obj.message,this.obj.args,this.name):this.obj.api&&this.app.api(this.obj.api,this.obj.args,this.name))},_init:function(){this.parse(\"<a>\"),this.attr(\"href\",\"#\"),this.addClass(\"redactor-dropdown-item-\"+this.name),this.obj.classname&&this.addClass(this.obj.classname),this.attr(\"data-re-name\",this.name),this.on(\"click\",this.toggle.bind(this)),this.$span=y.dom(\"<span>\"),this.append(this.$span),this.setTitle(this.lang.parse(this.obj.title))}}),y.add(\"service\",\"cleaner\",{init:function(t){this.app=t,this.opts=t.opts,this.storedComponents=[],this.storedComments=[],this.storedImages=[],this.storedLinks=[],this.deniedTags=[\"font\",\"html\",\"head\",\"link\",\"title\",\"body\",\"meta\",\"applet\"],this.convertRules={},this.unconvertRules={},this.reComments=/<!--[\\s\\S]*?-->\\n?/g,this.reSpacedEmpty=/^(||\\s||<br\\s?\\/?>||&nbsp;)$/i,this.reScriptTag=/<script(.*?[^>]?)>([\\w\\W]*?)<\\/script>/gi},addConvertRules:function(t,e){this.convertRules[t]=e},addUnconvertRules:function(t,e){this.unconvertRules[t]=e},input:function(t,e,i){t=t.replace(/\u00A4t/gi,\"&current\");var s=[];t=this.storeComments(t,s),t=this.encodeCode(t);var n=this.utils.buildWrapper(t);n.find(\"a, b, i, strong, em, img, svg, details, audio\").removeAttr(\"onload onerror ontoggle onwheel onmouseover oncopy\"),n.find(\"a, iframe, embed\").each(function(t){var e=y.dom(t),i=e.attr(\"href\"),s=e.attr(\"src\");i&&-1!==i.trim().search(/^data|javascript:/i)&&e.attr(\"href\",\"\"),s&&-1!==s.trim().search(/^data|javascript:/i)&&e.attr(\"src\",\"\")});var r=[\"alt\",\"title\",\"src\",\"class\",\"width\",\"height\",\"srcset\",\"style\",\"usemap\"];return n.find(\"img\").each(function(t){if(0<t.attributes.length)for(var e=t.attributes,i=e.length-1;0<=i;i--){var s=-1===e[i].name.search(/^data-/)&&-1===r.indexOf(e[i].name),n=\"src\"===e[i].name&&-1!==e[i].value.search(/^data|javascript:/i);this.opts.imageSrcData&&(n=!1),(s||n)&&t.removeAttribute(e[i].name)}}.bind(this)),t=(t=(t=this.utils.getWrapperHtml(n)).replace(/\\$/g,\"&#36;\")).replace(/&amp;/g,\"&\"),t=y.create(\"cleaner.figure\",this.app).convert(t,this.convertRules),t=this.storeComponents(t),t=this.replaceTags(t,this.opts.replaceTags),t=this._setSpanAttr(t),t=this._setStyleCache(t),t=this.removeTags(t,this.deniedTags),t=this.opts.removeScript?this._removeScriptTag(t):this._replaceScriptTag(t),t=this.opts.removeComments?this.removeComments(t):t,t=this._isSpacedEmpty(t)?this.opts.emptyHtml:t,t=this.restoreComponents(t),t=this._cleanWrapped(t),t=this.restoreComments(t,s),t=e?this.paragraphize(t):t},output:function(t,e){return t=this.removeInvisibleSpaces(t),this.opts.breakline&&(t=(t=t.replace(/<\\/(span|strong|b|i|em)><br\\s?\\/?><\\/div>/gi,\"</$1></div>\")).replace(/<br\\s?\\/?><\\/(span|strong|b|i|em)><\\/div>/gi,\"</$1></div>\")),t=t.replace(/&#36;/g,\"$\"),this._isSpacedEmpty(t)?\"\":this._isParagraphEmpty(t)?\"\":(t=this.removeServiceTagsAndAttrs(t,e),t=this.storeComponents(t),t=this.removeSpanWithoutAttributes(t),t=this.removeFirstBlockBreaklineInHtml(t),t=this.opts.removeScript?t:this._unreplaceScriptTag(t),t=this.opts.preClass?this._setPreClass(t):t,t=this.opts.linkNofollow?this._setLinkNofollow(t):t,t=this.opts.removeNewLines?this.cleanNewLines(t):t,t=this.restoreComponents(t),t=y.create(\"cleaner.figure\",this.app).unconvert(t,this.unconvertRules),t=this.removeEmptyAttributes(t,[\"style\",\"class\",\"rel\",\"alt\",\"title\"]),t=this.cleanSpacesInPre(t),t=(t=this.tidy(t)).replace(/&amp;/g,\"&\"),this.opts.breakline&&(t=(t=t.replace(/<br\\s?\\/?>/gi,\"<br>\\n\")).replace(/<br\\s?\\/?>\\n+/gi,\"<br>\\n\")),t=\"\"===t.replace(/\\n/g,\"\")?\"\":t)},paste:function(t){t=(t=this.storeComponents(t)).replace(/<!--[\\s\\S]*?-->/g,\"\");var e=this.deniedTags.concat([\"iframe\"]);t=(t=(t=(t=this.removeTags(t,e)).replace(new RegExp(\"<!doctype([\\\\s\\\\S]+?)>\",\"gi\"),\"\")).replace(new RegExp(\"<style([\\\\s\\\\S]+?)</style>\",\"gi\"),\"\")).replace(new RegExp(\"</p><br /><p\",\"gi\"),\"</p><p\");var i=this._isHtmlMsWord(t);if(t=i?t:this._cleanGDocs(t),t=i?this._cleanMsWord(t):t,!this.opts.pasteClean)return t=this.restoreComponents(t);if(this.opts.pastePlainText)return t=this.restoreComponents(t),this.pastePlainText(t);(n=this.utils.buildWrapper(t)).find(\"*\").removeAttr(\"style\"),n.find(\"[data-redactor-tag]\").each(function(t){var e=y.dom(t);e.removeAttr(\"data-redactor-tag\"),this.utils.isEmptyHtml(e.html())?e.html(\"<br>\").unwrap():t.lastChild&&\"BR\"===t.lastChild.tagName?e.unwrap():e.append(\"<br>\").unwrap()}.bind(this)),t=(t=(t=this.utils.getWrapperHtml(n)).replace(/<br\\s?\\/?>$/,\"\")).replace(/<br\\s?\\/?><\\/(td|th)>/,\"</$1>\");var s=this.opts.pasteBlockTags.concat(this.opts.pasteInlineTags);t=this.removeTagsExcept(t,s),t=this.opts.pasteLinks?t:this.removeTags(t,[\"a\"]),t=this.opts.pasteImages?t:this.removeTags(t,[\"img\"]);var n,r=(n=this.utils.buildWrapper(t)).find(\"*\"),o=0!==this.opts.pasteKeepStyle.length?\",\"+this.opts.pasteKeepStyle.join(\",\"):\"\";r.not(\"[data-redactor-style-cache]\"+o).removeAttr(\"style\");var a=0!==this.opts.pasteKeepClass.length?\",\"+this.opts.pasteKeepClass.join(\",\"):\"\";r.not(\"[data-redactor-style-cache], span.redactor-component\"+a).removeAttr(\"class\");var l=0!==this.opts.pasteKeepAttrs.length?\",\"+this.opts.pasteKeepAttrs.join(\",\"):\"\";r.not(\"img, a, span.redactor-component, [data-redactor-style-cache]\"+l).each(function(t){for(var e=t.attributes,i=e.length-1;0<=i;i--)\"class\"!==t.attributes[i].name&&\"dir\"!==t.attributes[i].name&&t.removeAttribute(e[i].name)}),this.opts.pasteLinks&&!1!==this.opts.pasteLinkTarget&&n.find(\"a\").attr(\"target\",this.opts.pasteLinkTarget),n.find(\"[data-redactor-style-cache]\").each(function(t){var e=t.getAttribute(\"data-redactor-style-cache\");t.setAttribute(\"style\",e)});var h=this.opts.imageAttrs;return n.find(\"img\").each(function(t){if(0<t.attributes.length)for(var e=t.attributes,i=e.length-1;0<=i;i--)-1===h.indexOf(e[i].name)&&t.removeAttribute(e[i].name)}),n.find(\"span\").each(function(t){0===t.attributes.length&&y.dom(t).unwrap()}),n.find(this.opts.inlineTags.join(\",\")).each(function(t){0===t.attributes.length&&this.utils.isEmptyHtml(t.innerHTML)&&y.dom(t).unwrap()}.bind(this)),n.find(\"ul, ol\").each(function(t){var e=t.previousSibling;if(e&&\"LI\"===e.tagName){var i=y.dom(e);i.find(\"p\").unwrap(),i.append(t)}}),t=(t=(t=(t=(t=this.utils.getWrapperHtml(n)).replace(/<li><p>/gi,\"<li>\")).replace(/<\\/p><\\/li>/gi,\"</li>\")).replace(/^<li/gi,\"<ul><li\")).replace(/<\\/li>$/gi,\"</li></ul>\"),this.opts.breakline&&(t=t.replace(/\\n/g,\"<br>\")),t=(t=t.replace(/<p>&nbsp;<\\/p>/gi,\"<p></p>\")).replace(/<p><br\\s?\\/?><\\/p>/gi,\"<p></p>\"),i&&(t=(t=(t=t.replace(/<p><\\/p>/gi,\"\")).replace(/<p>\\s<\\/p>/gi,\"\")).replace(/<td\\n/gi,\"<td \")),t=this.restoreComponents(t)},pastePlainText:function(t){return t=this.opts.pasteLinks?this.storeLinks(t):t,t=this.opts.pasteImages?this.storeImages(t):t,t=this.getPlainText(t),t=this._replaceNlToBr(t),t=this.opts.pasteLinks?this.restoreLinks(t):t,t=this.opts.pasteImages?this.restoreImages(t):t},tidy:function(t){return t},paragraphize:function(t){return t=y.create(\"cleaner.paragraphize\",this.app).convert(t)},storeComments:function(t,e){var i=t.match(new RegExp(\"\\x3c!--([\\\\w\\\\W]*?)--\\x3e\",\"gi\"));if(null!==i)for(var s=0;s<i.length;s++)t=t.replace(i[s],\"#####xstarthtmlcommentzz\"+s+\"xendhtmlcommentzz#####\"),e.push(i[s]);return t},restoreComments:function(t,e){for(var i=0;i<e.length;i++)t=t.replace(\"#####xstarthtmlcommentzz\"+i+\"xendhtmlcommentzz#####\",e[i]);return t},getFlatText:function(t){var e=y.dom(\"<div>\");return t.nodeType||t.dom?e.append(t):(t=(t=t.toString()).trim(),e.html(t)),void 0===(t=e.get().textContent||e.get().innerText||\"\")?\"\":t},getPlainText:function(t){t=(t=(t=(t=(t=(t=t.replace(/<!--[\\s\\S]*?-->/gi,\"\")).replace(/<style[\\s\\S]*?style>/gi,\"\")).replace(/<p><\\/p>/g,\"\")).replace(/<\\/div>|<\\/li>|<\\/td>/gi,\"\\n\")).replace(/<\\/p>/gi,\"\\n\\n\")).replace(/<\\/H[1-6]>/gi,\"\\n\\n\");var e=document.createElement(\"div\");return e.innerHTML=t,(t=e.textContent||e.innerText).trim()},replaceTags:function(t,e){if(e){var i=this,s=Object.keys(e),n=this.utils.buildWrapper(t);n.find(s.join(\",\")).each(function(t){i.utils.replaceToTag(t,e[t.tagName.toLowerCase()])}),t=this.utils.getWrapperHtml(n)}return t},replaceNbspToSpaces:function(t){return t.replace(\"&nbsp;\",\" \")},replaceBlocksToBr:function(t){return t=(t=(t=t.replace(/<div[^>]*><\\/div>/gi,\"\")).replace(/<td[^>]*><\\/td>/gi,\"\")).replace(/<\\/div>|<\\/li>|<\\/td>|<\\/p>|<\\/H[1-6]>/gi,\"<br>\")},cleanNewLines:function(t){return t.replace(/\\r?\\n/g,\"\")},cleanSpacesInPre:function(t){return t.replace(\"&nbsp;&nbsp;&nbsp;&nbsp;\",\"    \")},removeInvisibleSpaces:function(t){return t=(t=this.utils.removeInvisibleChars(t)).replace(/&#65279;/gi,\"\")},removeNl:function(t){return t=(t=t.replace(/\\n/g,\" \")).replace(/\\s+/g,\"s\")},removeBrAtEnd:function(t){return t=(t=t.replace(/<br\\s?\\/?>$/gi,\" \")).replace(/<br\\s?\\/?><li/gi,\"<li\")},removeTags:function(t,i){var e=i?/<\\/?([a-z][a-z0-9]*)\\b[^>]*>/gi:/(<([^>]+)>)/gi,s=i?function(t,e){return-1===i.indexOf(e.toLowerCase())?t:\"\"}:\"\";return t.replace(e,s)},removeTagsExcept:function(t,i){if(void 0===i)return t.replace(/(<([^>]+)>)/gi,\"\");return t.replace(/<\\/?([a-z][a-z0-9]*)\\b[^>]*>/gi,function(t,e){return-1===i.indexOf(e.toLowerCase())?\"\":t})},removeComments:function(t){return t.replace(this.reComments,\"\")},removeServiceTagsAndAttrs:function(t,e){var i=this.utils.buildWrapper(t),s=this;return!1!==e&&i.find(\".redactor-selection-marker\").each(function(t){var e=y.dom(t);return\"\"===s.utils.removeInvisibleChars(e.text())?e.remove():e.unwrap()}),i.find(\"[data-redactor-style-cache]\").removeAttr(\"data-redactor-style-cache\"),this.utils.getWrapperHtml(i)},removeSpanWithoutAttributes:function(t){var e=this.utils.buildWrapper(t);return e.find(\"span\").removeAttr(\"data-redactor-span data-redactor-style-cache\").each(function(t){0===t.attributes.length&&y.dom(t).unwrap()}),this.utils.getWrapperHtml(e)},removeFirstBlockBreaklineInHtml:function(t){return t.replace(new RegExp(\"</li><br\\\\s?/?>\",\"gi\"),\"</li>\")},removeEmptyAttributes:function(t,e){for(var i=this.utils.buildWrapper(t),s=0;s<e.length;s++)i.find(\"[\"+e[s]+'=\"\"]').removeAttr(e[s]);return this.utils.getWrapperHtml(i)},encodeHtml:function(t){return t=(t=(t=(t=(t=(t=t.replace(/<br\\s?\\/?>/g,\"\\n\")).replace(/&nbsp;/g,\" \")).replace(/\u201D/g,'\"')).replace(/\u201C/g,'\"')).replace(/\u2018/g,\"'\")).replace(/\u2019/g,\"'\"),t=(t=this.encodeEntities(t)).replace(/\\$/g,\"&#36;\"),this.opts.preSpaces&&(t=t.replace(/\\t/g,new Array(this.opts.preSpaces+1).join(\" \"))),t},encodeCode:function(t){return t=(t=(t=(t=(t=(t=(t=(t=this.encodeAttrSings(t)).replace(/<\\s/gi,\"&lt; \")).replace(/<([^>]+)</gi,\"&lt;$1<\")).replace(/<(.*?)>/gi,\"xtagstartz$1xtagendz\")).replace(/xtagstartzpre(.*?)xtagendz/g,\"<pre$1>\")).replace(/xtagstartzcode(.*?)xtagendz/g,\"<code$1>\")).replace(/xtagstartz\\/codextagendz/g,\"</code>\")).replace(/xtagstartz\\/prextagendz/g,\"</pre>\"),t=(t=(t=this._encodeCode(t)).replace(/xtagstartz([\\w\\W]*?)xtagendz/g,\"<$1>\")).replace(/xtagstartz\\/(.*?)xtagendz/g,\"</$1>\"),t=this.decodeAttrSings(t)},_encodeCode:function(t){var e=this.utils.buildWrapper(t);return e.find(\"pre code, pre, code\").each(this._encodeNode.bind(this)),this.utils.getWrapperHtml(e)},_encodeNode:function(t){var e=t.firstChild,i=t.innerHTML;if(\"PRE\"!==t.tagName||!e||\"CODE\"!==e.tagName){i=(i=i.replace(/xtagstartz/g,\"<\")).replace(/xtagendz/g,\">\");var s=this.decodeEntities(i);t.textContent=this._encodeNodeHtml(s)}},_encodeNodeHtml:function(t){return t=t.replace(/&nbsp;/g,\" \").replace(/<br\\s?\\/?>/g,\"\\n\"),t=this.opts.preSpaces?t.replace(/\\t/g,new Array(this.opts.preSpaces+1).join(\" \")):t},encodeAttrSings:function(t){var e=t.match(/=\"(.*?)\"/g);if(null!==e)for(var i=0;i<e.length;i++)if(-1===e[i].search(/^\"</)&&-1===e[i].search(/>\"$/)){var s=e[i].replace(\">\",\"xmoresignz\");s=s.replace(\"<\",\"xlesssignz\"),t=t.replace(e[i],s)}return t},encodeEntities:function(t){return t=(t=this.decodeEntities(t)).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\")},encodePhpCode:function(t){return t=(t=(t=t.replace(\"<?php\",\"&lt;?php\")).replace(\"<?\",\"&lt;?\")).replace(\"?>\",\"?&gt;\")},decodeAttrSings:function(t){return t=(t=t.replace(/xmoresignz/gi,\">\")).replace(/xlesssignz/gi,\"<\")},decodeEntities:function(t){return String(t).replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&quot;/g,'\"').replace(/&amp;/g,\"&\")},storeComponents:function(t){var e=this.utils.getElementsFromHtml(t,\"figure\",\"table\");return this._storeMatched(t,e,\"Components\",\"figure\")},restoreComponents:function(t){return this._restoreMatched(t,\"Components\",\"figure\")},storeLinks:function(t){var e=this.utils.getElementsFromHtml(t,\"a\");return this._storeMatched(t,e,\"Links\",\"a\")},storeImages:function(t){var e=this.utils.getElementsFromHtml(t,\"img\");return this._storeMatched(t,e,\"Images\",\"img\")},restoreLinks:function(t){return this._restoreMatched(t,\"Links\",\"a\")},restoreImages:function(t){return this._restoreMatched(t,\"Images\",\"img\")},_cleanWrapped:function(t){return t=t.replace(new RegExp(\"<p><figure([\\\\w\\\\W]*?)</figure></p>\",\"gi\"),\"<figure$1</figure>\")},_cleanGDocs:function(t){return t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<b\\sid=\"internal-source-marker(.*?)\">([\\w\\W]*?)<\\/b>/gi,\"$2\")).replace(/<b(.*?)id=\"docs-internal-guid(.*?)\">([\\w\\W]*?)<\\/b>/gi,\"$3\")).replace(/<span[^>]*(font-style:\\s?italic;\\s?font-weight:\\s?bold|font-weight:\\s?bold;\\s?font-style:\\s?italic)[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<b><i>$2</i></b>\")).replace(/<span[^>]*(font-style:\\s?italic;\\s?font-weight:\\s?600|font-weight:\\s?600;\\s?font-style:\\s?italic)[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<b><i>$2</i></b>\")).replace(/<span[^>]*(font-style:\\s?italic;\\s?font-weight:\\s?700|font-weight:\\s?700;\\s?font-style:\\s?italic)[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<b><i>$2</i></b>\")).replace(/<span[^>]*font-style:\\s?italic[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<i>$1</i>\")).replace(/<span[^>]*font-weight:\\s?bold[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<b>$1</b>\")).replace(/<span[^>]*font-weight:\\s?700[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<b>$1</b>\")).replace(/<span[^>]*font-weight:\\s?600[^>]*>([\\w\\W]*?)<\\/span>/gi,\"<b>$1</b>\")},_cleanMsWord:function(t){t=(t=(t=(t=(t=t.replace(/<!--[\\s\\S]+?-->/gi,\"\")).replace(/<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|img|meta|link|style|\\w:\\w+)(?=[\\s\\/>]))[^>]*>/gi,\"\")).replace(/<(\\/?)s>/gi,\"<$1strike>\")).replace(/&nbsp;/gi,\" \")).replace(/<span\\s+style\\s*=\\s*\"\\s*mso-spacerun\\s*:\\s*yes\\s*;?\\s*\"\\s*>([\\s\\u00a0]*)<\\/span>/gi,function(t,e){return 0<e.length?e.replace(/./,\" \").slice(Math.floor(e.length/2)).split(\"\").join(\"\u00A0\"):\"\"});var e=this.utils.buildWrapper(t);e.find(\".MsoFootnoteText\").each(function(t){var e=y.dom(t),i=e.parent();0!==i.length&&-1!==i.attr(\"style\").search(/mso-element:footnote/)&&e.find(\"a\").attr(\"id\",\"_\"+i.attr(\"id\"))}),e.find(\".MsoFootnoteReference\").each(function(t){var e=y.dom(t).parent();0!==e.length&&\"A\"===e.get().tagName&&e.attr(\"id\",e.attr(\"name\"))}),e.find(\"p\").each(function(t){var e=y.dom(t),i=e.attr(\"style\"),s=/mso-list:\\w+ \\w+([0-9]+)/.exec(i);s&&e.attr(\"data-listLevel\",parseInt(s[1],10))}),this._parseWordLists(e),e.find(\"[align]\").removeAttr(\"align\"),e.find(\"[name]\").removeAttr(\"name\"),e.find(\"span\").each(function(t){var e=y.dom(t),i=e.attr(\"style\");/mso-list:Ignore/.exec(i)?e.remove():e.unwrap()}),e.find(\"[style]\").removeAttr(\"style\"),e.find(\"[class^='Mso']\").removeAttr(\"class\"),e.find(\"a\").filter(function(t){return!t.hasAttribute(\"href\")}).unwrap();for(var i=\"\",s=(t=(t=(t=(t=(t=this.utils.getWrapperHtml(e)).replace(/<p[^>]*><\\/p>/gi,\"\")).replace(/<li>\u00B7/gi,\"<li>\")).trim()).replace(/\\/(p|ul|ol|h1|h2|h3|h4|h5|h6|blockquote)>\\s+<(p|ul|ol|h1|h2|h3|h4|h5|h6|blockquote)/gi,\"/$1>\\n<$2\")).split(/\\n/),n=0;n<s.length;n++){var r=\"\"!==s[n]&&-1===s[n].search(/>$/)?\" \":\"\\n\";i+=s[n]+r}return i},_parseWordLists:function(t){var a=0,l=null,h=null,c=null;t.find(\"p\").each(function(t){var e=y.dom(t),i=e.attr(\"data-listLevel\");if(null===i&&e.hasClass(\"MsoListParagraphCxSpMiddle\")&&(i=1),null!==i){var s=e.text(),n=/^\\s*\\w+\\./.test(s)?\"<ol></ol>\":\"<ul></ul>\";if(e.hasClass(\"MsoListParagraphCxSpFirst\")||e.hasClass(\"MsoNormal\")?(h=y.dom(n),e.before(h)):a<i&&0!==a&&(c=y.dom(n),l.append(c),h=c),i<a)for(var r=a-i+1,o=0;o<r;o++)h=h.parent();e.find(\"span\").first().unwrap(),l=y.dom(\"<li>\"+e.html().trim()+\"</li>\"),null===h&&(e.before(n),h=e.prev()),h.append(l),e.remove(),a=i}else h=null,a=0})},_isSpacedEmpty:function(t){return-1!==t.search(this.reSpacedEmpty)},_isParagraphEmpty:function(t){return-1!==t.search(/^<p><\\/p>$/i)},_isHtmlMsWord:function(t){return t.match(/class=\"?Mso|style=\"[^\"]*\\bmso-|style='[^'']*\\bmso-|w:WordDocument/i)},_setSpanAttr:function(t){var e=this.utils.buildWrapper(t);return e.find(\"span\").attr(\"data-redactor-span\",!0),this.utils.getWrapperHtml(e)},_setStyleCache:function(t){var e=this.utils.buildWrapper(t);return e.find(\"[style]\").each(function(t){var e=y.dom(t);e.attr(\"data-redactor-style-cache\",e.attr(\"style\"))}),this.utils.getWrapperHtml(e)},_setPreClass:function(t){var e=this.utils.buildWrapper(t);return e.find(\"pre\").addClass(this.opts.preClass),this.utils.getWrapperHtml(e)},_setLinkNofollow:function(t){var e=this.utils.buildWrapper(t);return e.find(\"a\").attr(\"rel\",\"nofollow\"),this.utils.getWrapperHtml(e)},_replaceScriptTag:function(t){return t.replace(this.reScriptTag,'<script class=\"redactor-script-tag\" $1>$2<\\/script>')},_unreplaceScriptTag:function(t){return t.replace(/<script class=\"redactor-script-tag\"(.*?[^>]?)>([\\w\\W]*?)<\\/script>/gi,\"<script$1>$2<\\/script>\")},_replaceNlToBr:function(t){return t.replace(/\\n/g,\"<br />\")},_removeScriptTag:function(t){return t.replace(this.reScriptTag,\"\")},_storeMatched:function(t,e,i,s){if(this[\"stored\"+i]=[],e)for(var n=0;n<e.length;n++)this[\"stored\"+i][n]=e[n],t=t.replace(e[n],\"####\"+s+n+\"####\");return t},_restoreMatched:function(t,e,i){if(this[\"stored\"+e])for(var s=0;s<this[\"stored\"+e].length;s++)t=t.replace(\"####\"+i+s+\"####\",this[\"stored\"+e][s]);return t}}),y.add(\"class\",\"cleaner.figure\",{init:function(t){this.app=t,this.opts=t.opts,this.utils=t.utils,this.detector=t.detector},convert:function(t,e){var i=this.utils.buildWrapper(t);return i.find(\"img\").each(this._convertImage.bind(this)),i.find(\"hr\").each(this._convertLine.bind(this)),i.find(\"iframe\").each(this._convertIframe.bind(this)),i.find(\"table\").each(this._convertTable.bind(this)),i.find(\"form\").each(this._convertForm.bind(this)),i.find(\"figure pre\").each(this._convertCode.bind(this)),i.find(\"[data-redactor-type=variable]\").addClass(\"redactor-component\"),i.find(\"figure\").not(\".redactor-component, .redactor-figure-code\").each(this._convertWidget.bind(this)),i.find(\"figure pre\").each(this._setContenteditableCode.bind(this)),i.find(\".redactor-component, .non-editable\").attr(\"contenteditable\",!1),this.detector.isIe()&&i.find(\"[data-redactor-type=table]\").removeAttr(\"contenteditable\"),i.find(\"figcaption, td, th\").attr(\"contenteditable\",!0),i.find(\".redactor-component, figcaption\").attr(\"tabindex\",\"-1\"),this._acceptExtraRules(i,e),this.utils.getWrapperHtml(i)},unconvert:function(t,e){t=(t=t.replace(/<\\/([^>]+)><div data-redactor-tag/g,\"</$1>\\n<div data-redactor-tag\")).replace(/<\\/([^>]+)><p/g,\"</$1>\\n<p\");var i=this.utils.buildWrapper(t);return i.find(\"th, td, figcaption, figure, pre, code, .redactor-component\").removeAttr(\"contenteditable tabindex\"),i.find(\"figure\").removeClass(\"redactor-component redactor-component-active redactor-uploaded-figure\"),i.find(\"[data-redactor-type=variable]\").removeClass(\"redactor-component redactor-component-active\"),i.find(\"figure[data-redactor-type=line]\").unwrap(),i.find(\"figure[data-redactor-type=widget]\").each(this._unconvertWidget.bind(this)),i.find(\"figure[data-redactor-type=form]\").each(this._unconvertForm.bind(this)),i.find(\"figure[data-redactor-type=table]\").each(this._unconvertTable.bind(this)),i.find(\"figure[data-redactor-type=image]\").removeAttr(\"rel\").each(this._unconvertImages.bind(this)),i.find(\"img\").removeAttr(\"data-redactor-type\").removeClass(\"redactor-component\"),i.find(\".non-editable\").removeAttr(\"contenteditable\"),i.find(\"figure\").each(this._removeTypes.bind(this)),i.find(\"span.redactor-component-caret\").remove(),i=this._unconvertBreakTag(i),this._acceptExtraRules(i,e),t=(t=(t=this.utils.getWrapperHtml(i)).replace(/<br\\s?\\/?>$/,\"\")).replace(/<br\\s?\\/?><\\/(td|th)>/,\"</$1>\")},_convertImage:function(t){var e=y.dom(t);if(!this._isNonEditable(e)){this.opts.imageObserve&&!e.attr(\"data-image\")&&e.attr(\"data-image\",this.utils.getRandomId());var i=e.closest(\"a\"),s=e.closest(\"figure\");if(0===s.children().not(\"a, img, br, figcaption\").length){if(0===s.length){var n=0!==i.length?i.closest(\"p\"):e.closest(\"p\");if(!1===this.opts.imageFigure&&0!==n.length)(s=this.utils.replaceToTag(n,\"figure\")).addClass(\"redactor-replace-figure\");else 0!==n.length&&n.unwrap(),s=0!==i.length?i.wrap(\"<figure>\"):e.wrap(\"<figure>\")}else s.hasClass(\"redactor-uploaded-figure\")?s.removeClass(\"redactor-uploaded-figure\"):s.addClass(\"redactor-keep-figure\");this._setFigure(s,\"image\")}}},_convertTable:function(t){if(!this._isNonEditable(t)){var e=this._wrapFigure(t);this._setFigure(e,\"table\")}},_convertLine:function(t){if(!this._isNonEditable(t)){var e=this._wrapFigure(t);this._setFigure(e,\"line\")}},_convertForm:function(t){if(!this._isNonEditable(t)){var e=this.utils.replaceToTag(t,\"figure\");this._setFigure(e,\"form\")}},_convertIframe:function(t){if(!this._isNonEditable(t)&&0===y.dom(t).closest(\".redactor-component\").length){var e=t.getAttribute(\"src\"),i=e&&(e.match(this.opts.regex.youtube)||e.match(this.opts.regex.vimeo)),s=this._wrapFigure(t);i&&this._setFigure(s,\"video\")}},_convertCode:function(t){if(!this._isNonEditable(t)){var e=this._wrapFigure(t);this._setFigure(e,\"code\")}},_convertWidget:function(t){if(!this._isNonEditable(t)){var e=y.dom(t);e.addClass(\"redactor-component\"),e.attr(\"data-redactor-type\",\"widget\"),e.attr(\"data-widget-code\",encodeURI(t.innerHTML.trim()))}},_unconvertBreakTag:function(t){return t.find(\"[data-redactor-tag]\").each(function(t){var e=y.dom(t);if(e.removeAttr(\"data-redactor-tag\"),0===t.attributes.length)if(t.lastChild&&\"BR\"===t.lastChild.tagName)e.unwrap();else{var i=e.nextElement();0!==i.length&&i.attr(\"data-redactor-tag\")&&t.appendChild(document.createElement(\"br\")),e.unwrap()}else t.lastChild&&\"BR\"===t.lastChild.tagName&&y.dom(t.lastChild).remove()}.bind(this)),t},_unconvertForm:function(t){this.utils.replaceToTag(t,\"form\")},_unconvertTable:function(t){y.dom(t).unwrap()},_unconvertWidget:function(t){var e=y.dom(t);e.html(decodeURI(e.attr(\"data-widget-code\"))),e.removeAttr(\"data-widget-code\")},_unconvertImages:function(t){var e=y.dom(t);e.removeClass(\"redactor-component\");var i=0!==e.closest(\"li\").length,s=0!==e.closest(\"table\").length,n=0!==e.find(\"figcaption\").length,r=e.attr(\"style\"),o=!(null===r||\"\"===r),a=\"\"!==e.attr(\"class\");!i&&(!s||n||o||a)||e.unwrap()},_removeTypes:function(t){var e=y.dom(t),i=e.attr(\"data-redactor-type\");if(i&&-1!==[\"image\",\"widget\",\"line\",\"video\",\"code\",\"form\",\"table\"].indexOf(i)&&e.removeAttr(\"data-redactor-type\"),e.hasClass(\"redactor-keep-figure\"))e.removeClass(\"redactor-keep-figure\");else if(\"image\"===i&&!1===this.opts.imageFigure){0!==e.find(\"figcaption\").length||(e.hasClass(\"redactor-replace-figure\")&&e.removeClass(\"redactor-replace-figure\"),this.utils.replaceToTag(e,\"p\"))}e.removeClass(\"redactor-replace-figure\")},_wrapFigure:function(t){var e=y.dom(t),i=e.closest(\"figure\");return 0===i.length?e.wrap(\"<figure>\"):i},_setFigure:function(t,e){t.addClass(\"redactor-component\"),t.attr(\"data-redactor-type\",e)},_setContenteditableCode:function(t){if(!this._isNonEditable(t)){var e=y.dom(t),i=e.children(\"code\").first();(0!==i.length?i:e).attr(\"contenteditable\",!0).attr(\"tabindex\",\"-1\")}},_acceptExtraRules:function(t,e){for(var i in e)\"function\"==typeof e[i]&&e[i](t)},_isNonEditable:function(t){return 0!==y.dom(t).closest(\".non-editable\").length}}),y.add(\"class\",\"cleaner.paragraphize\",{init:function(t){this.app=t,this.opts=t.opts,this.utils=t.utils,this.cleaner=t.cleaner,this.element=t.element,this.stored=[],this.remStart=\"#####replace\",this.remEnd=\"#####\",this.paragraphizeTags=[\"table\",\"div\",\"pre\",\"form\",\"ul\",\"ol\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"dl\",\"blockquote\",\"figcaption\",\"address\",\"section\",\"header\",\"footer\",\"aside\",\"article\",\"object\",\"style\",\"script\",\"iframe\",\"select\",\"input\",\"textarea\",\"button\",\"option\",\"map\",\"area\",\"math\",\"hr\",\"fieldset\",\"legend\",\"hgroup\",\"nav\",\"figure\",\"details\",\"menu\",\"summary\",\"p\"]},convert:function(t){var e=this._isConverted(t);return e=!0===e?this._convert(t):e,e=this._convertTable(e)},_convert:function(t,e){var i=this.opts.breakline||e?\"sdivtag\":this.opts.markup,s=e?\"tbr\":\"br\";t=this._storeTags(t);var n=[];t=(t=this.cleaner.storeComments(t,n)).trim(),t=this._trimLinks(t);var r=this.opts.inlineTags.join(\"|\");t=(t=(t=(t=(t=t.replace(new RegExp(\"<(\"+r+\")(.*?[^>]?)>\\n</(\"+r+\")>\",\"gi\"),\"<$1$2></$3>\")).replace(/xparagraphmarkerz(?:\\r\\n|\\r|\\n)$/g,\"\")).replace(/xparagraphmarkerz$/g,\"\")).replace(/xparagraphmarkerz(?:\\r\\n|\\r|\\n)/g,\"\\n\")).replace(/xparagraphmarkerz/g,\"\\n\");for(var o=\"\",a=(t=this.opts.breakline?(t=(t=t.replace(/<br\\s?\\/?>(?:\\r\\n|\\r|\\n)/gi,\"xbreakmarkerz\\n\")).replace(/<br\\s?\\/?>/gi,\"xbreakmarkerz\\n\")).replace(/xbreakmarkerz\\n<\\//gi,\"xbreakmarkerz</\"):t.replace(/[\\n]+/g,\"\\n\")).split(\"\\n\"),l=0;l<a.length;l++)o+=\"<\"+i+\">\"+a[l]+\"</\"+i+\">\\n\";return t=(t=(t=(t=o.replace(/\\n$/,\"\")).replace(new RegExp(\"<\"+i+\">\\\\s+#####\",\"gi\"),\"#####\")).replace(new RegExp(\"<\"+i+\">#####\",\"gi\"),\"#####\")).replace(new RegExp(\"#####</\"+i+\">\",\"gi\"),\"#####\"),t=this.opts.breakline?t.replace(/xbreakmarkerz/gi,\"<br>\"):t,t=this._restoreTags(t),t=this.cleaner.restoreComments(t,n),this.opts.breakline&&(t=t.replace(new RegExp(\"<\"+i+\"></\"+i+\">\",\"gi\"),\"<\"+i+\"><br></\"+i+\">\")),t=(t=(t=t.replace(new RegExp(\"<sdivtag>\",\"gi\"),'<div data-redactor-tag=\"'+s+'\">')).replace(new RegExp(\"sdivtag\",\"gi\"),\"div\")).replace(/<\\/([^>]+)><div data-redactor-tag/g,\"</$1>\\n<div data-redactor-tag\")},_convertTable:function(t){var e=this.utils.buildWrapper(t);return e.find(\"td, th\").each(this._convertCell.bind(this)),t=this.utils.getWrapperHtml(e)},_convertCell:function(t){var e=y.dom(t);this.stored=[];var i=this._convert(e.html(),!0);e.html(i)},_storeTags:function(t){var s=this,e=this.utils.buildWrapper(t);return e.find(this.paragraphizeTags.join(\", \")).each(function(t,e){var i=document.createTextNode(s.remStart+e+s.remEnd+\"xparagraphmarkerz\");s.stored.push(t.outerHTML),t.parentNode.replaceChild(i,t)}),this.utils.getWrapperHtml(e)},_restoreTags:function(t){for(var e=0;e<this.stored.length;e++)this.stored[e]=this.stored[e].replace(/\\$/g,\"&#36;\"),t=t.replace(this.remStart+e+this.remEnd,this.stored[e]);return t},_trimLinks:function(t){var e=this.utils.buildWrapper(t);return e.find(\"a\").each(this._trimLink.bind(this)),t=this.utils.getWrapperHtml(e)},_trimLink:function(t){var e=y.dom(t);e.html(e.html().trim())},_isConverted:function(t){return this._isDisabled(t)?t:!this._isEmptyHtml(t)||this.opts.emptyHtml},_isDisabled:function(){return!1===this.opts.paragraphize||this.element.isType(\"inline\")},_isEmptyHtml:function(t){return\"\"===t||\"<p></p>\"===t||\"<div></div>\"===t}}),y.add(\"service\",\"detector\",{init:function(t){this.app=t,this.userAgent=navigator.userAgent.toLowerCase()},isWebkit:function(){return/webkit/.test(this.userAgent)},isFirefox:function(){return-1<this.userAgent.indexOf(\"firefox\")},isIe:function(t){return document.documentMode||/Edge/.test(navigator.userAgent)?\"edge\":RegExp(\"msie\"+(isNaN(t)?\"\":\"\\\\s\"+t),\"i\").test(navigator.userAgent)||!!navigator.userAgent.match(/Trident.*rv[ :]*11\\./)},isMobile:function(){return/(iPhone|iPod|Android)/.test(navigator.userAgent)},isDesktop:function(){return!/(iPhone|iPod|iPad|Android)/.test(navigator.userAgent)},isIpad:function(){return/iPad/.test(navigator.userAgent)}}),y.add(\"service\",\"offset\",{init:function(t){this.app=t},get:function(t,e){var i={start:0,end:0},s=this.utils.getNode(t);if(!s)return!1;var n=this.editor.isEditor(s),r=!!n||this.selection.isIn(s),o=this.selection.getRange();if(n||r){if(this.selection.is()&&r){var a=y.dom(o.startContainer).hasClass(\"redactor-component\")?o.startOffset:0,l=o.cloneRange();l.selectNodeContents(s),l.setEnd(o.startContainer,o.startOffset);var h=this._getString(o,e);i.start=this._getString(l,e).length-a,i.end=i.start+h.length+a}}else i=!1;return i},set:function(t,e){if(!this._setComponentOffset(e)){this.component.clearActive();var i=this.utils.getNode(e);if(i){var s=this.size(i),n=0,r=document.createRange();t.end=t.end>s?s:t.end,r.setStart(i,0),r.collapse(!0);for(var o=[i],a=!1,l=!1;!l&&(i=o.pop());)if(3===i.nodeType){var h=n+i.length;!a&&!this._isFigcaptionNext(i)&&t.start>=n&&t.start<=h&&(r.setStart(i,t.start-n),a=!0),a&&t.end>=n&&t.end<=h&&(r.setEnd(i,t.end-n),l=!0),n=h}else for(var c=i.childNodes.length;c--;)o.push(i.childNodes[c]);this.selection.setRange(r)}}},size:function(t,e){var i=this.utils.getNode(t);if(i){var s=document.createRange().cloneRange();return s.selectNodeContents(i),this._getString(s,e).length}return 0},_getString:function(t,e){var i=t.toString();return i=this.editor.isEmpty()?i.replace(/\\uFEFF/g,\"\"):i,i=e?i.trim():i},_setComponentOffset:function(t){return!!this.component.isNonEditable(t)&&this.component.setActive(t)},_isFigcaptionNext:function(t){var e=t.nextSibling;return\"\"===t.nodeValue.trim()&&e&&\"FIGCAPTION\"===e.tagName}}),y.add(\"service\",\"inspector\",{init:function(t){this.app=t},parse:function(t){return y.create(\"inspector.parser\",this.app,this,t)},isText:function(t){if(\"string\"==typeof t&&!/^\\s*<(\\w+|!)[^>]*>/.test(t))return!0;var e=y.dom(t).get();return e&&3===e.nodeType},isInlineTag:function(t,e){var i=this._extendTags(this.opts.inlineTags,e);return this._isTag(t)&&-1!==i.indexOf(t.toLowerCase())},isBlockTag:function(t,e){var i=this._extendTags(this.opts.blockTags,e);return this._isTag(t)&&-1!==i.indexOf(t.toLowerCase())},isTableCellTag:function(t){return-1!==[\"td\",\"th\"].indexOf(t.toLowerCase())},isHeadingTag:function(t){return-1!==[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(t.toLowerCase())},_isTag:function(t){return void 0!==t&&t},_extendTags:function(t,e){if(t=t.concat(t),e)for(var i=0;i<e.length;i++)t.push(e[i]);return t}}),y.add(\"class\",\"inspector.parser\",{init:function(t,e,i){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.utils=t.utils,this.editor=t.editor,this.selection=t.selection,this.inspector=e;var s=this.editor.getElement();this.el=i,this.$el=y.dom(this.el,s),this.node=this.$el.get(),this.node&&8===this.node.nodeType&&(this.node=!1),this.$component=this.$el.closest(\".redactor-component\",s)},isEditor:function(){return this.node===this.editor.getElement().get()},isInEditor:function(){return 0!==this.$el.parents(\".redactor-in-\"+this.uuid).length},isComponent:function(){return 0!==this.$component.length},isComponentType:function(t){return this.getComponentType()===t},isComponentActive:function(){return this.isComponent()&&this.$component.hasClass(\"redactor-component-active\")},isComponentEditable:function(){var t=this.getComponentType();return this.isComponent()&&-1!==[\"code\",\"table\"].indexOf(t)},isFigcaption:function(){return this.getFigcaption()},isPre:function(){return this.getPre()},isCode:function(){var t=this.$el.closest(\"code\"),e=t.parent(\"pre\");return 0!==t.length&&0===e.length},isList:function(){return this.getList()},isFirstListItem:function(){return this._getLastOrFirstListItem(\"first\")},isLastListItem:function(){return this._getLastOrFirstListItem(\"last\")},isFirstTableCell:function(){return this._getLastOrFirstTableCell(\"first\")},isLastTableCell:function(){return this._getLastOrFirstTableCell(\"last\")},isTable:function(){return this.isComponentType(\"table\")||this.getTable()},isHeading:function(){return this.getHeading()},isBlockquote:function(){return this.getBlockquote()},isDl:function(){return this.getDl()},isParagraph:function(){return this.getParagraph()},isLink:function(){return this.getLink()},isFile:function(){return this.getFile()},isText:function(){return this.inspector.isText(this.el)},isInline:function(){var t=this.opts.inlineTags;return!!this.isElement()&&-1!==t.indexOf(this.node.tagName.toLowerCase())},isBlock:function(){var t=this.opts.blockTags;return!!this.isElement()&&-1!==t.indexOf(this.node.tagName.toLowerCase())},isElement:function(){return this.node&&this.node.nodeType&&3!==this.node.nodeType},hasParent:function(t){return 0!==this.$el.closest(t.join(\",\")).length},getNode:function(){return this.node},getTag:function(){return!!this.isElement()&&this.node.tagName.toLowerCase()},getComponent:function(){return!!this.isComponent()&&this.$component.get()},getComponentType:function(){return!!this.isComponent()&&this.$component.attr(\"data-redactor-type\")},getFirstNode:function(){return this.utils.getFirstNode(this.node)},getLastNode:function(){return this.utils.getLastNode(this.node)},getFirstElement:function(){return this.utils.getFirstElement(this.node)},getLastElement:function(){return this.utils.getLastElement(this.node)},getFigcaption:function(){return this._getClosestNode(\"figcaption\")},getPre:function(){return this._getClosestNode(\"pre\")},getCode:function(){return this._getClosestNode(\"code\")},getList:function(){return this._getClosestNode(\"ul, ol\")},getParentList:function(){return this._getClosestUpNode(\"ul, ol\")},getListItem:function(){return this._getClosestNode(\"li\")},getTable:function(){return this.getComponentType(\"table\")?this.$component.find(\"table\").get():this._getClosestNode(\"table\")},getTableCell:function(){var t=this.$el.closest(\"td, th\");return 0!==t.length&&t.get()},getComponentCodeElement:function(){return!!this.isComponentType(\"code\")&&this.$component.find(\"pre code, pre\").last().get()},getImageElement:function(){return!!this.isComponentType(\"image\")&&this.$component.find(\"img\").get()},getParagraph:function(){return this._getClosestNode(\"p\")},getHeading:function(){return this._getClosestNode(\"h1, h2, h3, h4, h5, h6\")},getDl:function(){return this._getClosestNode(\"dl\")},getBlockquote:function(){return this._getClosestNode(\"blockquote\")},getLink:function(){var t=this.isComponent()&&!this.isFigcaption();if(!this.isComponentType(\"table\")&&t)return!1;var e=this._getClosestElement(\"a\");return!(!e||e.attr(\"data-file\"))&&e.get()},getFile:function(){var t=this.isComponent();if(!this.isComponentType(\"table\")&&t)return!1;var e=this._getClosestElement(\"a\");return!(!e||!e.attr(\"data-file\"))&&e.get()},findFirstNode:function(t){return this.$el.find(t).first().get()},findLastNode:function(t){return this.$el.find(t).last().get()},_getLastOrFirstListItem:function(t){var e=this.getList(),i=this.getTag();if(e&&\"li\"===i){var s=y.dom(e).find(\"li\")[t]().get();if(s&&this.node===s)return!0}return!1},_getLastOrFirstTableCell:function(t){var e=this.getTable(),i=this.getTag();if(e&&(\"td\"===i||\"th\"===i)){var s=y.dom(e).find(\"td, th\")[t]().get();if(s&&this.node===s)return!0}return!1},_getClosestUpNode:function(t){var e=this.editor.getElement(),i=this.$el.parents(t,e).last();return 0!==i.length&&i.get()},_getClosestNode:function(t){var e=this.editor.getElement(),i=this.$el.closest(t,e);return 0!==i.length&&i.get()},_getClosestElement:function(t){var e=this.editor.getElement(),i=this.$el.closest(t,e);return 0!==i.length&&i}}),y.add(\"service\",\"marker\",{init:function(t){this.app=t},build:function(t,e){var i=document.createElement(\"span\");return i.id=\"selection-marker-\"+this._getPos(t),i.className=\"redactor-selection-marker\",i.innerHTML=this.opts.markerChar,e?i.outerHTML:i},buildHtml:function(t){return this.build(t,!0)},insert:function(t){this.remove();var e=\"both\"!==t&&(\"start\"===t||this.selection.isCollapsed());this.selection.is()||this.editor.focus();var i=this.selection.getRange();if(i){var s=this.build(\"start\"),n=this.build(\"end\"),r=i.cloneRange();return e||(r.collapse(!1),r.insertNode(n)),r.setStart(i.startContainer,i.startOffset),r.collapse(!0),r.insertNode(s),i.setStartAfter(s),e||i.setEndBefore(n),this.selection.setRange(i),s}},find:function(t,e){var i=this.editor.getElement(),s=(e||i).find(\"span#selection-marker-\"+this._getPos(t));return 0!==s.length&&s.get()},restore:function(){var t=this.find(\"start\"),e=this.find(\"end\"),i=this.selection.getRange();if(i&&this.selection.is()||(this.editor.focus(),i=document.createRange()),t){var s=!!e&&e.previousSibling,n=t.nextSibling;n=(!n||3!==n.nodeType||\"\"!==n.textContent.replace(/[\\n\\t]/g,\"\"))&&n,e?n&&\"selection-marker-end\"===n.id?this._restoreInject(i,t):s&&n?(i.selectNodeContents(s),i.collapse(!1),i.setStart(n,0)):s&&!n?(i.selectNodeContents(s),i.collapse(!1),i.setStartAfter(t)):(i.setStartAfter(t),i.setEndBefore(e)):n?(i.selectNodeContents(n),i.collapse(!0)):this._restoreInject(i,t),this.selection.setRange(i),t&&t.parentNode.removeChild(t),e&&e.parentNode.removeChild(e)}},remove:function(){var t=this.find(\"start\"),e=this.find(\"end\");t&&t.parentNode.removeChild(t),e&&e.parentNode.removeChild(e)},_getPos:function(t){return void 0===t?\"start\":t},_restoreInject:function(t,e){var i=this.utils.createInvisibleChar();y.dom(e).after(i),t.selectNodeContents(i),t.collapse(!1)}}),y.add(\"service\",\"component\",{init:function(t){this.app=t,this.activeClass=\"redactor-component-active\"},create:function(t,e){return y.create(t+\".component\",this.app,e)},build:function(t){var e,i=y.dom(t).attr(\"data-redactor-type\");return i&&(e=this.create(i,t)),e||t},remove:function(t,e){var i=y.dom(t).closest(\".redactor-component\"),s=i.attr(\"data-redactor-type\"),n=i.parent(),r=this.inspector.parse(n),o=this.utils.findSiblings(i,\"prev\"),a=this.utils.findSiblings(i,\"next\");if(!1!==this.app.broadcast(s+\".delete\",i)){if(i.remove(),this.app.broadcast(s+\".deleted\",i),this.app.broadcast(\"contextbar.close\"),this.app.broadcast(\"imageresizer.stop\"),!1!==e){var l=r.getTableCell();l&&this.utils.isEmptyHtml(l.innerHTML)?this.caret.setStart(l):a?this.caret.setStart(a):o?this.caret.setEnd(o):this.editor.startFocus()}this.editor.isEmpty()&&(this.editor.setEmpty(),this.editor.startFocus(),this.app.broadcast(\"empty\"))}},isNonEditable:function(t){var e=this.inspector.parse(t);return e.isComponent()&&!e.isComponentEditable()},isActive:function(t){if(t){var e=this.inspector.parse(t);return y.dom(e.getComponent()).hasClass(this.activeClass)}return 0!==this._find().length},getActive:function(t){var e=this._find();return 0!==e.length&&(t?e:e.get())},setActive:function(t){this.clearActive(),this.editor.focus();var e=this.inspector.parse(t),i=e.getComponent(),s=y.dom(i);if(!e.isFigcaption()){var n=s.find(\".redactor-component-caret\");0===n.length&&(n=this._buildCaret(),s.prepend(n)),this.caret.setAtStart(n.get())}s.addClass(this.activeClass)},clearActive:function(){var t=this._find();t.removeClass(this.activeClass),t.find(\".redactor-component-caret\").remove(),this.app.broadcast(\"imageresizer.stop\")},setOnEvent:function(t,e){this.clearActive();var i=this.inspector.parse(t.target);i.isFigcaption()||i.isComponentEditable()||i.isComponent()&&(this.setActive(t.target),!0!==e&&t.preventDefault())},executeScripts:function(t){if(void 0===t){t=this.editor.getElement().find(\"[data-redactor-type]\").find(\"script\").getAll();this.executeScripts.call(this,t)}else for(var e=0;e<t.length;e++)if(\"\"!==t[e].src){var i=t[e].src;this.$doc.find('head script[src=\"'+i+'\"]').remove();var s=y.dom(\"<script>\");s.attr(\"src\",i),s.attr(\"async defer\"),s.get().onload=function(){-1!==i.search(\"instagram\")&&window.instgrm.Embeds.process(),this.executeScripts(t.slice(e+1))}.bind(this);var n=document.getElementsByTagName(\"head\")[0];n&&n.appendChild(s.get());break}},_find:function(){return this.editor.getElement().find(\".\"+this.activeClass)},_buildCaret:function(){var t=y.dom(\"<span>\");return t.addClass(\"redactor-component-caret\"),t.attr(\"contenteditable\",!0),t}}),y.add(\"service\",\"insertion\",{init:function(t){this.app=t},set:function(t,e,i){return null===t&&(t=\"\"),t=!1!==e?this.cleaner.input(t):t,t=!1!==e?this.cleaner.paragraphize(t):t,this.editor.getElement().html(t),!1!==i&&this.editor.endFocus(),t},insertNode:function(t,e){this.editor.focus();var i=this.utils.isFragment(t)?t:this.utils.createFragment(t);return this._collapseSelection(),this._insertFragment(i),this._setCaret(e,i),this._sendNodes(i.nodes)},insertBreakLine:function(){return this.insertNode(document.createElement(\"br\"),\"after\")},insertNewline:function(){return this.insertNode(document.createTextNode(\"\\n\"),\"after\")},insertText:function(t){return this.insertHtml(this.cleaner.getFlatText(t))},insertChar:function(t){return this.insertNode(t,\"after\")},insertRaw:function(t){return this.insertHtml(t,!1)},insertToEnd:function(t,e){if(t){3===t.nodeType&&-1!==t.nodeValue.search(/^\\n/)&&(t=t.previousElementSibling);var i=y.dom(t);if(i.attr(\"data-redactor-type\")===e){var s=this.opts.breakline?\"<br>\":\"<p>\",n=y.dom(s);i.after(n),this.caret.setStart(n)}}},insertPoint:function(t){var e,i=this.marker.build(\"start\"),s=!1,n=t.clientX,r=t.clientY;if(document.caretPositionFromPoint){var o=document.caretPositionFromPoint(n,r),a=document.getSelection();this.inspector.parse(o.offsetNode).isInEditor()&&((e=a.getRangeAt(0)).setStart(o.offsetNode,o.offset),e.collapse(!0),e.insertNode(i),s=!0)}else document.caretRangeFromPoint&&(e=document.caretRangeFromPoint(n,r),this.inspector.parse(e.startContainer).isInEditor()&&(e.insertNode(i),s=!0));return s},insertToPoint:function(t,e,i,s){if(!(!0===i||this.insertPoint(t))){var n=this.editor.getLastNode();y.dom(n).after(this.marker.build(\"start\"))}return this.component.clearActive(),this.selection.restoreMarkers(),this.insertHtml(e,s)},insertToOffset:function(t,e){return this.offset.set({start:t,end:t}),this.insertHtml(e)},insertHtml:function(t,e){if(this.opts.input){var i=this.utils.parseHtml(t);if(this.selection.isAll())return this._insertToAllSelected(i);if(!this.selection.is()){var s=y.dom(\"<p>\");this.editor.getElement().append(s),this.caret.setStart(s)}var n=this.selection.isCollapsed(),r=this.selection.isText(),o=this.selection.getCurrent(),a=this.selection.getBlock(),l=this.inspector.parse(o);this._collapseSelection(),i=this._getCleanedInput(i,l,e);var h,c,d=this._isFigure(i.html),u=this._isComponentSpan(i.html),p=this.inspector.isText(i.html);if(this.editor.isEmpty())return this._insertToEmptyEditor(i.html);if(l.isComponent()&&!l.isComponentEditable())return this._insertToWidget(o,l,i.html);if(u)return this.insertNode(i.nodes,\"end\");if(d&&!r&&!l.isList())return l.isInline()?this._insertToInline(o,i):(h=this.utils.createFragment(i.html),this.utils.splitNode(o,h),this.caret.setEnd(h.last),this._sendNodes(h.nodes));if(l.isCode())return this._insertToCode(i,o,e);if(l.isPre())return this._insertToPre(i,e);if(l.isHeading()||l.isFigcaption())return i.html=!1!==e?this.cleaner.removeTagsExcept(i.html,[\"a\"]):i.html,i.html=!1!==e?this.cleaner.replaceNbspToSpaces(i.html):i.html,h=this.utils.createFragment(i.html),this.insertNode(h,\"end\");if(this.opts.breakline&&a&&\"DIV\"===a.tagName){if(this._isPlainHtml(i.html))return this.insertNode(i.nodes,\"end\");i.html=!1!==e?this.cleaner.paragraphize(i.html):i.html,h=this.utils.createFragment(i.html);var f=this.selection.getRange();return f&&!this.selection.isCollapsed()&&f.deleteContents(),this.utils.splitNode(o,h),this.caret.setEnd(h.last),this._sendNodes(h.nodes)}if(p)return!r&&\"br\"!==this.opts.markup&&this._hasBlocksAndImages(i.nodes)?(i.html=!1!==e?this.cleaner.paragraphize(i.html):i.html,h=this.utils.createFragment(i.html),this.utils.splitNode(o,h),this.caret.setEnd(h.last),this._sendNodes(h.nodes)):(i.html=!1!==e?i.html.replace(/\\n/g,\"<br>\"):i.html,h=this.utils.createFragment(i.html),this.insertNode(h.nodes,\"end\"));if(!n&&!d)return this._isPlainHtml(i.html)?this.insertNode(i.nodes,\"end\"):(i.html=!1!==e?this.cleaner.paragraphize(i.html):i.html,h=this.utils.createFragment(i.html),this.insertNode(h,\"end\"));if(l.isInline()&&!this._isPlainHtml(i.html))return this._insertToInline(o,i);if(l.isBlockquote()||l.isDl())return(c=this.opts.inlineTags).concat([\"br\"]),i.html=!1!==e?this.cleaner.replaceBlocksToBr(i.html):i.html,i.html=!1!==e?this.cleaner.removeTagsExcept(i.html,c):i.html,h=this.utils.createFragment(i.html),this.insertNode(h,\"end\");if(l.isParagraph())return this._isPlainHtml(i.html)?this.insertNode(i.nodes,\"end\"):(i.html=!1!==e?this.cleaner.paragraphize(i.html):i.html,h=this.utils.createFragment(i.html),this.utils.splitNode(o,h),this.caret.setEnd(h.last),this._sendNodes(h.nodes));if(l.isList()&&(c=(c=this.opts.inlineTags).concat([\"br\",\"li\",\"ul\",\"ol\",\"img\"]),i.html=!1!==e?this.cleaner.replaceBlocksToBr(i.html):i.html,i.html=!1!==e?this.cleaner.removeTagsExcept(i.html,c):i.html,i.html=!1!==e?this.cleaner.removeBrAtEnd(i.html):i.html,h=this.utils.createFragment(i.html),i.nodes=h.nodes,this._containsTags(i.html,[\"ul\",\"ol\",\"li\"]))){var m=this.selection.getElement(o);if(m&&\"LI\"===m.tagName&&this.caret.isStart(m)){i.nodes=y.dom(h.nodes).unwrap(\"ul, ol\").getAll(),y.dom(m).before(i.nodes);var g=i.nodes[i.nodes.length-1];return this.caret.setEnd(g),this._sendNodes(i.nodes)}return this._isPlainHtml(i.html)?this.insertNode(h,\"end\"):(h=this._buildList(i,m,h),this.utils.splitNode(o,h,!0),this.caret.setEnd(h.last),this._sendNodes(h.nodes))}return this.insertNode(i.nodes,\"end\")}},_insertToAllSelected:function(t){var e=this.set(t.html),i=this.utils.parseHtml(e);return this._sendNodes(i.nodes)},_insertToEmptyEditor:function(t){t=this.cleaner.paragraphize(t);var e=this.utils.createFragment(t),i=this.editor.getElement();return i.html(\"\"),i.append(e.frag),this.caret.setEnd(e.last),this._sendNodes(e.nodes)},_insertToInline:function(t,e){var i=this.utils.createFragment(e.html);return this.utils.splitNode(t,i,!1,!0),this.caret.setEnd(i.last),this._sendNodes(i.nodes)},_insertToCode:function(t,e,i){t.html=!1!==i?this.cleaner.encodeHtml(t.html):t.html,t.html=!1!==i?this.cleaner.removeNl(t.html):t.html;var s=this.utils.createFragment(t.html),n=this.insertNode(s,\"end\");return this.utils.normalizeTextNodes(e),n},_insertToPre:function(t,e){t.html=!1!==e?this.cleaner.encodeHtml(t.html):t.html;var i=this.utils.createFragment(t.html);return this.insertNode(i,\"end\")},_insertToWidget:function(t,e,i){i=this._isComponentSpan(i)?i:this.cleaner.paragraphize(i);var s=this.utils.createFragment(i),n=e.getComponent(),r=y.dom(n);return r.after(s.frag),r.remove(),this.caret.setEnd(s.last),this._sendNodes(s.nodes)},_insertFragment:function(t){var e=this.selection.getRange();if(e){if(this.selection.isCollapsed()){var i=e.startContainer;3!==i.nodeType&&\"BR\"===i.tagName&&(this.caret.setAfter(i),i.parentNode.removeChild(i))}else e.deleteContents();e.insertNode(t.frag)}},_sendNodes:function(t){for(var e=0;e<t.length;e++){var i=t[e],s=3!==i.nodeType&&\"function\"==typeof i.getAttribute&&i.getAttribute(\"data-redactor-type\");s&&this.app.broadcast(s+\".inserted\",this.component.build(i))}return this.detector.isIe()&&this.editor.getElement().find(\"[data-redactor-type=table]\").attr(\"contenteditable\",!0),this.app.broadcast(\"inserted\",t),this.component.executeScripts(),t},_setCaret:function(t,e){var i=this._isLastInline(e);t?(t=i&&\"end\"===t?\"after\":t,this.caret[\"set\"+this.utils.ucfirst(t)](e.last)):!1!==t&&i&&this.caret.setAfter(e.last)},_isLastInline:function(t){return!!t.last&&this.inspector.parse(t.last).isInline()},_getCleanedInput:function(t,e,i){var s=e.isCode()||e.isPre();return t.html=t.html.replace(/&nbsp;/g,\" \"),t.html=s||!1===i?t.html:this.cleaner.input(t.html),t=s||!1===i?t:this.utils.parseHtml(t.html)},_getContainer:function(t){return y.dom(this.utils.createTmpContainer(t))},_buildList:function(t,e,i){var s=t.nodes[0];if(s&&3!==s.nodeType&&\"li\"===s.tagName){var n=y.dom(e).get().tagName.toLowerCase(),r=y.dom(\"<\"+n+\" />\");return r.append(i.nodes),this.utils.createFragment(r.get().outerHTML)}return i},_containsTags:function(t,e){return 0!==this._getContainer(t).find(e.join(\",\")).length},_collapseSelection:function(){},_hasFigureOrTable:function(t){return 0!==this._getContainer(t).find(\"figure, table\").length},_hasBlocks:function(t){return 0!==this._getContainer(t).find(this.opts.blockTags.join(\",\")).length},_hasBlocksAndImages:function(t){return 0!==this._getContainer(t).find(this.opts.blockTags.join(\",\")+\",img\").length},_isPlainHtml:function(t){return 0===this._getContainer(t).find(this.opts.blockTags.join(\",\")+\", img\").length},_isFigure:function(t){if(this._isHtmlString(t))return 0!==y.dom(t).closest(\"figure\").length},_isComponentSpan:function(t){if(this._isHtmlString(t))return 0!==y.dom(t).closest(\"span.redactor-component\").length},_isHtmlString:function(t){return!(\"string\"==typeof t&&!/^\\s*<(\\w+|!)[^>]*>/.test(t))}}),y.add(\"service\",\"block\",{init:function(t){this.app=t,this.tags=[\"p\",\"div\",\"blockquote\",\"pre\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"]},format:function(t){return this.params={args:!1},this.params.type=t.type?t.type:\"set\",this.params.tag=\"string\"==typeof t?t:t.tag||this.opts.markup,this.params.tag=this.params.tag.toLowerCase(),this.params.args={class:t.class||!1,style:t.style||!1,attr:t.attr||!1},t.class||t.style||t.attr||(this.params.args=!1),this._format()},add:function(t,e,i){return this._apply(\"add\",t,e,!0,i)},set:function(t,e){return this._apply(\"set\",t,e)},toggle:function(t,e){return this._apply(\"toggle\",t,e)},remove:function(t,e){return this._apply(\"remove\",t,e)},clearFormat:function(t){return this._clear(t,\"all\")},clearStyle:function(t){return this._clear(t,\"style\")},clearClass:function(t){return this._clear(t,\"class\")},clearAttr:function(t){return this._clear(t,\"attr\")},_format:function(){var t=[];this.collapsed=this.selection.isCollapsed(),this.selection.save();this.selection.getBlock();var e=this._getBlocks(),i=this._isToggleFormatType(e)?\"toggle\":\"set\",s=this._getReplacedTag(i);return t=this._replaceBlocks(e,s),t=this._buildNodes(t),this._restoreSelection(t),t},_clear:function(t,e,i,s){!1!==i&&this.selection.save();var n=this._getElements(t,s);return\"all\"===e?this._removeAllAttr(n,!1):\"style\"===e?(n.removeAttr(\"style\"),n.removeAttr(\"data-redactor-style-cache\")):\"class\"===e?n.removeAttr(\"class\"):\"attr\"===e&&this._removeAllAttr(n),s=n.getAll(),!1!==i&&this._restoreSelection(s),s},_getElements:function(t,e){return y.dom(e||this._getBlocks(t))},_getBlocks:function(t){for(var e=this.selection.getBlocks({tags:t||this.tags}),i=[],s=0;s<e.length;s++)\"DIV\"===e[s].tagName&&!e[s].getAttribute(\"data-redactor-tag\")||i.push(e[s]);return i},_getReplacedTag:function(t){return this.opts.breakline?\"toggle\"===t?\"div\":\"p\"===this.params.tag?\"div\":this.params.tag:\"toggle\"===t?this.opts.markup:this.params.tag},_isStandardParagraph:function(){return!this.opts.breakline&&\"p\"===this.opts.markup},_isStandardDiv:function(){return!this.opts.breakline&&\"div\"===this.opts.markup},_isBreaklineBlock:function(t){return t&&\"DIV\"===t.tagName&&\"br\"===t.getAttribute(\"data-redactor-tag\")},_isToggleFormatType:function(t){for(var e=0,i=t.length,s=0;s<i;s++)t[s]&&this.params.tag===t[s].tagName.toLowerCase()&&e++;return e===i},_isCurrentBlockOneAndEmpty:function(t){return this.collapsed&&1===t.length&&this.utils.isEmpty(t[0])},_buildNodes:function(t){return 0<t.length&&(t=this._applyArgs(t,!1),t=this._combinePre(t),t=this._cleanBlocks(t)),t},_replaceBlocks:function(t,e){for(var i=[],s=0;s<t.length;s++){var n=this.utils.replaceToTag(t[s],e);i.push(n.get())}return i},_combinePre:function(t){for(var e=[],i=0;i<t.length;i++){var s=t[i].nextElementSibling;if(s&&\"PRE\"===t[i].tagName&&\"PRE\"===s.tagName){var n=y.dom(t[i]),r=y.dom(s),o=document.createTextNode(\"\\n\");n.append(o),n.append(r),r.unwrap(\"pre\")}e.push(t[i])}return e},_cleanBlocks:function(t){for(var e=[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],i=this.opts.inlineTags,s=0;s<t.length;s++){var n=t[s].tagName.toLowerCase(),r=y.dom(t[s]);-1!==e.indexOf(n)?r.find(\"span\").not(\".redactor-component, .non-editable, .redactor-selection-marker\").unwrap():\"pre\"===n&&r.find(i.join(\",\")).not(\".redactor-selection-marker\").unwrap(),!1===this.params.args&&\"p\"===this.params.tag&&r.removeAttr(\"class\"),this.opts.breakline&&\"div\"===n?r.attr(\"data-redactor-tag\",\"br\"):r.removeAttr(\"data-redactor-tag\"),this.utils.normalizeTextNodes(t[s])}return t},_cleanEmptyClass:function(t){t.each(function(t){\"\"===t.className&&t.removeAttribute(\"class\")})},_cleanEmptyStyle:function(t){this.utils.removeEmptyAttr(t.get(),\"style\")?t.removeAttr(\"data-redactor-style-cache\"):t.attr(\"data-redactor-style-cache\",t.attr(\"style\"))},_apply:function(t,e,i,s,n){!1!==s&&this.selection.save();var r=this._getElements(i,n);if(e.class&&(\"set\"===t?(r.removeAttr(\"class\"),r.addClass(e.class)):\"add\"===t?r.addClass(e.class):\"toggle\"===t?r.toggleClass(e.class):\"remove\"===t&&r.removeClass(e.class),this._cleanEmptyClass(r)),e.attr&&(\"set\"===t?(this._removeAllAttr(r),r.attr(e.attr)):\"add\"===t?r.attr(e.attr):\"toggle\"===t?(o=e.attr,r.each(function(t){var e=y.dom(t);for(var i in o)e.attr(i)?e.removeAttr(i):e.attr(i,o[i])})):\"remove\"===t&&r.removeAttr(e.attr)),e.style)if(\"set\"===t)r.removeAttr(\"style\"),r.css(e.style),r.each(function(t){var e=y.dom(t);e.attr(\"data-redactor-style-cache\",e.attr(\"style\"))});else if(\"add\"===t){var o=e.style;r.each(function(t){var e=y.dom(t);e.css(o),e.attr(\"data-redactor-style-cache\",e.attr(\"style\")),this._convertStyleQuotes(e)}.bind(this))}else if(\"toggle\"===t){o=e.style;r.each(function(t){var e=y.dom(t);for(var i in o){var s=o[i],n=e.css(i);n=this.utils.isRgb(n)?this.utils.rgb2hex(n):n.replace(/\"/g,\"\"),s=this.utils.isRgb(s)?this.utils.rgb2hex(s):s.replace(/\"/g,\"\"),n=this.utils.hex2long(n),(\"string\"==typeof(s=this.utils.hex2long(s))?s.toLowerCase():s)===(\"string\"==typeof n?n.toLowerCase():n)?e.css(i,\"\"):e.css(i,s)}this._convertStyleQuotes(e),this._cleanEmptyStyle(e)}.bind(this))}else if(\"remove\"===t){var a=e.style;r.each(function(t){var e=y.dom(t);e.css(a,\"\"),this._cleanEmptyStyle(e)}.bind(this))}return n=r.getAll(),!1!==s&&this._restoreSelection(n),n},_applyArgs:function(t){return t=this.params.args?this._apply(this.params.type,this.params.args,!1,!1,t):this._clear(!1,\"all\",!1,t)},_removeAllAttr:function(t,r){t.each(function(t){var e=[\"data-redactor-tag\",\"data-redactor-style-cache\"];!1===r&&(e.push(\"style\"),e.push(\"class\"));for(var i=t.attributes.length;0<i--;){var s=t.attributes[i],n=s.name;-1===e.indexOf(n)&&t.removeAttributeNode(s)}})},_restoreSelection:function(t){this._isCurrentBlockOneAndEmpty(t)?this.caret.setStart(t[0]):setTimeout(function(){this.selection.restore()}.bind(this),1)},_convertStyleQuotes:function(t){var e=t.attr(\"style\");e&&t.attr(\"style\",e.replace(/\"/g,\"'\"))}}),y.add(\"service\",\"inline\",{mixins:[\"formatter\"],init:function(t){this.app=t,this.count=0},format:function(t){if(!this._isFormat())return[];this.type=t.type?t.type:\"set\",this.tag=\"string\"==typeof t?t:t.tag,this.tag=this.tag.toLowerCase(),this.tag=this.arrangeTag(this.tag),\"string\"==typeof t?this.args=!1:this.buildArgs(t),this.detector.isIe()||this.editor.disableNonEditables();var e=this.selection.isCollapsed()?this.formatCollapsed():this.formatUncollapsed();return this.detector.isIe()||this.editor.enableNonEditables(),e},_isFormat:function(){var t=this.selection.getCurrent(),e=this.inspector.parse(t),i=e.isComponent()&&!e.isComponentType(\"table\")&&!e.isFigcaption();return!(!1!==t||!this.selection.isAll())||!(!t||e.isPre()||e.isCode()||i)},arrangeTag:function(t){var e=this.opts.replaceTags;for(var i in e)t===i&&(t=e[i]);return t},formatCollapsed:function(){var t,e,i,s,n=[],r=this.selection.getInlineFirst(),o=this.selection.getInlines({all:!0}),a=y.dom(r);if(r){var l=this.inspector.parse(r);if(this.utils.isEmptyHtml(r.innerHTML))if(r.tagName.toLowerCase()===this.tag)if(this.hasSameArgs(r)){this.caret.setAfter(r),a.remove();var h=this.selection.getElement();this.utils.normalizeTextNodes(h)}else\"span\"===this.tag?(n=this.applyArgs([r],!1),this.caret.setStart(r)):n=this.insertInline(n);else l.hasParent([this.tag])?(e=(t=a.closest(this.tag)).get(),this.hasSameArgs(e)?(t.unwrap(),this.caret.setStart(r)):n=this.insertInline(n)):n=this.insertInline(n);else if(r.tagName.toLowerCase()===this.tag)this.hasSameArgs(r)?(s=this.utils.extractHtmlFromCaret(r),i=y.dom(\"<\"+this.tag+\" />\"),i=this.utils.cloneAttributes(r,i),a.after(i.append(s)),\"\"===i.html().trim()&&i.remove(),this.caret.setAfter(r)):n=this.insertInline(n);else if(l.hasParent([this.tag]))if(e=(t=a.closest(this.tag)).get(),this.hasSameArgs(e)){var c,d;s=this.utils.extractHtmlFromCaret(e,e),i=y.dom(\"<\"+this.tag+\" />\"),i=this.utils.cloneAttributes(e,i);var u=0;o=o.reverse();for(var p=0;p<o.length;p++)o[p]!==e&&(d=y.dom(\"<\"+o[p].tagName.toLowerCase()+\">\"),0===u?c=d:c.append(d),u++);t.after(i.append(s)),t.after(c),this.caret.setStart(d)}else n=this.insertInline(n);else n=this.insertInline(n)}else n=this.insertInline(n);return n},insertInline:function(t){var e=document.createElement(this.tag);return t=this.insertion.insertNode(e,\"start\"),this.applyArgs(t,!1)},hasSameArgs:function(t){if(0===t.attributes.length&&!1===this.args)return!0;var e=!0;if(this.args){var i=0;for(var s in this.args){var n=y.dom(t),r=this.args[s],o=this.utils.toParams(r),a=n.attr(s);if(r)if(\"style\"===s){o=o.trim().replace(/;$/,\"\");for(var l=this.utils.styleToObj(n.attr(\"style\")),h=o.split(\";\"),c=0,d=0;d<h.length;d++){var u=h[d].split(\":\"),p=u[0].trim(),f=u[1].trim();if(-1!==p.search(/color/)){var m=n.css(p);!m||m!==f&&this.utils.rgb2hex(m)!==f||c++}else n.css(p)===f&&c++}c===h.length&&Object.keys(l).length===h.length&&i++}else a===o&&i++;else a&&\"\"!==a||i++}e=i===Object.keys(this.args).length}return e},formatUncollapsed:function(){var t=this.selection.getInlines({all:!0,inside:!0});this.detector.isIe()?this.selection.saveMarkers():this.selection.save(),this._convertTags(\"u\"),this._convertTags(\"del\"),this._convertToStrike(t),this.detector.isIe()?this.selection.restoreMarkers():this.selection.restore(),document.execCommand(\"strikethrough\"),this._clearDecoration(),this.selection.save();var e=this._revertToInlines();e=this.applyArgs(e,!1);for(var i=0;i<e.length;i++){var s=e[i],n=s.tagName.toLowerCase(),r=s.attributes.length;n===this.tag&&0===r&&this.args&&(y.dom(s).unwrap(),e.splice(i,1))}return this.selection.restore(),this._clearEmptyStyle(),e=this._normalizeBlocks(e)},_convertTags:function(e){this.tag!==e&&this.editor.getElement().find(e).each(function(t){this.utils.replaceToTag(t,\"span\").addClass(\"redactor-convertable-\"+e)}.bind(this))},_revertTags:function(i){this.editor.getElement().find(\"span.redactor-convertable-\"+i).each(function(t){var e=this.utils.replaceToTag(t,i);e.removeClass(\"redactor-convertable-\"+i),this.utils.removeEmptyAttr(e,\"class\")&&e.removeAttr(\"class\")}.bind(this))},_convertToStrike:function(t){for(var e=this.selection.getText().replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\"),i=0;i<t.length;i++){var s=this.arrangeTag(t[i].tagName.toLowerCase()),n=t[i],r=y.dom(n),o=this.hasSameArgs(n);if(s===this.tag)if(\"span\"===this.tag&&this._isTextSelected(n,e))r.addClass(\"redactor-convertable-apply\");else if(o&&\"a\"!==this.tag)this._replaceToStrike(r);else if(\"span\"===this.tag){if(this.args&&this.args.style)for(var a in this.args.style)r.css(a,\"\");this.utils.removeEmptyAttr(r.get(),\"style\")?r.addClass(\"redactor-convertable-apply\"):r.addClass(\"redactor-unconvertable-apply\")}else o||r.addClass(\"redactor-convertable-apply\")}},_replaceToStrike:function(t){t.replaceWith(function(){return y.dom(\"<strike>\").append(t.contents())})},_revertToInlines:function(){var i=[],t=this.editor.getElement();return\"u\"!==this.tag&&t.find(\"u\").unwrap(),t.find(\".redactor-convertable-u\").each(function(t){i.push(t)}),t.find(\".redactor-convertable-apply\").each(function(t){var e=y.dom(t);e.find(\"strike\").unwrap(),this._forceRemoveClass(e,\"redactor-convertable-apply\"),i.push(t)}.bind(this)),t.find(\"span.redactor-unconvertable-apply\").each(function(t){var e=y.dom(t);this._forceRemoveClass(e,\"redactor-unconvertable-apply\")}.bind(this)),t.find(\"strike\").each(function(t){var e=this.utils.replaceToTag(t,this.tag);i.push(e.get())}.bind(this)),this._revertTags(\"u\"),this._revertTags(\"del\"),i},_normalizeBlocks:function(e){var t=this.opts.inlineTags,i=this.selection.getBlocks();if(i)for(var s=0;s<i.length;s++){if(\"PRE\"===i[s].tagName)y.dom(i[s]).find(t.join(\",\")).not(\".redactor-selection-marker\").each(function(t){-1!==e.indexOf(t)&&(e=this.utils.removeFromArrayByValue(e,t)),y.dom(t).unwrap()}.bind(this))}return e},_clearDecoration:function(){this.editor.getElement().find(this.opts.inlineTags.join(\",\")).each(function(t){if(\"line-through\"===t.style.textDecoration||\"line-through\"===t.style.textDecorationLine){var e=y.dom(t);e.css(\"textDecorationLine\",\"\"),e.css(\"textDecoration\",\"\"),e.wrap(\"<strike>\")}})},_clearEmptyStyle:function(){for(var t=this.getInlines(),e=0;e<t.length;e++){this._clearEmptyStyleAttr(t[e]);var i=t[e].childNodes;if(i)for(var s=0;s<i.length;s++)this._clearEmptyStyleAttr(i[s])}},_clearEmptyStyleAttr:function(t){3!==t.nodeType&&this.utils.removeEmptyAttr(t,\"style\")&&(t.removeAttribute(\"style\"),t.removeAttribute(\"data-redactor-style-cache\"))},_forceRemoveClass:function(t,e){t.removeClass(e),this.utils.removeEmptyAttr(t,\"class\")&&t.removeAttr(\"class\")},_isTextSelected:function(t,e){var i=this.utils.removeInvisibleChars(t.textContent);return e===i||-1!==e.search(new RegExp(\"^\"+this.utils.escapeRegExp(i)+\"$\"))},getInlines:function(t){return t?this.selection.getInlines({tags:t,all:!0}):this.selection.getInlines({all:!0})},getElements:function(t){return y.dom(this.getInlines(t))},clearFormat:function(){this.selection.save();for(var t=this.selection.getInlines({all:!0}),e=0;e<t.length;e++){var i=y.dom(t[e]);this.selection.getInline(t[e])&&i.unwrap()}this.selection.restore()}}),y.add(\"service\",\"autoparser\",{init:function(t){this.app=t,this.cleaner=this.app.cleaner},observe:function(){var t=this.editor.getElement().find(\".redactor-autoparser-object\").each(function(t){var e=y.dom(t);e.removeClass(\"redactor-autoparser-object\"),\"\"===e.attr(\"class\")&&e.removeAttr(\"class\")});0<t.length&&t.each(function(t){var e,i=!1,s=t.tagName;\"A\"===s?e=\"link\":\"IMG\"===s?e=\"image\":\"IFRAME\"===s&&(e=\"video\"),e&&(i=y.create(e+\".component\",this.app,t),this.app.broadcast(e+\".inserted\",i),this.app.broadcast(\"autoparse\",e,i))}.bind(this))},format:function(t,e){this._isKey(e)&&this._format(e===this.keycodes.ENTER)},parse:function(t){var e=[\"figure\",\"html\",\"form\",\"pre\",\"object\",\"video\",\"iframe\",\"code\",\"a\",\"img\"],i=[],s=0,n=[];t=this.cleaner.storeComments(t,n),t=(t=(t=this.cleaner.encodeCode(t)).replace(/\\$/g,\"&#36;\")).replace(/&amp;/g,\"&\");for(var r=0;r<e.length;r++){var o=\"img\"===e[r]?\"<\"+e[r]+\"[^>]*>\":\"<\"+e[r]+\"([\\\\w\\\\W]*?)</\"+e[r]+\">\";if(null!==(p=t.match(new RegExp(o,\"gi\"))))for(var a=0;a<p.length;a++)t=t.replace(p[a],\"#####replaceparse\"+s+\"#####\"),i.push(p[a]),s++}if(this.opts.autoparseImages&&t.match(this.opts.regex.imageurl)){var l=t.match(this.opts.regex.imageurl);for(r=0;r<l.length;r++)t=t.replace(l[r],'<img class=\"redactor-autoparser-object\" src=\"'+l[r]+'\">')}if(this.opts.autoparseVideo&&(t.match(this.opts.regex.youtube)||t.match(this.opts.regex.vimeo))){var h,c,d=this.opts.autoparseHttps?\"https:\":\"\";t.match(this.opts.regex.youtube)?(h=d+\"//www.youtube.com/embed/$1\",c=this.opts.regex.youtube):t.match(this.opts.regex.vimeo)&&(h=d+\"//player.vimeo.com/video/$2\",c=this.opts.regex.vimeo);var u=this.component.create(\"video\",'<iframe width=\"500\" height=\"281\" src=\"'+h+'\" frameborder=\"0\" allowfullscreen></iframe>');t=t.replace(c,u.get().outerHTML)}for(r=0;r<e.length;r++){var p;o=\"img\"===e[r]?\"<\"+e[r]+\"[^>]*>\":\"<\"+e[r]+\"([\\\\w\\\\W]*?)</\"+e[r]+\">\";if(null!==(p=t.match(new RegExp(o,\"gi\"))))for(a=0;a<p.length;a++)t=t.replace(p[a],\"#####replaceparse\"+s+\"#####\"),i.push(p[a]),s++}return this.opts.autoparseLinks&&t.match(this.opts.regex.url)&&(t=this._formatLinks(t)),t=this._restoreReplaced(i,t),t=this._restoreReplaced(i,t),t=this.cleaner.restoreComments(t,n)},_isKey:function(t){return t===this.keycodes.ENTER||t===this.keycodes.SPACE},_format:function(t){var e=this.selection.getParent(),i=y.dom(e);if(!(e&&0!==i.closest(\"figure, pre, code, img, a, iframe\").length)&&this.selection.isCollapsed()){var s=this.utils.createInvisibleChar();this.selection.getRange().insertNode(s);var n=this.selection.getCurrent(),r=this.inspector.parse(n),o=y.dom(n);if(s.parentNode.removeChild(s),n&&3===n.nodeType){var a,l=n.textContent;if(this.opts.autoparseImages&&l.match(this._convertToRegExp(this.opts.regex.imageurl))){var h=r.isList(),c=l.match(this.opts.regex.imageurl),d=h?void 0:\"<figure><img></figure>\",u=this.component.create(\"image\",d);u.setSrc(c[0]),u.addClass(\"redactor-autoparser-object\"),l=l.replace(c[0],u.get().outerHTML),a=\"image\"}else if(this.opts.autoparseVideo&&(l.match(this._convertToRegExp(this.opts.regex.youtube))||l.match(this._convertToRegExp(this.opts.regex.vimeo)))){var p,f;l.match(this.opts.regex.youtube)?(p=\"//www.youtube.com/embed/$1\",f=this.opts.regex.youtube):l.match(this.opts.regex.vimeo)&&(p=\"//player.vimeo.com/video/$2\",f=this.opts.regex.vimeo);var m=this.component.create(\"video\",'<iframe width=\"500\" height=\"281\" src=\"'+p+'\" frameborder=\"0\" allowfullscreen></iframe>');m.addClass(\"redactor-autoparser-object\"),l=l.replace(f,m.get().outerHTML),a=\"video\"}else this.opts.autoparseLinks&&l.match(this._convertToRegExp(this.opts.regex.url))&&(l=this._formatLinks(l,t),a=\"link\");if(a){t?(this.selection.save(),o.replaceWith(l),this.selection.restore()):o.replaceWith(l);var g=this.editor.getElement().find(\".redactor-autoparser-object\").removeClass(\"redactor-autoparser-object\");if(g=\"link\"===a?y.create(\"link.component\",this.app,g):g,\"link\"===a)t||this.caret.setAfter(g),this.app.broadcast(\"link.inserted\",g);else{this.caret.setAfter(g);var v=g.clone();g.remove(),g=this.insertion.insertHtml(v),g=this.component.build(g)}this.app.broadcast(\"autoparse\",a,g)}}}},_formatLinks:function(t){var s=!1!==this.opts.pasteLinkTarget?' target=\"'+this.opts.pasteLinkTarget+'\"':\"\",n=' class=\"redactor-autoparser-object\"',r=this;return t=(t=t.replace(this.opts.regex.aurl1,function(t){return'<a href=\"'+t+'\"'+s+n+\">\"+r._subLinkText(t)+\"</a>\"})).replace(this.opts.regex.aurl2,function(t,e,i){return e+'<a href=\"http://'+i+'\"'+s+n+\">\"+r._subLinkText(i)+\"</a>\"})},_subLinkText:function(t){return t=-1===(t=t.length>this.opts.linkSize?t.substring(0,this.opts.linkSize)+\"...\":t).search(\"%\")?decodeURIComponent(t):t},_restoreReplaced:function(t,e){for(var i=0;i<t.length;i++)e=e.replace(\"#####replaceparse\"+i+\"#####\",t[i]);return e},_convertToRegExp:function(t){return new RegExp(String(t).replace(/^\\//,\"\").replace(/\\/ig$/,\"\").replace(/\\/gi$/,\"\")+\"$\",\"gi\")}}),y.add(\"service\",\"storage\",{init:function(t){this.app=t,this.data=[]},observeImages:function(){this.opts.imageObserve&&this.editor.getElement().find(\"[data-image]\").each(this._addImage.bind(this))},observeFiles:function(){this.editor.getElement().find(\"[data-file]\").each(this._addFile.bind(this))},setStatus:function(t,e){this.data[t].status=e},getChanges:function(){var t=this.editor.getElement();for(var e in this.data){var i=this.data[e],s=t.find(\"[data-\"+i.type+'=\"'+i.id+'\"]');this.setStatus(i.id,0!==s.length)}return this.data},add:function(t,e){var i=y.dom(e),s=i.attr(\"data-\"+t);this.data[s]={type:t,status:!0,node:i.get(),id:i.attr(\"data-\"+t)}},_addImage:function(t){this.add(\"image\",t)},_addFile:function(t){this.add(\"file\",t)}}),y.add(\"service\",\"utils\",{init:function(t){this.app=t},isEmpty:function(t){var e=!1;return(t=y.dom(t).get())&&(e=3===t.nodeType?\"\"===t.textContent.trim().replace(/\\n/,\"\"):\"\"===t.innerHTML),e},isEmptyHtml:function(t,e,i){return t=(t=(t=(t=(t=(t=this.removeInvisibleChars(t)).replace(/&nbsp;/gi,\"\")).replace(/<\\/?br\\s?\\/?>/g,e?\"br\":\"\")).replace(/\\s/g,\"\")).replace(/^<p>[^\\W\\w\\D\\d]*?<\\/p>$/i,\"\")).replace(/^<div>[^\\W\\w\\D\\d]*?<\\/div>$/i,\"\"),i&&(t=(t=t.replace(/<ul(.*?[^>])>$/i,\"ul\")).replace(/<ol(.*?[^>])>$/i,\"ol\")),\"\"===(t=(t=(t=(t=(t=(t=t.replace(/<hr(.*?[^>])>$/i,\"hr\")).replace(/<iframe(.*?[^>])>$/i,\"iframe\")).replace(/<source(.*?[^>])>$/i,\"source\")).replace(/<[^\\/>][^>]*><\\/[^>]+>/gi,\"\")).replace(/<[^\\/>][^>]*><\\/[^>]+>/gi,\"\")).trim())},trimSpaces:function(t){return this.removeInvisibleChars(t.trim())},createInvisibleChar:function(){return document.createTextNode(this.opts.markerChar)},searchInvisibleChars:function(t){return t.search(/^\\uFEFF$/g)},removeInvisibleChars:function(t){return t.replace(/\\uFEFF/g,\"\")},trimInvisibleChars:function(t){if(this.selection.isCollapsed()){var e=this.selection.getCurrent(),i=\"left\"===t?this.selection.getTextBeforeCaret():this.selection.getTextAfterCaret();if(e&&3===e.nodeType&&0===this.searchInvisibleChars(i))if(\"left\"===t)y.dom(e).replaceWith(e.textContent.trim());else{var s=this.offset.get();this.offset.set({start:s.start+1,end:s.end+1})}}},buildWrapper:function(t){return y.dom(\"<div>\").html(t)},getWrapperHtml:function(t){var e=t.html();return t.remove(),e},createTmpContainer:function(t){var e=y.dom(\"<div>\");return\"string\"==typeof t?e.html(t):e.append(y.dom(t).clone(!0)),e.get()},createFragment:function(t){for(var e,i,s,n=this.createTmpContainer(t),r=document.createDocumentFragment(),o=[],a=0;e=n.firstChild;){a++;var l=r.appendChild(e);1===a&&(i=l),o.push(l),s=l}return{frag:r,first:i,last:s,nodes:o}},isFragment:function(t){return\"object\"==typeof t&&t.frag},parseHtml:function(t){var e=this.createTmpContainer(t);return{html:e.innerHTML,nodes:e.childNodes}},splitNode:function(t,e,i,s){var n;e=this.isFragment(e)?e.frag:e,n=s?this.inspector.isInlineTag(t.tagName)?t:this.selection.getInline(t):this.inspector.isBlockTag(t.tagName)?t:this.selection.getBlock(t);var r=y.dom(n);if(!s&&this.isEmptyHtml(n.innerHTML,!0))return r.after(e),r.remove(),e;var o=r.get().tagName.toLowerCase(),a=this.caret.isEnd(n),l=this.caret.isStart(n);if(!a&&!l){var h=this.extractHtmlFromCaret(s),c=y.dom(\"<\"+o+\" />\");c=this.cloneAttributes(n,c),r.after(c.append(h))}if(l)return r.before(e);if(i)return r.append(e);e=r.after(e);var d=r.html();return\"\"===(d=(d=this.removeInvisibleChars(d)).replace(/&nbsp;/gi,\"\"))&&r.remove(),e},extractHtmlFromCaret:function(t,e){var i=this.selection.getRange();if(i&&(e=e||(t?this.selection.getInline():this.selection.getBlock()))){var s=i.cloneRange();return s.selectNodeContents(e),s.setStart(i.endContainer,i.endOffset),s.extractContents()}},createMarkup:function(t){var e=document.createElement(this.opts.markup);this.opts.breakline&&e.setAttribute(\"data-redactor-tag\",\"br\"),y.dom(t).after(e),this.caret.setStart(e)},createMarkupBefore:function(t){var e=document.createElement(this.opts.markup);this.opts.breakline&&e.setAttribute(\"data-redactor-tag\",\"br\"),y.dom(t).before(e),this.caret.setEnd(e)},getNode:function(t){var e=y.dom(t).get(),i=this.editor.getElement().get();return void 0===t?i:e||!1},findSiblings:function(t,e){for(t=y.dom(t).get(),e=\"next\"===e?\"nextSibling\":\"previousSibling\";t=t[e];)if((3!==t.nodeType||\"\"!==t.textContent.trim())&&\"BR\"!==t.tagName)return t;return!1},getElementsFromHtml:function(t,e,i){var s=document.createElement(\"div\");s.innerHTML=t;var n=s.querySelectorAll(e);return function(t,e){if(\"number\"==typeof this.length&&\"function\"==typeof t){var i=[];if(\"object\"==typeof this)for(var s=0;s<this.length;s++){if(!(s in this))return;i[s]=t.call(e||this,this[s],s,this)}return i}}.call(n,function(t){var e=t.getAttribute(\"data-redactor-type\");if(!i||!e||e!==i)return t.outerHTML})},getChildNodes:function(t,e,i){var s=(t=t&&t.nodeType&&11===t.nodeType?t:y.dom(t).get()).childNodes,n=[];if(s)for(var r=0;r<s.length;r++)if(!(!0===i&&3===s[r].nodeType||3===s[r].nodeType&&this.isEmpty(s[r])||(n.push(s[r]),!1===e))){var o=this.getChildNodes(s[r],i);0<o.length&&(n=n.concat(o))}return n},getChildElements:function(t){return this.getChildNodes(t,!0,!0)},getFirstNode:function(t){return this._getFirst(this.getChildNodes(t,!1))},getLastNode:function(t){return this._getLast(this.getChildNodes(t,!1))},getFirstElement:function(t){return this._getFirst(this.getChildNodes(t,!1,!0))},getLastElement:function(t){return this._getLast(this.getChildNodes(t,!1,!0))},replaceToTag:function(t,n){return y.dom(t).replaceWith(function(t){var e=y.dom(\"<\"+n+\">\").append(y.dom(t).contents());if(t.attributes)for(var i=t.attributes,s=0;s<i.length;s++)e.attr(i[s].nodeName,i[s].value);return e})},ucfirst:function(t){return t.charAt(0).toUpperCase()+t.slice(1)},removeFromArrayByValue:function(t,e){for(var i,s=arguments,n=s.length;1<n&&t.length;)for(e=s[--n];-1!==(i=t.indexOf(e));)t.splice(i,1);return t},removeEmptyAttr:function(t,e){var i=y.dom(t);return void 0===i.attr(e)||null===i.attr(e)||\"\"===i.attr(e)&&(i.removeAttr(e),!0)},cloneAttributes:function(t,e){t=y.dom(t).get(),e=y.dom(e);for(var i=t.attributes,s=i.length;s--;){var n=i[s];e.attr(n.name,n.value)}return e},toParams:function(t){if(\"object\"!=typeof t)return t;var e=Object.keys(t);if(!e.length)return\"\";for(var i=\"\",s=0;s<e.length;s++){var n=e[s];i+=n+\":\"+t[n]+\";\"}return i},styleToObj:function(t){var e={};if(t)for(var i=t.replace(/;$/,\"\").split(\";\"),s=0;s<i.length;s++){var n=i[s].split(\":\");e[n[0].trim()]=n[1].trim()}return e},checkProperty:function(t){for(var e=arguments[1]&&Array.isArray(arguments[1])?arguments[1]:[].slice.call(arguments,1),i=0;i<e.length;i++){if(!t||void 0===t[e[i]])return!1;t=t[e[i]]}return t},extendData:function(r,t){for(var e in t){if(\"elements\"===e)y.dom(t[e]).each(function(t){var e=y.dom(t);if(\"FORM\"===t.tagName){var i=e.serialize(!0);for(var s in i)r=this._setData(r,s,i[s])}else{var n=e.attr(\"name\")?e.attr(\"name\"):e.attr(\"id\");r=this._setData(r,n,e.val())}}.bind(this));else r=this._setData(r,e,t[e])}return r},_setData:function(t,e,i){return t instanceof FormData?t.append(e,i):t[e]=i,t},normalizeTextNodes:function(t){(t=y.dom(t).get())&&t.normalize()},isRgb:function(t){return 0===t.search(/^rgb/i)},rgb2hex:function(t){return(t=t.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i))&&4===t.length?\"#\"+(\"0\"+parseInt(t[1],10).toString(16)).slice(-2)+(\"0\"+parseInt(t[2],10).toString(16)).slice(-2)+(\"0\"+parseInt(t[3],10).toString(16)).slice(-2):\"\"},hex2long:function(t){return-1!==t.search(/^#/)&&4===t.length&&(t=\"#\"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]),t},escapeRegExp:function(t){return t.replace(/[-\\/\\\\^$*~+?.()|[\\]{}]/g,\"\\\\$&\")},getRandomId:function(){for(var t=\"\",e=\"abcdefghijklmnopqrstuvwxyz0123456789\",i=0;i<12;i++)t+=e.charAt(Math.floor(Math.random()*e.length));return t},_getFirst:function(t){return 0!==t.length&&t[0]},_getLast:function(t){return 0!==t.length&&t[t.length-1]}}),y.add(\"service\",\"progress\",{init:function(t){this.app=t,this.$box=null,this.$bar=null},show:function(){this._is()||this._build(),this.$box.show()},hide:function(){this._is()&&this.animate.start(this.$box,\"fadeOut\",this._destroy.bind(this))},update:function(t){this.show(),this.$bar.css(\"width\",t+\"%\")},_is:function(){return null!==this.$box},_build:function(){this.$bar=y.dom(\"<span />\"),this.$box=y.dom('<div id=\"redactor-progress\" />'),this.$box.append(this.$bar),this.$body.append(this.$box)},_destroy:function(){this._is()&&this.$box.remove(),this.$box=null,this.$bar=null}}),y.add(\"module\",\"starter\",{init:function(t){this.app=t,this.opts=t.opts,this.plugin=t.plugin,this.module=t.module},onstart:function(){this._startStop(\"start\",this.app,[\"element\",\"container\",\"source\",\"editor\",\"statusbar\",\"toolbar\"]),this._startStop(\"start\",this.module,[\"element\",\"container\",\"source\",\"editor\",\"statusbar\",\"contextbar\",\"input\"])},onstop:function(){this._startStop(\"stop\",this.module,[\"observer\",\"element\",\"container\",\"source\",\"editor\",\"contextbar\"])},onenable:function(){var t=this.opts.plugins;this._startStop(\"start\",this.module,[\"observer\",\"toolbar\"]),this._startStop(\"start\",this.plugin,t)},ondisable:function(){var t=this.opts.plugins;this._startStop(\"stop\",this.module,[\"observer\",\"toolbar\"]),this._startStop(\"stop\",this.plugin,t)},_startStop:function(t,e,i){for(var s=0;s<i.length;s++)void 0!==e[i[s]]&&this.app.callInstanceMethod(e[i[s]],t)}}),y.add(\"module\",\"element\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.namespace=t.namespace,this.element=t.element,this.rootOpts=y.extend({},!0,y.options,t.rootOpts)},start:function(){this._build(),this._buildModes(),this._buildMarkup()},stop:function(){this.element.getElement().removeData(this.namespace+\"-uuid\")},_build:function(){this.element.getElement().data(this.namespace+\"-uuid\",this.uuid)},_buildModes:function(){var t=this.element.getType();\"inline\"===t&&this._redefineOptions(this.opts.modes.inline),\"div\"===t&&this._redefineOptions(this.opts.modes.original),\"inline\"!==t&&(this._isRootOption(\"styles\")&&this.rootOpts.styles&&(this.opts.styles=!0),this._isRootOption(\"source\")&&!this.rootOpts.source&&(this.opts.showSource=!1))},_buildMarkup:function(){\"inline\"===this.element.getType()?this.opts.emptyHtml=\"\":this.opts.breakline?(this.opts.markup=\"div\",this.opts.emptyHtml='<div data-redactor-tag=\"br\">'+this.opts.markerChar+\"</div>\"):this.opts.emptyHtml=\"<\"+this.opts.markup+\"></\"+this.opts.markup+\">\"},_redefineOptions:function(t){for(var e in t)this.opts[e]=t[e]},_isRootOption:function(){return void 0!==this.rootOpts.styles}}),y.add(\"module\",\"editor\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.editor=t.editor,this.source=t.source,this.element=t.element,this.component=t.component,this.container=t.container,this.inspector=t.inspector,this.autoparser=t.autoparser,this.placeholder=!1,this.events=!1},onenable:function(){this.enable()},ondisable:function(){this.disable()},onenablefocus:function(){this._enableFocus()},oncontextmenu:function(t){this.component.setOnEvent(t,!0)},onclick:function(t){this.component.setOnEvent(t)},onkeyup:function(t){this.inspector.parse(t.target).isComponent()||this.component.clearActive()},onenablereadonly:function(){this._enableReadOnly()},ondisablereadonly:function(){this._disableReadOnly()},onautoparseobserve:function(){this.autoparser.observe()},onplaceholder:{build:function(){this._buildPlaceholder()},toggle:function(){this._togglePlacehodler()}},start:function(){this._build(),this._buildEvents(),this._buildOptions(),this._buildAccesibility()},stop:function(){var t=this.editor.getElement(),e=this.container.getElement(),i=[\"redactor-in\",\"redactor-in-\"+this.uuid,\"redactor-structure\",\"redactor-placeholder\",\"notranslate\"];\"\"!==this.opts.stylesClass&&i.push(this.opts.stylesClass);t.removeAttr(\"spellcheck\"),t.removeAttr(\"dir\"),t.removeAttr(\"contenteditable\"),t.removeAttr(\"placeholder\"),t.removeAttr(\"data-gramm_editor\"),t.removeClass(i.join(\" \")),e.removeClass([\"redactor-focus\",\"redactor-blur\",\"redactor-over\",\"redactor-styles-on\",\"redactor-styles-off\",\"redactor-toolbar-on\",\"redactor-text-labeled-on\",\"redactor-source-view\"].join(\" \")),this._destroyEvents(),0===t.get().classList.length&&t.removeAttr(\"class\")},enable:function(){var t=this.editor.getElement(),e=this.container.getElement();t.addClass(\"redactor-in redactor-in-\"+this.uuid),t.attr({contenteditable:!0}),this.opts.structure&&t.addClass(\"redactor-structure\"),!this.opts.toolbar||this.opts.air||this.opts.toolbarExternal||e.addClass(\"redactor-toolbar-on\"),this._disableBrowsersEditing()},disable:function(){var t=this.editor.getElement(),e=this.container.getElement();t.removeClass(\"redactor-in redactor-in-\"+this.uuid),t.removeClass(\"redactor-structure\"),t.removeAttr(\"contenteditable\"),e.addClass(\"redactor-toolbar-on\")},_build:function(){var t=this.editor.getElement(),e=this.element.getElement(),i=this.container.getElement();i.addClass(\"redactor-blur\"),this.opts.grammarly||t.attr(\"data-gramm_editor\",!1),this.opts.notranslate&&t.addClass(\"notranslate\"),this.opts.styles?(t.addClass(this.opts.stylesClass),i.addClass(\"redactor-styles-on\")):i.addClass(\"redactor-styles-off\"),this.opts.buttonsTextLabeled&&i.addClass(\"redactor-text-labeled-on\"),this.element.isType(\"textarea\")&&e.before(t)},_buildEvents:function(){this.events=y.create(\"editor.events\",this.app)},_buildOptions:function(){var t=this.editor.getElement();t.attr(\"dir\",this.opts.direction),this.opts.spellcheck||t.attr(\"spellcheck\",!1),this.opts.tabindex&&t.attr(\"tabindex\",this.opts.tabindex),this.opts.minHeight&&t.css(\"min-height\",this.opts.minHeight),this.opts.maxHeight&&t.css(\"max-height\",this.opts.maxHeight),this.opts.maxWidth&&t.css({\"max-width\":this.opts.maxWidth,margin:\"auto\"})},_buildAccesibility:function(){this.editor.getElement().attr({\"aria-labelledby\":\"redactor-voice-\"+this.uuid,role:\"presentation\"})},_buildPlaceholder:function(){this.placeholder=y.create(\"editor.placeholder\",this.app)},_enableFocus:function(){this.opts.showSource?this._enableFocusSource():this._enableFocusEditor()},_enableFocusSource:function(){var t=this.source.getElement();this.opts.focus?(t.focus(),t.get().setSelectionRange(0,0)):this.opts.focusEnd&&t.focus()},_enableFocusEditor:function(){this.opts.focus?setTimeout(this.editor.startFocus.bind(this.editor),100):this.opts.focusEnd&&setTimeout(this.editor.endFocus.bind(this.editor),100)},_togglePlacehodler:function(){this.placeholder&&this.placeholder.toggle()},_disableBrowsersEditing:function(){try{document.execCommand(\"enableObjectResizing\",!1,!1),document.execCommand(\"enableInlineTableEditing\",!1,!1),document.execCommand(\"AutoUrlDetect\",!1,!1);var t=this.editor.getElement().get();t.addEventListener?t.addEventListener(\"mscontrolselect\",function(t){t.preventDefault()}):t.attachEvent(\"oncontrolselect\",function(t){t.returnValue=!1})}catch(t){}},_destroyEvents:function(){this.events&&this.events.destroy()},_enableReadOnly:function(){var t=this.editor.getElement();this._getEditables(t).removeAttr(\"contenteditable\"),t.removeAttr(\"contenteditable\"),t.addClass(\"redactor-read-only\"),this.events&&this.events.destroy()},_disableReadOnly:function(){var t=this.editor.getElement();this._getEditables(t).attr({contenteditable:!0}),t.removeClass(\"redactor-read-only\"),t.attr({contenteditable:!0}),this._buildEvents()},_getEditables:function(t){return t.find(\"figcaption, td, th\")}}),y.add(\"class\",\"editor.placeholder\",{init:function(t){this.app=t,this.opts=t.opts,this.editor=t.editor,this.element=t.element,this.build()},build:function(){var t=this.element.getElement(),e=this.editor.getElement();if(!1!==this.opts.placeholder||t.attr(\"placeholder\")){var i=!1!==this.opts.placeholder?this.opts.placeholder:t.attr(\"placeholder\");e.attr(\"placeholder\",i),this.toggle()}},toggle:function(){return this.editor.isEmpty(!0)?this.show():this.hide()},show:function(){this.editor.getElement().addClass(\"redactor-placeholder\")},hide:function(){this.editor.getElement().removeClass(\"redactor-placeholder\")}}),y.add(\"class\",\"editor.events\",{init:function(t){this.app=t,this.opts=t.opts,this.$doc=t.$doc,this.uuid=t.uuid,this.source=t.source,this.editor=t.editor,this.cleaner=t.cleaner,this.container=t.container,this.insertion=t.insertion,this.inspector=t.inspector,this.selection=t.selection,this.component=t.component,this.blurNamespace=\".redactor-blur.\"+this.uuid,this.eventsList=[\"paste\",\"click\",\"contextmenu\",\"keydown\",\"keyup\",\"mouseup\",\"touchstart\",\"cut\",\"copy\",\"dragenter\",\"dragstart\",\"drop\",\"dragover\",\"dragleave\"],this._init()},destroy:function(){this.editor.getElement().off(\".redactor-focus\"),this.$doc.off(\"keyup\"+this.blurNamespace+\" mousedown\"+this.blurNamespace),this._loop(\"off\")},focus:function(t){var e=this.container.getElement();this.editor.isPasting()||e.hasClass(\"redactor-focus\")||(e.addClass(\"redactor-focus\"),e.removeClass(\"redactor-blur\"),this.app.broadcast(\"observe\",t),this.app.broadcast(\"focus\",t),this.isFocused=!0,this.isBlured=!1)},blur:function(t){var e=this.container.getElement(),i=y.dom(t.target),s=[\".redactor-in-\"+this.uuid,\".redactor-toolbar\",\".redactor-dropdown\",\".redactor-context-toolbar\",\".redactor-modal-box\",\"#redactor-image-resizer\"];this.app.broadcast(\"originalblur\",t),this.app.stopBlur||this.app.isStarted()&&!this.editor.isPasting()&&0===i.closest(s.join(\",\")).length&&(this.isBlured||e.hasClass(\"redactor-blur\")||(e.removeClass(\"redactor-focus\"),e.addClass(\"redactor-blur\"),this.app.broadcast(\"blur\",t),this.isFocused=!1,this.isBlured=!0))},cut:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e);this.app.broadcast(\"state\",t),this.component.isNonEditable(e)&&(this._passSelectionToClipboard(t,i,!0),t.preventDefault())},copy:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e);this.app.broadcast(\"state\",t),this.component.isNonEditable(e)&&(this._passSelectionToClipboard(t,i,!1),t.preventDefault())},drop:function(t){if((t=t.originalEvent||t).stopPropagation(),this._removeOverClass(),!1!==this.opts.dragUpload){if(this.app.isDragComponentInside()){var e=y.dom(this.app.getDragComponentInside()),i=e.clone(!0);return this.insertion.insertToPoint(t,i),e.remove(),this.app.setDragComponentInside(!1),this.app.broadcast(\"state\",t),this.app.broadcast(\"drop\",t),this.app.broadcast(\"image.observe\",t),void t.preventDefault()}if(this.app.isDragInside()&&this.opts.input){this.insertion.insertPoint(t);var s=t.dataTransfer.getData(\"text/html\"),n=this.selection.getRange();if(n){var r=this.selection.getBlocks();n.deleteContents();for(var o=0;o<r.length;o++)\"\"===r[o].innerHTML&&y.dom(r[o]).remove()}return y.create(\"input.paste\",this.app,t,!0,s,!0),this.app.broadcast(\"state\",t),this.app.broadcast(\"drop\",t),this.app.setDragInside(!1),void t.preventDefault()}this.app.broadcast(\"state\",t),this.app.broadcast(\"paste\",t,t.dataTransfer),this.app.broadcast(\"drop\",t)}else t.preventDefault()},dragenter:function(t){t.preventDefault()},dragstart:function(t){this.app.setDragComponentInside(!1),this.app.setDragInside(!1);var e=this.inspector.parse(t.target);!e.isComponent()||e.isComponentEditable()||e.isFigcaption()?this.selection.is()&&!this.selection.isCollapsed()&&(this.app.setDragInside(!0),this._setDragData(t)):this.app.setDragComponentInside(e.getComponent()),this.app.broadcast(\"dragstart\",t)},dragover:function(t){this.app.broadcast(\"dragover\",t)},dragleave:function(t){this.app.broadcast(\"dragleave\",t)},paste:function(t){this.app.broadcast(\"paste\",t)},contextmenu:function(t){},click:function(t){if(3===t.detail){t.preventDefault();var e=this.selection.getBlock();if(e){var i=document.createRange();i.selectNodeContents(e),this.selection.setRange(i)}}var s=y.dom(t.target);if(s.hasClass(\"redactor-in\")){var n=s.offset().top,r=parseFloat(s.css(\"padding-bottom\"));n+s.height()-2*r<t.pageY?this.app.broadcast(\"bottomclick\",t):s.hasClass(\"redactor-placeholder\")&&this.editor.startFocus(this.editor)}this.app.broadcast(\"state\",t),this.app.broadcast(\"click\",t)},keydown:function(t){if(this.app.broadcast(\"state\",t),!1===this.app.broadcast(\"keydown\",t))return t.preventDefault()},keyup:function(t){this.app.broadcast(\"keyup\",t)},mouseup:function(t){this.app.broadcast(\"observe\",t),this.app.broadcast(\"state\",t)},touchstart:function(t){this.app.broadcast(\"observe\",t),this.app.broadcast(\"state\",t)},_init:function(){this.editor.getElement().on(\"focus.redactor-focus click.redactor-focus\",this.focus.bind(this)),this.$doc.on(\"keyup\"+this.blurNamespace+\" mousedown\"+this.blurNamespace,this.blur.bind(this)),this._loop(\"on\")},_removeOverClass:function(){this.editor.getElement().removeClass(\"over\")},_loop:function(t){for(var e=this.editor.getElement(),i=0;i<this.eventsList.length;i++){var s=this.eventsList[i]+\".redactor-events\",n=this.eventsList[i];e[t](s,this[n].bind(this))}},_passAllToClipboard:function(t){var e=t.clipboardData,i=this.source.getCode();e.setData(\"text/html\",i),e.setData(\"text/plain\",i.toString().replace(/\\n$/,\"\"))},_passSelectionToClipboard:function(t,e,i){var s=t.clipboardData,n=e.getComponent(),r=y.dom(n).clone();r.find(\".redactor-component-caret\").remove(),r.removeClass(\"redactor-component-active\"),r.removeAttr(\"contenteditable\"),r.removeAttr(\"tabindex\");var o=r.get().outerHTML;i&&this.component.remove(n),s.setData(\"text/html\",o),s.setData(\"text/plain\",o.toString().replace(/\\n$/,\"\"))},_setDragData:function(t){var e=(t=t.originalEvent||t).dataTransfer;e.effectAllowed=\"move\",e.setData(\"text/Html\",this.selection.getHtml())}}),y.add(\"module\",\"container\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.lang=t.lang,this.element=t.element,this.container=t.container},start:function(){this._build(),this._buildAccesibility()},stop:function(){var t=this.element.getElement(),e=this.container.getElement();e.after(t),e.remove(),t.show()},_build:function(){var t=this.element.getElement(),e=this.container.getElement();e.addClass(\"redactor-box\"),e.attr(\"dir\",this.opts.direction),this.element.isType(\"inline\")&&e.addClass(\"redactor-inline\"),t.after(e),e.append(t)},_buildAccesibility:function(){var t=this.container.getElement(),e=y.dom(\"<span />\");e.addClass(\"redactor-voice-label\"),e.attr({id:\"redactor-voice-\"+this.uuid,\"aria-hidden\":!1}),e.html(this.lang.get(\"accessibility-help-label\")),t.prepend(e)}}),y.add(\"module\",\"source\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.utils=t.utils,this.element=t.element,this.source=t.source,this.editor=t.editor,this.toolbar=t.toolbar,this.cleaner=t.cleaner,this.component=t.component,this.container=t.container,this.autoparser=t.autoparser,this.selection=t.selection,this.syncedHtml=\"\"},onstartcode:function(){var t=this.source.getStartedContent(),e=this.editor.getElement(),i=this.source.getElement();this.opts.autoparse&&this.opts.autoparseStart&&(t=this.autoparser.parse(t));var s=this.cleaner.input(t,!0,!0),n=this.cleaner.output(s);e.html(s),i.val(n),this.syncedHtml=n,this.app.broadcast(\"placeholder.build\"),this.app.broadcast(\"autoparseobserve\"),this.component.executeScripts()},onstartcodeshow:function(){this.show()},ontrytosync:function(){this.sync()},onhardsync:function(){var t=this.editor.getElement().html();t=this.app.broadcast(\"syncBefore\",t),t=this.cleaner.output(t),this._syncing(t)},start:function(){this._build(),this._buildClasses()},stop:function(){var t=this.element.getElement(),e=this.source.getElement();t.removeClass(\"redactor-source redactor-source-open\"),e.off(\"input.redactor-source\"),e.removeAttr(\"data-gramm_editor\"),0===e.get().classList.length&&e.removeAttr(\"class\"),this.source.isNameGenerated()||t.removeAttr(\"name\"),this.element.isType(\"textarea\")||e.remove()},getCode:function(){return this.source.getCode()},toggle:function(){if(this.opts.source)return this.source.getElement().hasClass(\"redactor-source-open\")?this.hide():this.show()},show:function(){if(this.opts.source){var t=this.editor.getElement(),e=this.source.getElement(),i=this.container.getElement(),s=e.val();this.app.isStarted()&&(s=this.app.broadcast(\"source.open\",s));var n=t.height();if(t.hide(),e.height(n),e.val(s.trim()),e.show(),e.addClass(\"redactor-source-open\"),e.on(\"input.redactor-source-events\",this._onChangedSource.bind(this)),e.on(\"keydown.redactor-source-events\",this._onTabKey.bind(this)),e.on(\"focus.redactor-source-events\",this._onFocus.bind(this)),this.opts.source.hasOwnProperty(\"codemirror\")){var r=\"object\"==typeof this.opts.source.codemirror?this.opts.source.codemirror:{},o=void 0!==this.opts.source.codemirrorSrc?this.opts.source.codemirrorSrc:CodeMirror;this.codemirror=o.fromTextArea(e.get(),r),this.codemirror.setSize(null,n),this.codemirror.on(\"change\",function(t,e){t.save()}),this.codemirror.on(\"change\",this._onChangedSource.bind(this))}else i.addClass(\"redactor-source-view\");setTimeout(function(){this._disableButtons(),this._setActiveSourceButton()}.bind(this),100),this.app.isStarted()&&this.app.broadcast(\"source.opened\")}},hide:function(){if(this.opts.source){var t=this.editor.getElement(),e=this.source.getElement(),i=this.container.getElement(),s=e.val();this.opts.source.hasOwnProperty(\"codemirror\")&&(s=this.codemirror.getValue(),this.codemirror.toTextArea()),s=this.cleaner.input(s,!0),s=this.utils.isEmptyHtml(s)?this.opts.emptyHtml:s,s=this.app.broadcast(\"source.close\",s),this._enableButtons(),this._setInactiveSourceButton(),e.hide(),e.removeClass(\"redactor-source-open\"),e.off(\".redactor-source-events\"),t.show(),t.html(s),i.removeClass(\"redactor-source-view\"),setTimeout(function(){this.editor.startFocus(),this.component.executeScripts()}.bind(this),0),this.app.broadcast(\"source.closed\")}},sync:function(){var t=this,e=this.editor.getElement().html();e=this.app.broadcast(\"syncBefore\",e),e=this.cleaner.output(e),this._isSync(e)&&(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(function(){t._syncing(e)},200))},_build:function(){var t=this.source.getElement(),e=this.element.getElement();t.hide(),this.opts.grammarly||t.attr(\"data-gramm_editor\",!1),this.element.isType(\"textarea\")||e.after(t)},_buildClasses:function(){this.source.getElement().addClass(\"redactor-source\")},_syncing:function(t){t=this.app.broadcast(\"syncing\",t),this.source.getElement().val(t),this.app.broadcast(\"synced\",t),this.app.broadcast(\"changed\",t)},_isSync:function(t){return this.syncedHtml!==t&&(this.syncedHtml=t,!0)},_onChangedSource:function(){var t=this.source.getElement().val();this.app.broadcast(\"changed\",t),this.app.broadcast(\"source.changed\",t)},_onTabKey:function(t){if(9!==t.keyCode)return!0;t.preventDefault();var e=this.source.getElement(),i=e.get(),s=i.selectionStart;e.val(e.val().substring(0,s)+\"    \"+e.val().substring(i.selectionEnd)),i.selectionStart=i.selectionEnd=s+4},_onFocus:function(){this.app.broadcast(\"sourcefocus\")},_disableButtons:function(){this.toolbar.disableButtons()},_enableButtons:function(){this.toolbar.enableButtons()},_setActiveSourceButton:function(){var t=this.toolbar.getButton(\"html\");t.enable(),t.setActive()},_setInactiveSourceButton:function(){this.toolbar.getButton(\"html\").setInactive()}}),y.add(\"module\",\"observer\",{init:function(t){this.app=t,this.editor=t.editor,this.observerUnit=!1},start:function(){if(window.MutationObserver){var t=this.editor.getElement().get();this.observerUnit=this._build(t),this.observerUnit.observe(t,{attributes:!0,subtree:!0,childList:!0,characterData:!0,characterDataOldValue:!0})}},stop:function(){this.observerUnit&&this.observerUnit.disconnect()},_build:function(e){var i=this;return new MutationObserver(function(t){i._observe(t[t.length-1],e)})},_observe:function(t,e){this.app.isReadOnly()||\"attributes\"===t.type&&t.target===e||(this.app.broadcast(\"observe\"),this.app.broadcast(\"trytosync\"),this.app.broadcast(\"placeholder.toggle\"))}}),y.add(\"module\",\"clicktoedit\",{init:function(t){this.app=t,this.opts=t.opts,this.source=t.source,this.editor=t.editor,this.container=t.container,this.selection=t.selection},onstartclicktoedit:function(){this.start()},onenablereadonly:function(){this.opts.clickToEdit&&(this._isEnabled()||this.stop())},ondisablereadonly:function(){this.opts.clickToEdit&&(this._isEnabled()||this.start())},onstop:function(){this.stop()},start:function(){this._build()},stop:function(){this.buttonSave&&this.buttonSave.stop(),this.buttonCancel&&this.buttonCancel.stop(),this._destroy(),this.app.broadcast(\"disable\")},enable:function(){this.app.broadcast(\"clickStart\");var t=this.editor.isEmpty();t||this.selection.saveMarkers(),this._setFocus(),this._destroy(),this.app.broadcast(\"enable\"),this.buttonSave.enable(),this.buttonCancel.enable(),t||this.selection.restoreMarkers(),t&&this.editor.focus(),this.container.getElement().addClass(\"redactor-clicktoedit-enabled\"),this.source.rebuildStartedContent(),this.app.broadcast(\"startcode\"),this.app.broadcast(\"image.observe\")},save:function(t){t&&t.preventDefault();var e=this.source.getCode();this.app.broadcast(\"disable\"),this.app.broadcast(\"clickSave\",e),this.app.broadcast(\"clickStop\"),this.app.broadcast(\"toolbar.removeexternal\"),this._build()},cancel:function(t){t&&t.preventDefault();var e=this.saved;this.editor.getElement().html(e),this.saved=\"\",this.app.broadcast(\"disable\"),this.app.broadcast(\"clickCancel\",e),this.app.broadcast(\"clickStop\"),this.app.broadcast(\"toolbar.removeexternal\"),this._build()},_build:function(){this.buttonSave=y.create(\"clicktoedit.button\",\"save\",this.app,this),this.buttonCancel=y.create(\"clicktoedit.button\",\"cancel\",this.app,this),this.buttonSave.stop(),this.buttonCancel.stop();var t=this.editor.getElement(),e=this.container.getElement();t.on(\"click.redactor-click-to-edit mouseup.redactor-click-to-edit\",this.enable.bind(this)),e.addClass(\"redactor-over\"),e.removeClass(\"redactor-clicktoedit-enabled\")},_isEnabled:function(){return this.container.getElement().hasClass(\"redactor-clicktoedit-enabled\")},_destroy:function(){var t=this.editor.getElement(),e=this.container.getElement();t.off(\".redactor-click-to-edit\"),e.removeClass(\"redactor-over redactor-clicktoedit-enabled\")},_setFocus:function(){this.saved=this.source.getCode(),this.buttonSave.start(),this.buttonCancel.start()}}),y.add(\"class\",\"clicktoedit.button\",{init:function(t,e,i){this.app=e,this.opts=e.opts,this.toolbar=e.toolbar,this.context=i,this.type=t,this.name=\"save\"===t?\"clickToSave\":\"clickToCancel\",this.objected=!1,this.enabled=!1,this.namespace=\".redactor-click-to-edit\",this._build()},enable:function(){if(this.objected){var t=this.opts[this.name];t.api=\"module.clicktoedit.\"+this.type,this.toolbar.addButton(this.type,t),this.enabled=!0}},start:function(){this.objected||(this.$button.off(this.namespace),this.$button.show(),this.$button.on(\"click\"+this.namespace,this.context[this.type].bind(this.context)))},stop:function(){!this.objected&&this.enabled&&this.$button.hide()},_build:function(){this.objected=\"object\"==typeof this.opts[this.name],this.objected||(this.$button=y.dom(this.opts[this.name]),this.enabled=!0)}}),y.add(\"module\",\"statusbar\",{init:function(t){this.app=t,this.opts=t.opts,this.element=t.element,this.statusbar=t.statusbar,this.container=t.container},start:function(){if(!this.element.isType(\"inline\")){var t=this.statusbar.getElement(),e=this.container.getElement();t.addClass(\"redactor-statusbar\"),e.append(t)}}}),y.add(\"module\",\"contextbar\",{init:function(t){this.app=t,this.opts=t.opts,this.uuid=t.uuid,this.$win=t.$win,this.$doc=t.$doc,this.$body=t.$body,this.editor=t.editor,this.toolbar=t.toolbar,this.detector=t.detector,this.$target=this.toolbar.isTarget()?this.toolbar.getTargetElement():this.$body},onstop:function(){this.stop()},onenablereadonly:function(){this.stop()},ondisablereadonly:function(){this.start()},oncontextbar:{close:function(){this.close()}},start:function(){if(this.opts.toolbarContext){var t=this.editor.getElement();this._build(),t.on(\"click.redactor-context mouseup.redactor-context\",this.open.bind(this)),this.opts.scrollTarget?y.dom(this.opts.scrollTarget).on(\"scroll.redactor-context\",this.close.bind(this)):!1!==this.opts.maxHeight&&t.on(\"scroll.redactor-context\",this.close.bind(this))}},stop:function(){this.editor.getElement().off(\".redactor-context\"),this.$doc.off(\".redactor-context\"),this.$win.off(\".redactor-context\"),this.$contextbar&&this.$contextbar.remove(),this.opts.scrollTarget&&y.dom(this.opts.scrollTarget).off(\".redactor-context\")},is:function(){return this.$contextbar&&this.$contextbar.hasClass(\"open\")},set:function(t,e,i,s){for(var n in this.$contextbar.html(\"\"),this.$el=y.dom(e),i){var r=y.create(\"contextbar.button\",this.app,i[n]);\"\"!==r.html()&&this.$contextbar.append(r)}var o=this._buildPosition(t,this.$el,s);this.$contextbar.css(o),this.$contextbar.show(),this.$contextbar.addClass(\"open\"),this.$doc.on(\"click.redactor-context mouseup.redactor-context\",this.close.bind(this)),this.$win.on(\"resize.redactor-context\",this.close.bind(this))},open:function(t){setTimeout(function(){this.app.broadcast(\"contextbar\",t,this)}.bind(this),0)},close:function(t){if(this.$contextbar){if(t){var e=y.dom(t.target);if(this.$el&&0!==e.closest(this.$el).length)return}this.$contextbar.hide(),this.$contextbar.removeClass(\"open\"),this.$doc.off(\".redactor.context\")}},_build:function(){this.$contextbar=y.dom(\"<div>\"),this.$contextbar.attr(\"id\",\"redactor-context-toolbar-\"+this.uuid),this.$contextbar.attr(\"dir\",this.opts.direction),this.$contextbar.addClass(\"redactor-context-toolbar\"),this.$contextbar.hide(),this.$target.append(this.$contextbar)},_buildPosition:function(t,e,i){var s,n,r=this.toolbar.isTarget(),o=r?e.position():e.offset(),a=e.width(),l=e.height(),h=this.$contextbar.width(),c=this.$contextbar.height(),d=r?this.$target.scrollTop()+this.$doc.scrollTop():this.$doc.scrollTop(),u=this.$target.offset(),p=r?u.left:0,f=r?u.top:0;return i?\"top\"===i?(s=o.top-c,n=o.left+a/2-h/2):\"bottom\"===i&&(s=o.top+l,n=o.left+a/2-h/2):(s=t.clientY+d-c,n=t.clientX-h/2),n<0&&(n=0),{top:s-f+\"px\",left:n-p+\"px\"}}}),y.add(\"class\",\"contextbar.button\",{mixins:[\"dom\"],init:function(t,e){this.app=t,this.obj=e,this._init()},_init:function(){if(this.parse(\"<a>\"),\"string\"!=typeof this.obj.title){var t=this.obj.title.attr(\"href\");this.attr(\"href\",t),-1===t.search(/^#/)&&this.attr(\"target\",\"_blank\"),this.text(this.obj.html||t)}else this.attr(\"href\",\"#\"),this._buildTitle(),this._buildMessage()},_buildTitle:function(){this.html(this.obj.title)},_buildMessage:function(){void 0===this.obj.message&&void 0===this.obj.api||this.on(\"click\",this._toggle.bind(this))},_toggle:function(t){t.preventDefault(),this.obj.message?this.app.broadcast(this.obj.message,this.obj.args):this.obj.api&&this.app.api(this.obj.api,this.obj.args)}}),y.add(\"module\",\"toolbar\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.utils=t.utils,this.toolbar=t.toolbar,this.detector=t.detector,this.buttons=[],this.toolbarModule=!1},onsource:{open:function(){!this.toolbar.isAir()&&this.toolbar.isFixed()&&this.toolbarModule.resetPosition()},opened:function(){this.toolbar.isAir()&&this.toolbarModule&&this.toolbarModule.createSourceHelper(),setTimeout(function(){y.dom(\".re-button-tooltip-\"+this.uuid).remove()}.bind(this),100)},close:function(){this.toolbar.isAir()&&this.toolbarModule&&this.toolbarModule.destroySourceHelper()},closed:function(){this.toolbar.is()&&this.opts.air&&this.toolbarModule.openSelected()}},ontoolbar:{removeexternal:function(){!this.opts.air&&this.opts.toolbarExternal&&this.opts.clickToEdit&&y.dom(this.opts.toolbarExternal).html(\"\")}},onobserve:function(){this.toolbar.is()&&this.toolbar.observe()},onfocus:function(){this._setExternalOnFocus()},onsourcefocus:function(){this._setExternalOnFocus()},onempty:function(){this.toolbar.isFixed()&&this.toolbarModule.resetPosition()},onenablereadonly:function(){this.toolbar.isAir()&&this.toolbarModule.close()},start:function(){this.toolbar.is()&&(this._buildButtons(),this._initToolbar(),this._initButtons())},stop:function(){this.toolbarModule&&this.toolbarModule.stop(),y.dom(\".re-button-tooltip-\"+this.uuid).remove(),y.dom(\".redactor-dropdown-\"+this.uuid).remove()},_buildButtons:function(){this.buttons=this.opts.buttons.concat(),this._buildImageButton(),this._buildFileButton(),this._buildSourceButton(),this._buildAdditionalButtons(),this._buildHiddenButtons()},_buildImageButton:function(){this.opts.imageUpload||this.opts.imageManagerJson||this.utils.removeFromArrayByValue(this.buttons,\"image\")},_buildFileButton:function(){this.opts.fileUpload||this.utils.removeFromArrayByValue(this.buttons,\"file\")},_buildSourceButton:function(){this.opts.source||this.utils.removeFromArrayByValue(this.buttons,\"html\")},_buildAdditionalButtons:function(){var t,e;if(0!==this.opts.buttonsAdd.length&&(this.opts.buttonsAdd=this._removeExistButtons(this.opts.buttonsAdd),this.buttons=this.buttons.concat(this.opts.buttonsAdd)),0!==this.opts.buttonsAddFirst.length&&(this.opts.buttonsAddFirst=this._removeExistButtons(this.opts.buttonsAddFirst),this.buttons.unshift(this.opts.buttonsAddFirst)),!1!==this.opts.buttonsAddAfter){t=this.buttons.indexOf(this.opts.buttonsAddAfter.after)+1,e=this.opts.buttonsAddAfter.buttons;for(var i=0;i<e.length;i++)this.buttons.splice(t+i,0,e[i])}if(!1!==this.opts.buttonsAddBefore){t=this.buttons.indexOf(this.opts.buttonsAddBefore.before)+1,e=this.opts.buttonsAddBefore.buttons;for(i=0;i<e.length;i++)this.buttons.splice(t-(1-i),0,e[i])}},_buildHiddenButtons:function(){if(0!==this.opts.buttonsHide.length)for(var t=this.opts.buttonsHide,e=0;e<t.length;e++)this.utils.removeFromArrayByValue(this.buttons,t[e]);if(this.detector.isMobile()&&0!==this.opts.buttonsHideOnMobile.length)for(t=this.opts.buttonsHideOnMobile,e=0;e<t.length;e++)this.utils.removeFromArrayByValue(this.buttons,t[e])},_removeExistButtons:function(t){for(var e=0;e<t.length;e++)-1!==this.opts.buttons.indexOf(t[e])&&this.utils.removeFromArrayByValue(t,t[e]);return t},_setExternalOnFocus:function(){!this.opts.air&&this.opts.toolbarExternal&&this.toolbarModule.setExternal()},_initToolbar:function(){this.toolbarModule=this.opts.air?y.create(\"toolbar.air\",this.app):y.create(\"toolbar.standard\",this.app)},_initButtons:function(){this.toolbar.setButtons(this.buttons);for(var t=0;t<this.buttons.length;t++){var e=this.buttons[t];y.buttons[e]&&this.toolbar.addButton(e,y.extend(!0,{},y.buttons[e]),!1,!1,!0)}}}),y.add(\"class\",\"toolbar.air\",{init:function(t){this.app=t,this.uuid=t.uuid,this.$doc=t.$doc,this.$win=t.$win,this.utils=t.utils,this.editor=t.editor,this.animate=t.animate,this.toolbar=t.toolbar,this.container=t.container,this.inspector=t.inspector,this.selection=t.selection,this.clicks=0,this._init()},stop:function(){this.toolbar.getWrapper().remove(),this.editor.getElement().off(\".redactor-air-trigger-\"+this.uuid),this.$doc.off(\".redactor-air-\"+this.uuid),this.$doc.off(\".redactor-air-trigger-\"+this.uuid),this.toolbar.stopObservers()},createSourceHelper:function(){this.$airHelper=y.dom(\"<span>\"),this.$airHelper.addClass(\"redactor-air-helper\"),this.$airHelper.html('<i class=\"re-icon-html\"></i>'),this.$airHelper.on(\"click\",function(t){t.preventDefault(),this.app.api(\"module.source.hide\")}.bind(this)),this.container.getElement().append(this.$airHelper)},destroySourceHelper:function(){this.$airHelper&&this.$airHelper.remove()},openSelected:function(){setTimeout(function(){this._isSelection()&&this._open(!1)}.bind(this),0)},close:function(){this.$doc.off(\".redactor-air-\"+this.uuid);var t=this.toolbar.getElement();t.removeClass(\"open\"),t.hide()},_init:function(){this.toolbar.create();var t=this.toolbar.getWrapper(),e=this.toolbar.getElement(),i=this.editor.getElement(),s=this.container.getElement();t.addClass(\"redactor-toolbar-wrapper-air\"),e.addClass(\"redactor-air\"),e.hide(),t.append(e),s.prepend(t),this.openSelected(),this.$doc.on(\"mouseup.redactor-air-trigger-\"+this.uuid,this._open.bind(this)),i.on(\"keyup.redactor-air-trigger-\"+this.uuid,this._openCmd.bind(this))},_isSelection:function(){return this.selection.is()&&!this.selection.isCollapsed()},_isOpened:function(){return this.toolbar.getElement().hasClass(\"open\")},_open:function(t){var e=!!t&&t.target,i=!!t&&y.dom(t.target),s=this.inspector.parse(e),n=s.isComponent()&&!s.isComponentType(\"table\"),r=s.isFigcaption(),o=i&&0!==i.closest(\".redactor-modal\").length,a=t&&0!==i.closest(\".re-button\").length;if(!(t&&0!==i.closest(\".redactor-dropdown\").length||a||o||r||n||this.toolbar.isContextBar())&&this._isSelection()){var l=this.selection.getPosition();setTimeout(function(){this.app.isReadOnly()||this._isSelection()&&this._doOpen(l)}.bind(this),1)}},_openCmd:function(){if(this.selection.isAll()){var t=this.toolbar.getElement(),e=this.selection.getPosition();e.top=e.top<20?0:e.top-t.height(),e.height=0,this._doOpen(e)}},_doOpen:function(t){var e=this.toolbar.getWrapper(),i=this.toolbar.getElement(),s=this.container.getElement().offset(),n=0,r=this.$win.width(),o=i.width();r<t.left+o&&(n=o-this.selection.getPosition().width);e.css({left:t.left-s.left-n+\"px\",top:t.top-s.top+t.height+this.$doc.scrollTop()+\"px\"}),this.app.broadcast(\"airOpen\"),i.addClass(\"open\"),i.show(),this.$doc.on(\"click.redactor-air-\"+this.uuid,this._close.bind(this)),this.$doc.on(\"keydown.redactor-air-\"+this.uuid,this._close.bind(this)),this.app.broadcast(\"airOpened\")},_close:function(t){var e=!!t&&y.dom(t.target),i=t&&0!==e.closest(\"[data-dropdown], .redactor-dropdown-not-close\").length;(!i&&t&&0!==e.closest(\".re-button\").length||!i&&this._isOpened())&&(this.app.broadcast(\"airClose\"),this.close(),this.app.broadcast(\"airClosed\"))}}),y.add(\"class\",\"toolbar.fixed\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.$doc=t.$doc,this.$win=t.$win,this.editor=t.editor,this.toolbar=t.toolbar,this.detector=t.detector,this.container=t.container,this._init()},stop:function(){this.$fixedTarget.off(\".redactor-toolbar-\"+this.uuid),this.$win.off(\".redactor-toolbar-\"+this.uuid)},reset:function(){var t=this.toolbar.getElement();this.toolbar.getWrapper().css(\"height\",\"\"),t.removeClass(\"redactor-toolbar-fixed\"),t.css({position:\"\",top:\"\",left:\"\",width:\"\"});var e=this.toolbar.getDropdown();e&&e.updatePosition()},_init:function(){this.$fixedTarget=this.toolbar.isTarget()?this.toolbar.getTargetElement():this.$win,this._doFixed(),this.toolbar.isTarget()&&(this.$win.on(\"scroll.redactor-toolbar-\"+this.uuid,this._doFixed.bind(this)),this.$win.on(\"resize.redactor-toolbar-\"+this.uuid,this._doFixed.bind(this))),this.$fixedTarget.on(\"scroll.redactor-toolbar-\"+this.uuid,this._doFixed.bind(this)),this.$fixedTarget.on(\"resize.redactor-toolbar-\"+this.uuid,this._doFixed.bind(this))},_doFixed:function(){var t=this.editor.getElement(),e=this.container.getElement(),i=this.toolbar.getElement(),s=this.toolbar.getWrapper();if(!this.editor.isSourceMode()&&0===e.parents().filter(function(t){return\"none\"===getComputedStyle(t,null).display&&t}).length){var n=t.height()<100,r=this.editor.isEmpty();if(n||r)this.reset();else if(!this.editor.isSourceMode()){var o=i.height(),a=(this.toolbar.isTarget()?e.position():e.offset()).top,l=a+e.height()-60,h=this.$fixedTarget.scrollTop()+this.opts.toolbarFixedTopOffset,c=this.toolbar.isTarget()?this.$fixedTarget.offset().top-this.$win.scrollTop():0;if(this.toolbar.isTarget()&&\"fixed\"===this.$fixedTarget.css(\"position\")){var d=this.$fixedTarget.hasClass(\"modal\")&&this.$fixedTarget.hasClass(\"fade\")?e.closest(\".modal-dialog\").position().top:0;c=this.$fixedTarget.scrollTop()-d}if(a<h&&h<l){var u=this.detector.isDesktop()?\"fixed\":\"absolute\";c=this.detector.isDesktop()?c:h-a,this.detector.isMobile()&&(this.fixedScrollTimeout&&clearTimeout(this.fixedScrollTimeout),i.hide(),this.fixedScrollTimeout=setTimeout(function(){i.show()},250)),s.height(o),i.addClass(\"redactor-toolbar-fixed\"),e.hasClass(\"redactor-box-fullscreen\")?i.css({position:u,top:\"0px\",width:e.width()+\"px\"}):i.css({position:u,top:c+this.opts.toolbarFixedTopOffset+\"px\",width:e.width()+\"px\"});var p=this.toolbar.getDropdown();p&&p.updatePosition(),this.app.broadcast(\"toolbar.fixed\")}else this.reset(),this.app.broadcast(\"toolbar.unfixed\")}}}}),y.add(\"class\",\"toolbar.standard\",{init:function(t){this.app=t,this.opts=t.opts,this.uuid=t.uuid,this.$body=t.$body,this.toolbar=t.toolbar,this.container=t.container,this.isExternalMultiple=!1,this.toolbarFixed=!1,this._init()},stop:function(){this.toolbar.getWrapper().remove(),this.toolbarFixed&&this.toolbarFixed.stop(),this.opts.toolbarExternal&&this._findToolbars(),this.toolbar.stopObservers(),this.$body.find(\".re-button-tooltip-\"+this.uuid).remove()},setExternal:function(){this._findToolbars(),this.isExternalMultiple&&(this.$toolbars.hide(),this.$external.find(\".redactor-toolbar-external-\"+this.uuid).show())},resetPosition:function(){this.toolbarFixed&&this.toolbarFixed.reset()},_init:function(){(this._build(),this.opts.toolbarExternal)?this._buildExternal():(this._buildFixed(),this.toolbar.getElement().show())},_build:function(){this.toolbar.create();var t=this.toolbar.getWrapper(),e=this.toolbar.getElement();t.addClass(\"redactor-toolbar-wrapper\"),e.addClass(\"redactor-toolbar\"),e.hide(),t.append(e),this.opts.toolbarExternal||this.container.getElement().prepend(t)},_buildExternal:function(){(this._initExternal(),this._findToolbars(),this.isExternalMultiple)?this._hideToolbarsExceptFirst():this.toolbar.getElement().show()},_buildFixed:function(){this.opts.toolbarFixed&&(this.toolbarFixed=y.create(\"toolbar.fixed\",this.app))},_initExternal:function(){var t=this.toolbar.getElement(),e=this.toolbar.getElement();t.addClass(\"redactor-toolbar-external redactor-toolbar-external-\"+this.uuid),this.$external=y.dom(this.opts.toolbarExternal),this.$external.append(e)},_findToolbars:function(){this.$toolbars=this.$external.find(\".redactor-toolbar-external\"),this.isExternalMultiple=1<this.$toolbars.length},_hideToolbarsExceptFirst:function(){this.$toolbars.hide(),this.$toolbars.first().show()}}),y.add(\"module\",\"line\",{init:function(t){this.app=t,this.lang=t.lang,this.component=t.component,this.inspector=t.inspector,this.insertion=t.insertion},oncontextbar:function(t,e){var i=this.inspector.parse(t.target);if(i.isComponentType(\"line\")){var s=i.getComponent(),n={remove:{title:this.lang.get(\"delete\"),api:\"module.line.remove\",args:s}};e.set(t,s,n,\"bottom\")}},insert:function(){var t=this.component.create(\"line\");this.insertion.insertRaw(t)},remove:function(t){this.component.remove(t)}}),y.add(\"class\",\"line.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,e&&void 0!==e.cmnt?e:this._init(e)},_init:function(t){var e,i;if(void 0!==t){var s=y.dom(t),n=s.get();\"HR\"===n.tagName?i=n:\"FIGURE\"===n.tagName&&(e=n,i=s.find(\"hr\").get())}this._buildWrapper(e),this._buildElement(i),this._initWrapper()},_buildElement:function(t){t?this.$element=y.dom(t):(this.$element=y.dom(\"<hr>\"),this.append(this.$element))},_buildWrapper:function(t){t=t||\"<figure>\",this.parse(t)},_initWrapper:function(){this.addClass(\"redactor-component\"),this.attr({\"data-redactor-type\":\"line\",tabindex:\"-1\",contenteditable:!1})}}),y.add(\"module\",\"link\",{modals:{link:'<form action=\"\">                 <div class=\"form-item\">                     <label for=\"modal-link-url\">URL <span class=\"req\">*</span></label>                     <input type=\"text\" id=\"modal-link-url\" name=\"url\">                 </div>                 <div class=\"form-item\">                     <label for=\"modal-link-text\">## text ##</label>                     <input type=\"text\" id=\"modal-link-text\" name=\"text\">                 </div>                 <div class=\"form-item form-item-title\">                     <label for=\"modal-link-title\">## title ##</label>                     <input type=\"text\" id=\"modal-link-title\" name=\"title\">                 </div>                 <div class=\"form-item form-item-target\">                     <label class=\"checkbox\">                         <input type=\"checkbox\" name=\"target\"> ## link-in-new-tab ##                     </label>                 </div>             </form>'},init:function(t){this.app=t,this.opts=t.opts,this.lang=t.lang,this.caret=t.caret,this.utils=t.utils,this.inline=t.inline,this.editor=t.editor,this.inspector=t.inspector,this.insertion=t.insertion,this.selection=t.selection,this.isCurrentLink=!1,this.currentText=!1},onmodal:{link:{open:function(t,e){this._setFormData(e,t)},opened:function(t,e){this._setFormFocus(e)},update:function(t,e){var i=e.getData();this._validateData(e,i)&&this._update(i)},insert:function(t,e){var i=e.getData();this._validateData(e,i)&&this._insert(i)},unlink:function(){this._unlink()}}},onbutton:{link:{observe:function(t){this._observeButton(t)}}},ondropdown:{link:{observe:function(t){this._observeUnlink(t),this._observeEdit(t)}}},oncontextbar:function(t,e){var i=this._getCurrent(),s=this.inspector.parse(i);if(s.isLink()||s.isFile()){var n=s.isFile()?s.getFile():s.getLink(),r=y.dom(n),o=y.dom(\"<a>\"),a=r.attr(\"href\");o.text(this._truncateText(a)),o.attr(\"href\",a),o.attr(\"target\",\"_blank\");var l={link:{title:o,html:this._truncateText(a)},edit:{title:this.lang.get(\"edit\"),api:\"module.link.open\"},unlink:{title:this.lang.get(\"unlink\"),api:\"module.link.unlink\"}};e.set(t,n,l,\"bottom\")}},open:function(){this.$link=this._buildCurrent(),this.app.api(\"module.modal.build\",this._getModalData())},insert:function(t){this._insert(t)},update:function(t){this._update(t)},unlink:function(){this._unlink()},_observeButton:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e);i.isPre()||i.isCode()?t.disable():t.enable()},_observeUnlink:function(t){var e=t.getItem(\"unlink\");0===this._getLinks().length?e.disable():e.enable()},_observeEdit:function(t){var e=this._getCurrent(),i=t.getItem(\"link\"),s=this.inspector.parse(e),n=s.isLink()||s.isFile()?this.lang.get(\"link-edit\"):this.lang.get(\"link-insert\");i.setTitle(n)},_unlink:function(){this.app.api(\"module.modal.close\");var t=[],e=this._getLinks();this.selection.save();for(var i=0;i<e.length;i++){var s=y.create(\"link.component\",this.app,e[i]);t.push(this.selection.getElement(e[i])),s.unwrap(),this.app.broadcast(\"link.deleted\",s)}this.selection.restore();for(i=0;i<t.length;i++){var n=t[i]?t[i]:this.editor.getElement();this.utils.normalizeTextNodes(n)}this._resetCurrent()},_update:function(t){this.app.api(\"module.modal.close\");var e=this._getLinks();this._setLinkData(e,t,\"updated\"),this._resetCurrent(),this.app.broadcast(\"link.changed\",e)},_insert:function(t){this.app.api(\"module.modal.close\");var e=this._getLinks();this._insertSingle(e,t)||(this._removeInSelection(e),this._insertMultiple(t)),this._resetCurrent()},_removeInSelection:function(t){this.selection.save();for(var e=0;e<t.length;e++){var i=y.create(\"link.component\",this.app,t[e]),s=i.clone();i.unwrap(),this.app.broadcast(\"link.deleted\",s)}this.selection.restore()},_insertMultiple:function(t){var e=this.selection.getRange();e&&this._isCurrentTextChanged(t)&&this._deleteContents(e);var i=this.inline.format({tag:\"a\"});this._setLinkData(i,t,\"inserted\")},_insertSingle:function(t,e){var i=this.selection.getInline();if(1===t.length&&(t[0].textContext===this.selection.getText()||i&&\"A\"===i.tagName)){var s=y.create(\"link.component\",this.app,t[0]);return s.setData(e),this.caret.setAfter(s),this.app.broadcast(\"link.inserted\",s),!0}return!1},_setLinkData:function(t,e,i){e.text=\"\"===e.text.trim()?this._truncateText(e.url):e.text;var s=!this.currentText||this.currentText!==e.text;this.selection.save();for(var n=0;n<t.length;n++){var r=y.create(\"link.component\",this.app,t[n]),o={};e.text&&s&&(o.text=e.text),e.url&&(o.url=e.url),void 0!==e.title&&(o.title=e.title),void 0!==e.target&&(o.target=e.target),r.setData(o),this.app.broadcast(\"link.\"+i,r)}setTimeout(this.selection.restore.bind(this.selection),0)},_deleteContents:function(t){var e=this.selection.getHtml(),i=this.utils.parseHtml(e).nodes[0];if(i&&3!==i.nodeType){var s=i.tagName.toLowerCase(),n=document.createElement(s);this.insertion.insertNode(n,\"start\")}else t.deleteContents()},_getModalData:function(){var t;return t=this._isLink()?{update:{title:this.lang.get(\"save\")},unlink:{title:this.lang.get(\"unlink\"),type:\"danger\"},cancel:{title:this.lang.get(\"cancel\")}}:{insert:{title:this.lang.get(\"insert\")},cancel:{title:this.lang.get(\"cancel\")}},{name:\"link\",title:this._isLink()?this.lang.get(\"link-edit\"):this.lang.get(\"link-insert\"),handle:this._isLink()?\"update\":\"insert\",commands:t}},_isLink:function(){return this.currentLink},_isCurrentTextChanged:function(t){return this.currentText&&this.currentText!==t.text},_buildCurrent:function(){var t,e=this._getCurrent(),i=this.inspector.parse(e);if(i.isLink()||i.isFile())this.currentLink=!0,t=i.isFile()?i.getFile():i.getLink(),t=y.create(\"link.component\",this.app,t);else{this.currentLink=!1,t=y.create(\"link.component\",this.app);var s={text:this.selection.getText()};t.setData(s)}return t},_getCurrent:function(){return this.selection.getInlinesAllSelected({tags:[\"a\"]})[0]},_getLinks:function(){for(var t=this.selection.getInlines({all:!0,tags:[\"a\"]}),e=[],i=0;i<t.length;i++){var s=this.inspector.parse(t[i]);(s.isLink()||s.isFile())&&e.push(t[i])}return e},_resetCurrent:function(){this.isCurrentLink=!1,this.currentText=!1},_truncateText:function(t){return t&&t.length>this.opts.linkSize?t.substring(0,this.opts.linkSize)+\"...\":t},_validateData:function(t,e){return\"\"!==e.url.trim()||t.setError(\"url\")},_setFormFocus:function(t){t.getField(\"url\").focus()},_setFormData:function(t,e){var i=this.$link.getData(),s={url:i.url,text:i.text,title:i.title,target:this.opts.linkTarget||i.target};this.opts.linkNewTab||e.find(\".form-item-target\").hide(),this.opts.linkTitle||e.find(\".form-item-title\").hide(),t.setData(s),this.currentText=t.getField(\"text\").val()}}),y.add(\"class\",\"link.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,this.opts=t.opts,this.reUrl=/^(?:(?:(?:https?|ftp):)?\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i,e&&void 0!==e.cmnt?e:this._init(e)},setData:function(t){for(var e in t)this._set(e,t[e])},getData:function(){for(var t=[\"url\",\"text\",\"target\",\"title\"],e={},i=0;i<t.length;i++)e[t[i]]=this._get(t[i]);return e},_init:function(t){var e=y.dom(t);void 0===t?this.parse(\"<a>\"):this.parse(e)},_set:function(t,e){this[\"_set_\"+t](e)},_get:function(t){return this[\"_get_\"+t]()},_get_target:function(){return!!this.attr(\"target\")&&this.attr(\"target\")},_get_url:function(){return this.attr(\"href\")},_get_title:function(){return this.attr(\"title\")},_get_text:function(){return this._getContext().text()},_getContext:function(){return this._findDeepestChild(this).element},_set_target:function(t){!1===t?this.removeAttr(\"target\"):t&&this.attr(\"target\",!0===t?\"_blank\":t)},_set_text:function(t){t=this._escapeHtml(t),this._getContext().html(t)},_set_title:function(t){t&&\"\"!==t?this.attr(\"title\",t):this.removeAttr(\"title\")},_set_url:function(t){this.opts.linkValidation&&(t=this._cleanUrl(t),this._isMailto(t)?t=\"mailto:\"+t.replace(\"mailto:\",\"\"):this._isUrl(t)&&-1===t.search(/^(ftp|https?)/i)&&(t=\"http://\"+t.replace(/(ftp|https?):\\/\\//i,\"\"))),this.attr(\"href\",t)},_isMailto:function(t){return-1!==t.search(\"@\")&&!1===/(ftp|https?):\\/\\//i.test(t)},_isUrl:function(t){return this.reUrl.test(t)},_cleanUrl:function(t){return(t=this._escapeHtml(t)).trim().replace(/[^\\W\\w\\D\\d+&\\'@#/%?=~_|!:,.;\\(\\)]/gi,\"\")},_escapeHtml:function(t){return t.replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#039;\")},_findDeepestChild:function(s){var n={depth:0,element:s};return s.children().each(function(t){var e=y.dom(t);if(t.outerHTML===s.html()){var i=this._findDeepestChild(e);i.depth+1>n.depth&&(n={depth:1+i.depth,element:i.element})}}.bind(this)),n}}),y.add(\"module\",\"modal\",{init:function(t){this.app=t,this.uuid=t.uuid,this.lang=t.lang,this.$doc=t.$doc,this.$win=t.$win,this.$body=t.$body,this.utils=t.utils,this.editor=t.editor,this.animate=t.animate,this.detector=t.detector,this.selection=t.selection,this.$box=!1,this.$modal=!1,this.selectionMarkers=!1,this.defaults={name:!1,url:!1,title:!1,width:\"600px\",height:!1,handle:!1,commands:!1}},build:function(t){this._open(t)},close:function(){this._close()},onstop:function(){this.$body.find(\"#redactor-modal-\"+this.uuid).remove(),this.$body.find(\"#redactor-overlay-\"+this.uuid).remove()},stop:function(){this.$box&&(this.$box.remove(),this.$box=!1,this.$modal=!1),this.$overlay&&this.$overlay.remove(),this.$doc.off(\".redactor.modal\"),this.$win.off(\".redactor.modal\")},resize:function(){this.$modal.setWidth(this.p.width),this.$modal.updatePosition()},_isOpened:function(){return this.$modal&&this.$modal.hasClass(\"open\")},_open:function(t){this._buildDefaults(t),this.p.url?this._openUrl():this._openTemplate()},_openUrl:function(){y.ajax.post({url:this.p.url,success:this._doOpen.bind(this)})},_openTemplate:function(){if(void 0!==y.modals[this.p.name]){var t=this.lang.parse(y.modals[this.p.name]);this._doOpen(t)}},_doOpen:function(t){this.stop(),this.selection.isCollapsed()?(this.selection.save(),this.selectionMarkers=!1):(this.selection.saveMarkers(),this.selectionMarkers=!0),this.detector.isDesktop()||document.activeElement.blur(),this._createModal(t),this._buildModalBox(),this._buildOverlay(),this._buildModal(),this._buildModalForm(),this._buildModalCommands(),this._broadcast(\"open\"),this.$modal.updatePosition(),this._buildModalTabs(),this.animate.start(this.$box,\"fadeIn\",this._opened.bind(this)),this.animate.start(this.$overlay,\"fadeIn\")},_opened:function(){this.$modal.addClass(\"open\"),this.$box.on(\"mousedown.redactor.modal\",this._close.bind(this)),this.$doc.on(\"keyup.redactor.modal\",this._handleEscape.bind(this)),this.$win.on(\"resize.redactor.modal\",this.resize.bind(this)),this.$modal.getBody().find(\"input[type=text],input[type=url],input[type=email]\").on(\"keydown.redactor.modal\",this._handleEnter.bind(this)),window.jQuery&&window.jQuery(document).off(\"focusin.modal\"),this._broadcast(\"opened\")},_close:function(t){if(this.$box&&this._isOpened()){if(t){if(!this._needToClose(t.target))return;t.stopPropagation(),t.preventDefault()}this.selectionMarkers?this.selection.restoreMarkers():this.selection.restore(),this.selectionMarkers=!1,this._broadcast(\"close\"),this.animate.start(this.$box,\"fadeOut\",this._closed.bind(this)),this.animate.start(this.$overlay,\"fadeOut\")}},_closed:function(){this.$modal.removeClass(\"open\"),this.$box.off(\".redactor.modal\"),this.$doc.off(\".redactor.modal\"),this.$win.off(\".redactor.modal\"),this._broadcast(\"closed\")},_createModal:function(t){this.$modal=y.create(\"modal.element\",this.app,t)},_broadcast:function(t){this.app.broadcast(\"modal.\"+t,this.$modal,this.$modalForm),this.app.broadcast(\"modal.\"+this.p.name+\".\"+t,this.$modal,this.$modalForm)},_buildDefaults:function(t){this.p=y.extend({},this.defaults,t)},_buildModalBox:function(){this.$box=y.dom(\"<div>\"),this.$box.attr(\"id\",\"redactor-modal-\"+this.uuid),this.$box.addClass(\"redactor-modal-box redactor-animate-hide\"),this.$box.html(\"\"),this.$body.append(this.$box)},_buildOverlay:function(){this.$overlay=y.dom(\"#redactor-overlay-\"+this.uuid),0===this.$overlay.length&&(this.$overlay=y.dom(\"<div>\"),this.$overlay.attr(\"id\",\"redactor-overlay-\"+this.uuid),this.$overlay.addClass(\"redactor-overlay redactor-animate-hide\"),this.$body.prepend(this.$overlay))},_buildModal:function(){this.$box.append(this.$modal),this.$modal.setTitle(this.p.title),this.$modal.setHeight(this.p.height),this.$modal.setWidth(this.p.width)},_buildModalCommands:function(){if(this.p.commands){var t=this.p.commands,e=this.$modal.getFooter();for(var i in t){var s=y.dom(\"<button>\");s.html(t[i].title),s.attr(\"data-command\",i),\"cancel\"===i&&(s.attr(\"data-action\",\"close\"),s.addClass(\"redactor-button-unstyled\")),void 0!==t[i].type&&\"danger\"===t[i].type&&s.addClass(\"redactor-button-danger\"),s.on(\"click\",this._handleCommand.bind(this)),e.append(s)}}},_buildModalTabs:function(){var t=this.$modal.getBody(),e=t.find(\".redactor-modal-tab\"),n=t.find(\".redactor-modal-tabs\");1<e.length&&((n=0===n.length?y.dom(\"<div>\"):n.html(\"\")).addClass(\"redactor-modal-tabs\"),e.each(function(t,e){var i=y.dom(t),s=y.dom(\"<a>\");s.attr(\"href\",\"#\"),s.attr(\"rel\",e),s.text(i.attr(\"data-title\")),s.on(\"click\",this._showTab.bind(this)),0===e&&s.addClass(\"active\"),n.append(s)}.bind(this)),t.prepend(n)),1===e.length&&e.show()},_buildModalForm:function(){this.$modalForm=y.create(\"modal.form\",this.app,this.$modal.getForm())},_showTab:function(t){t.preventDefault();var e=y.dom(t.target),i=e.attr(\"rel\"),s=this.$modal.getBody(),n=s.find(\".redactor-modal-tab\");n.hide(),n.eq(i).show(),s.find(\".redactor-modal-tabs a\").removeClass(\"active\"),e.addClass(\"active\")},_needToClose:function(t){var e=y.dom(t);return!(\"close\"!==e.attr(\"data-action\")&&!this.$modal.isCloseNode(t)&&0!==e.closest(\".redactor-modal\").length)},_handleCommand:function(t){var e=y.dom(t.target).closest(\"button\").attr(\"data-command\");\"cancel\"!==e&&t.preventDefault(),this._broadcast(e)},_handleEnter:function(t){13===t.which&&this.p.handle&&(t.preventDefault(),this._broadcast(this.p.handle))},_handleEscape:function(t){27===t.which&&this._close()}}),y.add(\"class\",\"modal.element\",{mixins:[\"dom\"],init:function(t,e){this.app=t,this.opts=t.opts,this.$win=t.$win,this._init(e)},getForm:function(){return this.find(\"form\")},getHeader:function(){return this.$modalHeader},getBody:function(){return this.$modalBody},getFooter:function(){return this.$modalFooter},setTitle:function(t){t&&this.$modalHeader.html(t)},setWidth:function(t){t=parseInt(t)>=this.$win.width()?\"96%\":t,this.css(\"max-width\",t)},setHeight:function(t){!1!==t&&this.$modalBody.css(\"height\",t)},updatePosition:function(){var t=this.width();this.css({left:\"50%\",\"margin-left\":\"-\"+t/2+\"px\"});var e=this.$win.height(),i=this.height(),s=e/2-i/2;i<e&&0!=s&&this.css(\"margin-top\",s+\"px\")},isCloseNode:function(t){return t===this.$modalClose.get()},_init:function(t){this._build(),this._buildClose(),this._buildHeader(),this._buildBody(),this._buildFooter(),this._buildTemplate(t)},_build:function(){this.parse(\"<div>\"),this.addClass(\"redactor-modal\"),this.attr(\"dir\",this.opts.direction)},_buildClose:function(){this.$modalClose=y.dom(\"<span>\"),this.$modalClose.addClass(\"redactor-close\"),this.append(this.$modalClose)},_buildHeader:function(){this.$modalHeader=y.dom(\"<div>\"),this.$modalHeader.addClass(\"redactor-modal-header\"),this.append(this.$modalHeader)},_buildBody:function(){this.$modalBody=y.dom(\"<div>\"),this.$modalBody.addClass(\"redactor-modal-body\"),this.append(this.$modalBody)},_buildFooter:function(){this.$modalFooter=y.dom(\"<div>\"),this.$modalFooter.addClass(\"redactor-modal-footer\"),this.append(this.$modalFooter)},_buildTemplate:function(t){this.$modalBody.html(t)}}),y.add(\"class\",\"modal.form\",{mixins:[\"dom\"],init:function(t,e){this.app=t,this.build(e)},build:function(t){this.parse(t)},getData:function(){var i={};return this.find(\"[name]\").each(function(t){var e=y.dom(t);i[e.attr(\"name\")]=e.val()}),i},setData:function(s){this.find(\"[name]\").each(function(t){var e=y.dom(t),i=e.attr(\"name\");s.hasOwnProperty(i)&&(t.type&&\"checkbox\"===t.type?t.checked=s[i]:e.val(s[i]))})},getField:function(t){return this.find(\"[name=\"+t+\"]\")},setError:function(t){var e=this.getField(t);return e.addClass(\"error\"),e.one(this._getFieldEventName(e.get()),this._clearError),!1},_clearError:function(){return y.dom(this).removeClass(\"error\")},_getFieldEventName:function(t){return\"SELECT\"===t.tagName||\"checkbox\"===t.type||\"radio\"===t.type?\"change\":\"keyup\"}}),y.add(\"module\",\"block\",{init:function(t){this.app=t,this.block=t.block},format:function(t){var e=this.block.format(t);this.app.broadcast(\"format\",\"block\",e)},clearformat:function(){this.block.clearFormat()},clearstyle:function(){this.block.clearStyle()},clearclass:function(){this.block.clearClass()},clearattr:function(){this.block.clearAttr()},add:function(t,e){this.block.add(t,e)},toggle:function(t,e){this.block.toggle(t,e)},set:function(t,e){this.block.set(t,e)},remove:function(t,e){this.block.remove(t,e)}}),y.add(\"module\",\"inline\",{init:function(t){this.app=t,this.inline=t.inline},format:function(t){var e=this.inline.format(t);this.app.broadcast(\"format\",\"inline\",e)},clearformat:function(){this.inline.clearFormat()},clearstyle:function(){this.inline.clearStyle()},clearclass:function(){this.inline.clearClass()},clearattr:function(){this.inline.clearAttr()},add:function(t,e){this.inline.add(t,e)},toggle:function(t,e){this.inline.toggle(t,e)},set:function(t,e){this.inline.set(t,e)},remove:function(t,e){this.inline.remove(t,e)}}),y.add(\"module\",\"autosave\",{init:function(t){this.app=t,this.opts=t.opts,this.utils=t.utils,this.source=t.source},onsynced:function(){this.opts.autosave&&this._send()},_send:function(){var e=this.opts.autosaveName?this.opts.autosaveName:this.source.getName(),i={};i[e]=this.source.getCode(),i=this.utils.extendData(i,this.opts.autosaveData),y.ajax.request(this.opts.autosaveMethod,{url:this.opts.autosave,data:i,success:function(t){this._complete(t,e,i)}.bind(this)})},_complete:function(t,e,i){var s=t&&t.error?\"autosaveError\":\"autosave\";this.app.broadcast(s,e,i,t)}}),y.add(\"module\",\"input\",{init:function(t){this.app=t,this.opts=t.opts,this.utils=t.utils,this.editor=t.editor,this.keycodes=t.keycodes,this.element=t.element,this.selection=t.selection,this.insertion=t.insertion,this.inspector=t.inspector,this.autoparser=t.autoparser,this.lastShiftKey=!1},onpaste:function(t,e){if(this.opts.input)return y.create(\"input.paste\",this.app,t,e)},onkeydown:function(t){if(this.opts.input){var e=t.which;if(!y.create(\"input.shortcut\",this.app,t).is()){if((t.ctrlKey||t.metaKey)&&!t.altKey&&65===e)return t.preventDefault(),this._selectAll();var i=[this.keycodes.ENTER,this.keycodes.SPACE,this.keycodes.BACKSPACE,this.keycodes.DELETE],s=[this.keycodes.UP,this.keycodes.DOWN,this.keycodes.LEFT,this.keycodes.RIGHT],n=-1!==i.indexOf(e),r=-1!==s.indexOf(e),o=(t.ctrlKey||t.metaKey)&&88===e,a=!t.ctrlKey&&!t.metaKey&&(48<=e&&e<=57||65<=e&&e<=90);if(this.selection.isAll()&&r&&(o||!t.ctrlKey&&!t.metaKey&&!t.altKey&&!t.shiftKey)){if(o)return this.editor.disableNonEditables(),void this.app.broadcast(\"empty\");if(this._isArrowKey(e))return!0;if(n&&t.preventDefault(),this.element.isType(\"inline\"))this.editor.getElement().html(\"\"),this.editor.startFocus();else this.insertion.set(this.opts.emptyHtml);if(n)return;this.app.broadcast(\"empty\")}if(this.opts.autoparse&&this.autoparser.format(t,e),!a||!this.selection.hasNonEditable())return e===this.keycodes.ENTER?y.create(\"input.enter\",this.app,t,e):t.metaKey&&219===e?(t.preventDefault(),void this.app.api(\"module.list.outdent\")):e===this.keycodes.TAB||t.metaKey&&221===e?y.create(\"input.tab\",this.app,t,e):e===this.keycodes.SPACE?y.create(\"input.space\",this.app,t,e,this.lastShiftKey):this._isDeleteKey(e)?y.create(\"input.delete\",this.app,t,e):this._isArrowKey(e)?y.create(\"input.arrow\",this.app,t,e):void 0;t.preventDefault()}}},onkeyup:function(t){if(this.opts.input){var e=t.which;if(this.lastShiftKey=t.shiftKey,this.app.broadcast(\"contextbar.close\"),!y.create(\"input.shortcode\",this.app,t,e).is()){if(e===this.keycodes.BACKSPACE){var i=this.editor.getElement(),s=this.utils.trimSpaces(i.html());if(\"\"===(s=(s=s.replace(/<br\\s?\\/?>/g,\"\")).replace(/<div><\\/div>/,\"\")))return t.preventDefault(),this.editor.setEmpty(),void this.editor.startFocus()}this.editor.isEmpty()&&this.app.broadcast(\"empty\")}}},start:function(){this.opts.shortcutsAdd&&(this.opts.shortcuts=y.extend({},!0,this.opts.shortcuts,this.opts.shortcutsAdd))},_selectAll:function(){var t,e=this.selection.getCurrent(),i=this.inspector.parse(e);return i.isComponentType(\"table\")?(t=i.getTable(),void this.selection.setAll(t)):i.isComponentType(\"code\")?(t=i.getComponentCodeElement(),void this.selection.setAll(t)):void this.selection.setAll()},_isArrowKey:function(t){return-1!==[this.keycodes.UP,this.keycodes.DOWN,this.keycodes.RIGHT,this.keycodes.LEFT].indexOf(t)},_isDeleteKey:function(t){return t===this.keycodes.BACKSPACE||t===this.keycodes.DELETE}}),y.add(\"class\",\"input.arrow\",{init:function(t,e,i){this.app=t,this.opts=t.opts,this.utils=t.utils,this.caret=t.caret,this.offset=t.offset,this.marker=t.marker,this.editor=t.editor,this.keycodes=t.keycodes,this.component=t.component,this.inspector=t.inspector,this.selection=t.selection,this.key=i,this._init(e)},_init:function(t){if(!this._isRightLeftKey()||!this._isExitVariable(t)){if(this._isRightDownKey()){if(this._isExitOnDownRight(t))return;if(this._selectComponent(t,\"End\",\"next\"))return}if(this._isLeftUpKey()){if(this._isExitOnUpLeft(t))return;if(this._selectComponent(t,\"Start\",\"prev\"))return}this.key===this.keycodes.LEFT?this.utils.trimInvisibleChars(\"left\"):this.key===this.keycodes.RIGHT&&this.utils.trimInvisibleChars(\"right\")}},_isRightDownKey:function(){return-1!==[this.keycodes.DOWN,this.keycodes.RIGHT].indexOf(this.key)},_isLeftUpKey:function(){return-1!==[this.keycodes.UP,this.keycodes.LEFT].indexOf(this.key)},_isRightLeftKey:function(){return-1!==[this.keycodes.RIGHT,this.keycodes.LEFT].indexOf(this.key)},_isExitVariable:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e),s=i.getComponent();if(i.isComponentType(\"variable\")&&i.isComponentActive()){t.preventDefault();var n=this.key===this.keycodes.LEFT?\"setBefore\":\"setAfter\";this.caret[n](s)}else;},_isExitOnUpLeft:function(t){var e=this.selection.getCurrent(),i=this.selection.getBlock(e),s=this.inspector.parse(e),n=i.previousElementSibling,r=this.caret.isStart(i);if(r&&n&&\"TABLE\"===n.tagName)return t.preventDefault(),this.caret.setEnd(n),!0;if(s.isFigcaption()){i=s.getFigcaption(),r=this.caret.isStart(i);var o=y.dom(i).closest(\".redactor-component\");if(r&&0!==o.length)return t.preventDefault(),this.caret.setEnd(o),!0}else{if(s.isTable()&&r)return t.preventDefault(),this.caret.setEnd(i.previousElementSibling),!0;if(!s.isComponentEditable()&&s.isComponent()&&!s.isComponentType(\"variable\")){var a=s.getComponent();if(!a.previousElementSibling)return t.preventDefault(),this.component.clearActive(),this._exitPrevElement(t,s.getComponent());if(a.previousElementSibling)return t.preventDefault(),this.component.clearActive(),this.caret.setEnd(a.previousElementSibling),!0}}},_isExitOnDownRight:function(t){var e,i,s=this.editor.getElement(),n=this.selection.getCurrent(),r=this.inspector.parse(n),o=this.caret.isEnd();if(r.isTable()){if(e=r.getTable(),(i=this.caret.isEnd(e))||o)return this._exitNextElement(t,r.getComponent())}else if(r.isFigcaption()){if(e=r.getFigcaption(),(i=this.caret.isEnd(e))||o)return this._exitNextElement(t,r.getComponent())}else if(r.isComponentType(\"code\")){var a=r.getComponent(),l=y.dom(r.getComponentCodeElement()).closest(\"pre\");i=this.caret.isEnd(e);var h=l&&l.get().nextElementSibling;if(i&&!h)return this._exitNextElement(t,a)}else if(r.isPre()||r.isBlockquote()||r.isDl()){if(o){if(r.isPre())return this._exitNextElement(t,r.getPre());if(r.isBlockquote())return this._exitNextElement(t,r.getBlockquote());if(r.isDl())return this._exitNextElement(t,r.getDl())}}else if(r.isList()){var c=y.dom(n).parents(\"ul, ol\",s).last();if((i=this.caret.isEnd(c))||o)return this._exitNextElement(t,c.get())}else if(r.isComponent()&&!r.isComponentType(\"variable\")&&\"span\"!==r.getTag())return this.component.clearActive(),this._exitNextElement(t,r.getComponent())},_exitPrevElement:function(t,e){return t.preventDefault(),e.previousElementSibling?this.caret.setEnd(e.previousElementSibling):this.utils.createMarkupBefore(e),!0},_exitNextElement:function(t,e){return t.preventDefault(),e.nextElementSibling?this.caret.setStart(e.nextElementSibling):this.utils.createMarkup(e),!0},_selectComponent:function(t,e,i){var s=this.selection.getCurrent(),n=this.selection.getBlock(s),r=this.utils.findSiblings(s,i),o=this.utils.findSiblings(n,i);r&&this.caret[\"is\"+e](s)?this._selectComponentItem(t,r,e):o&&this.caret[\"is\"+e](n)&&this._selectComponentItem(t,o,e)},_selectComponentItem:function(t,e,i){if(this.component.isNonEditable(e))return t.preventDefault(),this.caret[\"set\"+i](e),!0}}),y.add(\"class\",\"input.delete\",{init:function(t,e,i){this.app=t,this.opts=t.opts,this.caret=t.caret,this.utils=t.utils,this.editor=t.editor,this.marker=t.marker,this.keycodes=t.keycodes,this.component=t.component,this.inspector=t.inspector,this.selection=t.selection,this.insertion=t.insertion,this.key=i,this._init(e)},_init:function(t){if(!this._removeActiveComponent(t)&&!this._removeAllSelectedTable(t)){if(this.key===this.keycodes.BACKSPACE){var e=this.editor.getElement();if(this.utils.trimSpaces(e.html())===this.opts.emptyHtml)return void t.preventDefault()}if(this._detectVariableOrNonEditable()||this.selection.hasNonEditable())t.preventDefault();else{if(this.selection.isAll())return t.preventDefault(),void this.insertion.set(this.opts.emptyHtml);this.selection.isCollapsed()&&(this.key===this.keycodes.BACKSPACE?this._traverseBackspace(t):this.key===this.keycodes.DELETE&&this._traverseDelete(t)),this.key===this.keycodes.BACKSPACE&&this.utils.trimInvisibleChars(\"left\"),this._removeUnwantedStyles(),this._removeEmptySpans(),this._removeSpanTagsInHeadings(),this._removeInlineTagsInPre()}}},_detectVariableOrNonEditable:function(){var t,e=this.selection.getBlock(),i=this.caret.isStart(e),s=this.caret.isEnd(e);if(this.key===this.keycodes.BACKSPACE&&i){if(t=e.previousSibling,this._isNonEditable(t))return!0}else if(this.key===this.keycodes.DELETE&&s&&(t=e.nextSibling,this._isNonEditable(t)))return!0;var n=this.selection.getCurrent(),r=this.caret.isStart(n),o=this.caret.isEnd(n),a=\"\"===this.selection.getTextBeforeCaret().trim(),l=\"\"===this.selection.getTextAfterCaret().trim();if(this.key===this.keycodes.BACKSPACE&&r&&!a){if(t=n.previousSibling,this._isVariable(t))return this.caret.setEnd(t),!0;if(this._isNonEditable(t))return!0}else if(this.key===this.keycodes.DELETE&&o&&!l){if(t=n.nextSibling,this._isVariable(t))return this.caret.setStart(t),!0;if(this._isNonEditable(t))return!0}},_isVariable:function(t){return 0!==y.dom(t).closest('[data-redactor-type=\"variable\"]').length},_isNonEditable:function(t){return 0!==y.dom(t).closest(\".non-editable\").length},_getBlock:function(){var t=this.editor.getElement(),e=this.selection.getBlock(),i=this.inspector.parse(e);return e=i.isList()?y.dom(e).parents(\"ul, ol\",t).last().get():e,e=i.isDl()?i.getDl():e,e=i.isTable()?i.getTable():e},_traverseDelete:function(t){var e,i,s,n=this.selection.getCurrent(),r=this.inspector.parse(n);if(r.isFigcaption()){if(e=r.getFigcaption(),i=this.caret.isEnd(e))return void t.preventDefault()}else if(r.isComponentType(\"code\")&&(e=r.getComponent(),i=this.caret.isEnd(e)))return void t.preventDefault();e=this._getBlock();var o=this.utils.findSiblings(e,\"next\");if(o){i=this.caret.isEnd(e);var a=this.inspector.parse(o),l=\"P\"===o.tagName||\"DIV\"===o.tagName;if(i&&a.isComponentType(\"table\"))return t.preventDefault(),void this.caret.setStart(o);if(i&&a.isComponentEditable())return t.preventDefault(),void this.component.remove(o,!1);if(i&&a.isComponent())return t.preventDefault(),this.caret.setStart(o),void(this.utils.isEmptyHtml(e.innerHTML)&&y.dom(e).remove());if(i&&a.isList()){var h=y.dom(e);if(s=y.dom(o),r.isList())return t.preventDefault(),h.append(s),void s.unwrap();var c=s.children(\"li\").first(),d=c.find(\"ul, ol\");if(0!==d.length)return t.preventDefault(),s.prepend(d),d.unwrap(),h.append(c),void c.unwrap()}else if(i&&!r.isList()&&!r.isTable()&&l&&!this.utils.isEmptyHtml(e.innerHTML)){t.preventDefault();var u=y.dom(e);return s=y.dom(o),u.append(s),void s.unwrap()}}},_traverseBackspace:function(t){var e,i,s,n,r=this.selection.getCurrent(),o=this.inspector.parse(r);if(o.isFigcaption()){if(e=o.getFigcaption(),i=this.caret.isStart(e))return void t.preventDefault()}else if(o.isComponentType(\"code\")&&(e=o.getComponent(),(i=this.caret.isStart(e))&&e.previousElementSibling))return t.preventDefault(),this.caret.setEnd(e.previousElementSibling),!0;e=this._getBlock();var a=this.utils.findSiblings(e,\"prev\");if(a){i=this.caret.isStart(e);var l=this.inspector.parse(a),h=\"P\"===a.tagName||\"DIV\"===a.tagName;if(i&&l.isComponentType(\"code\"))return t.preventDefault(),void this.component.remove(a,!1);if(i&&l.isComponentType(\"table\"))return t.preventDefault(),void this.caret.setEnd(a);if(i&&l.isComponent())return t.preventDefault(),this.caret.setStart(a),void(this.utils.isEmptyHtml(e.innerHTML)&&y.dom(e).remove());if(i&&o.isList())if(t.preventDefault(),n=y.dom(e),s=y.dom(a),l.isList())n.children(\"li\").first().prepend(this.marker.build(\"start\")),s.append(n),n.unwrap(),this.selection.restoreMarkers();else{var c=n.children(\"li\").first(),d=c.get(),u=c.find(\"ul, ol\"),p=this.utils.replaceToTag(d,this.opts.markup);this.opts.breakline&&p.attr(\"data-redactor-tag\",\"br\"),n.before(p),this.caret.setStart(p),0!==u.length&&(n.prepend(u),u.unwrap())}else if(i&&h){if(t.preventDefault(),this.utils.isEmpty(a))return void(s=y.dom(a)).remove();var f=this.utils.createInvisibleChar(),m=y.dom(e);return s=y.dom(a),this.caret.setEnd(s),m.prepend(f),s.append(m.contents()),void m.remove()}}else setTimeout(this._replaceBlock.bind(this),1)},_replaceBlock:function(){var t=this.selection.getBlock(),e=y.dom(t);if(\"p\"===this.opts.markup&&t&&this._isNeedToReplaceBlock(t)){var i=document.createElement(this.opts.markup);e.replaceWith(i),this.caret.setStart(i)}this.opts.breakline&&t&&\"DIV\"===t.tagName&&e.attr(\"data-redactor-tag\",\"br\")},_isNeedToReplaceBlock:function(t){return\"DIV\"===t.tagName&&this.utils.isEmptyHtml(t.innerHTML)},_removeActiveComponent:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e),s=i.getComponent();if(i.isComponent()&&this.component.isActive(s))return t.preventDefault(),this.component.remove(s),!0},_removeAllSelectedTable:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e).getTable();if(i&&this.selection.isAll(i))return t.preventDefault(),this.component.remove(i),!0},_removeUnwantedStyles:function(){var t=this.editor.getElement();setTimeout(function(){t.find(\"*[style]\").not(\"img, figure, figcaption, iframe, [data-redactor-style-cache], [data-redactor-span]\").removeAttr(\"style\")},0)},_removeEmptySpans:function(){var t=this.editor.getElement();setTimeout(function(){t.find(\"span\").each(function(t){0===t.attributes.length&&y.dom(t).replaceWith(t.childNodes)})},0)},_removeSpanTagsInHeadings:function(){var t=this.editor.getElement();setTimeout(function(){t.find(\"h1, h2, h3, h4, h5, h6\").each(function(t){var e=y.dom(t);0===e.closest(\"figure\").length&&e.find(\"span\").not(\".redactor-component, .non-editable, .redactor-selection-marker, [data-redactor-style-cache], [data-redactor-span]\").unwrap()})},1)},_removeInlineTagsInPre:function(){var t=this.editor.getElement(),i=this.opts.inlineTags;setTimeout(function(){t.find(\"pre\").each(function(t){var e=y.dom(t);0===e.closest(\"figure\").length&&e.find(i.join(\",\")).not(\"code, .redactor-selection-marker\").unwrap()})},1)}}),y.add(\"class\",\"input.enter\",{init:function(t,e){this.app=t,this.opts=t.opts,this.utils=t.utils,this.caret=t.caret,this.editor=t.editor,this.keycodes=t.keycodes,this.detector=t.detector,this.insertion=t.insertion,this.selection=t.selection,this.inspector=t.inspector,this._init(e)},_init:function(t){return this.opts.enterKey?!1===this.app.broadcast(\"enter\",t)?t.preventDefault():this.selection.hasNonEditable()?void t.preventDefault():t.ctrlKey||t.shiftKey?this._insertBreak(t):void(this._isExit(t)||this._traverse(t)):this._disable(t)},_disable:function(t){t.preventDefault();var e=this.selection.getRange();e&&!e.collapsed&&e.deleteContents()},_insertBreak:function(t){t.preventDefault();var e=this.selection.getCurrent(),i=this.selection.getBlock(),s=this.inspector.parse(e);if(s.isHeading()&&this.caret.isStart(i)){var n=y.dom(i),r=n.clone().html(\"\");n.before(r),this.caret.setStart(n)}else{if(s.isComponent()&&!s.isComponentEditable()||s.isCode())return;s.isPre()?this.insertion.insertNewline():this.insertion.insertBreakLine()}},_isExit:function(t){var e=this.editor.getElement(),i=this.selection.getBlock(),s=this.inspector.parse(i),n=this.caret.isEnd(i),r=this.selection.getCurrent(),o=r.previousSibling;if(s.isBlockquote()){var a=n&&this._isExitableBlock(i,\"P\"),l=n&&this._isExitableDblBreak(o);if(a||l)return this._exitFromElement(t,l?o:i,s.getBlockquote())}else if(!s.isComponentType(\"code\")&&s.isPre()){if(n){var h=i.innerHTML;if(null!==(h=this.utils.removeInvisibleChars(h)).match(/(\\n\\n\\n)$/))return y.dom(o.previousSibling.previousSibling).remove(),this._exitFromElement(t,o,i)}}else if(s.isDl()){if(n&&this._isExitableBlock(i,\"DT\"))return this._exitFromElement(t,i,s.getDl())}else if(s.isList()){var c=y.dom(r).parents(\"ul, ol\",e).last();if((n=this.caret.isEnd(c))&&this._isExitableBlock(i,\"LI\"))return this._exitFromElement(t,i,c)}else if(s.isComponent()&&s.isComponentActive()&&!s.isFigcaption()&&!s.isComponentEditable())return this._exitFromElement(t,!1,s.getComponent())},_isExitableDblBreak:function(t){var e=!!t&&t.nextSibling;if(e){var i=this.utils.removeInvisibleChars(e.textContent);return 3===e.nodeType&&\"\"===i.trim()}},_isExitableBlock:function(t,e){return t&&t.tagName===e&&this.utils.isEmptyHtml(t.innerHTML)},_exitFromElement:function(t,e,i){return t.preventDefault(),e&&y.dom(e).remove(),this.utils.createMarkup(i),!0},_exitNextElement:function(t,e){return t.preventDefault(),e.nextSibling?this.caret.setStart(e.nextSibling):this.utils.createMarkup(e),!0},_traverse:function(t){var e=this.selection.getCurrent(),i=this.selection.isText(),s=this.selection.getBlock(),n=this.inspector.parse(e),r=!!s&&s.tagName.toLowerCase(),o=y.dom(e).closest(\"[data-redactor-type=variable]\");if(0!==o.length&&this.caret.setAfter(o),n.isPre())return t.preventDefault(),this.insertion.insertNewline();if(n.isBlockquote())return(s=this.selection.getBlock(e))&&\"BLOCKQUOTE\"===s.tagName?(t.preventDefault(),this.insertion.insertBreakLine()):void 0;if(n.isFigcaption()){s=n.getFigcaption();var a=this.caret.isEnd(s),l=this.caret.isEnd();return a||l?this._exitNextElement(t,n.getComponent()):void t.preventDefault()}if(n.isDl())return t.preventDefault(),this._traverseDl(e);if(this.opts.breakline&&\"div\"===r)setTimeout(this._replaceBlock.bind(this),1);else{if(i)return t.preventDefault(),this.insertion.insertBreakLine();if(!n.isList()){var h=this.detector.isDesktop()?50:1;setTimeout(this._replaceBlock.bind(this),h)}}},_traverseDl:function(t){var e=this.selection.getBlock(t),i=this.inspector.parse(e).getTag(),s=y.dom(e),n=s.get().nextSibling||!1,r=y.dom(n),o=n&&r.is(\"dd\"),a=n&&r.is(\"dt\"),l=this.caret.isEnd(e);if(\"dt\"===i&&!o&&l){var h=document.createElement(\"dd\");return s.after(h),void this.caret.setStart(h)}if(\"dd\"!==i||a||!l)return this.insertion.insertBreakLine();var c=document.createElement(\"dt\");return s.after(c),void this.caret.setStart(c)},_replaceBlock:function(){var t=this.selection.getBlock(),e=y.dom(t);if(\"p\"===this.opts.markup&&t&&this._isNeedToReplaceBlock(t)){var i=document.createElement(this.opts.markup);e.replaceWith(i),this.caret.setStart(i)}else if(t)if(this.utils.isEmptyHtml(t.innerHTML))this._clearBlock(e,t);else{var s=this.utils.getFirstNode(t);s&&\"BR\"===s.tagName&&(y.dom(s).remove(),this.caret.setStart(t))}e.removeAttr(\"id\"),t&&this._isNeedToCleanBlockStyle(t)&&this.opts.cleanOnEnter&&e.removeAttr(\"class style\"),this.opts.breakline&&t&&t.tagName},_clearBlock:function(t,e){\"DIV\"===e.tagName&&t.find(\"br\").remove(),!this.opts.cleanInlineOnEnter&&\"<br>\"!==e.innerHTML||t.html(\"\"),this.caret.setStart(e)},_isNeedToReplaceBlock:function(t){return\"DIV\"===t.tagName&&this.utils.isEmptyHtml(t.innerHTML)},_isNeedToCleanBlockStyle:function(t){return\"P\"===t.tagName&&this.utils.isEmptyHtml(t.innerHTML)}}),y.add(\"class\",\"input.paste\",{init:function(t,e,i,s,n){this.app=t,this.opts=t.opts,this.editor=t.editor,this.cleaner=t.cleaner,this.container=t.container,this.inspector=t.inspector,this.insertion=t.insertion,this.selection=t.selection,this.autoparser=t.autoparser,this.pasteHtml=s,this.pointInserted=n,this.dataTransfer=i,this._init(e)},_init:function(t){var e,i=this.dataTransfer||t.clipboardData,s=this.selection.getCurrent(),n=this.inspector.parse(s);if(this.dropPasted=this.dataTransfer,this.isRawCode=n.isPre()||n.isCode(),this.editor.enablePasting(),this.editor.saveScroll(),this.dropPasted||this.selection.saveMarkers(),this.isRawCode||!i)return e=this.isRawCode||i||!window.clipboardData?i.getData(\"text/plain\"):window.clipboardData.getData(\"text\"),t.preventDefault(),void this._insert(t,e);if(this.pasteHtml)t.preventDefault(),this._insert(t,this.pasteHtml);else{var r=i.getData(\"URL\"),o=this._isPlainText(i)?this.cleaner.encodeEntities(i.getData(\"text/plain\")):i.getData(\"text/html\");if(o=r&&\"\"!==r?r:o,null!==i.files&&0<i.files.length&&\"\"===o){for(var a=[],l=0;l<i.files.length;l++){var h=i.files[l]||i.items[l].getAsFile();h&&a.push(h)}if(0<a.length)return t.preventDefault(),void this._insertFiles(t,a)}t.preventDefault(),this._insert(t,o)}},_isPlainText:function(t){var e=t.getData(\"text/plain\"),i=t.getData(\"text/html\");if(!e||!i)return null!==e;var s=document.createElement(\"div\");return s.innerHTML=i,s.textContent===e?!s.querySelector(\":not(meta)\"):void 0},_restoreSelection:function(){this.editor.restoreScroll(),this.editor.disablePasting(),this.dropPasted||this.selection.restoreMarkers()},_insert:function(t,e){var i=this.app.broadcast(\"pasteBefore\",e);if(e=(e=void 0===i?e:i).trim(),e=(e=this.isRawCode?e:this.cleaner.paste(e)).trim(),e=this.isRawCode?this.cleaner.encodePhpCode(e):e,e=void 0===(i=this.app.broadcast(\"pasting\",e))?e:i,this._restoreSelection(),this.opts.input){this.app.broadcast(\"state\",!1);var s=[];if(this.isRawCode){e=e.replace(\"&lt;?php\",\"<?php\");var n=document.createTextNode(e);s=this.insertion.insertNode(n,\"after\"),this.app.broadcast(\"pasted\",s)}else this.opts.autoparse&&this.opts.autoparsePaste&&(e=this.autoparser.parse(e)),s=this.dropPasted?this.insertion.insertToPoint(t,e,this.pointInserted):this.insertion.insertHtml(e),this.app.broadcast(\"pasted\",s),this.app.broadcast(\"autoparseobserve\")}},_insertFiles:function(t,e){this._restoreSelection();var i=-1!==this.opts.imageTypes.indexOf(e[0].type),s=void 0===this.dropPasted;i?this.app.broadcast(\"dropimage\",t,e,s):this.app.broadcast(\"dropfile\",t,e,s)}}),y.add(\"class\",\"input.shortcode\",{init:function(t,e,i){this.app=t,this.opts=t.opts,this.utils=t.utils,this.marker=t.marker,this.keycodes=t.keycodes,this.selection=t.selection,this.worked=!1,i===this.keycodes.SPACE&&this._init()},is:function(){return this.worked},_init:function(){var t=this.selection.getCurrent();if(t&&3===t.nodeType){var e=this.utils.removeInvisibleChars(t.textContent),i=this.opts.shortcodes;for(var s in i){var n=new RegExp(\"^\"+this.utils.escapeRegExp(s));if(null!==e.match(n)&&void 0!==i[s].format)return this._format(i[s].format,t,n)}}},_format:function(t,e,i){var s=(e=this.marker.insert(\"start\").previousSibling).textContent;s=(s=this.utils.trimSpaces(s)).replace(i,\"\"),e.textContent=s;var n=\"ul\"===t||\"ol\"===t?\"module.list.toggle\":\"module.block.format\";this.app.api(n,t),this.selection.restoreMarkers(),this.worked=!0}}),y.add(\"class\",\"input.shortcut\",{init:function(t,e){this.app=t,this.opts=t.opts,this.worked=!1,this.hotkeys={8:\"backspace\",9:\"tab\",10:\"return\",13:\"return\",16:\"shift\",17:\"ctrl\",18:\"alt\",19:\"pause\",20:\"capslock\",27:\"esc\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\",45:\"insert\",46:\"del\",59:\";\",61:\"=\",96:\"0\",97:\"1\",98:\"2\",99:\"3\",100:\"4\",101:\"5\",102:\"6\",103:\"7\",104:\"8\",105:\"9\",106:\"*\",107:\"+\",109:\"-\",110:\".\",111:\"/\",112:\"f1\",113:\"f2\",114:\"f3\",115:\"f4\",116:\"f5\",117:\"f6\",118:\"f7\",119:\"f8\",120:\"f9\",121:\"f10\",122:\"f11\",123:\"f12\",144:\"numlock\",145:\"scroll\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"},this.hotkeysShiftNums={\"`\":\"~\",1:\"!\",2:\"@\",3:\"#\",4:\"$\",5:\"%\",6:\"^\",7:\"&\",8:\"*\",9:\"(\",0:\")\",\"-\":\"_\",\"=\":\"+\",\";\":\": \",\"'\":'\"',\",\":\"<\",\".\":\">\",\"/\":\"?\",\"\\\\\":\"|\"},this._init(e)},is:function(){return this.worked},_init:function(t){if(!1!==this.opts.shortcuts)for(var e in this.opts.shortcuts)this._build(t,e,this.opts.shortcuts[e]);else!t.ctrlKey&&!t.metaKey||66!==t.which&&73!==t.which||t.preventDefault()},_build:function(t,e,i){for(var s=e.split(\",\"),n=s.length,r=0;r<n;r++)\"string\"==typeof s[r]&&this._handler(t,s[r].trim(),i)},_handler:function(t,e,i){e=e.toLowerCase().split(\" \");for(var s=this.hotkeys[t.keyCode],n=String.fromCharCode(t.which).toLowerCase(),r=\"\",o={},a=[\"meta\",\"ctrl\",\"alt\",\"shift\"],l=0;l<a.length;l++){var h=a[l];t[h+\"Key\"]&&s!==h&&(r+=h+\"+\")}s&&(o[r+s]=!0),n&&(o[r+n]=!0,o[r+this.hotkeysShiftNums[n]]=!0,\"shift+\"===r&&(o[this.hotkeysShiftNums[n]]=!0));var c=e.length;for(l=0;l<c;l++)if(o[e[l]])return t.preventDefault(),this.worked=!0,void(i.message?(this.app.broadcast(i.message,i.args),this.app.broadcast(\"buffer.trigger\")):i.api&&(this.app.api(i.api,i.args),this.app.broadcast(\"buffer.trigger\")))}}),y.add(\"class\",\"input.space\",{init:function(t,e,i,s){this.app=t,this.keycodes=t.keycodes,this.insertion=t.insertion,this.selection=t.selection,this.key=i,this.lastShiftKey=s,this._init(e)},_init:function(t){if(!this.selection.hasNonEditable())return this.lastShiftKey||this.key!==this.keycodes.SPACE||!t.ctrlKey&&!t.shiftKey||t.metaKey?void 0:(t.preventDefault(),void this.insertion.insertChar(\"&nbsp;\"));t.preventDefault()}}),y.add(\"class\",\"input.tab\",{init:function(t,e){this.app=t,this.opts=t.opts,this.inspector=t.inspector,this.insertion=t.insertion,this.selection=t.selection,this._init(e)},_init:function(t){if(this.opts.tabKey){if(!1===this.app.broadcast(\"tab\",t))return t.preventDefault();this._traverse(t)}},_traverse:function(t){var e=this.selection.getCurrent(),i=this.inspector.parse(e);return!i.isComponent()&&t.shiftKey?this._insertHardTab(t,4):i.isList()?(t.preventDefault(),this.app.api(\"module.list.indent\")):i.isPre()||i.isComponentType(\"code\")&&!i.isFigcaption()?this._tabCode(t):!1!==this.opts.tabAsSpaces?this._insertHardTab(t,this.opts.tabAsSpaces):void 0},_insertHardTab:function(t,e){t.preventDefault();var i=document.createTextNode(Array(e+1).join(\"\u00A0\"));return this.insertion.insertNode(i,\"end\")},_tabCode:function(t){t.preventDefault();var e=this.opts.preSpaces?document.createTextNode(Array(this.opts.preSpaces+1).join(\"\u00A0\")):document.createTextNode(\"\\t\");return this.insertion.insertNode(e,\"end\")}}),y.add(\"module\",\"upload\",{init:function(t){this.app=t,this.opts=t.opts,this.lang=t.lang,this.utils=t.utils,this.editor=t.editor,this.progress=t.progress,this.defaults={event:!1,element:!1,name:!1,files:!1,url:!1,data:!1,paramName:!1}},build:function(t){this.p=y.extend(this.defaults,t),this.$el=y.dom(this.p.element),\"INPUT\"===this.$el.get().tagName?this._buildInput():this._buildBox()},send:function(t){this.p=y.extend(this.defaults,t),this.$uploadbox=this.editor.getElement(),this._send(this.p.event,this.p.files)},complete:function(t,e){this._complete(t,e)},_buildInput:function(){this.box=!1,this.prefix=\"\",this.$uploadbox=y.dom('<div class=\"upload-redactor-box\" />'),this.$el.hide(),this.$el.after(this.$uploadbox),this.opts.multipleUpload?this.$el.attr(\"multiple\",\"multiple\"):this.$el.removeAttr(\"multiple\"),\"file\"!==this.p.name&&this.$el.attr(\"accept\",\"image/*\"),this._buildPlaceholder(),this._buildEvents()},_buildBox:function(){this.box=!0,this.prefix=\"box-\",this.$uploadbox=this.$el,this.$uploadbox.attr(\"ondragstart\",\"return false;\"),this.$uploadbox.on(\"drop.redactor.upload\",this._onDropBox.bind(this)),this.$uploadbox.on(\"dragover.redactor.upload\",this._onDragOver.bind(this)),this.$uploadbox.on(\"dragleave.redactor.upload\",this._onDragLeave.bind(this))},_buildPlaceholder:function(){this.$placeholder=y.dom('<div class=\"upload-redactor-placeholder\" />'),this.$placeholder.html(this.lang.get(\"upload-label\")),this.$uploadbox.append(this.$placeholder)},_buildEvents:function(){this.$el.on(\"change.redactor.upload\",this._onChange.bind(this)),this.$uploadbox.on(\"click.redactor.upload\",this._onClick.bind(this)),this.$uploadbox.on(\"drop.redactor.upload\",this._onDrop.bind(this)),this.$uploadbox.on(\"dragover.redactor.upload\",this._onDragOver.bind(this)),this.$uploadbox.on(\"dragleave.redactor.upload\",this._onDragLeave.bind(this))},_onClick:function(t){t.preventDefault(),this.$el.click()},_onChange:function(t){this._send(t,this.$el.get().files)},_onDrop:function(t){t.preventDefault(),this._clear(),this._setStatusDrop(),this._send(t)},_onDragOver:function(t){return t.preventDefault(),this._setStatusHover(),!1},_onDragLeave:function(t){return t.preventDefault(),this._removeStatusHover(),!1},_onDropBox:function(t){t.preventDefault(),this._clear(),this._setStatusDrop(),this._send(t)},_removeStatusHover:function(){this.$uploadbox.removeClass(\"upload-redactor-\"+this.prefix+\"hover\")},_setStatusDrop:function(){this.$uploadbox.addClass(\"upload-redactor-\"+this.prefix+\"drop\")},_setStatusHover:function(){this.$uploadbox.addClass(\"upload-redactor-\"+this.prefix+\"hover\")},_setStatusError:function(){this.$uploadbox.addClass(\"upload-redactor-\"+this.prefix+\"error\")},_setStatusSuccess:function(){this.$uploadbox.addClass(\"upload-redactor-\"+this.prefix+\"success\")},_clear:function(){for(var t=[\"drop\",\"hover\",\"error\",\"success\"],e=0;e<t.length;e++)this.$uploadbox.removeClass(\"upload-redactor-\"+this.prefix+t[e]);this.$uploadbox.removeAttr(\"ondragstart\")},_send:function(t,e){t=t.originalEvent||t,e=e||t.dataTransfer.files;var i=new FormData,s=this._getUploadParam();i=this._buildData(s,e,i),i=this.utils.extendData(i,this.p.data),!1!==this.app.broadcast(\"upload.start\",t,i,e)&&this._sendData(i,e,t)},_sendData:function(t,e,s){if(this.progress.show(),\"function\"==typeof this.p.url){var i=this.p.url(t,e,s,this);i instanceof Promise||this._complete(i,s)}else y.ajax.post({url:this.p.url,data:t,before:function(t){return this.app.broadcast(\"upload.beforeSend\",t)}.bind(this),success:function(t){this._complete(t,s)}.bind(this),error:function(t,e,i){this._complete(t,s,i)}.bind(this)})},_getUploadParam:function(){return this.p.paramName?this.p.paramName:\"file\"},_buildData:function(t,e,i){if(1===e.length)i.append(t+\"[]\",e[0]);else if(1<e.length&&!1!==this.opts.multipleUpload)for(var s=0;s<e.length;s++)i.append(t+\"[]\",e[s]);return i},_complete:function(t,e,i){this._clear(),this.progress.hide(),t&&t.error?(this._setStatusError(),this.app.broadcast(\"upload.\"+this.p.name+\".error\",t,e,i),this.app.broadcast(\"upload.error\",t,i)):(this._setStatusSuccess(),this.app.broadcast(\"upload.\"+this.p.name+\".complete\",t,e),this.app.broadcast(\"upload.complete\",t),setTimeout(this._clear.bind(this),500))}}),y.add(\"class\",\"code.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,e&&void 0!==e.cmnt?e:this._init(e)},_init:function(t){var e;if(void 0!==t){var i=y.dom(t).closest(\"figure\");0!==i.length?this.parse(i):(this.parse(\"<figure>\"),this.append(t)),e=this.find(\"pre code, pre\").last()}else e=y.dom(\"<pre>\"),this.parse(\"<figure>\"),this.append(e);this._initElement(e),this._initWrapper()},_initElement:function(t){t.attr({tabindex:\"-1\",contenteditable:!0})},_initWrapper:function(){this.addClass(\"redactor-component\"),this.attr({\"data-redactor-type\":\"code\",tabindex:\"-1\",contenteditable:!1})}}),y.add(\"module\",\"form\",{init:function(t){this.app=t,this.lang=t.lang,this.component=t.component,this.inspector=t.inspector},onform:{remove:function(t){this._remove(t)}},oncontextbar:function(t,e){var i=this.inspector.parse(t.target);if(i.isComponentType(\"form\")){var s=i.getComponent(),n={remove:{title:this.lang.get(\"delete\"),api:\"module.form.remove\",args:s}};e.set(t,s,n,\"top\")}},_remove:function(t){this.component.remove(t)}}),y.add(\"class\",\"form.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,this.utils=t.utils,e&&void 0!==e.cmnt?e:this._init(e)},_init:function(t){if(void 0!==t)if(0!==y.dom(t).closest(\"form\").length){var e=this.utils.replaceToTag(t,\"figure\");this.parse(e)}else this.parse(\"<figure>\"),this.append(t);else this.parse(\"<figure>\");this._initWrapper()},_initWrapper:function(){this.addClass(\"redactor-component\"),this.attr({\"data-redactor-type\":\"form\",tabindex:\"-1\",contenteditable:!1})}}),y.add(\"module\",\"image\",{modals:{image:'<div class=\"redactor-modal-tab redactor-modal-tab-upload\" data-title=\"## upload ##\"><form action=\"\">                 <input type=\"file\" name=\"file\">             </form></div>',imageedit:'<div class=\"redactor-modal-group\">                 <div id=\"redactor-modal-image-preview\" class=\"redactor-modal-side\"></div>                 <form action=\"\" class=\"redactor-modal-area\">                     <div class=\"form-item\">                         <label for=\"modal-image-title\"> ## title ##</label>                         <input type=\"text\" id=\"modal-image-title\" name=\"title\" />                     </div>                     <div class=\"form-item form-item-caption\">                         <label for=\"modal-image-caption\">## caption ##</label>                         <input type=\"text\" id=\"modal-image-caption\" name=\"caption\" aria-label=\"## caption ##\" />                     </div>                     <div class=\"form-item form-item-align\">                         <label>## image-position ##</label>                         <select name=\"align\" aria-label=\"## image-position ##\">                             <option value=\"none\">## none ##</option>                             <option value=\"left\">## left ##</option>                             <option value=\"center\">## center ##</option>                             <option value=\"right\">## right ##</option>                         </select>                     </div>                     <div class=\"form-item form-item-link\">                         <label for=\"modal-image-url\">## link ##</label>                         <input type=\"text\" id=\"modal-image-url\" name=\"url\" aria-label=\"## link ##\" />                     </div>                     <div class=\"form-item form-item-link\">                         <label class=\"checkbox\"><input type=\"checkbox\" name=\"target\" aria-label=\"## link-in-new-tab ##\"> ## link-in-new-tab ##</label>                     </div>                 </form>             </div>'},init:function(t){this.app=t,this.opts=t.opts,this.lang=t.lang,this.caret=t.caret,this.utils=t.utils,this.editor=t.editor,this.storage=t.storage,this.component=t.component,this.inspector=t.inspector,this.insertion=t.insertion,this.selection=t.selection,this.justResized=!1},oninsert:function(){this._observeImages()},onstarted:function(){this.storage.observeImages(),this.opts.imageResizable&&(this.resizer=y.create(\"image.resize\",this.app)),this._observeImages()},ondropimage:function(t,e,i){if(this.opts.imageUpload){var s={url:this.opts.imageUpload,event:!i&&t,files:e,name:\"imagedrop\",data:this.opts.imageData,paramName:this.opts.imageUploadParam};this.app.api(\"module.upload.send\",s)}},onstop:function(){this.resizer&&this.resizer.stop()},onbottomclick:function(){this.insertion.insertToEnd(this.editor.getLastNode(),\"image\")},onimageresizer:{stop:function(){this.resizer&&this.resizer.hide()}},onsource:{open:function(){this.resizer&&this.resizer.hide()},closed:function(){this._observeImages(),this.resizer&&this.resizer.rebuild()}},onupload:{complete:function(){this._observeImages()},image:{complete:function(t){this._insert(t),this.app.broadcast(\"state\",!1)},error:function(t){this._uploadError(t)}},imageedit:{complete:function(t){this._change(t)},error:function(t){this._uploadError(t)}},imagedrop:{complete:function(t,e){this._insert(t,e)},error:function(t){this._uploadError(t)}},imagereplace:{complete:function(t){this._change(t,!1)},error:function(t){this._uploadError(t)}}},onmodal:{image:{open:function(t,e){this._setUpload(t,e)}},imageedit:{open:function(t,e){this._setFormData(t,e)},opened:function(t,e){this._setFormFocus(e)},remove:function(){this._remove(this.$image)},save:function(t,e){this._save(t,e)}}},onimage:{observe:function(){this._observeImages()},resized:function(){this.justResized=!0}},oncontextbar:function(t,e){if(this.justResized)this.justResized=!1;else{var i=this.selection.getCurrent(),s=this.inspector.parse(i),n=y.dom(i).closest(\"img\");if(!s.isFigcaption()&&s.isComponentType(\"image\")||0!==n.length){var r=0!==n.length?n.get():s.getComponent(),o={edit:{title:this.lang.get(\"edit\"),api:\"module.image.open\"},remove:{title:this.lang.get(\"delete\"),api:\"module.image.remove\",args:r}};e.set(t,r,o)}}},open:function(){this.$image=this._getCurrent(),this.app.api(\"module.modal.build\",this._getModalData())},insert:function(t){this._insert(t)},remove:function(t){this._remove(t)},_getModalData:function(){return this._isImage()&&this.opts.imageEditable?{name:\"imageedit\",width:\"800px\",title:this.lang.get(\"edit\"),handle:\"save\",commands:{save:{title:this.lang.get(\"save\")},remove:{title:this.lang.get(\"delete\"),type:\"danger\"},cancel:{title:this.lang.get(\"cancel\")}}}:{name:\"image\",title:this.lang.get(\"image\")}},_isImage:function(){return this.$image},_getCurrent:function(){var t=this.selection.getCurrent(),e=this.inspector.parse(t),i=y.dom(t).closest(\"img\");return 0!==i.length?this.component.create(\"image\",i):!(!e.isComponentType(\"image\")||!e.isComponentActive())&&this.component.create(\"image\",e.getComponent())},_insert:function(t,e){if(this.app.api(\"module.modal.close\"),Array.isArray(t)){for(var i={},s=0;s<t.length;s++)i=y.extend(i,t[s]);t=i}else\"string\"==typeof t&&(t={file:{url:t}});if(\"object\"==typeof t){var n=0;for(var r in t)\"object\"==typeof t[r]&&n++;1<n?this._insertMultiple(t,e):this._insertSingle(t,e)}},_insertSingle:function(t,e){for(var i in t)if(\"object\"==typeof t[i]){var s=this._createImageAndStore(t[i]),n=e?this.insertion.insertToPoint(e,s,!1,!1):this.insertion.insertHtml(s,!1);this._removeSpaceBeforeFigure(n[0]),this.component.setActive(n[0]),this.app.broadcast(\"image.uploaded\",n[0],t)}},_insertMultiple:function(t,e){var i,s=0,n=[];for(var r in t)if(\"object\"==typeof t[r]){s++;var o=this._createImageAndStore(t[r]);if(1===s)n=e?this.insertion.insertToPoint(e,o,!1,!1):this.insertion.insertHtml(o,!1);else y.dom(n[0]).after(o),n=[o.get()],this.app.broadcast(\"image.inserted\",o);i=n[0],this._removeSpaceBeforeFigure(n[0]),this.app.broadcast(\"image.uploaded\",n[0],t)}this.component.setActive(i)},_createImageAndStore:function(t){var e=this.component.create(\"image\");return e.addClass(\"redactor-uploaded-figure\"),e.setData({src:t.url,id:t.id?t.id:this.utils.getRandomId()}),this.storage.add(\"image\",e.getElement()),e},_removeSpaceBeforeFigure:function(t){if(t){var e=t.previousSibling,i=t.nextSibling,s=y.dom(e),n=y.dom(i);this.opts.breakline&&(i&&\"br\"===n.attr(\"data-redactor-tag\")&&n.find(\"br\").first().remove(),e&&\"br\"===s.attr(\"data-redactor-tag\")&&s.find(\"br\").last().remove()),e&&(this._removeInvisibleSpace(e),this._removeInvisibleSpace(e.previousSibling))}},_removeInvisibleSpace:function(t){t&&3===t.nodeType&&-1!==this.utils.searchInvisibleChars(t.textContent)&&t.parentNode.removeChild(t)},_save:function(t,e){var i=e.getData(),s={title:i.title};this.opts.imageLink&&(s.link={url:i.url,target:i.target}),this.opts.imageCaption&&(s.caption=i.caption),this.opts.imagePosition&&(s.align=i.align),this.$image.setData(s),this.resizer&&this.resizer.rebuild(),this.app.broadcast(\"image.changed\",this.$image),this.app.api(\"module.modal.close\")},_change:function(t,e){if(\"string\"==typeof t&&(t={file:{url:t}}),\"object\"==typeof t){var i;for(var s in t)if(\"object\"==typeof t[s]){(i=y.dom(\"<img>\")).attr(\"src\",t[s].url),this.$image.changeImage(t[s]),this.app.broadcast(\"image.changed\",this.$image,t),this.app.broadcast(\"image.uploaded\",this.$image,t),this.app.broadcast(\"hardsync\");break}!1!==e&&i.on(\"load\",function(){this.$previewBox.html(i)}.bind(this))}},_uploadError:function(t){this.app.broadcast(\"image.uploadError\",t)},_remove:function(t){this.app.api(\"module.modal.close\"),this.component.remove(t)},_observeImages:function(){var t=this.editor.getElement(),i=this;t.find(\"img\").each(function(t){var e=y.dom(t);e.off(\".drop-to-replace\"),e.on(\"dragover.drop-to-replace dragenter.drop-to-replace\",function(t){t.preventDefault()}),e.on(\"drop.drop-to-replace\",function(t){if(!i.app.isDragComponentInside())return i._setReplaceUpload(t,e)})})},_setFormData:function(t,e){this._buildPreview(t),this._buildPreviewUpload();var i=this.$image.getData(),s={title:i.title};this.opts.imageCaption?s.caption=i.caption:t.find(\".form-item-caption\").hide(),this.opts.imagePosition?s.align=i.align:t.find(\".form-item-align\").hide(),this.opts.imageLink?i.link&&(s.url=i.link.url,i.link.target&&(s.target=!0)):t.find(\".form-item-link\").hide(),e.setData(s)},_setFormFocus:function(t){t.getField(\"title\").focus()},_setReplaceUpload:function(t,e){if((t=t.originalEvent||t).stopPropagation(),t.preventDefault(),this.opts.imageUpload){this.$image=this.component.create(\"image\",e);var i={url:this.opts.imageUpload,files:t.dataTransfer.files,name:\"imagereplace\",data:this.opts.imageData,paramName:this.opts.imageUploadParam};this.app.api(\"module.upload.send\",i)}},_setUpload:function(t,e){this.opts.imageUpload||t.getBody().find(\".redactor-modal-tab-upload\").remove();var i={url:this.opts.imageUpload,element:e.getField(\"file\"),name:\"image\",data:this.opts.imageData,paramName:this.opts.imageUploadParam};this.app.api(\"module.upload.build\",i)},_buildPreview:function(t){this.$preview=t.find(\"#redactor-modal-image-preview\");var e=this.$image.getData(),i=y.dom(\"<img>\");i.attr(\"src\",e.src),this.$previewBox=y.dom(\"<div>\"),this.$previewBox.append(i),this.$preview.html(\"\"),this.$preview.append(this.$previewBox)},_buildPreviewUpload:function(){if(this.opts.imageUpload){var t=y.dom('<div class=\"desc\">');t.html(this.lang.get(\"upload-change-label\")),this.$preview.append(t);var e={url:this.opts.imageUpload,element:this.$previewBox,name:\"imageedit\",data:this.opts.imageData,paramName:this.opts.imageUploadParam};this.app.api(\"module.upload.build\",e)}}}),y.add(\"class\",\"image.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,this.opts=t.opts,this.selection=t.selection,e&&void 0!==e.cmnt?e:this._init(e)},setData:function(t){for(var e in t)this._set(e,t[e])},getData:function(){for(var t=[\"src\",\"title\",\"caption\",\"align\",\"link\",\"id\"],e={},i=0;i<t.length;i++)e[t[i]]=this._get(t[i]);return e},getElement:function(){return this.$element},changeImage:function(t){this.$element.attr(\"src\",t.url)},_init:function(t){var e=y.dom(t),i=e.closest(\"figure\");void 0===t?(this.$element=y.dom(\"<img>\"),this.parse(\"<figure>\"),this.append(this.$element)):0===i.length?(this.parse(\"<figure>\"),this.$element=e,this.$element.wrap(this)):(this.parse(i),this.$element=this.find(\"img\")),this._initWrapper()},_set:function(t,e){this[\"_set_\"+t](e)},_get:function(t){return this[\"_get_\"+t]()},_set_src:function(t){this.$element.attr(\"src\",t)},_set_id:function(t){this.opts.imageObserve&&this.$element.attr(\"data-image\",t)},_set_title:function(t){\"\"===(t=t.trim().replace(/(<([^>]+)>)/gi,\"\"))?this.$element.removeAttr(\"alt\"):this.$element.attr(\"alt\",t)},_set_caption:function(t){var e=this.find(\"figcaption\");return 0===e.length&&((e=y.dom(\"<figcaption>\")).attr(\"contenteditable\",\"true\"),this.append(e)),\"\"===t?e.remove():e.html(t),e},_set_align:function(t){var e=\"\",i=\"\",s=\"\",n=this,r=this.find(\"img\"),o=this.find(\"figcaption\");if(\"object\"==typeof this.opts.imagePosition){var a=this.opts.imagePosition;for(var l in a)n.removeClass(a[l]);var h=void 0!==a[t]&&a[t];h&&n.addClass(h)}else{var c=r.width();switch(t){case\"left\":e=\"left\",i=this.opts.imageFloatMargin;break;case\"right\":e=\"right\",i=this.opts.imageFloatMargin;break;case\"center\":s=\"center\",i=\"auto\"}n.css({float:e,width:c+\"px\",maxWidth:c+\"px\",\"margin-left\":i,\"margin-right\":i,\"text-align\":s}),n.attr(\"rel\",n.attr(\"style\")),\"none\"===t&&(n.css(\"max-width\",\"\"),n.css(\"width\",\"\")),\"center\"===t?(n.css(\"max-width\",\"\"),n.css(\"width\",\"\"),o.css(\"text-align\",\"center\")):o.css(\"text-align\",\"\")}},_set_link:function(t){var e=this._findLink();if(\"\"!==t.url)return e||(e=y.dom(\"<a>\"),this.$element.wrap(e)),e.attr(\"href\",t.url),t.target?e.attr(\"target\",!0===t.target?\"_blank\":t.target):e.removeAttr(\"target\"),e;e&&e.unwrap()},_get_src:function(){return this.$element.attr(\"src\")},_get_id:function(){return this.$element.attr(\"data-image\")},_get_title:function(){var t=this.$element.attr(\"alt\");return t||\"\"},_get_caption:function(){var t=this.find(\"figcaption\");return 0===t.length?\"\":t.html()},_get_align:function(){var t=\"\";if(\"object\"==typeof this.opts.imagePosition){t=\"none\";var e=this.opts.imagePosition;for(var i in e)if(this.hasClass(e[i])){t=i;break}}else t=\"center\"===this.css(\"text-align\")?\"center\":this.css(\"float\");return t},_get_link:function(){var t=this._findLink();if(t){var e=!!t.attr(\"target\");return{url:t.attr(\"href\"),target:e}}},_initWrapper:function(){this.addClass(\"redactor-component\"),this.attr({\"data-redactor-type\":\"image\",tabindex:\"-1\",contenteditable:!1})},_findLink:function(){var t=this.find(\"a\").filter(function(t){return 0===y.dom(t).closest(\"figcaption\").length});return 0!==t.length&&t}}),y.add(\"class\",\"image.resize\",{init:function(t){this.app=t,this.$doc=t.$doc,this.$win=t.$win,this.$body=t.$body,this.editor=t.editor,this.toolbar=t.toolbar,this.inspector=t.inspector,this.$target=this.toolbar.isTarget()?this.toolbar.getTargetElement():this.$body,this._init()},rebuild:function(){this._setResizerPosition()},hide:function(){this.$target.find(\"#redactor-image-resizer\").remove()},stop:function(){this.editor.getElement().off(\".redactor.image-resize\"),this.$doc.off(\".redactor.image-resize\"),this.$win.off(\"resize.redactor.image-resize\"),this.hide()},_init:function(){this.editor.getElement().on(\"click.redactor.image-resize\",this._build.bind(this)),this.$win.on(\"resize.redactor.image-resize\",this._setResizerPosition.bind(this))},_build:function(t){if(this.$target.find(\"#redactor-image-resizer\").remove(),!this.app.isReadOnly()){var e=this.inspector.parse(t.target),i=this.editor.getElement();e.isComponentType(\"image\")&&(this.$resizableBox=i,this.$resizableImage=y.dom(e.getImageElement()),this.$resizer=y.dom(\"<span>\"),this.$resizer.attr(\"id\",\"redactor-image-resizer\"),this.$target.append(this.$resizer),this._setResizerPosition(),this.$resizer.on(\"mousedown touchstart\",this._set.bind(this)))}},_setResizerPosition:function(){if(this.$resizer){var t=this.toolbar.isTarget(),e=this.$target.offset(),i=t?7-e.top+this.$target.scrollTop():7,s=t?7-e.left:7,n=this.$resizableImage.offset(),r=this.$resizableImage.width(),o=this.$resizableImage.height(),a=this.$resizer.width(),l=this.$resizer.height();this.$resizer.css({top:Math.round(n.top+o-l+i)+\"px\",left:Math.round(n.left+r-a+s)+\"px\"})}},_set:function(t){t.preventDefault(),this.resizeHandle={x:t.pageX,y:t.pageY,el:this.$resizableImage,$figure:this.$resizableImage.closest(\"figure\"),ratio:this.$resizableImage.width()/this.$resizableImage.height(),h:this.$resizableImage.height()},(t=t.originalEvent||t).targetTouches&&(this.resizeHandle.x=t.targetTouches[0].pageX,this.resizeHandle.y=t.targetTouches[0].pageY),this.app.broadcast(\"contextbar.close\"),this.app.broadcast(\"image.resize\",this.$resizableImage),this._start()},_start:function(){this.$doc.on(\"mousemove.redactor.image-resize touchmove.redactor.image-resize\",this._move.bind(this)),this.$doc.on(\"mouseup.redactor.image-resize touchend.redactor.image-resize\",this._stop.bind(this))},_stop:function(){this.$doc.off(\".redactor.image-resize\"),this.app.broadcast(\"image.resized\",this.$resizableImage)},_move:function(t){t.preventDefault(),t=t.originalEvent||t;var e=this.resizeHandle.h;t.targetTouches?e+=t.targetTouches[0].pageY-this.resizeHandle.y:e+=t.pageY-this.resizeHandle.y;var i=e*this.resizeHandle.ratio;i=Math.round(i),(e=Math.round(e))<20||i<100||this._getResizableBoxWidth()<=i||(0!==this.resizeHandle.$figure.length&&\"\"!==this.resizeHandle.$figure.css(\"max-width\")&&this.resizeHandle.$figure.css({width:i+\"px\",\"max-width\":i+\"px\"}),this.resizeHandle.el.attr({width:i,height:e}),this.resizeHandle.el.width(i),this.resizeHandle.el.css(\"max-width\",i+\"px\"),this.resizeHandle.el.height(e),this._setResizerPosition())},_getResizableBoxWidth:function(){return this.$resizableBox.width()-parseInt(this.$resizableBox.css(\"padding-left\"))-parseInt(this.$resizableBox.css(\"padding-right\"))}}),y.add(\"module\",\"file\",{modals:{file:'<div class=\"redactor-modal-tab\" data-title=\"## upload ##\"><form action=\"\">                 <div class=\"form-item form-item-title\">                     <label for=\"modal-file-title\"> ## filename ## <span class=\"desc\">(## optional ##)</span></label>                     <input type=\"text\" id=\"modal-file-title\" name=\"title\" />                 </div>                 <input type=\"file\" name=\"file\">             </form></div>'},init:function(t){this.app=t,this.opts=t.opts,this.lang=t.lang,this.caret=t.caret,this.utils=t.utils,this.storage=t.storage,this.component=t.component,this.inspector=t.inspector,this.insertion=t.insertion,this.selection=t.selection},onstarted:function(){this.storage.observeFiles()},ondropfile:function(t,e,i){if(this.opts.fileUpload){var s={url:this.opts.fileUpload,event:!i&&t,files:e,name:\"filedrop\",data:this.opts.fileData};this.app.api(\"module.upload.send\",s)}},onmodal:{file:{open:function(t,e){this._setFormData(t,e),this._setUpload(e)},opened:function(t,e){this._setFormFocus(e),this.$form=e}}},onupload:{file:{complete:function(t){this._insert(t)},error:function(t){this._uploadError(t)}},filedrop:{complete:function(t,e){this._insert(t,e)},error:function(t){this._uploadError(t)}}},open:function(){this._open()},insert:function(t){this._insert(t)},remove:function(t){this._remove(t)},_open:function(){this.app.api(\"module.modal.build\",this._getModalData())},_getModalData:function(){return{name:\"file\",title:this.lang.get(\"file\")}},_insert:function(t,e){if(this.app.api(\"module.modal.close\"),\"object\"==typeof t){if(Array.isArray(t)){for(var i={},s=0;s<t.length;s++)i=y.extend(i,t[s]);t=i}1<Object.keys(t).length?this._insertMultiple(t,e):this._insertSingle(t,e),this.$form=!1}},_insertSingle:function(t,e){var i=[];for(var s in t){var n=this._createFileAndStore(t[s]);i=this.opts.fileAttachment?this._insertAsAttachment(n):e?this.insertion.insertToPoint(e,n):this.insertion.insertRaw(n),this.app.broadcast(\"file.uploaded\",i[0],t)}},_insertMultiple:function(t,e){var i,s=0,n=[];for(var r in t){s++;var o=this._createFileAndStore(t[r]);if(this.opts.fileAttachment)n=this._insertAsAttachment(o,t);else if(1===s)n=e?this.insertion.insertToPoint(e,o):this.insertion.insertRaw(o);else y.dom(n[0]).after(o).after(\" \"),n=[o.get()],this.app.broadcast(\"file.inserted\",o);i=o,this.app.broadcast(\"file.uploaded\",n[0],t)}this.opts.fileAttachment||this.caret.setAfter(i)},_insertAsAttachment:function(t,e){var i=y.dom(this.opts.fileAttachment),s=t.wrapAttachment();i.append(s);var n=[s.get()];return this.app.broadcast(\"file.appended\",n[0],e),n},_createFileAndStore:function(t){var e=!!this.$form&&this.$form.getData(),i=t.name?t.name:t.url,s=!this.opts.fileAttachment&&e&&\"\"!==e.title?e.title:this._truncateUrl(i),n=this.component.create(\"file\");return n.attr(\"href\",t.url),n.attr(\"data-file\",t.id?t.id:this.utils.getRandomId()),n.attr(\"data-name\",t.name),n.html(s),this.storage.add(\"file\",n),n},_remove:function(t){this.selection.save();var e=this.component.create(\"file\",t);!1!==this.app.broadcast(\"file.delete\",e)?(e.unwrap(),this.selection.restore(),this.app.broadcast(\"file.deleted\",e)):this.selection.restore()},_truncateUrl:function(t){return-1!==t.search(/^http/)&&20<t.length?t.substring(0,20)+\"...\":t},_setUpload:function(t){var e={url:this.opts.fileUpload,element:t.getField(\"file\"),name:\"file\",data:this.opts.fileData,paramName:this.opts.fileUploadParam};this.app.api(\"module.upload.build\",e)},_setFormData:function(t,e){this.opts.fileAttachment?t.find(\".form-item-title\").hide():e.setData({title:this.selection.getText()})},_setFormFocus:function(t){t.getField(\"title\").focus()},_uploadError:function(t){this.app.broadcast(\"file.uploadError\",t)}}),y.add(\"class\",\"file.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,this.opts=t.opts,e&&void 0!==e.cmnt?e:this._init(e)},wrapAttachment:function(){return this.$wrapper=y.dom('<span class=\"redactor-file-item\">'),this.$remover=y.dom('<span class=\"redactor-file-remover\">'),this.$remover.html(\"&times;\"),this.$remover.on(\"click\",this.removeAttachment.bind(this)),this.$wrapper.append(this),this.$wrapper.append(this.$remover),this.$wrapper},removeAttachment:function(t){t.preventDefault(),!1!==this.app.broadcast(\"file.delete\",this,this.$wrapper)&&(this.$wrapper.remove(),this.app.broadcast(\"file.deleted\",this),this.app.broadcast(\"file.removeAttachment\",this))},_init:function(t){if(void 0===t)this.parse(\"<a>\");else{var e=y.dom(t).closest(\"a\");this.parse(e)}}}),y.add(\"module\",\"buffer\",{init:function(t){this.app=t,this.opts=t.opts,this.editor=t.editor,this.offset=t.offset,this.keycodes=t.keycodes,this.selection=t.selection,this.state=!1,this.passed=!1,this.keyPressed=!1,this.undoStorage=[],this.redoStorage=[]},onkeydown:function(t){this._listen(t)},onsyncing:function(){this.keyPressed||this.trigger(),this.keyPressed=!1},onbuffer:{trigger:function(){this.trigger()}},onstate:function(t,e,i){t&&(t.ctrlKey||t.metaKey)||t&&(this._isUndo(t)||this._isRedo(t))||(this.passed=!1,this._saveState(e,i),!1===t&&this._setUndo())},onenable:function(){this.clear()},clear:function(){this.state=!1,this.undoStorage=[],this.redoStorage=[]},undo:function(){this._getUndo()},redo:function(){this._getRedo()},trigger:function(){this.state&&!1===this.passed&&this._setUndo()},_saveState:function(t,e){var i=this.editor.getElement();this.state={html:t||i.html(),offset:e||this.offset.get()}},_listen:function(t){var e=t.which,i=t.ctrlKey||t.metaKey,s=i||t.shiftKey||t.altKey,n=[this.keycodes.SPACE,this.keycodes.ENTER,this.keycodes.BACKSPACE,this.keycodes.DELETE,this.keycodes.TAB,this.keycodes.LEFT,this.keycodes.RIGHT,this.keycodes.UP,this.keycodes.DOWN];return this._isUndo(t)?(t.preventDefault(),void this.undo()):this._isRedo(t)?(t.preventDefault(),void this.redo()):((i||-1===n.indexOf(e))&&(!i||88!==e&&67!==e)||(s=!0,this.trigger()),s||this._hasUndo()||this.trigger(),void(this.keyPressed=!0))},_isUndo:function(t){var e=t.which;return(t.ctrlKey||t.metaKey)&&90===e&&!t.shiftKey&&!t.altKey},_isRedo:function(t){var e=t.which;return(t.ctrlKey||t.metaKey)&&(90===e&&t.shiftKey||89===e&&!t.shiftKey)&&!t.altKey},_setUndo:function(){var t=this.undoStorage[this.undoStorage.length-1];void 0!==t&&t[0]===this.state.html||(this.undoStorage.push([this.state.html,this.state.offset]),this._removeOverStorage())},_setRedo:function(){var t=this.editor.getElement(),e=this.offset.get(),i=t.html();this.redoStorage.push([i,e]),this.redoStorage=this.redoStorage.slice(0,this.opts.bufferLimit)},_getUndo:function(){if(this._hasUndo()){this.passed=!0;var t=this.editor.getElement(),e=this.undoStorage.pop();this._setRedo(),t.html(e[0]),this.offset.set(e[1]),this._saveState(e[0],e[1]),this.app.broadcast(\"undo\",e[0],e[1])}},_getRedo:function(){if(this._hasRedo()){this.passed=!0;var t=this.editor.getElement(),e=this.redoStorage.pop();this._setUndo(),t.html(e[0]),this.offset.set(e[1]),this._saveState(e[0],e[1]),this.app.broadcast(\"redo\",e[0],e[1])}},_removeOverStorage:function(){this.undoStorage.length>this.opts.bufferLimit&&(this.undoStorage=this.undoStorage.slice(0,this.undoStorage.length-this.opts.bufferLimit))},_hasUndo:function(){return 0!==this.undoStorage.length},_hasRedo:function(){return 0!==this.redoStorage.length}}),y.add(\"module\",\"list\",{init:function(t){this.app=t,this.uuid=t.uuid,this.opts=t.opts,this.utils=t.utils,this.block=t.block,this.editor=t.editor,this.toolbar=t.toolbar,this.inspector=t.inspector,this.selection=t.selection},onbutton:{list:{observe:function(t){this._observeButton(t)}}},ondropdown:{list:{observe:function(t){this._observeDropdown(t)}}},toggle:function(t){var e=this._getBlocks(),i=this.selection.getBlock(),s=y.dom(i).parents(\"ul, ol\",this.editor.getElement()).last();return 0===e.length&&0!==s.length&&(e=[s.get()]),!i||\"TD\"!==i.tagName&&\"TH\"!==i.tagName||(e=this.block.format(\"div\")),this.selection.saveMarkers(),e=0!==e.length&&this._isUnformat(t,e)?this._unformat(t,e):this._format(t,e),this.selection.restoreMarkers(),e},indent:function(){var t=this.selection.isCollapsed(),e=this.selection.getCurrent(),i=this.inspector.parse(e),s=!!i.isList()&&i.getListItem(),n=y.dom(s),r=n.prevElement(),o=r.get();if(t&&s&&o&&\"LI\"===o.tagName){this.selection.saveMarkers();var a=(r=y.dom(o)).children(\"ul, ol\"),l=n.closest(\"ul, ol\");if(0!==a.length)a.append(n);else{var h=l.get().tagName.toLowerCase(),c=y.dom(\"<\"+h+\">\");c.append(n),r.append(c)}this.selection.restoreMarkers(),this.utils.isEmptyHtml(n.html())&&this.app.caret.setStart(n)}},outdent:function(){var t=this.selection.isCollapsed(),e=this.selection.getCurrent(),i=this.inspector.parse(e),s=!!i.isList()&&i.getListItem(),n=y.dom(s);if(t&&s){var r,o,a,l=n.parent(),h=l.closest(\"li\",\".redactor-in-\"+this.uuid),c=n.prevElement(),d=n.nextElement(),u=c.get(),p=d.get(),f=!1===u,m=!1!==u&&!1!==p,g=!f&&!1===p;if(this.selection.saveMarkers(),0!==h.length)if(m){r=this._getAllNext(n.get()),a=y.dom(\"<\"+l.get().tagName.toLowerCase()+\">\");for(var v=0;v<r.length;v++)a.append(r[v]);h.after(n),n.append(a)}else h.after(n),0===l.children().length?l.remove():f&&n.append(l);else{var b=this._createUnformatContainer(n),_=b.find(\"ul, ol\").first();if(f)l.before(b);else if(g)l.after(b);else if(m){a=y.dom(\"<\"+l.get().tagName.toLowerCase()+\">\"),r=this._getAllNext(n.get());for(v=0;v<r.length;v++)a.append(r[v]);l.after(b),b.after(a)}0!==_.length&&((o=b.nextElement().get())&&o.tagName===l.get().tagName?(y.dom(o).prepend(_),_.unwrap()):b.after(_)),n.remove()}this.selection.restoreMarkers()}},_getAllNext:function(t){for(var e=[];t;){if(!(t=y.dom(t).nextElement().get()))return e;e.push(t)}return e},_isUnformat:function(t,e){for(var i=0,s=0;s<e.length;s++)if(3!==e[s].nodeType){var n=e[s].tagName.toLowerCase();n!==t&&\"figure\"!==n||i++}return i===e.length},_format:function(t,e){var i=this._uniteBlocks(e,[\"p\",\"div\",\"blockquote\",\"pre\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"ul\",\"ol\"]),s=[];for(var n in i){for(var r=i[n],o=this._createList(t,i[n]),a=0;a<r.length;a++){var l;if(3===r[a].nodeType||\"UL\"!==r[a].tagName&&\"OL\"!==r[a].tagName){var h=(l=this._createListItem(r[a])).get().lastChild;h&&\"BR\"===h.tagName&&y.dom(h).remove(),this.utils.normalizeTextNodes(l),o.append(l)}else{var c=y.dom(r[a]);l=c.contents(),o.append(l),this.utils.isEmpty(c)&&c.remove()}}s.push(o.get())}return s},_uniteBlocks:function(t,e){for(var i=0,s={0:[]},n=!1,r=0;r<t.length;r++){var o=y.dom(t[r]).closest(\"th, td\");0!==o.length?(o.get()!==n&&(s[++i]=[]),this._isUniteBlock(t[r],e)&&s[i].push(t[r])):this._isUniteBlock(t[r],e)?s[i].push(t[r]):s[++i]=[],n=o.get()}return s},_isUniteBlock:function(t,e){return 3===t.nodeType||-1!==e.indexOf(t.tagName.toLowerCase())},_createList:function(t,e){var i=e[e.length-1],s=y.dom(i),n=y.dom(\"<\"+t+\">\");return s.after(n),n},_createListItem:function(t){var e=y.dom(\"<li>\");if(3===t.nodeType)e.append(t);else{var i=y.dom(t);e.append(i.contents()),i.remove()}return e},_unformat:function(t,e){if(1===e.length){var i=y.dom(e[0]),s=i.find(\"li\"),n=this.selection.getNodes({tags:[\"li\"]}),r=this.selection.getBlock(),o=y.dom(r).closest(\"li\");if(0===n.length&&0!==o.length&&(n=[o.get()]),n.length===s.length)return this._unformatEntire(e[0]);var a=this._getItemsPosition(s,n);if(\"Top\"===a)return this._unformatAtSide(\"before\",n,i);if(\"Bottom\"===a)return n.reverse(),this._unformatAtSide(\"after\",n,i);if(\"Middle\"===a){var l=y.dom(n[n.length-1]),h=!1,c=!1,d=y.dom(\"<\"+i.get().tagName.toLowerCase()+\">\");s.each(function(t){if(h){var e=y.dom(t);0!==e.closest(\".redactor-split-item\").length||!1!==c&&0!==e.closest(c).length||e.addClass(\"redactor-split-item\"),c=e}t===l.get()&&(h=!0)}),s.filter(\".redactor-split-item\").each(function(t){y.dom(t).removeClass(\"redactor-split-item\"),d.append(t)}),i.after(d),n.reverse();for(var u=0;u<n.length;u++){var p=y.dom(n[u]),f=this._createUnformatContainer(p);i.after(f),f.find(\"ul, ol\").remove(),p.remove()}return}}else for(u=0;u<e.length;u++)3!==e[u].nodeType&&e[u].tagName.toLowerCase()===t&&this._unformatEntire(e[u])},_unformatEntire:function(t){var s=y.dom(t);s.find(\"li\").each(function(t){var e=y.dom(t),i=this._createUnformatContainer(e);e.remove(),s.before(i)}.bind(this)),s.remove()},_unformatAtSide:function(t,s,e){for(var n=0;n<s.length;n++){var i=y.dom(s[n]),r=this._createUnformatContainer(i);e[t](r);var o=r.find(\"ul, ol\").first();i.append(o),o.each(function(t){var e=y.dom(t),i=e.closest(\"li\");i.get()===s[n]&&(e.unwrap(),i.addClass(\"r-unwrapped\"))}),this.utils.isEmptyHtml(i.html())&&i.remove()}e.find(\".r-unwrapped\").each(function(t){var e=y.dom(t);\"\"===e.html().trim()?e.remove():e.removeClass(\"r-unwrapped\")})},_getItemsPosition:function(t,e){var i=\"Middle\",s=e[0],n=e[e.length-1],r=t.first().get(),o=t.last().get();return r===s&&o!==n?i=\"Top\":r!==s&&o===n&&(i=\"Bottom\"),i},_createUnformatContainer:function(t){var e=y.dom(\"<\"+this.opts.markup+\">\");return this.opts.breakline&&e.attr(\"data-redactor-tag\",\"br\"),e.append(t.contents()),e},_getBlocks:function(){return this.selection.getBlocks({first:!0})},_observeButton:function(){var t=this.selection.getCurrent(),e=this.inspector.parse(t),i=e.isPre()||e.isCode()||e.isFigcaption();this._observeButtonsList(i,[\"lists\",\"ul\",\"ol\",\"outdent\",\"indent\"]);var s=this.toolbar.getButton(\"outdent\"),n=this.toolbar.getButton(\"indent\");this._observeIndent(n,s)},_observeDropdown:function(t){var e=t.getItem(\"outdent\"),i=t.getItem(\"indent\");this._observeIndent(i,e)},_observeIndent:function(t,e){var i=this.selection.isCollapsed(),s=this.selection.getCurrent(),n=this.inspector.parse(s),r=!!n.isList()&&n.getListItem(),o=y.dom(r).prevElement().get(),a=i&&r&&o&&\"LI\"===o.tagName;e&&(r&&i?e.enable():e.disable()),t&&(r&&a?t.enable():t.disable())},_observeButtonsList:function(t,e){for(var i=0;i<e.length;i++){var s=this.toolbar.getButton(e[i]);s&&(t?s.disable():s.enable())}}}),y.add(\"class\",\"video.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,e&&void 0!==e.cmnt?e:this._init(e)},_init:function(t){if(void 0!==t){var e=y.dom(t).closest(\"figure\");0!==e.length?this.parse(e):(this.parse(\"<figure>\"),this.append(t))}else this.parse(\"<figure>\");this._initWrapper()},_initWrapper:function(){this.addClass(\"redactor-component\"),this.attr({\"data-redactor-type\":\"video\",tabindex:\"-1\",contenteditable:!1})}}),y.add(\"class\",\"widget.component\",{mixins:[\"dom\",\"component\"],init:function(t,e){return this.app=t,e&&void 0!==e.cmnt?e:this._init(e)},getData:function(){return{html:this._getHtml()}},_init:function(t){if(void 0!==t){var e=y.dom(t).closest(\"figure\");0!==e.length?this.parse(e):(this.parse(\"<figure>\"),this.html(t))}else this.parse(\"<figure>\");this._initWrapper()},_getHtml:function(){var t=y.dom(\"<div>\");return t.html(this.html()),t.find(\".redactor-component-caret\").remove(),t.html()},_initWrapper:function(){this.addClass(\"redactor-component\"),this.attr({\"data-redactor-type\":\"widget\",tabindex:\"-1\",contenteditable:!1})}});var t=y;window.Redactor=window.$R=y,window.addEventListener(\"load\",function(){y(\"[data-redactor]\")}),\"object\"==typeof module&&module.exports&&(module.exports=t,module.exports.Redactor=t)}();\n", "/*\n * International Telephone Input v25.12.6\n * https://github.com/jackocnr/intl-tel-input.git\n * Licensed under the MIT license\n */\n\n// UMD\n(function(factory) {\n  if (typeof module === 'object' && module.exports) {\n    module.exports = factory();\n  } else {\n    window.intlTelInput = factory();\n  }\n}(() => {\n\nvar factoryOutput = (() => {\n  var __defProp = Object.defineProperty;\n  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n  var __getOwnPropNames = Object.getOwnPropertyNames;\n  var __hasOwnProp = Object.prototype.hasOwnProperty;\n  var __export = (target, all) => {\n    for (var name in all)\n      __defProp(target, name, { get: all[name], enumerable: true });\n  };\n  var __copyProps = (to, from, except, desc) => {\n    if (from && typeof from === \"object\" || typeof from === \"function\") {\n      for (let key of __getOwnPropNames(from))\n        if (!__hasOwnProp.call(to, key) && key !== except)\n          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n    }\n    return to;\n  };\n  var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n  // src/js/intl-tel-input.ts\n  var intl_tel_input_exports = {};\n  __export(intl_tel_input_exports, {\n    Iti: () => Iti,\n    default: () => intl_tel_input_default\n  });\n\n  // src/js/intl-tel-input/data.ts\n  var rawCountryData = [\n    [\n      \"af\",\n      // Afghanistan\n      \"93\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ax\",\n      // \u00C5land Islands\n      \"358\",\n      1,\n      [\"18\", \"4\"],\n      // (4 is a mobile range shared with FI)\n      \"0\"\n    ],\n    [\n      \"al\",\n      // Albania\n      \"355\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"dz\",\n      // Algeria\n      \"213\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"as\",\n      // American Samoa\n      \"1\",\n      5,\n      [\"684\"],\n      \"1\"\n    ],\n    [\n      \"ad\",\n      // Andorra\n      \"376\"\n    ],\n    [\n      \"ao\",\n      // Angola\n      \"244\"\n    ],\n    [\n      \"ai\",\n      // Anguilla\n      \"1\",\n      6,\n      [\"264\"],\n      \"1\"\n    ],\n    [\n      \"ag\",\n      // Antigua and Barbuda\n      \"1\",\n      7,\n      [\"268\"],\n      \"1\"\n    ],\n    [\n      \"ar\",\n      // Argentina\n      \"54\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"am\",\n      // Armenia\n      \"374\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"aw\",\n      // Aruba\n      \"297\"\n    ],\n    [\n      \"ac\",\n      // Ascension Island\n      \"247\"\n    ],\n    [\n      \"au\",\n      // Australia\n      \"61\",\n      0,\n      [\"4\"],\n      // (mobile range shared with CX and CC)\n      \"0\"\n    ],\n    [\n      \"at\",\n      // Austria\n      \"43\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"az\",\n      // Azerbaijan\n      \"994\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bs\",\n      // Bahamas\n      \"1\",\n      8,\n      [\"242\"],\n      \"1\"\n    ],\n    [\n      \"bh\",\n      // Bahrain\n      \"973\"\n    ],\n    [\n      \"bd\",\n      // Bangladesh\n      \"880\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bb\",\n      // Barbados\n      \"1\",\n      9,\n      [\"246\"],\n      \"1\"\n    ],\n    [\n      \"by\",\n      // Belarus\n      \"375\",\n      0,\n      null,\n      \"8\"\n    ],\n    [\n      \"be\",\n      // Belgium\n      \"32\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bz\",\n      // Belize\n      \"501\"\n    ],\n    [\n      \"bj\",\n      // Benin\n      \"229\"\n    ],\n    [\n      \"bm\",\n      // Bermuda\n      \"1\",\n      10,\n      [\"441\"],\n      \"1\"\n    ],\n    [\n      \"bt\",\n      // Bhutan\n      \"975\"\n    ],\n    [\n      \"bo\",\n      // Bolivia\n      \"591\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ba\",\n      // Bosnia and Herzegovina\n      \"387\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bw\",\n      // Botswana\n      \"267\"\n    ],\n    [\n      \"br\",\n      // Brazil\n      \"55\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"io\",\n      // British Indian Ocean Territory\n      \"246\"\n    ],\n    [\n      \"vg\",\n      // British Virgin Islands\n      \"1\",\n      11,\n      [\"284\"],\n      \"1\"\n    ],\n    [\n      \"bn\",\n      // Brunei\n      \"673\"\n    ],\n    [\n      \"bg\",\n      // Bulgaria\n      \"359\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bf\",\n      // Burkina Faso\n      \"226\"\n    ],\n    [\n      \"bi\",\n      // Burundi\n      \"257\"\n    ],\n    [\n      \"kh\",\n      // Cambodia\n      \"855\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cm\",\n      // Cameroon\n      \"237\"\n    ],\n    [\n      \"ca\",\n      // Canada\n      \"1\",\n      1,\n      [\"204\", \"226\", \"236\", \"249\", \"250\", \"257\", \"263\", \"289\", \"306\", \"343\", \"354\", \"365\", \"367\", \"368\", \"382\", \"403\", \"416\", \"418\", \"428\", \"431\", \"437\", \"438\", \"450\", \"468\", \"474\", \"506\", \"514\", \"519\", \"548\", \"579\", \"581\", \"584\", \"587\", \"604\", \"613\", \"639\", \"647\", \"672\", \"683\", \"705\", \"709\", \"742\", \"753\", \"778\", \"780\", \"782\", \"807\", \"819\", \"825\", \"867\", \"873\", \"879\", \"902\", \"905\", \"942\"],\n      \"1\"\n    ],\n    [\n      \"cv\",\n      // Cape Verde\n      \"238\"\n    ],\n    [\n      \"bq\",\n      // Caribbean Netherlands\n      \"599\",\n      1,\n      [\"3\", \"4\", \"7\"]\n    ],\n    [\n      \"ky\",\n      // Cayman Islands\n      \"1\",\n      12,\n      [\"345\"],\n      \"1\"\n    ],\n    [\n      \"cf\",\n      // Central African Republic\n      \"236\"\n    ],\n    [\n      \"td\",\n      // Chad\n      \"235\"\n    ],\n    [\n      \"cl\",\n      // Chile\n      \"56\"\n    ],\n    [\n      \"cn\",\n      // China\n      \"86\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cx\",\n      // Christmas Island\n      \"61\",\n      2,\n      [\"4\", \"89164\"],\n      // (4 is a mobile range shared with AU and CC)\n      \"0\"\n    ],\n    [\n      \"cc\",\n      // Cocos (Keeling) Islands\n      \"61\",\n      1,\n      [\"4\", \"89162\"],\n      // (4 is a mobile range shared with AU and CX)\n      \"0\"\n    ],\n    [\n      \"co\",\n      // Colombia\n      \"57\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"km\",\n      // Comoros\n      \"269\"\n    ],\n    [\n      \"cg\",\n      // Congo (Brazzaville)\n      \"242\"\n    ],\n    [\n      \"cd\",\n      // Congo (Kinshasa)\n      \"243\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ck\",\n      // Cook Islands\n      \"682\"\n    ],\n    [\n      \"cr\",\n      // Costa Rica\n      \"506\"\n    ],\n    [\n      \"ci\",\n      // C\u00F4te d'Ivoire\n      \"225\"\n    ],\n    [\n      \"hr\",\n      // Croatia\n      \"385\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cu\",\n      // Cuba\n      \"53\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"cw\",\n      // Cura\u00E7ao\n      \"599\",\n      0\n    ],\n    [\n      \"cy\",\n      // Cyprus\n      \"357\"\n    ],\n    [\n      \"cz\",\n      // Czech Republic\n      \"420\"\n    ],\n    [\n      \"dk\",\n      // Denmark\n      \"45\"\n    ],\n    [\n      \"dj\",\n      // Djibouti\n      \"253\"\n    ],\n    [\n      \"dm\",\n      // Dominica\n      \"1\",\n      13,\n      [\"767\"],\n      \"1\"\n    ],\n    [\n      \"do\",\n      // Dominican Republic\n      \"1\",\n      2,\n      [\"809\", \"829\", \"849\"],\n      \"1\"\n    ],\n    [\n      \"ec\",\n      // Ecuador\n      \"593\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"eg\",\n      // Egypt\n      \"20\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sv\",\n      // El Salvador\n      \"503\"\n    ],\n    [\n      \"gq\",\n      // Equatorial Guinea\n      \"240\"\n    ],\n    [\n      \"er\",\n      // Eritrea\n      \"291\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ee\",\n      // Estonia\n      \"372\"\n    ],\n    [\n      \"sz\",\n      // Eswatini\n      \"268\"\n    ],\n    [\n      \"et\",\n      // Ethiopia\n      \"251\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"fk\",\n      // Falkland Islands (Malvinas)\n      \"500\"\n    ],\n    [\n      \"fo\",\n      // Faroe Islands\n      \"298\"\n    ],\n    [\n      \"fj\",\n      // Fiji\n      \"679\"\n    ],\n    [\n      \"fi\",\n      // Finland\n      \"358\",\n      0,\n      [\"4\"],\n      // (mobile range shared with AX)\n      \"0\"\n    ],\n    [\n      \"fr\",\n      // France\n      \"33\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gf\",\n      // French Guiana\n      \"594\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pf\",\n      // French Polynesia\n      \"689\"\n    ],\n    [\n      \"ga\",\n      // Gabon\n      \"241\"\n    ],\n    [\n      \"gm\",\n      // Gambia\n      \"220\"\n    ],\n    [\n      \"ge\",\n      // Georgia\n      \"995\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"de\",\n      // Germany\n      \"49\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gh\",\n      // Ghana\n      \"233\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gi\",\n      // Gibraltar\n      \"350\"\n    ],\n    [\n      \"gr\",\n      // Greece\n      \"30\"\n    ],\n    [\n      \"gl\",\n      // Greenland\n      \"299\"\n    ],\n    [\n      \"gd\",\n      // Grenada\n      \"1\",\n      14,\n      [\"473\"],\n      \"1\"\n    ],\n    [\n      \"gp\",\n      // Guadeloupe\n      \"590\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gu\",\n      // Guam\n      \"1\",\n      15,\n      [\"671\"],\n      \"1\"\n    ],\n    [\n      \"gt\",\n      // Guatemala\n      \"502\"\n    ],\n    [\n      \"gg\",\n      // Guernsey\n      \"44\",\n      1,\n      [\"1481\", \"7781\", \"7839\", \"7911\"],\n      \"0\"\n    ],\n    [\n      \"gn\",\n      // Guinea\n      \"224\"\n    ],\n    [\n      \"gw\",\n      // Guinea-Bissau\n      \"245\"\n    ],\n    [\n      \"gy\",\n      // Guyana\n      \"592\"\n    ],\n    [\n      \"ht\",\n      // Haiti\n      \"509\"\n    ],\n    [\n      \"hn\",\n      // Honduras\n      \"504\"\n    ],\n    [\n      \"hk\",\n      // Hong Kong SAR China\n      \"852\"\n    ],\n    [\n      \"hu\",\n      // Hungary\n      \"36\",\n      0,\n      null,\n      \"06\"\n    ],\n    [\n      \"is\",\n      // Iceland\n      \"354\"\n    ],\n    [\n      \"in\",\n      // India\n      \"91\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"id\",\n      // Indonesia\n      \"62\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ir\",\n      // Iran\n      \"98\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"iq\",\n      // Iraq\n      \"964\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ie\",\n      // Ireland\n      \"353\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"im\",\n      // Isle of Man\n      \"44\",\n      2,\n      [\"1624\", \"74576\", \"7524\", \"7624\", \"7924\"],\n      \"0\"\n    ],\n    [\n      \"il\",\n      // Israel\n      \"972\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"it\",\n      // Italy\n      \"39\",\n      0,\n      [\"3\"]\n      // (mobile range shared with VA)\n    ],\n    [\n      \"jm\",\n      // Jamaica\n      \"1\",\n      4,\n      [\"658\", \"876\"],\n      \"1\"\n    ],\n    [\n      \"jp\",\n      // Japan\n      \"81\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"je\",\n      // Jersey\n      \"44\",\n      3,\n      [\"1534\", \"7509\", \"7700\", \"7797\", \"7829\", \"7937\"],\n      \"0\"\n    ],\n    [\n      \"jo\",\n      // Jordan\n      \"962\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"kz\",\n      // Kazakhstan\n      \"7\",\n      1,\n      [\"33\", \"7\"],\n      // (33 is shared with RU)\n      \"8\"\n    ],\n    [\n      \"ke\",\n      // Kenya\n      \"254\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ki\",\n      // Kiribati\n      \"686\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"xk\",\n      // Kosovo\n      \"383\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"kw\",\n      // Kuwait\n      \"965\"\n    ],\n    [\n      \"kg\",\n      // Kyrgyzstan\n      \"996\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"la\",\n      // Laos\n      \"856\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"lv\",\n      // Latvia\n      \"371\"\n    ],\n    [\n      \"lb\",\n      // Lebanon\n      \"961\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ls\",\n      // Lesotho\n      \"266\"\n    ],\n    [\n      \"lr\",\n      // Liberia\n      \"231\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ly\",\n      // Libya\n      \"218\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"li\",\n      // Liechtenstein\n      \"423\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"lt\",\n      // Lithuania\n      \"370\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"lu\",\n      // Luxembourg\n      \"352\"\n    ],\n    [\n      \"mo\",\n      // Macao SAR China\n      \"853\"\n    ],\n    [\n      \"mg\",\n      // Madagascar\n      \"261\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mw\",\n      // Malawi\n      \"265\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"my\",\n      // Malaysia\n      \"60\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mv\",\n      // Maldives\n      \"960\"\n    ],\n    [\n      \"ml\",\n      // Mali\n      \"223\"\n    ],\n    [\n      \"mt\",\n      // Malta\n      \"356\"\n    ],\n    [\n      \"mh\",\n      // Marshall Islands\n      \"692\",\n      0,\n      null,\n      \"1\"\n    ],\n    [\n      \"mq\",\n      // Martinique\n      \"596\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mr\",\n      // Mauritania\n      \"222\"\n    ],\n    [\n      \"mu\",\n      // Mauritius\n      \"230\"\n    ],\n    [\n      \"yt\",\n      // Mayotte\n      \"262\",\n      1,\n      [\"269\", \"639\"],\n      \"0\"\n    ],\n    [\n      \"mx\",\n      // Mexico\n      \"52\"\n    ],\n    [\n      \"fm\",\n      // Micronesia\n      \"691\"\n    ],\n    [\n      \"md\",\n      // Moldova\n      \"373\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mc\",\n      // Monaco\n      \"377\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mn\",\n      // Mongolia\n      \"976\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"me\",\n      // Montenegro\n      \"382\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ms\",\n      // Montserrat\n      \"1\",\n      16,\n      [\"664\"],\n      \"1\"\n    ],\n    [\n      \"ma\",\n      // Morocco\n      \"212\",\n      0,\n      [\"6\", \"7\"],\n      // (mobile ranges shared with EH)\n      \"0\"\n    ],\n    [\n      \"mz\",\n      // Mozambique\n      \"258\"\n    ],\n    [\n      \"mm\",\n      // Myanmar (Burma)\n      \"95\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"na\",\n      // Namibia\n      \"264\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nr\",\n      // Nauru\n      \"674\"\n    ],\n    [\n      \"np\",\n      // Nepal\n      \"977\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nl\",\n      // Netherlands\n      \"31\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nc\",\n      // New Caledonia\n      \"687\"\n    ],\n    [\n      \"nz\",\n      // New Zealand\n      \"64\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ni\",\n      // Nicaragua\n      \"505\"\n    ],\n    [\n      \"ne\",\n      // Niger\n      \"227\"\n    ],\n    [\n      \"ng\",\n      // Nigeria\n      \"234\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"nu\",\n      // Niue\n      \"683\"\n    ],\n    [\n      \"nf\",\n      // Norfolk Island\n      \"672\"\n    ],\n    [\n      \"kp\",\n      // North Korea\n      \"850\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mk\",\n      // North Macedonia\n      \"389\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"mp\",\n      // Northern Mariana Islands\n      \"1\",\n      17,\n      [\"670\"],\n      \"1\"\n    ],\n    [\n      \"no\",\n      // Norway\n      \"47\",\n      0,\n      [\"4\", \"9\"]\n      // (mobile ranges shared with SJ)\n    ],\n    [\n      \"om\",\n      // Oman\n      \"968\"\n    ],\n    [\n      \"pk\",\n      // Pakistan\n      \"92\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pw\",\n      // Palau\n      \"680\"\n    ],\n    [\n      \"ps\",\n      // Palestinian Territories\n      \"970\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pa\",\n      // Panama\n      \"507\"\n    ],\n    [\n      \"pg\",\n      // Papua New Guinea\n      \"675\"\n    ],\n    [\n      \"py\",\n      // Paraguay\n      \"595\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pe\",\n      // Peru\n      \"51\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ph\",\n      // Philippines\n      \"63\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"pl\",\n      // Poland\n      \"48\"\n    ],\n    [\n      \"pt\",\n      // Portugal\n      \"351\"\n    ],\n    [\n      \"pr\",\n      // Puerto Rico\n      \"1\",\n      3,\n      [\"787\", \"939\"],\n      \"1\"\n    ],\n    [\n      \"qa\",\n      // Qatar\n      \"974\"\n    ],\n    [\n      \"re\",\n      // R\u00E9union\n      \"262\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ro\",\n      // Romania\n      \"40\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ru\",\n      // Russia\n      \"7\",\n      0,\n      [\"33\"],\n      // (shared with KZ)\n      \"8\"\n    ],\n    [\n      \"rw\",\n      // Rwanda\n      \"250\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ws\",\n      // Samoa\n      \"685\"\n    ],\n    [\n      \"sm\",\n      // San Marino\n      \"378\"\n    ],\n    [\n      \"st\",\n      // S\u00E3o Tom\u00E9 & Pr\u00EDncipe\n      \"239\"\n    ],\n    [\n      \"sa\",\n      // Saudi Arabia\n      \"966\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sn\",\n      // Senegal\n      \"221\"\n    ],\n    [\n      \"rs\",\n      // Serbia\n      \"381\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sc\",\n      // Seychelles\n      \"248\"\n    ],\n    [\n      \"sl\",\n      // Sierra Leone\n      \"232\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sg\",\n      // Singapore\n      \"65\"\n    ],\n    [\n      \"sx\",\n      // Sint Maarten\n      \"1\",\n      21,\n      [\"721\"],\n      \"1\"\n    ],\n    [\n      \"sk\",\n      // Slovakia\n      \"421\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"si\",\n      // Slovenia\n      \"386\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sb\",\n      // Solomon Islands\n      \"677\"\n    ],\n    [\n      \"so\",\n      // Somalia\n      \"252\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"za\",\n      // South Africa\n      \"27\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"kr\",\n      // South Korea\n      \"82\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ss\",\n      // South Sudan\n      \"211\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"es\",\n      // Spain\n      \"34\"\n    ],\n    [\n      \"lk\",\n      // Sri Lanka\n      \"94\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"bl\",\n      // St. Barth\u00E9lemy\n      \"590\",\n      1,\n      null,\n      \"0\"\n    ],\n    [\n      \"sh\",\n      // St. Helena\n      \"290\"\n    ],\n    [\n      \"kn\",\n      // St. Kitts & Nevis\n      \"1\",\n      18,\n      [\"869\"],\n      \"1\"\n    ],\n    [\n      \"lc\",\n      // St. Lucia\n      \"1\",\n      19,\n      [\"758\"],\n      \"1\"\n    ],\n    [\n      \"mf\",\n      // St. Martin\n      \"590\",\n      2,\n      null,\n      \"0\"\n    ],\n    [\n      \"pm\",\n      // St. Pierre & Miquelon\n      \"508\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"vc\",\n      // St. Vincent & Grenadines\n      \"1\",\n      20,\n      [\"784\"],\n      \"1\"\n    ],\n    [\n      \"sd\",\n      // Sudan\n      \"249\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sr\",\n      // Suriname\n      \"597\"\n    ],\n    [\n      \"sj\",\n      // Svalbard & Jan Mayen\n      \"47\",\n      1,\n      [\"4\", \"79\", \"9\"]\n      // (4 and 9 are mobile ranges shared with NO)\n    ],\n    [\n      \"se\",\n      // Sweden\n      \"46\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ch\",\n      // Switzerland\n      \"41\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"sy\",\n      // Syria\n      \"963\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tw\",\n      // Taiwan\n      \"886\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tj\",\n      // Tajikistan\n      \"992\"\n    ],\n    [\n      \"tz\",\n      // Tanzania\n      \"255\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"th\",\n      // Thailand\n      \"66\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tl\",\n      // Timor-Leste\n      \"670\"\n    ],\n    [\n      \"tg\",\n      // Togo\n      \"228\"\n    ],\n    [\n      \"tk\",\n      // Tokelau\n      \"690\"\n    ],\n    [\n      \"to\",\n      // Tonga\n      \"676\"\n    ],\n    [\n      \"tt\",\n      // Trinidad & Tobago\n      \"1\",\n      22,\n      [\"868\"],\n      \"1\"\n    ],\n    [\n      \"tn\",\n      // Tunisia\n      \"216\"\n    ],\n    [\n      \"tr\",\n      // Turkey\n      \"90\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"tm\",\n      // Turkmenistan\n      \"993\",\n      0,\n      null,\n      \"8\"\n    ],\n    [\n      \"tc\",\n      // Turks & Caicos Islands\n      \"1\",\n      23,\n      [\"649\"],\n      \"1\"\n    ],\n    [\n      \"tv\",\n      // Tuvalu\n      \"688\"\n    ],\n    [\n      \"vi\",\n      // U.S. Virgin Islands\n      \"1\",\n      24,\n      [\"340\"],\n      \"1\"\n    ],\n    [\n      \"ug\",\n      // Uganda\n      \"256\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ua\",\n      // Ukraine\n      \"380\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"ae\",\n      // United Arab Emirates\n      \"971\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"gb\",\n      // United Kingdom\n      \"44\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"us\",\n      // United States\n      \"1\",\n      0,\n      null,\n      \"1\"\n    ],\n    [\n      \"uy\",\n      // Uruguay\n      \"598\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"uz\",\n      // Uzbekistan\n      \"998\"\n    ],\n    [\n      \"vu\",\n      // Vanuatu\n      \"678\"\n    ],\n    [\n      \"va\",\n      // Vatican City\n      \"39\",\n      1,\n      [\"06698\", \"3\"]\n      // (3 is a mobile range shared with IT)\n    ],\n    [\n      \"ve\",\n      // Venezuela\n      \"58\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"vn\",\n      // Vietnam\n      \"84\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"wf\",\n      // Wallis & Futuna\n      \"681\"\n    ],\n    [\n      \"eh\",\n      // Western Sahara\n      \"212\",\n      1,\n      [\"5288\", \"5289\", \"6\", \"7\"],\n      // (6 and 7 are mobile ranges shared with MA)\n      \"0\"\n    ],\n    [\n      \"ye\",\n      // Yemen\n      \"967\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"zm\",\n      // Zambia\n      \"260\",\n      0,\n      null,\n      \"0\"\n    ],\n    [\n      \"zw\",\n      // Zimbabwe\n      \"263\",\n      0,\n      null,\n      \"0\"\n    ]\n  ];\n  var allCountries = [];\n  for (const c of rawCountryData) {\n    allCountries.push({\n      name: \"\",\n      // populated in the plugin\n      iso2: c[0],\n      dialCode: c[1],\n      priority: c[2] || 0,\n      areaCodes: c[3] || null,\n      nodeById: {},\n      // populated by the plugin\n      nationalPrefix: c[4] || null,\n      normalisedName: \"\",\n      // populated in the plugin\n      initials: \"\",\n      // populated in the plugin\n      dialCodePlus: \"\"\n      // populated in the plugin\n    });\n  }\n  var data_default = allCountries;\n\n  // src/js/intl-tel-input/i18n/en/countries.ts\n  var countryTranslations = {\n    ad: \"Andorra\",\n    ae: \"United Arab Emirates\",\n    af: \"Afghanistan\",\n    ag: \"Antigua & Barbuda\",\n    ai: \"Anguilla\",\n    al: \"Albania\",\n    am: \"Armenia\",\n    ao: \"Angola\",\n    ar: \"Argentina\",\n    as: \"American Samoa\",\n    at: \"Austria\",\n    au: \"Australia\",\n    aw: \"Aruba\",\n    ax: \"\\xC5land Islands\",\n    az: \"Azerbaijan\",\n    ba: \"Bosnia & Herzegovina\",\n    bb: \"Barbados\",\n    bd: \"Bangladesh\",\n    be: \"Belgium\",\n    bf: \"Burkina Faso\",\n    bg: \"Bulgaria\",\n    bh: \"Bahrain\",\n    bi: \"Burundi\",\n    bj: \"Benin\",\n    bl: \"St. Barth\\xE9lemy\",\n    bm: \"Bermuda\",\n    bn: \"Brunei\",\n    bo: \"Bolivia\",\n    bq: \"Caribbean Netherlands\",\n    br: \"Brazil\",\n    bs: \"Bahamas\",\n    bt: \"Bhutan\",\n    bw: \"Botswana\",\n    by: \"Belarus\",\n    bz: \"Belize\",\n    ca: \"Canada\",\n    cc: \"Cocos (Keeling) Islands\",\n    cd: \"Congo - Kinshasa\",\n    cf: \"Central African Republic\",\n    cg: \"Congo - Brazzaville\",\n    ch: \"Switzerland\",\n    ci: \"C\\xF4te d\\u2019Ivoire\",\n    ck: \"Cook Islands\",\n    cl: \"Chile\",\n    cm: \"Cameroon\",\n    cn: \"China\",\n    co: \"Colombia\",\n    cr: \"Costa Rica\",\n    cu: \"Cuba\",\n    cv: \"Cape Verde\",\n    cw: \"Cura\\xE7ao\",\n    cx: \"Christmas Island\",\n    cy: \"Cyprus\",\n    cz: \"Czechia\",\n    de: \"Germany\",\n    dj: \"Djibouti\",\n    dk: \"Denmark\",\n    dm: \"Dominica\",\n    do: \"Dominican Republic\",\n    dz: \"Algeria\",\n    ec: \"Ecuador\",\n    ee: \"Estonia\",\n    eg: \"Egypt\",\n    eh: \"Western Sahara\",\n    er: \"Eritrea\",\n    es: \"Spain\",\n    et: \"Ethiopia\",\n    fi: \"Finland\",\n    fj: \"Fiji\",\n    fk: \"Falkland Islands\",\n    fm: \"Micronesia\",\n    fo: \"Faroe Islands\",\n    fr: \"France\",\n    ga: \"Gabon\",\n    gb: \"United Kingdom\",\n    gd: \"Grenada\",\n    ge: \"Georgia\",\n    gf: \"French Guiana\",\n    gg: \"Guernsey\",\n    gh: \"Ghana\",\n    gi: \"Gibraltar\",\n    gl: \"Greenland\",\n    gm: \"Gambia\",\n    gn: \"Guinea\",\n    gp: \"Guadeloupe\",\n    gq: \"Equatorial Guinea\",\n    gr: \"Greece\",\n    gt: \"Guatemala\",\n    gu: \"Guam\",\n    gw: \"Guinea-Bissau\",\n    gy: \"Guyana\",\n    hk: \"Hong Kong SAR China\",\n    hn: \"Honduras\",\n    hr: \"Croatia\",\n    ht: \"Haiti\",\n    hu: \"Hungary\",\n    id: \"Indonesia\",\n    ie: \"Ireland\",\n    il: \"Israel\",\n    im: \"Isle of Man\",\n    in: \"India\",\n    io: \"British Indian Ocean Territory\",\n    iq: \"Iraq\",\n    ir: \"Iran\",\n    is: \"Iceland\",\n    it: \"Italy\",\n    je: \"Jersey\",\n    jm: \"Jamaica\",\n    jo: \"Jordan\",\n    jp: \"Japan\",\n    ke: \"Kenya\",\n    kg: \"Kyrgyzstan\",\n    kh: \"Cambodia\",\n    ki: \"Kiribati\",\n    km: \"Comoros\",\n    kn: \"St. Kitts & Nevis\",\n    kp: \"North Korea\",\n    kr: \"South Korea\",\n    kw: \"Kuwait\",\n    ky: \"Cayman Islands\",\n    kz: \"Kazakhstan\",\n    la: \"Laos\",\n    lb: \"Lebanon\",\n    lc: \"St. Lucia\",\n    li: \"Liechtenstein\",\n    lk: \"Sri Lanka\",\n    lr: \"Liberia\",\n    ls: \"Lesotho\",\n    lt: \"Lithuania\",\n    lu: \"Luxembourg\",\n    lv: \"Latvia\",\n    ly: \"Libya\",\n    ma: \"Morocco\",\n    mc: \"Monaco\",\n    md: \"Moldova\",\n    me: \"Montenegro\",\n    mf: \"St. Martin\",\n    mg: \"Madagascar\",\n    mh: \"Marshall Islands\",\n    mk: \"North Macedonia\",\n    ml: \"Mali\",\n    mm: \"Myanmar (Burma)\",\n    mn: \"Mongolia\",\n    mo: \"Macao SAR China\",\n    mp: \"Northern Mariana Islands\",\n    mq: \"Martinique\",\n    mr: \"Mauritania\",\n    ms: \"Montserrat\",\n    mt: \"Malta\",\n    mu: \"Mauritius\",\n    mv: \"Maldives\",\n    mw: \"Malawi\",\n    mx: \"Mexico\",\n    my: \"Malaysia\",\n    mz: \"Mozambique\",\n    na: \"Namibia\",\n    nc: \"New Caledonia\",\n    ne: \"Niger\",\n    nf: \"Norfolk Island\",\n    ng: \"Nigeria\",\n    ni: \"Nicaragua\",\n    nl: \"Netherlands\",\n    no: \"Norway\",\n    np: \"Nepal\",\n    nr: \"Nauru\",\n    nu: \"Niue\",\n    nz: \"New Zealand\",\n    om: \"Oman\",\n    pa: \"Panama\",\n    pe: \"Peru\",\n    pf: \"French Polynesia\",\n    pg: \"Papua New Guinea\",\n    ph: \"Philippines\",\n    pk: \"Pakistan\",\n    pl: \"Poland\",\n    pm: \"St. Pierre & Miquelon\",\n    pr: \"Puerto Rico\",\n    ps: \"Palestinian Territories\",\n    pt: \"Portugal\",\n    pw: \"Palau\",\n    py: \"Paraguay\",\n    qa: \"Qatar\",\n    re: \"R\\xE9union\",\n    ro: \"Romania\",\n    rs: \"Serbia\",\n    ru: \"Russia\",\n    rw: \"Rwanda\",\n    sa: \"Saudi Arabia\",\n    sb: \"Solomon Islands\",\n    sc: \"Seychelles\",\n    sd: \"Sudan\",\n    se: \"Sweden\",\n    sg: \"Singapore\",\n    sh: \"St. Helena\",\n    si: \"Slovenia\",\n    sj: \"Svalbard & Jan Mayen\",\n    sk: \"Slovakia\",\n    sl: \"Sierra Leone\",\n    sm: \"San Marino\",\n    sn: \"Senegal\",\n    so: \"Somalia\",\n    sr: \"Suriname\",\n    ss: \"South Sudan\",\n    st: \"S\\xE3o Tom\\xE9 & Pr\\xEDncipe\",\n    sv: \"El Salvador\",\n    sx: \"Sint Maarten\",\n    sy: \"Syria\",\n    sz: \"Eswatini\",\n    tc: \"Turks & Caicos Islands\",\n    td: \"Chad\",\n    tg: \"Togo\",\n    th: \"Thailand\",\n    tj: \"Tajikistan\",\n    tk: \"Tokelau\",\n    tl: \"Timor-Leste\",\n    tm: \"Turkmenistan\",\n    tn: \"Tunisia\",\n    to: \"Tonga\",\n    tr: \"Turkey\",\n    tt: \"Trinidad & Tobago\",\n    tv: \"Tuvalu\",\n    tw: \"Taiwan\",\n    tz: \"Tanzania\",\n    ua: \"Ukraine\",\n    ug: \"Uganda\",\n    us: \"United States\",\n    uy: \"Uruguay\",\n    uz: \"Uzbekistan\",\n    va: \"Vatican City\",\n    vc: \"St. Vincent & Grenadines\",\n    ve: \"Venezuela\",\n    vg: \"British Virgin Islands\",\n    vi: \"U.S. Virgin Islands\",\n    vn: \"Vietnam\",\n    vu: \"Vanuatu\",\n    wf: \"Wallis & Futuna\",\n    ws: \"Samoa\",\n    ye: \"Yemen\",\n    yt: \"Mayotte\",\n    za: \"South Africa\",\n    zm: \"Zambia\",\n    zw: \"Zimbabwe\"\n  };\n  var countries_default = countryTranslations;\n\n  // src/js/intl-tel-input/i18n/en/interface.ts\n  var interfaceTranslations = {\n    selectedCountryAriaLabel: \"Change country, selected ${countryName} (${dialCode})\",\n    noCountrySelected: \"Select country\",\n    countryListAriaLabel: \"List of countries\",\n    searchPlaceholder: \"Search\",\n    clearSearchAriaLabel: \"Clear search\",\n    zeroSearchResults: \"No results found\",\n    oneSearchResult: \"1 result found\",\n    multipleSearchResults: \"${count} results found\",\n    // additional countries (not supported by country-list library)\n    ac: \"Ascension Island\",\n    xk: \"Kosovo\"\n  };\n  var interface_default = interfaceTranslations;\n\n  // src/js/intl-tel-input/i18n/en/index.ts\n  var allTranslations = { ...countries_default, ...interface_default };\n  var en_default = allTranslations;\n\n  // src/js/modules/constants.ts\n  var EVENTS = {\n    OPEN_COUNTRY_DROPDOWN: \"open:countrydropdown\",\n    CLOSE_COUNTRY_DROPDOWN: \"close:countrydropdown\",\n    COUNTRY_CHANGE: \"countrychange\",\n    INPUT: \"input\"\n    // used for synthetic input trigger\n  };\n  var CLASSES = {\n    HIDE: \"iti__hide\",\n    V_HIDE: \"iti__v-hide\",\n    ARROW_UP: \"iti__arrow--up\",\n    GLOBE: \"iti__globe\",\n    FLAG: \"iti__flag\",\n    COUNTRY_ITEM: \"iti__country\",\n    HIGHLIGHT: \"iti__highlight\"\n  };\n  var KEYS = {\n    ARROW_UP: \"ArrowUp\",\n    ARROW_DOWN: \"ArrowDown\",\n    SPACE: \" \",\n    ENTER: \"Enter\",\n    ESC: \"Escape\",\n    TAB: \"Tab\"\n  };\n  var INPUT_TYPES = {\n    PASTE: \"insertFromPaste\",\n    DELETE_FWD: \"deleteContentForward\"\n  };\n  var REGEX = {\n    ALPHA_UNICODE: /\\p{L}/u,\n    // any kind of letter from any language\n    NON_PLUS_NUMERIC: /[^+0-9]/,\n    // chars that are NOT + or digit\n    NON_PLUS_NUMERIC_GLOBAL: /[^+0-9]/g,\n    // chars that are NOT + or digit (global)\n    HIDDEN_SEARCH_CHAR: /^[a-zA-Z\u00C0-\u00FF\u0430-\u044F\u0410-\u042F ]$/\n    // single acceptable hidden-search char\n  };\n  var TIMINGS = {\n    SEARCH_DEBOUNCE_MS: 100,\n    HIDDEN_SEARCH_RESET_MS: 1e3,\n    NEXT_TICK: 0\n  };\n  var SENTINELS = {\n    UNKNOWN_NUMBER_TYPE: -99,\n    UNKNOWN_VALIDATION_ERROR: -99\n  };\n  var LAYOUT = {\n    SANE_SELECTED_WITH_DIAL_WIDTH: 78,\n    // px width fallback when separateDialCode enabled\n    SANE_SELECTED_NO_DIAL_WIDTH: 42,\n    // px width fallback when no separate dial code\n    INPUT_PADDING_EXTRA_LEFT: 6\n    // px gap between selected country container and input text\n  };\n  var DIAL = {\n    PLUS: \"+\",\n    NANP: \"1\"\n    // North American Numbering Plan\n  };\n  var UK = {\n    ISO2: \"gb\",\n    DIAL_CODE: \"44\",\n    // +44 United Kingdom\n    MOBILE_PREFIX: \"7\",\n    // UK mobile numbers start with 7 after national trunk (0) or core section\n    MOBILE_CORE_LENGTH: 10\n    // core number length (excluding dial code / national prefix) for mobiles\n  };\n  var US = {\n    ISO2: \"us\",\n    DIAL_CODE: \"1\"\n    // +1 United States\n  };\n  var PLACEHOLDER_MODES = {\n    AGGRESSIVE: \"aggressive\",\n    POLITE: \"polite\",\n    OFF: \"off\"\n  };\n  var INITIAL_COUNTRY = {\n    AUTO: \"auto\"\n  };\n  var DATA_KEYS = {\n    COUNTRY_CODE: \"countryCode\",\n    DIAL_CODE: \"dialCode\"\n  };\n  var ARIA = {\n    EXPANDED: \"aria-expanded\",\n    LABEL: \"aria-label\",\n    SELECTED: \"aria-selected\",\n    ACTIVE_DESCENDANT: \"aria-activedescendant\",\n    HASPOPUP: \"aria-haspopup\",\n    CONTROLS: \"aria-controls\",\n    HIDDEN: \"aria-hidden\",\n    AUTOCOMPLETE: \"aria-autocomplete\",\n    MODAL: \"aria-modal\"\n  };\n\n  // src/js/modules/core/options.ts\n  var mq = (q) => typeof window !== \"undefined\" && typeof window.matchMedia === \"function\" && window.matchMedia(q).matches;\n  var computeDefaultUseFullscreenPopup = () => {\n    if (typeof navigator !== \"undefined\" && typeof window !== \"undefined\") {\n      const isMobileUserAgent = /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n        navigator.userAgent\n      );\n      const isNarrowViewport = mq(\"(max-width: 500px)\");\n      const isShortViewport = mq(\"(max-height: 600px)\");\n      const isCoarsePointer = mq(\"(pointer: coarse)\");\n      return isMobileUserAgent || isNarrowViewport || isCoarsePointer && isShortViewport;\n    }\n    return false;\n  };\n  var defaults = {\n    // Allow alphanumeric \"phonewords\" (e.g. +1 800 FLOWERS) as valid numbers\n    allowPhonewords: false,\n    //* Whether or not to allow the dropdown.\n    allowDropdown: true,\n    //* Add a placeholder in the input with an example number for the selected country.\n    autoPlaceholder: PLACEHOLDER_MODES.POLITE,\n    //* Modify the parentClass.\n    containerClass: \"\",\n    //* The order of the countries in the dropdown. Defaults to alphabetical.\n    countryOrder: null,\n    //* Add a country search input at the top of the dropdown.\n    countrySearch: true,\n    //* Modify the auto placeholder.\n    customPlaceholder: null,\n    //* Append menu to specified element.\n    dropdownContainer: null,\n    //* Don't display these countries.\n    excludeCountries: [],\n    //* Fix the dropdown width to the input width (rather than being as wide as the longest country name).\n    fixDropdownWidth: true,\n    //* Format the number as the user types\n    formatAsYouType: true,\n    //* Format the input value during initialisation and on setNumber.\n    formatOnDisplay: true,\n    //* geoIp lookup function.\n    geoIpLookup: null,\n    //* Inject a hidden input with the name returned from this function, and on submit, populate it with the result of getNumber.\n    hiddenInput: null,\n    //* Internationalise the plugin text e.g. search input placeholder, country names.\n    i18n: {},\n    //* Initial country.\n    initialCountry: \"\",\n    //* A function to load the utils script.\n    loadUtils: null,\n    //* National vs international formatting for numbers e.g. placeholders and displaying existing numbers.\n    nationalMode: true,\n    //* Display only these countries.\n    onlyCountries: [],\n    //* Number type to use for placeholders.\n    placeholderNumberType: \"MOBILE\",\n    //* Show flags - for both the selected country, and in the country dropdown\n    showFlags: true,\n    //* Display the international dial code next to the selected flag.\n    separateDialCode: false,\n    //* Only allow certain chars e.g. a plus followed by numeric digits, and cap at max valid length.\n    strictMode: false,\n    //* Use full screen popup instead of dropdown for country list.\n    useFullscreenPopup: computeDefaultUseFullscreenPopup(),\n    //* The number type to enforce during validation.\n    validationNumberTypes: [\"MOBILE\"]\n  };\n  var applyOptionSideEffects = (o, defaultEnglishStrings) => {\n    if (o.useFullscreenPopup) {\n      o.fixDropdownWidth = false;\n    }\n    if (o.onlyCountries.length === 1) {\n      o.initialCountry = o.onlyCountries[0];\n    }\n    if (o.separateDialCode) {\n      o.nationalMode = false;\n    }\n    if (o.allowDropdown && !o.showFlags && !o.separateDialCode) {\n      o.nationalMode = false;\n    }\n    if (o.useFullscreenPopup && !o.dropdownContainer) {\n      o.dropdownContainer = document.body;\n    }\n    o.i18n = { ...defaultEnglishStrings, ...o.i18n };\n  };\n\n  // src/js/modules/utils/string.ts\n  var getNumeric = (s) => s.replace(/\\D/g, \"\");\n  var normaliseString = (s = \"\") => s.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase();\n\n  // src/js/modules/core/countrySearch.ts\n  var getMatchedCountries = (countries, query) => {\n    const normalisedQuery = normaliseString(query);\n    const iso2Matches = [];\n    const nameStartWith = [];\n    const nameContains = [];\n    const dialCodeMatches = [];\n    const dialCodeContains = [];\n    const initialsMatches = [];\n    for (const c of countries) {\n      if (c.iso2 === normalisedQuery) {\n        iso2Matches.push(c);\n      } else if (c.normalisedName.startsWith(normalisedQuery)) {\n        nameStartWith.push(c);\n      } else if (c.normalisedName.includes(normalisedQuery)) {\n        nameContains.push(c);\n      } else if (normalisedQuery === c.dialCode || normalisedQuery === c.dialCodePlus) {\n        dialCodeMatches.push(c);\n      } else if (c.dialCodePlus.includes(normalisedQuery)) {\n        dialCodeContains.push(c);\n      } else if (c.initials.includes(normalisedQuery)) {\n        initialsMatches.push(c);\n      }\n    }\n    const sortByPriority = (a, b) => a.priority - b.priority;\n    return [\n      ...iso2Matches.sort(sortByPriority),\n      ...nameStartWith.sort(sortByPriority),\n      ...nameContains.sort(sortByPriority),\n      ...dialCodeMatches.sort(sortByPriority),\n      ...dialCodeContains.sort(sortByPriority),\n      ...initialsMatches.sort(sortByPriority)\n    ];\n  };\n  var findFirstCountryStartingWith = (countries, query) => {\n    const lowerQuery = query.toLowerCase();\n    for (const c of countries) {\n      const lowerName = c.name.toLowerCase();\n      if (lowerName.startsWith(lowerQuery)) {\n        return c;\n      }\n    }\n    return null;\n  };\n\n  // src/js/modules/utils/dom.ts\n  var buildClassNames = (flags) => Object.keys(flags).filter((k) => Boolean(flags[k])).join(\" \");\n  var createEl = (tagName, attrs, container) => {\n    const el = document.createElement(tagName);\n    if (attrs) {\n      Object.entries(attrs).forEach(\n        ([key, value]) => el.setAttribute(key, value)\n      );\n    }\n    if (container) {\n      container.appendChild(el);\n    }\n    return el;\n  };\n\n  // src/js/modules/core/icons.ts\n  var buildSearchIcon = () => `\n  <svg class=\"iti__search-icon-svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" focusable=\"false\" ${ARIA.HIDDEN}=\"true\">\n    <circle cx=\"11\" cy=\"11\" r=\"7\" />\n    <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n  </svg>`;\n  var buildClearIcon = (id2) => {\n    const maskId = `iti-${id2}-clear-mask`;\n    return `\n    <svg class=\"iti__search-clear-svg\" width=\"12\" height=\"12\" viewBox=\"0 0 16 16\" ${ARIA.HIDDEN}=\"true\" focusable=\"false\">\n      <mask id=\"${maskId}\" maskUnits=\"userSpaceOnUse\">\n        <rect width=\"16\" height=\"16\" fill=\"white\" />\n        <path d=\"M5.2 5.2 L10.8 10.8 M10.8 5.2 L5.2 10.8\" stroke=\"black\" stroke-linecap=\"round\" class=\"iti__search-clear-x\" />\n      </mask>\n      <circle cx=\"8\" cy=\"8\" r=\"8\" class=\"iti__search-clear-bg\" mask=\"url(#${maskId})\" />\n    </svg>`;\n  };\n\n  // src/js/modules/core/ui.ts\n  var UI = class {\n    constructor(input, options, id2) {\n      this.highlightedItem = null;\n      input.dataset.intlTelInputId = id2.toString();\n      this.telInput = input;\n      this.options = options;\n      this.id = id2;\n      this.hadInitialPlaceholder = Boolean(input.getAttribute(\"placeholder\"));\n      this.isRTL = !!this.telInput.closest(\"[dir=rtl]\");\n      if (this.options.separateDialCode) {\n        this.originalPaddingLeft = this.telInput.style.paddingLeft;\n      }\n    }\n    //* Generate all of the markup for the plugin: the selected country overlay, and the dropdown.\n    generateMarkup(countries) {\n      this.countries = countries;\n      this._prepareTelInput();\n      const wrapper = this._createWrapperAndInsert();\n      this._maybeBuildCountryContainer(wrapper);\n      wrapper.appendChild(this.telInput);\n      this._maybeUpdateInputPaddingAndReveal();\n      this._maybeBuildHiddenInputs(wrapper);\n    }\n    _prepareTelInput() {\n      this.telInput.classList.add(\"iti__tel-input\");\n      if (!this.telInput.hasAttribute(\"autocomplete\") && !this.telInput.form?.hasAttribute(\"autocomplete\")) {\n        this.telInput.setAttribute(\"autocomplete\", \"off\");\n      }\n    }\n    _createWrapperAndInsert() {\n      const { allowDropdown, showFlags, containerClass, useFullscreenPopup } = this.options;\n      const parentClasses = buildClassNames({\n        iti: true,\n        \"iti--allow-dropdown\": allowDropdown,\n        \"iti--show-flags\": showFlags,\n        \"iti--inline-dropdown\": !useFullscreenPopup,\n        [containerClass]: Boolean(containerClass)\n      });\n      const wrapper = createEl(\"div\", { class: parentClasses });\n      if (this.isRTL) {\n        wrapper.setAttribute(\"dir\", \"ltr\");\n      }\n      this.telInput.before(wrapper);\n      return wrapper;\n    }\n    _maybeBuildCountryContainer(wrapper) {\n      const { allowDropdown, separateDialCode, showFlags } = this.options;\n      if (allowDropdown || showFlags || separateDialCode) {\n        this.countryContainer = createEl(\n          \"div\",\n          // visibly hidden until we measure it's width to set the input padding correctly\n          { class: `iti__country-container ${CLASSES.V_HIDE}` },\n          wrapper\n        );\n        if (allowDropdown) {\n          this.selectedCountry = createEl(\n            \"button\",\n            {\n              type: \"button\",\n              class: \"iti__selected-country\",\n              [ARIA.EXPANDED]: \"false\",\n              [ARIA.LABEL]: this.options.i18n.noCountrySelected,\n              [ARIA.HASPOPUP]: \"dialog\",\n              [ARIA.CONTROLS]: `iti-${this.id}__dropdown-content`\n            },\n            this.countryContainer\n          );\n          if (this.telInput.disabled) {\n            this.selectedCountry.setAttribute(\"disabled\", \"true\");\n          }\n        } else {\n          this.selectedCountry = createEl(\n            \"div\",\n            { class: \"iti__selected-country\" },\n            this.countryContainer\n          );\n        }\n        const selectedCountryPrimary = createEl(\n          \"div\",\n          { class: \"iti__selected-country-primary\" },\n          this.selectedCountry\n        );\n        this.selectedCountryInner = createEl(\n          \"div\",\n          { class: CLASSES.FLAG },\n          selectedCountryPrimary\n        );\n        if (allowDropdown) {\n          this.dropdownArrow = createEl(\n            \"div\",\n            { class: \"iti__arrow\", [ARIA.HIDDEN]: \"true\" },\n            selectedCountryPrimary\n          );\n        }\n        if (separateDialCode) {\n          this.selectedDialCode = createEl(\n            \"div\",\n            { class: \"iti__selected-dial-code\" },\n            this.selectedCountry\n          );\n        }\n        if (allowDropdown) {\n          this._buildDropdownContent();\n        }\n      }\n    }\n    _buildDropdownContent() {\n      const {\n        fixDropdownWidth,\n        useFullscreenPopup,\n        countrySearch,\n        i18n,\n        dropdownContainer,\n        containerClass\n      } = this.options;\n      const extraClasses = fixDropdownWidth ? \"\" : \"iti--flexible-dropdown-width\";\n      this.dropdownContent = createEl(\"div\", {\n        id: `iti-${this.id}__dropdown-content`,\n        class: `iti__dropdown-content ${CLASSES.HIDE} ${extraClasses}`,\n        role: \"dialog\",\n        [ARIA.MODAL]: \"true\"\n      });\n      if (this.isRTL) {\n        this.dropdownContent.setAttribute(\"dir\", \"rtl\");\n      }\n      if (countrySearch) {\n        this._buildSearchUI();\n      }\n      this.countryList = createEl(\n        \"ul\",\n        {\n          class: \"iti__country-list\",\n          id: `iti-${this.id}__country-listbox`,\n          role: \"listbox\",\n          [ARIA.LABEL]: i18n.countryListAriaLabel\n        },\n        this.dropdownContent\n      );\n      this._appendListItems();\n      if (countrySearch) {\n        this.updateSearchResultsA11yText();\n      }\n      if (dropdownContainer) {\n        const dropdownClasses = buildClassNames({\n          iti: true,\n          \"iti--container\": true,\n          \"iti--fullscreen-popup\": useFullscreenPopup,\n          \"iti--inline-dropdown\": !useFullscreenPopup,\n          [containerClass]: Boolean(containerClass)\n        });\n        this.dropdown = createEl(\"div\", { class: dropdownClasses });\n        this.dropdown.appendChild(this.dropdownContent);\n      } else {\n        this.countryContainer.appendChild(this.dropdownContent);\n      }\n    }\n    _buildSearchUI() {\n      const { i18n } = this.options;\n      const searchWrapper = createEl(\n        \"div\",\n        { class: \"iti__search-input-wrapper\" },\n        this.dropdownContent\n      );\n      this.searchIcon = createEl(\n        \"span\",\n        {\n          class: \"iti__search-icon\",\n          [ARIA.HIDDEN]: \"true\"\n        },\n        searchWrapper\n      );\n      this.searchIcon.innerHTML = buildSearchIcon();\n      this.searchInput = createEl(\n        \"input\",\n        {\n          id: `iti-${this.id}__search-input`,\n          // Chrome says inputs need either a name or an id\n          type: \"search\",\n          class: \"iti__search-input\",\n          placeholder: i18n.searchPlaceholder,\n          // role=combobox + aria-autocomplete=list + aria-activedescendant allows maintaining focus on the search input while allowing users to navigate search results with up/down keyboard keys\n          role: \"combobox\",\n          [ARIA.EXPANDED]: \"true\",\n          [ARIA.LABEL]: i18n.searchPlaceholder,\n          [ARIA.CONTROLS]: `iti-${this.id}__country-listbox`,\n          [ARIA.AUTOCOMPLETE]: \"list\",\n          autocomplete: \"off\"\n        },\n        searchWrapper\n      );\n      this.searchClearButton = createEl(\n        \"button\",\n        {\n          type: \"button\",\n          class: `iti__search-clear ${CLASSES.HIDE}`,\n          [ARIA.LABEL]: i18n.clearSearchAriaLabel,\n          tabindex: \"-1\"\n        },\n        searchWrapper\n      );\n      this.searchClearButton.innerHTML = buildClearIcon(this.id);\n      this.searchResultsA11yText = createEl(\n        \"span\",\n        { class: \"iti__a11y-text\" },\n        this.dropdownContent\n      );\n      this.searchNoResults = createEl(\n        \"div\",\n        {\n          class: `iti__no-results ${CLASSES.HIDE}`,\n          [ARIA.HIDDEN]: \"true\"\n          // all a11y messaging happens in this.searchResultsA11yText\n        },\n        this.dropdownContent\n      );\n      this.searchNoResults.textContent = i18n.zeroSearchResults;\n    }\n    _maybeUpdateInputPaddingAndReveal() {\n      if (this.countryContainer) {\n        this.updateInputPadding();\n        this.countryContainer.classList.remove(CLASSES.V_HIDE);\n      }\n    }\n    _maybeBuildHiddenInputs(wrapper) {\n      const { hiddenInput } = this.options;\n      if (hiddenInput) {\n        const telInputName = this.telInput.getAttribute(\"name\") || \"\";\n        const names = hiddenInput(telInputName);\n        if (names.phone) {\n          const existingInput = this.telInput.form?.querySelector(\n            `input[name=\"${names.phone}\"]`\n          );\n          if (existingInput) {\n            this.hiddenInput = existingInput;\n          } else {\n            this.hiddenInput = createEl(\"input\", {\n              type: \"hidden\",\n              name: names.phone\n            });\n            wrapper.appendChild(this.hiddenInput);\n          }\n        }\n        if (names.country) {\n          const existingInput = this.telInput.form?.querySelector(\n            `input[name=\"${names.country}\"]`\n          );\n          if (existingInput) {\n            this.hiddenInputCountry = existingInput;\n          } else {\n            this.hiddenInputCountry = createEl(\"input\", {\n              type: \"hidden\",\n              name: names.country\n            });\n            wrapper.appendChild(this.hiddenInputCountry);\n          }\n        }\n      }\n    }\n    //* For each country: add a country list item <li> to the countryList <ul> container.\n    _appendListItems() {\n      const frag = document.createDocumentFragment();\n      for (let i = 0; i < this.countries.length; i++) {\n        const c = this.countries[i];\n        const liClass = buildClassNames({\n          [CLASSES.COUNTRY_ITEM]: true,\n          [CLASSES.HIGHLIGHT]: i === 0\n        });\n        const listItem = createEl(\"li\", {\n          id: `iti-${this.id}__item-${c.iso2}`,\n          class: liClass,\n          tabindex: \"-1\",\n          role: \"option\",\n          [ARIA.SELECTED]: \"false\"\n        });\n        listItem.dataset.dialCode = c.dialCode;\n        listItem.dataset.countryCode = c.iso2;\n        c.nodeById[this.id] = listItem;\n        if (this.options.showFlags) {\n          createEl(\"div\", { class: `${CLASSES.FLAG} iti__${c.iso2}` }, listItem);\n        }\n        const nameEl = createEl(\"span\", { class: \"iti__country-name\" }, listItem);\n        nameEl.textContent = c.name;\n        const dialEl = createEl(\"span\", { class: \"iti__dial-code\" }, listItem);\n        if (this.isRTL) {\n          dialEl.setAttribute(\"dir\", \"ltr\");\n        }\n        dialEl.textContent = `+${c.dialCode}`;\n        frag.appendChild(listItem);\n      }\n      this.countryList.appendChild(frag);\n    }\n    //* Update the input padding to make space for the selected country/dial code.\n    updateInputPadding() {\n      if (this.selectedCountry) {\n        const fallbackWidth = this.options.separateDialCode ? LAYOUT.SANE_SELECTED_WITH_DIAL_WIDTH : LAYOUT.SANE_SELECTED_NO_DIAL_WIDTH;\n        const selectedCountryWidth = this.selectedCountry.offsetWidth || this._getHiddenSelectedCountryWidth() || fallbackWidth;\n        const inputPadding = selectedCountryWidth + LAYOUT.INPUT_PADDING_EXTRA_LEFT;\n        this.telInput.style.paddingLeft = `${inputPadding}px`;\n      }\n    }\n    //* When input is in a hidden container during init, we cannot calculate the selected country width.\n    //* Fix: clone the markup, make it invisible, add it to the end of the DOM, and then measure it's width.\n    //* To get the right styling to apply, all we need is a shallow clone of the container,\n    //* and then to inject a deep clone of the selectedCountry element.\n    _getHiddenSelectedCountryWidth() {\n      if (this.telInput.parentNode) {\n        let body;\n        try {\n          body = window.top.document.body;\n        } catch (e) {\n          body = document.body;\n        }\n        const containerClone = this.telInput.parentNode.cloneNode(\n          false\n        );\n        containerClone.style.visibility = \"hidden\";\n        body.appendChild(containerClone);\n        const countryContainerClone = this.countryContainer.cloneNode();\n        containerClone.appendChild(countryContainerClone);\n        const selectedCountryClone = this.selectedCountry.cloneNode(\n          true\n        );\n        countryContainerClone.appendChild(selectedCountryClone);\n        const width = selectedCountryClone.offsetWidth;\n        body.removeChild(containerClone);\n        return width;\n      }\n      return 0;\n    }\n    //* Update search results text (for a11y).\n    updateSearchResultsA11yText() {\n      const { i18n } = this.options;\n      const count = this.countryList.childElementCount;\n      let searchText;\n      if (count === 0) {\n        searchText = i18n.zeroSearchResults;\n      } else {\n        if (i18n.searchResultsText) {\n          searchText = i18n.searchResultsText(count);\n        } else if (count === 1) {\n          searchText = i18n.oneSearchResult;\n        } else {\n          searchText = i18n.multipleSearchResults.replace(\n            \"${count}\",\n            count.toString()\n          );\n        }\n      }\n      this.searchResultsA11yText.textContent = searchText;\n    }\n    //* Check if an element is visible within it's container, else scroll until it is.\n    scrollTo(element) {\n      const container = this.countryList;\n      const scrollTop = document.documentElement.scrollTop;\n      const containerHeight = container.offsetHeight;\n      const containerTop = container.getBoundingClientRect().top + scrollTop;\n      const containerBottom = containerTop + containerHeight;\n      const elementHeight = element.offsetHeight;\n      const elementTop = element.getBoundingClientRect().top + scrollTop;\n      const elementBottom = elementTop + elementHeight;\n      const newScrollTop = elementTop - containerTop + container.scrollTop;\n      if (elementTop < containerTop) {\n        container.scrollTop = newScrollTop;\n      } else if (elementBottom > containerBottom) {\n        const heightDifference = containerHeight - elementHeight;\n        container.scrollTop = newScrollTop - heightDifference;\n      }\n    }\n    //* Remove highlighting from other list items and highlight the given item.\n    highlightListItem(listItem, shouldFocus) {\n      const prevItem = this.highlightedItem;\n      if (prevItem) {\n        prevItem.classList.remove(CLASSES.HIGHLIGHT);\n        prevItem.setAttribute(ARIA.SELECTED, \"false\");\n      }\n      this.highlightedItem = listItem;\n      if (this.highlightedItem) {\n        this.highlightedItem.classList.add(CLASSES.HIGHLIGHT);\n        this.highlightedItem.setAttribute(ARIA.SELECTED, \"true\");\n        if (this.options.countrySearch) {\n          const activeDescendant = this.highlightedItem.getAttribute(\"id\") || \"\";\n          this.searchInput.setAttribute(ARIA.ACTIVE_DESCENDANT, activeDescendant);\n        }\n      }\n      if (shouldFocus) {\n        this.highlightedItem.focus();\n      }\n    }\n    //* Country search: Filter the country list to the given array of countries.\n    filterCountries(matchedCountries) {\n      this.countryList.innerHTML = \"\";\n      let noCountriesAddedYet = true;\n      for (const c of matchedCountries) {\n        const listItem = c.nodeById[this.id];\n        if (listItem) {\n          this.countryList.appendChild(listItem);\n          if (noCountriesAddedYet) {\n            this.highlightListItem(listItem, false);\n            noCountriesAddedYet = false;\n          }\n        }\n      }\n      if (noCountriesAddedYet) {\n        this.highlightListItem(null, false);\n        if (this.searchNoResults) {\n          this.searchNoResults.classList.remove(CLASSES.HIDE);\n        }\n      } else if (this.searchNoResults) {\n        this.searchNoResults.classList.add(CLASSES.HIDE);\n      }\n      this.countryList.scrollTop = 0;\n      this.updateSearchResultsA11yText();\n    }\n    destroy() {\n      this.telInput.iti = void 0;\n      delete this.telInput.dataset.intlTelInputId;\n      if (this.options.separateDialCode) {\n        this.telInput.style.paddingLeft = this.originalPaddingLeft;\n      }\n      const wrapper = this.telInput.parentNode;\n      wrapper.before(this.telInput);\n      wrapper.remove();\n      this.telInput = null;\n      this.countryContainer = null;\n      this.selectedCountry = null;\n      this.selectedCountryInner = null;\n      this.selectedDialCode = null;\n      this.dropdownArrow = null;\n      this.dropdownContent = null;\n      this.searchInput = null;\n      this.searchIcon = null;\n      this.searchClearButton = null;\n      this.searchNoResults = null;\n      this.searchResultsA11yText = null;\n      this.countryList = null;\n      this.dropdown = null;\n      this.hiddenInput = null;\n      this.hiddenInputCountry = null;\n      this.highlightedItem = null;\n      for (const c of this.countries) {\n        delete c.nodeById[this.id];\n      }\n      this.countries = null;\n    }\n  };\n\n  // src/js/modules/data/country-data.ts\n  var processAllCountries = (options) => {\n    const { onlyCountries, excludeCountries } = options;\n    if (onlyCountries.length) {\n      const lowerCaseOnlyCountries = onlyCountries.map(\n        (country) => country.toLowerCase()\n      );\n      return data_default.filter(\n        (country) => lowerCaseOnlyCountries.includes(country.iso2)\n      );\n    } else if (excludeCountries.length) {\n      const lowerCaseExcludeCountries = excludeCountries.map(\n        (country) => country.toLowerCase()\n      );\n      return data_default.filter(\n        (country) => !lowerCaseExcludeCountries.includes(country.iso2)\n      );\n    }\n    return data_default;\n  };\n  var translateCountryNames = (countries, options) => {\n    for (const c of countries) {\n      const iso2 = c.iso2.toLowerCase();\n      if (options.i18n[iso2]) {\n        c.name = options.i18n[iso2];\n      }\n    }\n  };\n  var processDialCodes = (countries, options) => {\n    const dialCodes = /* @__PURE__ */ new Set();\n    let dialCodeMaxLen = 0;\n    const dialCodeToIso2Map = {};\n    const _addToDialCodeMap = (iso2, dialCode, priority) => {\n      if (!iso2 || !dialCode) {\n        return;\n      }\n      if (dialCode.length > dialCodeMaxLen) {\n        dialCodeMaxLen = dialCode.length;\n      }\n      if (!dialCodeToIso2Map.hasOwnProperty(dialCode)) {\n        dialCodeToIso2Map[dialCode] = [];\n      }\n      const iso2List = dialCodeToIso2Map[dialCode];\n      if (iso2List.includes(iso2)) {\n        return;\n      }\n      const index = priority !== void 0 ? priority : iso2List.length;\n      iso2List[index] = iso2;\n    };\n    for (const c of countries) {\n      if (!dialCodes.has(c.dialCode)) {\n        dialCodes.add(c.dialCode);\n      }\n      for (let k = 1; k < c.dialCode.length; k++) {\n        const partialDialCode = c.dialCode.substring(0, k);\n        _addToDialCodeMap(c.iso2, partialDialCode);\n      }\n      _addToDialCodeMap(c.iso2, c.dialCode, c.priority);\n    }\n    if (options.onlyCountries.length || options.excludeCountries.length) {\n      dialCodes.forEach((dialCode) => {\n        dialCodeToIso2Map[dialCode] = dialCodeToIso2Map[dialCode].filter(Boolean);\n      });\n    }\n    for (const c of countries) {\n      if (c.areaCodes) {\n        const rootIso2Code = dialCodeToIso2Map[c.dialCode][0];\n        for (const areaCode of c.areaCodes) {\n          for (let k = 1; k < areaCode.length; k++) {\n            const partialAreaCode = areaCode.substring(0, k);\n            const partialDialCode = c.dialCode + partialAreaCode;\n            _addToDialCodeMap(rootIso2Code, partialDialCode);\n            _addToDialCodeMap(c.iso2, partialDialCode);\n          }\n          _addToDialCodeMap(c.iso2, c.dialCode + areaCode);\n        }\n      }\n    }\n    return { dialCodes, dialCodeMaxLen, dialCodeToIso2Map };\n  };\n  var sortCountries = (countries, options) => {\n    if (options.countryOrder) {\n      options.countryOrder = options.countryOrder.map(\n        (iso2) => iso2.toLowerCase()\n      );\n    }\n    countries.sort((a, b) => {\n      const { countryOrder } = options;\n      if (countryOrder) {\n        const aIndex = countryOrder.indexOf(a.iso2);\n        const bIndex = countryOrder.indexOf(b.iso2);\n        const aIndexExists = aIndex > -1;\n        const bIndexExists = bIndex > -1;\n        if (aIndexExists || bIndexExists) {\n          if (aIndexExists && bIndexExists) {\n            return aIndex - bIndex;\n          }\n          return aIndexExists ? -1 : 1;\n        }\n      }\n      return a.name.localeCompare(b.name);\n    });\n  };\n  var cacheSearchTokens = (countries) => {\n    for (const c of countries) {\n      c.normalisedName = normaliseString(c.name);\n      c.initials = c.normalisedName.split(/[^a-z]/).map((word) => word[0]).join(\"\");\n      c.dialCodePlus = `+${c.dialCode}`;\n    }\n  };\n\n  // src/js/modules/format/formatting.ts\n  var beforeSetNumber = (fullNumber, dialCode, separateDialCode, selectedCountryData) => {\n    let number = fullNumber;\n    if (separateDialCode) {\n      if (dialCode) {\n        dialCode = `+${selectedCountryData.dialCode}`;\n        const start = number[dialCode.length] === \" \" || number[dialCode.length] === \"-\" ? dialCode.length + 1 : dialCode.length;\n        number = number.substring(start);\n      }\n    }\n    return number;\n  };\n  var formatNumberAsYouType = (fullNumber, telInputValue, utils, selectedCountryData, separateDialCode) => {\n    const result = utils ? utils.formatNumberAsYouType(fullNumber, selectedCountryData.iso2) : fullNumber;\n    const { dialCode } = selectedCountryData;\n    if (separateDialCode && telInputValue.charAt(0) !== \"+\" && result.includes(`+${dialCode}`)) {\n      const afterDialCode = result.split(`+${dialCode}`)[1] || \"\";\n      return afterDialCode.trim();\n    }\n    return result;\n  };\n\n  // src/js/modules/format/caret.ts\n  var translateCursorPosition = (relevantChars, formattedValue, prevCaretPos, isDeleteForwards) => {\n    if (prevCaretPos === 0 && !isDeleteForwards) {\n      return 0;\n    }\n    let relevantCharCount = 0;\n    for (let i = 0; i < formattedValue.length; i++) {\n      if (/[+0-9]/.test(formattedValue[i])) {\n        relevantCharCount++;\n      }\n      if (relevantCharCount === relevantChars && !isDeleteForwards) {\n        return i + 1;\n      }\n      if (isDeleteForwards && relevantCharCount === relevantChars + 1) {\n        return i;\n      }\n    }\n    return formattedValue.length;\n  };\n\n  // src/js/modules/data/nanp-regionless.ts\n  var regionlessNanpNumbers = [\n    \"800\",\n    \"822\",\n    \"833\",\n    \"844\",\n    \"855\",\n    \"866\",\n    \"877\",\n    \"880\",\n    \"881\",\n    \"882\",\n    \"883\",\n    \"884\",\n    \"885\",\n    \"886\",\n    \"887\",\n    \"888\",\n    \"889\"\n  ];\n  var isRegionlessNanp = (number) => {\n    const numeric = getNumeric(number);\n    if (numeric.startsWith(DIAL.NANP) && numeric.length >= 4) {\n      const areaCode = numeric.substring(1, 4);\n      return regionlessNanpNumbers.includes(areaCode);\n    }\n    return false;\n  };\n\n  // src/js/intl-tel-input.ts\n  for (const c of data_default) {\n    c.name = en_default[c.iso2];\n  }\n  var id = 0;\n  var iso2Set = new Set(data_default.map((c) => c.iso2));\n  var isIso2 = (val) => iso2Set.has(val);\n  var Iti = class _Iti {\n    constructor(input, customOptions = {}) {\n      this.id = id++;\n      this.options = { ...defaults, ...customOptions };\n      applyOptionSideEffects(this.options, en_default);\n      this.ui = new UI(input, this.options, this.id);\n      this.isAndroid = _Iti._getIsAndroid();\n      this.promise = this._createInitPromises();\n      this.countries = processAllCountries(this.options);\n      const { dialCodes, dialCodeMaxLen, dialCodeToIso2Map } = processDialCodes(\n        this.countries,\n        this.options\n      );\n      this.dialCodes = dialCodes;\n      this.dialCodeMaxLen = dialCodeMaxLen;\n      this.dialCodeToIso2Map = dialCodeToIso2Map;\n      this.countryByIso2 = new Map(this.countries.map((c) => [c.iso2, c]));\n      this._init();\n    }\n    static _getIsAndroid() {\n      return typeof navigator !== \"undefined\" ? /Android/i.test(navigator.userAgent) : false;\n    }\n    _createInitPromises() {\n      const autoCountryPromise = new Promise((resolve, reject) => {\n        this.resolveAutoCountryPromise = resolve;\n        this.rejectAutoCountryPromise = reject;\n      });\n      const utilsScriptPromise = new Promise((resolve, reject) => {\n        this.resolveUtilsScriptPromise = resolve;\n        this.rejectUtilsScriptPromise = reject;\n      });\n      return Promise.all([autoCountryPromise, utilsScriptPromise]);\n    }\n    //* Can't be private as it's called from intlTelInput convenience wrapper.\n    _init() {\n      this.selectedCountryData = {};\n      this.abortController = new AbortController();\n      this._processCountryData();\n      this.ui.generateMarkup(this.countries);\n      this._setInitialState();\n      this._initListeners();\n      this._initRequests();\n    }\n    //********************\n    //*  PRIVATE METHODS\n    //********************\n    //* Prepare all of the country data, including onlyCountries, excludeCountries, countryOrder options.\n    _processCountryData() {\n      translateCountryNames(this.countries, this.options);\n      sortCountries(this.countries, this.options);\n      cacheSearchTokens(this.countries);\n    }\n    //* Set the initial state of the input value and the selected country by:\n    //* 1. Extracting a dial code from the given number\n    //* 2. Using explicit initialCountry\n    _setInitialState(overrideAutoCountry = false) {\n      const attributeValue = this.ui.telInput.getAttribute(\"value\");\n      const inputValue = this.ui.telInput.value;\n      const useAttribute = attributeValue && attributeValue.startsWith(\"+\") && (!inputValue || !inputValue.startsWith(\"+\"));\n      const val = useAttribute ? attributeValue : inputValue;\n      const dialCode = this._getDialCode(val);\n      const isRegionlessNanpNumber = isRegionlessNanp(val);\n      const { initialCountry, geoIpLookup } = this.options;\n      const isAutoCountry = initialCountry === INITIAL_COUNTRY.AUTO && geoIpLookup;\n      if (dialCode && !isRegionlessNanpNumber) {\n        this._updateCountryFromNumber(val);\n      } else if (!isAutoCountry || overrideAutoCountry) {\n        const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : \"\";\n        if (isIso2(lowerInitialCountry)) {\n          this._setCountry(lowerInitialCountry);\n        } else {\n          if (dialCode && isRegionlessNanpNumber) {\n            this._setCountry(US.ISO2);\n          } else {\n            this._setCountry(\"\");\n          }\n        }\n      }\n      if (val) {\n        this._updateValFromNumber(val);\n      }\n    }\n    //* Initialise the main event listeners: input keyup, and click selected country.\n    _initListeners() {\n      this._initTelInputListeners();\n      if (this.options.allowDropdown) {\n        this._initDropdownListeners();\n      }\n      if ((this.ui.hiddenInput || this.ui.hiddenInputCountry) && this.ui.telInput.form) {\n        this._initHiddenInputListener();\n      }\n    }\n    //* Update hidden input on form submit.\n    _initHiddenInputListener() {\n      const handleHiddenInputSubmit = () => {\n        if (this.ui.hiddenInput) {\n          this.ui.hiddenInput.value = this.getNumber();\n        }\n        if (this.ui.hiddenInputCountry) {\n          this.ui.hiddenInputCountry.value = this.selectedCountryData.iso2 || \"\";\n        }\n      };\n      this.ui.telInput.form?.addEventListener(\"submit\", handleHiddenInputSubmit, {\n        signal: this.abortController.signal\n      });\n    }\n    //* initialise the dropdown listeners.\n    _initDropdownListeners() {\n      const signal = this.abortController.signal;\n      const handleLabelClick = (e) => {\n        if (this.ui.dropdownContent.classList.contains(CLASSES.HIDE)) {\n          this.ui.telInput.focus();\n        } else {\n          e.preventDefault();\n        }\n      };\n      const label = this.ui.telInput.closest(\"label\");\n      if (label) {\n        label.addEventListener(\"click\", handleLabelClick, { signal });\n      }\n      const handleClickSelectedCountry = () => {\n        const dropdownClosed = this.ui.dropdownContent.classList.contains(\n          CLASSES.HIDE\n        );\n        if (dropdownClosed && !this.ui.telInput.disabled && !this.ui.telInput.readOnly) {\n          this._openDropdown();\n        }\n      };\n      this.ui.selectedCountry.addEventListener(\n        \"click\",\n        handleClickSelectedCountry,\n        {\n          signal\n        }\n      );\n      const handleCountryContainerKeydown = (e) => {\n        const isDropdownHidden = this.ui.dropdownContent.classList.contains(\n          CLASSES.HIDE\n        );\n        if (isDropdownHidden && [KEYS.ARROW_UP, KEYS.ARROW_DOWN, KEYS.SPACE, KEYS.ENTER].includes(e.key)) {\n          e.preventDefault();\n          e.stopPropagation();\n          this._openDropdown();\n        }\n        if (e.key === KEYS.TAB) {\n          this._closeDropdown();\n        }\n      };\n      this.ui.countryContainer.addEventListener(\n        \"keydown\",\n        handleCountryContainerKeydown,\n        { signal }\n      );\n    }\n    //* Init many requests: utils script / geo ip lookup.\n    _initRequests() {\n      const { loadUtils, initialCountry, geoIpLookup } = this.options;\n      if (loadUtils && !intlTelInput.utils) {\n        const doAttachUtils = () => {\n          intlTelInput.attachUtils(loadUtils)?.catch(() => {\n          });\n        };\n        if (intlTelInput.documentReady()) {\n          doAttachUtils();\n        } else {\n          const handlePageLoad = () => {\n            doAttachUtils();\n          };\n          window.addEventListener(\"load\", handlePageLoad, {\n            signal: this.abortController.signal\n          });\n        }\n      } else {\n        this.resolveUtilsScriptPromise();\n      }\n      const isAutoCountry = initialCountry === INITIAL_COUNTRY.AUTO && geoIpLookup;\n      if (isAutoCountry && !this.selectedCountryData.iso2) {\n        this._loadAutoCountry();\n      } else {\n        this.resolveAutoCountryPromise();\n      }\n    }\n    //* Perform the geo ip lookup.\n    _loadAutoCountry() {\n      if (intlTelInput.autoCountry) {\n        this.handleAutoCountry();\n      } else if (!intlTelInput.startedLoadingAutoCountry) {\n        intlTelInput.startedLoadingAutoCountry = true;\n        if (typeof this.options.geoIpLookup === \"function\") {\n          this.options.geoIpLookup(\n            (iso2 = \"\") => {\n              const iso2Lower = iso2.toLowerCase();\n              if (isIso2(iso2Lower)) {\n                intlTelInput.autoCountry = iso2Lower;\n                setTimeout(() => forEachInstance(\"handleAutoCountry\"));\n              } else {\n                this._setInitialState(true);\n                forEachInstance(\"rejectAutoCountryPromise\");\n              }\n            },\n            () => {\n              this._setInitialState(true);\n              forEachInstance(\"rejectAutoCountryPromise\");\n            }\n          );\n        }\n      }\n    }\n    _openDropdownWithPlus() {\n      this._openDropdown();\n      this.ui.searchInput.value = \"+\";\n      this._filterCountriesByQuery(\"\");\n    }\n    //* Initialize the tel input listeners.\n    _initTelInputListeners() {\n      this._bindInputListener();\n      this._maybeBindKeydownListener();\n      this._maybeBindPasteListener();\n    }\n    _bindInputListener() {\n      const {\n        strictMode,\n        formatAsYouType,\n        separateDialCode,\n        allowDropdown,\n        countrySearch\n      } = this.options;\n      let userOverrideFormatting = false;\n      if (REGEX.ALPHA_UNICODE.test(this.ui.telInput.value)) {\n        userOverrideFormatting = true;\n      }\n      const handleInputEvent = (e) => {\n        if (this.isAndroid && e?.data === \"+\" && separateDialCode && allowDropdown && countrySearch) {\n          const currentCaretPos = this.ui.telInput.selectionStart || 0;\n          const valueBeforeCaret = this.ui.telInput.value.substring(\n            0,\n            currentCaretPos - 1\n          );\n          const valueAfterCaret = this.ui.telInput.value.substring(currentCaretPos);\n          this.ui.telInput.value = valueBeforeCaret + valueAfterCaret;\n          this._openDropdownWithPlus();\n          return;\n        }\n        if (this._updateCountryFromNumber(this.ui.telInput.value)) {\n          this._triggerCountryChange();\n        }\n        const isFormattingChar = e?.data && REGEX.NON_PLUS_NUMERIC.test(e.data);\n        const isPaste = e?.inputType === INPUT_TYPES.PASTE && this.ui.telInput.value;\n        if (isFormattingChar || isPaste && !strictMode) {\n          userOverrideFormatting = true;\n        } else if (!REGEX.NON_PLUS_NUMERIC.test(this.ui.telInput.value)) {\n          userOverrideFormatting = false;\n        }\n        const isSetNumber = e?.detail && e.detail[\"isSetNumber\"];\n        if (formatAsYouType && !userOverrideFormatting && !isSetNumber) {\n          const currentCaretPos = this.ui.telInput.selectionStart || 0;\n          const valueBeforeCaret = this.ui.telInput.value.substring(\n            0,\n            currentCaretPos\n          );\n          const relevantCharsBeforeCaret = valueBeforeCaret.replace(\n            REGEX.NON_PLUS_NUMERIC_GLOBAL,\n            \"\"\n          ).length;\n          const isDeleteForwards = e?.inputType === INPUT_TYPES.DELETE_FWD;\n          const fullNumber = this._getFullNumber();\n          const formattedValue = formatNumberAsYouType(\n            fullNumber,\n            this.ui.telInput.value,\n            intlTelInput.utils,\n            this.selectedCountryData,\n            this.options.separateDialCode\n          );\n          const newCaretPos = translateCursorPosition(\n            relevantCharsBeforeCaret,\n            formattedValue,\n            currentCaretPos,\n            isDeleteForwards\n          );\n          this.ui.telInput.value = formattedValue;\n          this.ui.telInput.setSelectionRange(newCaretPos, newCaretPos);\n        }\n      };\n      this.ui.telInput.addEventListener(\n        \"input\",\n        handleInputEvent,\n        {\n          signal: this.abortController.signal\n        }\n      );\n    }\n    _maybeBindKeydownListener() {\n      const { strictMode, separateDialCode, allowDropdown, countrySearch } = this.options;\n      if (strictMode || separateDialCode) {\n        const handleKeydownEvent = (e) => {\n          if (e.key && e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey) {\n            if (separateDialCode && allowDropdown && countrySearch && e.key === \"+\") {\n              e.preventDefault();\n              this._openDropdownWithPlus();\n              return;\n            }\n            if (strictMode) {\n              const value = this.ui.telInput.value;\n              const alreadyHasPlus = value.startsWith(\"+\");\n              const isInitialPlus = !alreadyHasPlus && this.ui.telInput.selectionStart === 0 && e.key === \"+\";\n              const isNumeric = /^[0-9]$/.test(e.key);\n              const isAllowedChar = separateDialCode ? isNumeric : isInitialPlus || isNumeric;\n              const newValue = value.slice(0, this.ui.telInput.selectionStart) + e.key + value.slice(this.ui.telInput.selectionEnd);\n              const newFullNumber = this._getFullNumber(newValue);\n              const coreNumber = intlTelInput.utils.getCoreNumber(\n                newFullNumber,\n                this.selectedCountryData.iso2\n              );\n              const hasExceededMaxLength = this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength;\n              const newCountry = this._getNewCountryFromNumber(newFullNumber);\n              const isChangingDialCode = newCountry !== null;\n              if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {\n                e.preventDefault();\n              }\n            }\n          }\n        };\n        this.ui.telInput.addEventListener(\"keydown\", handleKeydownEvent, {\n          signal: this.abortController.signal\n        });\n      }\n    }\n    _maybeBindPasteListener() {\n      if (this.options.strictMode) {\n        const handlePasteEvent = (e) => {\n          e.preventDefault();\n          const input = this.ui.telInput;\n          const selStart = input.selectionStart;\n          const selEnd = input.selectionEnd;\n          const before = input.value.slice(0, selStart);\n          const after = input.value.slice(selEnd);\n          const iso2 = this.selectedCountryData.iso2;\n          const pasted = e.clipboardData.getData(\"text\");\n          const initialCharSelected = selStart === 0 && selEnd > 0;\n          const allowLeadingPlus = !input.value.startsWith(\"+\") || initialCharSelected;\n          const allowedChars = pasted.replace(REGEX.NON_PLUS_NUMERIC_GLOBAL, \"\");\n          const hasLeadingPlus = allowedChars.startsWith(\"+\");\n          const numerics = allowedChars.replace(/\\+/g, \"\");\n          const sanitised = hasLeadingPlus && allowLeadingPlus ? `+${numerics}` : numerics;\n          let newVal = before + sanitised + after;\n          let coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);\n          while (coreNumber.length === 0 && newVal.length > 0) {\n            newVal = newVal.slice(0, -1);\n            coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);\n          }\n          if (!coreNumber) {\n            return;\n          }\n          if (this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength) {\n            if (input.selectionEnd === input.value.length) {\n              const trimLength = coreNumber.length - this.maxCoreNumberLength;\n              newVal = newVal.slice(0, newVal.length - trimLength);\n            } else {\n              return;\n            }\n          }\n          input.value = newVal;\n          const caretPos = selStart + sanitised.length;\n          input.setSelectionRange(caretPos, caretPos);\n          input.dispatchEvent(new InputEvent(\"input\", { bubbles: true }));\n        };\n        this.ui.telInput.addEventListener(\"paste\", handlePasteEvent, {\n          signal: this.abortController.signal\n        });\n      }\n    }\n    //* Adhere to the input's maxlength attr.\n    _cap(number) {\n      const max = Number(this.ui.telInput.getAttribute(\"maxlength\"));\n      return max && number.length > max ? number.substring(0, max) : number;\n    }\n    //* Trigger a custom event on the input (typed via ItiEventMap).\n    _trigger(name, detailProps = {}) {\n      const e = new CustomEvent(name, {\n        bubbles: true,\n        cancelable: true,\n        detail: detailProps\n      });\n      this.ui.telInput.dispatchEvent(e);\n    }\n    //* Open the dropdown.\n    _openDropdown() {\n      const { fixDropdownWidth, countrySearch } = this.options;\n      this.dropdownAbortController = new AbortController();\n      if (fixDropdownWidth) {\n        this.ui.dropdownContent.style.width = `${this.ui.telInput.offsetWidth}px`;\n      }\n      this.ui.dropdownContent.classList.remove(CLASSES.HIDE);\n      this.ui.selectedCountry.setAttribute(ARIA.EXPANDED, \"true\");\n      this._setDropdownPosition();\n      if (countrySearch) {\n        const firstCountryItem = this.ui.countryList.firstElementChild;\n        if (firstCountryItem) {\n          this.ui.highlightListItem(firstCountryItem, false);\n          this.ui.countryList.scrollTop = 0;\n        }\n        this.ui.searchInput.focus();\n      }\n      this._bindDropdownListeners();\n      this.ui.dropdownArrow.classList.add(CLASSES.ARROW_UP);\n      this._trigger(EVENTS.OPEN_COUNTRY_DROPDOWN);\n    }\n    //* Set the dropdown position\n    _setDropdownPosition() {\n      if (this.options.dropdownContainer) {\n        this.options.dropdownContainer.appendChild(this.ui.dropdown);\n      }\n      if (!this.options.useFullscreenPopup) {\n        const inputPosRelativeToVP = this.ui.telInput.getBoundingClientRect();\n        const inputHeight = this.ui.telInput.offsetHeight;\n        if (this.options.dropdownContainer) {\n          this.ui.dropdown.style.top = `${inputPosRelativeToVP.top + inputHeight}px`;\n          this.ui.dropdown.style.left = `${inputPosRelativeToVP.left}px`;\n          const handleWindowScroll = () => this._closeDropdown();\n          window.addEventListener(\"scroll\", handleWindowScroll, {\n            signal: this.dropdownAbortController.signal\n          });\n        }\n      }\n    }\n    //* We only bind dropdown listeners when the dropdown is open.\n    _bindDropdownListeners() {\n      const signal = this.dropdownAbortController.signal;\n      this._bindDropdownMouseoverListener(signal);\n      this._bindDropdownCountryClickListener(signal);\n      this._bindDropdownClickOffListener(signal);\n      this._bindDropdownKeydownListener(signal);\n      if (this.options.countrySearch) {\n        this._bindDropdownSearchListeners(signal);\n      }\n    }\n    //* When mouse over a list item, just highlight that one\n    //* we add the class \"highlight\", so if they hit \"enter\" we know which one to select.\n    _bindDropdownMouseoverListener(signal) {\n      const handleMouseoverCountryList = (e) => {\n        const listItem = e.target?.closest(\n          `.${CLASSES.COUNTRY_ITEM}`\n        );\n        if (listItem) {\n          this.ui.highlightListItem(listItem, false);\n        }\n      };\n      this.ui.countryList.addEventListener(\n        \"mouseover\",\n        handleMouseoverCountryList,\n        {\n          signal\n        }\n      );\n    }\n    //* Listen for country selection.\n    _bindDropdownCountryClickListener(signal) {\n      const handleClickCountryList = (e) => {\n        const listItem = e.target?.closest(\n          `.${CLASSES.COUNTRY_ITEM}`\n        );\n        if (listItem) {\n          this._selectListItem(listItem);\n        }\n      };\n      this.ui.countryList.addEventListener(\"click\", handleClickCountryList, {\n        signal\n      });\n    }\n    //* Click off to close (except when this initial opening click is bubbling up).\n    //* We cannot just stopPropagation as it may be needed to close another instance.\n    _bindDropdownClickOffListener(signal) {\n      const handleClickOffToClose = (e) => {\n        const target = e.target;\n        const clickedInsideDropdown = !!target.closest(\n          `#iti-${this.id}__dropdown-content`\n        );\n        if (!clickedInsideDropdown) {\n          this._closeDropdown();\n        }\n      };\n      setTimeout(() => {\n        document.documentElement.addEventListener(\n          \"click\",\n          handleClickOffToClose,\n          { signal }\n        );\n      }, 0);\n    }\n    //* Listen for up/down scrolling, enter to select, or escape to close.\n    //* Use keydown as keypress doesn't fire for non-char keys and we want to catch if they\n    //* just hit down and hold it to scroll down (no keyup event).\n    //* Listen on the document because that's where key events are triggered if no input has focus.\n    _bindDropdownKeydownListener(signal) {\n      let query = \"\";\n      let queryTimer = null;\n      const handleKeydownOnDropdown = (e) => {\n        const allowedKeys = [\n          KEYS.ARROW_UP,\n          KEYS.ARROW_DOWN,\n          KEYS.ENTER,\n          KEYS.ESC\n        ];\n        if (allowedKeys.includes(e.key)) {\n          e.preventDefault();\n          e.stopPropagation();\n          if (e.key === KEYS.ARROW_UP || e.key === KEYS.ARROW_DOWN) {\n            this._handleUpDownKey(e.key);\n          } else if (e.key === KEYS.ENTER) {\n            this._handleEnterKey();\n          } else if (e.key === KEYS.ESC) {\n            this._closeDropdown();\n            this.ui.selectedCountry.focus();\n          }\n        }\n        if (!this.options.countrySearch && REGEX.HIDDEN_SEARCH_CHAR.test(e.key)) {\n          e.stopPropagation();\n          if (queryTimer) {\n            clearTimeout(queryTimer);\n          }\n          query += e.key.toLowerCase();\n          this._searchForCountry(query);\n          queryTimer = setTimeout(() => {\n            query = \"\";\n          }, TIMINGS.HIDDEN_SEARCH_RESET_MS);\n        }\n      };\n      document.addEventListener(\"keydown\", handleKeydownOnDropdown, { signal });\n    }\n    //* Search input listeners when countrySearch enabled.\n    _bindDropdownSearchListeners(signal) {\n      const doFilter = () => {\n        const inputQuery = this.ui.searchInput.value.trim();\n        this._filterCountriesByQuery(inputQuery);\n        if (this.ui.searchInput.value) {\n          this.ui.searchClearButton.classList.remove(CLASSES.HIDE);\n        } else {\n          this.ui.searchClearButton.classList.add(CLASSES.HIDE);\n        }\n      };\n      let keyupTimer = null;\n      const handleSearchChange = () => {\n        if (keyupTimer) {\n          clearTimeout(keyupTimer);\n        }\n        keyupTimer = setTimeout(() => {\n          doFilter();\n          keyupTimer = null;\n        }, 100);\n      };\n      this.ui.searchInput.addEventListener(\"input\", handleSearchChange, {\n        signal\n      });\n      const handleSearchClear = () => {\n        this.ui.searchInput.value = \"\";\n        this.ui.searchInput.focus();\n        doFilter();\n      };\n      this.ui.searchClearButton.addEventListener(\"click\", handleSearchClear, {\n        signal\n      });\n    }\n    //* Hidden search (countrySearch disabled): Find the first list item whose name starts with the query string.\n    _searchForCountry(query) {\n      const match = findFirstCountryStartingWith(this.countries, query);\n      if (match) {\n        const listItem = match.nodeById[this.id];\n        this.ui.highlightListItem(listItem, false);\n        this.ui.scrollTo(listItem);\n      }\n    }\n    //* Country search: Filter the countries according to the search query.\n    _filterCountriesByQuery(query) {\n      let matchedCountries;\n      if (query === \"\") {\n        matchedCountries = this.countries;\n      } else {\n        matchedCountries = getMatchedCountries(this.countries, query);\n      }\n      this.ui.filterCountries(matchedCountries);\n    }\n    //* Highlight the next/prev item in the list (and ensure it is visible).\n    _handleUpDownKey(key) {\n      let next = key === KEYS.ARROW_UP ? this.ui.highlightedItem?.previousElementSibling : this.ui.highlightedItem?.nextElementSibling;\n      if (!next && this.ui.countryList.childElementCount > 1) {\n        next = key === KEYS.ARROW_UP ? this.ui.countryList.lastElementChild : this.ui.countryList.firstElementChild;\n      }\n      if (next) {\n        this.ui.scrollTo(next);\n        this.ui.highlightListItem(next, false);\n      }\n    }\n    //* Select the currently highlighted item.\n    _handleEnterKey() {\n      if (this.ui.highlightedItem) {\n        this._selectListItem(this.ui.highlightedItem);\n      }\n    }\n    //* Update the input's value to the given val (format first if possible)\n    //* NOTE: this is called from _setInitialState, handleUtils and setNumber.\n    _updateValFromNumber(fullNumber) {\n      let number = fullNumber;\n      if (this.options.formatOnDisplay && intlTelInput.utils && this.selectedCountryData) {\n        const useNational = this.options.nationalMode || !number.startsWith(\"+\") && !this.options.separateDialCode;\n        const { NATIONAL, INTERNATIONAL } = intlTelInput.utils.numberFormat;\n        const format = useNational ? NATIONAL : INTERNATIONAL;\n        number = intlTelInput.utils.formatNumber(\n          number,\n          this.selectedCountryData.iso2,\n          format\n        );\n      }\n      number = this._beforeSetNumber(number);\n      this.ui.telInput.value = number;\n    }\n    //* Check if need to select a new country based on the given number\n    //* Note: called from _setInitialState, keyup handler, setNumber.\n    _updateCountryFromNumber(fullNumber) {\n      const iso2 = this._getNewCountryFromNumber(fullNumber);\n      if (iso2 !== null) {\n        return this._setCountry(iso2);\n      }\n      return false;\n    }\n    // if there is a selected country, and the number doesn't start with a dial code, then add it\n    _ensureHasDialCode(number) {\n      const { dialCode, nationalPrefix } = this.selectedCountryData;\n      const alreadyHasPlus = number.startsWith(\"+\");\n      if (alreadyHasPlus || !dialCode) {\n        return number;\n      }\n      const hasPrefix = nationalPrefix && number.startsWith(nationalPrefix) && !this.options.separateDialCode;\n      const cleanNumber = hasPrefix ? number.substring(1) : number;\n      return `+${dialCode}${cleanNumber}`;\n    }\n    // Get the country ISO2 code from the given number\n    // BUT ONLY IF ITS CHANGED FROM THE CURRENTLY SELECTED COUNTRY\n    // NOTE: consider refactoring this to be more clear\n    _getNewCountryFromNumber(fullNumber) {\n      const plusIndex = fullNumber.indexOf(\"+\");\n      let number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;\n      const selectedIso2 = this.selectedCountryData.iso2;\n      const selectedDialCode = this.selectedCountryData.dialCode;\n      number = this._ensureHasDialCode(number);\n      const dialCodeMatch = this._getDialCode(number, true);\n      const numeric = getNumeric(number);\n      if (dialCodeMatch) {\n        const dialCodeMatchNumeric = getNumeric(dialCodeMatch);\n        const iso2Codes = this.dialCodeToIso2Map[dialCodeMatchNumeric];\n        if (iso2Codes.length === 1) {\n          if (iso2Codes[0] === selectedIso2) {\n            return null;\n          }\n          return iso2Codes[0];\n        }\n        if (!selectedIso2 && this.defaultCountry && iso2Codes.includes(this.defaultCountry)) {\n          return this.defaultCountry;\n        }\n        const isRegionlessNanpNumber = selectedDialCode === DIAL.NANP && isRegionlessNanp(numeric);\n        if (isRegionlessNanpNumber) {\n          return null;\n        }\n        const { areaCodes, priority } = this.selectedCountryData;\n        if (areaCodes) {\n          const dialCodeAreaCodes = areaCodes.map(\n            (areaCode) => `${selectedDialCode}${areaCode}`\n          );\n          for (const dialCodeAreaCode of dialCodeAreaCodes) {\n            if (numeric.startsWith(dialCodeAreaCode)) {\n              return null;\n            }\n          }\n        }\n        const isMainCountry = priority === 0;\n        const hasAreaCodesButNoneMatched = areaCodes && !isMainCountry && numeric.length > dialCodeMatchNumeric.length;\n        const isValidSelection = selectedIso2 && iso2Codes.includes(selectedIso2) && !hasAreaCodesButNoneMatched;\n        const alreadySelected = selectedIso2 === iso2Codes[0];\n        if (!isValidSelection && !alreadySelected) {\n          return iso2Codes[0];\n        }\n      } else if (number.startsWith(\"+\") && numeric.length) {\n        const currentDial = this.selectedCountryData.dialCode || \"\";\n        if (currentDial && currentDial.startsWith(numeric)) {\n          return null;\n        }\n        return \"\";\n      } else if ((!number || number === \"+\") && !selectedIso2) {\n        return this.defaultCountry;\n      }\n      return null;\n    }\n    //* Update the selected country, dial code (if separateDialCode), placeholder, title, and active list item.\n    //* Note: called from _setInitialState, _updateCountryFromNumber, _selectListItem, setCountry.\n    _setCountry(iso2) {\n      const { separateDialCode, showFlags, i18n } = this.options;\n      const prevIso2 = this.selectedCountryData.iso2 || \"\";\n      this.selectedCountryData = iso2 ? this.countryByIso2.get(iso2) : {};\n      if (this.selectedCountryData.iso2) {\n        this.defaultCountry = this.selectedCountryData.iso2;\n      }\n      if (this.ui.selectedCountry) {\n        const flagClass = iso2 && showFlags ? `${CLASSES.FLAG} iti__${iso2}` : `${CLASSES.FLAG} ${CLASSES.GLOBE}`;\n        let ariaLabel, title;\n        if (iso2) {\n          const { name, dialCode } = this.selectedCountryData;\n          title = name;\n          ariaLabel = i18n.selectedCountryAriaLabel.replace(\"${countryName}\", name).replace(\"${dialCode}\", `+${dialCode}`);\n        } else {\n          title = i18n.noCountrySelected;\n          ariaLabel = i18n.noCountrySelected;\n        }\n        this.ui.selectedCountryInner.className = flagClass;\n        this.ui.selectedCountry.setAttribute(\"title\", title);\n        this.ui.selectedCountry.setAttribute(ARIA.LABEL, ariaLabel);\n      }\n      if (separateDialCode) {\n        const dialCode = this.selectedCountryData.dialCode ? `+${this.selectedCountryData.dialCode}` : \"\";\n        this.ui.selectedDialCode.textContent = dialCode;\n        this.ui.updateInputPadding();\n      }\n      this._updatePlaceholder();\n      this._updateMaxLength();\n      return prevIso2 !== iso2;\n    }\n    //* Update the maximum valid number length for the currently selected country.\n    _updateMaxLength() {\n      const { strictMode, placeholderNumberType, validationNumberTypes } = this.options;\n      const { iso2 } = this.selectedCountryData;\n      if (strictMode && intlTelInput.utils) {\n        if (iso2) {\n          const numberType = intlTelInput.utils.numberType[placeholderNumberType];\n          let exampleNumber = intlTelInput.utils.getExampleNumber(\n            iso2,\n            false,\n            numberType,\n            true\n          );\n          let validNumber = exampleNumber;\n          while (intlTelInput.utils.isPossibleNumber(\n            exampleNumber,\n            iso2,\n            validationNumberTypes\n          )) {\n            validNumber = exampleNumber;\n            exampleNumber += \"0\";\n          }\n          const coreNumber = intlTelInput.utils.getCoreNumber(validNumber, iso2);\n          this.maxCoreNumberLength = coreNumber.length;\n          if (iso2 === \"by\") {\n            this.maxCoreNumberLength = coreNumber.length + 1;\n          }\n        } else {\n          this.maxCoreNumberLength = null;\n        }\n      }\n    }\n    //* Update the input placeholder to an example number from the currently selected country.\n    _updatePlaceholder() {\n      const {\n        autoPlaceholder,\n        placeholderNumberType,\n        nationalMode,\n        customPlaceholder\n      } = this.options;\n      const shouldSetPlaceholder = autoPlaceholder === PLACEHOLDER_MODES.AGGRESSIVE || !this.ui.hadInitialPlaceholder && autoPlaceholder === PLACEHOLDER_MODES.POLITE;\n      if (intlTelInput.utils && shouldSetPlaceholder) {\n        const numberType = intlTelInput.utils.numberType[placeholderNumberType];\n        let placeholder = this.selectedCountryData.iso2 ? intlTelInput.utils.getExampleNumber(\n          this.selectedCountryData.iso2,\n          nationalMode,\n          numberType\n        ) : \"\";\n        placeholder = this._beforeSetNumber(placeholder);\n        if (typeof customPlaceholder === \"function\") {\n          placeholder = customPlaceholder(placeholder, this.selectedCountryData);\n        }\n        this.ui.telInput.setAttribute(\"placeholder\", placeholder);\n      }\n    }\n    //* Called when the user selects a list item from the dropdown.\n    _selectListItem(listItem) {\n      const iso2 = listItem.dataset[DATA_KEYS.COUNTRY_CODE];\n      const countryChanged = this._setCountry(iso2);\n      this._closeDropdown();\n      const dialCode = listItem.dataset[DATA_KEYS.DIAL_CODE];\n      this._updateDialCode(dialCode);\n      if (this.options.formatOnDisplay) {\n        this._updateValFromNumber(this.ui.telInput.value);\n      }\n      this.ui.telInput.focus();\n      if (countryChanged) {\n        this._triggerCountryChange();\n      }\n    }\n    //* Close the dropdown and unbind any listeners.\n    _closeDropdown() {\n      if (this.ui.dropdownContent.classList.contains(CLASSES.HIDE)) {\n        return;\n      }\n      this.ui.dropdownContent.classList.add(CLASSES.HIDE);\n      this.ui.selectedCountry.setAttribute(ARIA.EXPANDED, \"false\");\n      if (this.ui.highlightedItem) {\n        this.ui.highlightedItem.setAttribute(ARIA.SELECTED, \"false\");\n      }\n      if (this.options.countrySearch) {\n        this.ui.searchInput.removeAttribute(ARIA.ACTIVE_DESCENDANT);\n      }\n      this.ui.dropdownArrow.classList.remove(CLASSES.ARROW_UP);\n      this.dropdownAbortController.abort();\n      this.dropdownAbortController = null;\n      if (this.options.dropdownContainer) {\n        this.ui.dropdown.remove();\n      }\n      this._trigger(EVENTS.CLOSE_COUNTRY_DROPDOWN);\n    }\n    //* Replace any existing dial code with the new one\n    //* Note: called from _selectListItem and setCountry\n    _updateDialCode(newDialCodeBare) {\n      const inputVal = this.ui.telInput.value;\n      const newDialCode = `+${newDialCodeBare}`;\n      let newNumber;\n      if (inputVal.startsWith(\"+\")) {\n        const prevDialCode = this._getDialCode(inputVal);\n        if (prevDialCode) {\n          newNumber = inputVal.replace(prevDialCode, newDialCode);\n        } else {\n          newNumber = newDialCode;\n        }\n        this.ui.telInput.value = newNumber;\n      }\n    }\n    //* Try and extract a valid international dial code from a full telephone number.\n    //* Note: returns the raw string inc plus character and any whitespace/dots etc.\n    _getDialCode(number, includeAreaCode) {\n      let dialCode = \"\";\n      if (number.startsWith(\"+\")) {\n        let numericChars = \"\";\n        let foundBaseDialCode = false;\n        for (let i = 0; i < number.length; i++) {\n          const c = number.charAt(i);\n          if (/[0-9]/.test(c)) {\n            numericChars += c;\n            const hasMapEntry = Boolean(this.dialCodeToIso2Map[numericChars]);\n            if (!hasMapEntry) {\n              break;\n            }\n            if (this.dialCodes.has(numericChars)) {\n              dialCode = number.substring(0, i + 1);\n              foundBaseDialCode = true;\n              if (!includeAreaCode) {\n                break;\n              }\n            } else if (includeAreaCode && foundBaseDialCode) {\n              dialCode = number.substring(0, i + 1);\n            }\n            if (numericChars.length === this.dialCodeMaxLen) {\n              break;\n            }\n          }\n        }\n      }\n      return dialCode;\n    }\n    //* Get the input val, adding the dial code if separateDialCode is enabled.\n    _getFullNumber(overrideVal) {\n      const val = overrideVal || this.ui.telInput.value.trim();\n      const { dialCode } = this.selectedCountryData;\n      let prefix;\n      const numericVal = getNumeric(val);\n      if (this.options.separateDialCode && !val.startsWith(\"+\") && dialCode && numericVal) {\n        prefix = `+${dialCode}`;\n      } else {\n        prefix = \"\";\n      }\n      return prefix + val;\n    }\n    //* Remove the dial code if separateDialCode is enabled also cap the length if the input has a maxlength attribute\n    _beforeSetNumber(fullNumber) {\n      const dialCode = this._getDialCode(fullNumber);\n      const number = beforeSetNumber(\n        fullNumber,\n        dialCode,\n        this.options.separateDialCode,\n        this.selectedCountryData\n      );\n      return this._cap(number);\n    }\n    //* Trigger the 'countrychange' event.\n    _triggerCountryChange() {\n      this._trigger(EVENTS.COUNTRY_CHANGE);\n    }\n    //**************************\n    //*  SECRET PUBLIC METHODS\n    //**************************\n    //* This is called when the geoip call returns.\n    handleAutoCountry() {\n      if (this.options.initialCountry === INITIAL_COUNTRY.AUTO && intlTelInput.autoCountry) {\n        this.defaultCountry = intlTelInput.autoCountry;\n        const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.ui.selectedCountryInner.classList.contains(CLASSES.GLOBE);\n        if (!hasSelectedCountryOrGlobe) {\n          this.setCountry(this.defaultCountry);\n        }\n        this.resolveAutoCountryPromise();\n      }\n    }\n    //* This is called when the utils request completes.\n    handleUtils() {\n      if (intlTelInput.utils) {\n        if (this.ui.telInput.value) {\n          this._updateValFromNumber(this.ui.telInput.value);\n        }\n        if (this.selectedCountryData.iso2) {\n          this._updatePlaceholder();\n          this._updateMaxLength();\n        }\n      }\n      this.resolveUtilsScriptPromise();\n    }\n    //********************\n    //*  PUBLIC METHODS\n    //********************\n    //* Remove plugin.\n    destroy() {\n      if (!this.ui.telInput) {\n        return;\n      }\n      if (this.options.allowDropdown) {\n        this._closeDropdown();\n      }\n      this.abortController.abort();\n      this.abortController = null;\n      this.ui.destroy();\n      if (intlTelInput.instances instanceof Map) {\n        intlTelInput.instances.delete(this.id);\n      } else {\n        delete intlTelInput.instances[this.id];\n      }\n    }\n    //* Get the extension from the current number.\n    getExtension() {\n      if (intlTelInput.utils) {\n        return intlTelInput.utils.getExtension(\n          this._getFullNumber(),\n          this.selectedCountryData.iso2\n        );\n      }\n      return \"\";\n    }\n    //* Format the number to the given format.\n    getNumber(format) {\n      if (intlTelInput.utils) {\n        const { iso2 } = this.selectedCountryData;\n        return intlTelInput.utils.formatNumber(\n          this._getFullNumber(),\n          iso2,\n          format\n        );\n      }\n      return \"\";\n    }\n    //* Get the type of the entered number e.g. landline/mobile.\n    getNumberType() {\n      if (intlTelInput.utils) {\n        return intlTelInput.utils.getNumberType(\n          this._getFullNumber(),\n          this.selectedCountryData.iso2\n        );\n      }\n      return SENTINELS.UNKNOWN_NUMBER_TYPE;\n    }\n    //* Get the country data for the currently selected country.\n    getSelectedCountryData() {\n      return this.selectedCountryData;\n    }\n    //* Get the validation error.\n    getValidationError() {\n      if (intlTelInput.utils) {\n        const { iso2 } = this.selectedCountryData;\n        return intlTelInput.utils.getValidationError(this._getFullNumber(), iso2);\n      }\n      return SENTINELS.UNKNOWN_VALIDATION_ERROR;\n    }\n    //* Validate the input val using number length only\n    isValidNumber() {\n      const { dialCode, iso2 } = this.selectedCountryData;\n      if (dialCode === UK.DIAL_CODE && intlTelInput.utils) {\n        const number = this._getFullNumber();\n        const coreNumber = intlTelInput.utils.getCoreNumber(number, iso2);\n        if (coreNumber[0] === UK.MOBILE_PREFIX && coreNumber.length !== UK.MOBILE_CORE_LENGTH) {\n          return false;\n        }\n      }\n      return this._validateNumber(false);\n    }\n    //* Validate the input val with precise validation\n    isValidNumberPrecise() {\n      return this._validateNumber(true);\n    }\n    _utilsIsPossibleNumber(val) {\n      return intlTelInput.utils ? intlTelInput.utils.isPossibleNumber(\n        val,\n        this.selectedCountryData.iso2,\n        this.options.validationNumberTypes\n      ) : null;\n    }\n    //* Shared internal validation logic to handle alpha character extension rules.\n    _validateNumber(precise) {\n      if (!intlTelInput.utils) {\n        return null;\n      }\n      if (!this.selectedCountryData.iso2) {\n        return false;\n      }\n      const testValidity = (s) => precise ? this._utilsIsValidNumber(s) : this._utilsIsPossibleNumber(s);\n      const val = this._getFullNumber();\n      const alphaCharPosition = val.search(REGEX.ALPHA_UNICODE);\n      const hasAlphaChar = alphaCharPosition > -1;\n      if (hasAlphaChar && !this.options.allowPhonewords) {\n        const beforeAlphaChar = val.substring(0, alphaCharPosition);\n        const beforeAlphaIsValid = testValidity(beforeAlphaChar);\n        const isValid = testValidity(val);\n        return beforeAlphaIsValid && isValid;\n      }\n      return testValidity(val);\n    }\n    _utilsIsValidNumber(val) {\n      return intlTelInput.utils ? intlTelInput.utils.isValidNumber(\n        val,\n        this.selectedCountryData.iso2,\n        this.options.validationNumberTypes\n      ) : null;\n    }\n    //* Update the selected country, and update the input val accordingly.\n    setCountry(iso2) {\n      const iso2Lower = iso2?.toLowerCase();\n      if (!isIso2(iso2Lower)) {\n        throw new Error(`Invalid country code: '${iso2Lower}'`);\n      }\n      const currentCountry = this.selectedCountryData.iso2;\n      const isCountryChange = iso2 && iso2Lower !== currentCountry || !iso2 && currentCountry;\n      if (isCountryChange) {\n        this._setCountry(iso2Lower);\n        this._updateDialCode(this.selectedCountryData.dialCode);\n        if (this.options.formatOnDisplay) {\n          this._updateValFromNumber(this.ui.telInput.value);\n        }\n        this._triggerCountryChange();\n      }\n    }\n    //* Set the input value and update the country.\n    setNumber(number) {\n      const countryChanged = this._updateCountryFromNumber(number);\n      this._updateValFromNumber(number);\n      if (countryChanged) {\n        this._triggerCountryChange();\n      }\n      this._trigger(EVENTS.INPUT, { isSetNumber: true });\n    }\n    //* Set the placeholder number typ\n    setPlaceholderNumberType(type) {\n      this.options.placeholderNumberType = type;\n      this._updatePlaceholder();\n    }\n    setDisabled(disabled) {\n      this.ui.telInput.disabled = disabled;\n      if (disabled) {\n        this.ui.selectedCountry.setAttribute(\"disabled\", \"true\");\n      } else {\n        this.ui.selectedCountry.removeAttribute(\"disabled\");\n      }\n    }\n  };\n  var attachUtils = (source) => {\n    if (!intlTelInput.utils && !intlTelInput.startedLoadingUtilsScript) {\n      let loadCall;\n      if (typeof source === \"function\") {\n        try {\n          loadCall = Promise.resolve(source());\n        } catch (error) {\n          return Promise.reject(error);\n        }\n      } else {\n        return Promise.reject(\n          new TypeError(\n            `The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof source}`\n          )\n        );\n      }\n      intlTelInput.startedLoadingUtilsScript = true;\n      return loadCall.then((module) => {\n        const utils = module?.default;\n        if (!utils || typeof utils !== \"object\") {\n          throw new TypeError(\n            \"The loader function passed to attachUtils did not resolve to a module object with utils as its default export.\"\n          );\n        }\n        intlTelInput.utils = utils;\n        forEachInstance(\"handleUtils\");\n        return true;\n      }).catch((error) => {\n        forEachInstance(\"rejectUtilsScriptPromise\", error);\n        throw error;\n      });\n    }\n    return null;\n  };\n  var forEachInstance = (method, ...args) => {\n    Object.values(intlTelInput.instances).forEach((instance) => {\n      const fn = instance[method];\n      if (typeof fn === \"function\") {\n        fn.apply(instance, args);\n      }\n    });\n  };\n  var intlTelInput = Object.assign(\n    (input, options) => {\n      const iti = new Iti(input, options);\n      intlTelInput.instances[iti.id] = iti;\n      input.iti = iti;\n      return iti;\n    },\n    {\n      defaults,\n      //* Using a static var like this allows us to mock it in the tests.\n      documentReady: () => document.readyState === \"complete\",\n      //* Get the country data object.\n      getCountryData: () => data_default,\n      //* A getter for the plugin instance.\n      getInstance: (input) => {\n        const id2 = input.dataset.intlTelInputId;\n        return id2 ? intlTelInput.instances[id2] : null;\n      },\n      //* A map from instance ID to instance object.\n      instances: {},\n      attachUtils,\n      startedLoadingUtilsScript: false,\n      startedLoadingAutoCountry: false,\n      version: \"25.12.6\"\n    }\n  );\n  var intl_tel_input_default = intlTelInput;\n  return __toCommonJS(intl_tel_input_exports);\n})();\n\n// UMD\n  return factoryOutput.default;\n}));\n", "(function () {/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar k=this||self;function m(a,b){a=a.split(\".\");var c=k;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}function n(a,b){function c(){}c.prototype=b.prototype;a.ma=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.sa=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[e].apply(d,g)}};function aa(a){const b=[];let c=0;for(const d in a)b[c++]=a[d];return b};var da=class{constructor(a){if(ba!==ba)throw Error(\"SafeUrl is not meant to be built directly\");this.g=a}toString(){return this.g.toString()}},ba={};new da(\"about:invalid#zClosurez\");new da(\"about:blank\");const ea={};class fa{constructor(){if(ea!==ea)throw Error(\"SafeStyle is not meant to be built directly\");}toString(){return\"\".toString()}}new fa;const ha={};class ia{constructor(){if(ha!==ha)throw Error(\"SafeStyleSheet is not meant to be built directly\");}toString(){return\"\".toString()}}new ia;const ja={};class ka{constructor(){var a=k.trustedTypes&&k.trustedTypes.emptyHTML||\"\";if(ja!==ja)throw Error(\"SafeHtml is not meant to be built directly\");this.g=a}toString(){return this.g.toString()}}new ka;function la(a,b){this.g=a;this.l=!!b.aa;this.h=b.i;this.s=b.type;this.o=!1;switch(this.h){case ma:case na:case oa:case pa:case qa:case ra:case sa:this.o=!0}this.j=b.defaultValue}var sa=1,ra=2,ma=3,na=4,oa=6,pa=16,qa=18;function ta(a,b){this.h=a;this.g={};for(a=0;a<b.length;a++){var c=b[a];this.g[c.g]=c}}function ua(a){a=aa(a.g);a.sort(function(b,c){return b.g-c.g});return a};function p(){this.h={};this.j=this.m().g;this.g=this.l=null}p.prototype.has=function(a){return q(this,a.g)};p.prototype.get=function(a,b){return r(this,a.g,b)};p.prototype.set=function(a,b){t(this,a.g,b)};p.prototype.add=function(a,b){va(this,a.g,b)};\nfunction wa(a,b){for(var c=ua(a.m()),d=0;d<c.length;d++){var e=c[d],f=e.g;if(q(b,f)){a.g&&delete a.g[e.g];var g=11==e.h||10==e.h;if(e.l){e=u(b,f);for(var h=0;h<e.length;h++)va(a,f,g?e[h].clone():e[h])}else e=v(b,f),g?(g=v(a,f))?wa(g,e):t(a,f,e.clone()):t(a,f,e)}}}p.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.h={},a.g&&(a.g={}),wa(a,this));return a};function q(a,b){return null!=a.h[b]}\nfunction v(a,b){var c=a.h[b];if(null==c)return null;if(a.l){if(!(b in a.g)){var d=a.l,e=a.j[b];if(null!=c)if(e.l){for(var f=[],g=0;g<c.length;g++)f[g]=d.h(e,c[g]);c=f}else c=d.h(e,c);return a.g[b]=c}return a.g[b]}return c}function r(a,b,c){var d=v(a,b);return a.j[b].l?d[c||0]:d}function w(a,b){if(q(a,b))a=r(a,b);else a:{a=a.j[b];if(void 0===a.j)if(b=a.s,b===Boolean)a.j=!1;else if(b===Number)a.j=0;else if(b===String)a.j=a.o?\"0\":\"\";else{a=new b;break a}a=a.j}return a}\nfunction u(a,b){return v(a,b)||[]}function x(a,b){return a.j[b].l?q(a,b)?a.h[b].length:0:q(a,b)?1:0}function t(a,b,c){a.h[b]=c;a.g&&(a.g[b]=c)}function va(a,b,c){a.h[b]||(a.h[b]=[]);a.h[b].push(c);a.g&&delete a.g[b]}function y(a,b){var c=[],d;for(d in b)0!=d&&c.push(new la(d,b[d]));return new ta(a,c)};function z(){}z.prototype.g=function(a){new a.h;throw Error(\"Unimplemented\");};z.prototype.h=function(a,b){if(11==a.h||10==a.h)return b instanceof p?b:this.g(a.s.prototype.m(),b);if(14==a.h)return\"string\"===typeof b&&xa.test(b)&&(a=Number(b),0<a)?a:b;if(!a.o)return b;a=a.s;if(a===String){if(\"number\"===typeof b)return String(b)}else if(a===Number&&\"string\"===typeof b&&(\"Infinity\"===b||\"-Infinity\"===b||\"NaN\"===b||xa.test(b)))return Number(b);return b};var xa=/^-?[0-9]+$/;function B(){}n(B,z);B.prototype.g=function(a,b){a=new a.h;a.l=this;a.h=b;a.g={};return a};function C(){}n(C,B);C.prototype.h=function(a,b){return 8==a.h?!!b:z.prototype.h.apply(this,arguments)};C.prototype.g=function(a,b){return C.ma.g.call(this,a,b)};function D(a,b){null!=a&&this.g.apply(this,arguments)}D.prototype.h=\"\";D.prototype.set=function(a){this.h=\"\"+a};D.prototype.g=function(a,b,c){this.h+=String(a);if(null!=b)for(let d=1;d<arguments.length;d++)this.h+=arguments[d];return this};function E(a){a.h=\"\"}D.prototype.toString=function(){return this.h};/*\n\n Protocol Buffer 2 Copyright 2008 Google Inc.\n All other code copyright its respective owners.\n Copyright (C) 2010 The Libphonenumber Authors\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*/\nfunction F(){p.call(this)}n(F,p);var ya=null;function G(){p.call(this)}n(G,p);var za=null;function H(){p.call(this)}n(H,p);var Aa=null;\nF.prototype.m=function(){var a=ya;a||(ya=a=y(F,{0:{name:\"NumberFormat\",ia:\"i18n.phonenumbers.NumberFormat\"},1:{name:\"pattern\",required:!0,i:9,type:String},2:{name:\"format\",required:!0,i:9,type:String},3:{name:\"leading_digits_pattern\",aa:!0,i:9,type:String},4:{name:\"national_prefix_formatting_rule\",i:9,type:String},6:{name:\"national_prefix_optional_when_formatting\",i:8,defaultValue:!1,type:Boolean},5:{name:\"domestic_carrier_code_formatting_rule\",i:9,type:String}}));return a};F.m=F.prototype.m;\nG.prototype.m=function(){var a=za;a||(za=a=y(G,{0:{name:\"PhoneNumberDesc\",ia:\"i18n.phonenumbers.PhoneNumberDesc\"},2:{name:\"national_number_pattern\",i:9,type:String},9:{name:\"possible_length\",aa:!0,i:5,type:Number},10:{name:\"possible_length_local_only\",aa:!0,i:5,type:Number},6:{name:\"example_number\",i:9,type:String}}));return a};G.m=G.prototype.m;\nH.prototype.m=function(){var a=Aa;a||(Aa=a=y(H,{0:{name:\"PhoneMetadata\",ia:\"i18n.phonenumbers.PhoneMetadata\"},1:{name:\"general_desc\",i:11,type:G},2:{name:\"fixed_line\",i:11,type:G},3:{name:\"mobile\",i:11,type:G},4:{name:\"toll_free\",i:11,type:G},5:{name:\"premium_rate\",i:11,type:G},6:{name:\"shared_cost\",i:11,type:G},7:{name:\"personal_number\",i:11,type:G},8:{name:\"voip\",i:11,type:G},21:{name:\"pager\",i:11,type:G},25:{name:\"uan\",i:11,type:G},27:{name:\"emergency\",i:11,type:G},28:{name:\"voicemail\",i:11,type:G},\n29:{name:\"short_code\",i:11,type:G},30:{name:\"standard_rate\",i:11,type:G},31:{name:\"carrier_specific\",i:11,type:G},33:{name:\"sms_services\",i:11,type:G},24:{name:\"no_international_dialling\",i:11,type:G},9:{name:\"id\",required:!0,i:9,type:String},10:{name:\"country_code\",i:5,type:Number},11:{name:\"international_prefix\",i:9,type:String},17:{name:\"preferred_international_prefix\",i:9,type:String},12:{name:\"national_prefix\",i:9,type:String},13:{name:\"preferred_extn_prefix\",i:9,type:String},15:{name:\"national_prefix_for_parsing\",\ni:9,type:String},16:{name:\"national_prefix_transform_rule\",i:9,type:String},18:{name:\"same_mobile_and_fixed_line_pattern\",i:8,defaultValue:!1,type:Boolean},19:{name:\"number_format\",aa:!0,i:11,type:F},20:{name:\"intl_number_format\",aa:!0,i:11,type:F},22:{name:\"main_country_for_code\",i:8,defaultValue:!1,type:Boolean},23:{name:\"leading_digits\",i:9,type:String}}));return a};H.m=H.prototype.m;function I(){p.call(this)}n(I,p);var Ba=null,Ca={ra:0,qa:1,pa:5,oa:10,na:20};\nI.prototype.m=function(){var a=Ba;a||(Ba=a=y(I,{0:{name:\"PhoneNumber\",ia:\"i18n.phonenumbers.PhoneNumber\"},1:{name:\"country_code\",required:!0,i:5,type:Number},2:{name:\"national_number\",required:!0,i:4,type:Number},3:{name:\"extension\",i:9,type:String},4:{name:\"italian_leading_zero\",i:8,type:Boolean},8:{name:\"number_of_leading_zeros\",i:5,defaultValue:1,type:Number},5:{name:\"raw_input\",i:9,type:String},6:{name:\"country_code_source\",i:14,defaultValue:0,type:Ca},7:{name:\"preferred_domestic_carrier_code\",\ni:9,type:String}}));return a};I.ctor=I;I.ctor.m=I.prototype.m;/*\n\n Copyright (C) 2010 The Libphonenumber Authors\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*/\nvar J={1:\"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI\".split(\" \"),7:[\"RU\",\"KZ\"],20:[\"EG\"],27:[\"ZA\"],30:[\"GR\"],31:[\"NL\"],32:[\"BE\"],33:[\"FR\"],34:[\"ES\"],36:[\"HU\"],39:[\"IT\",\"VA\"],40:[\"RO\"],41:[\"CH\"],43:[\"AT\"],44:[\"GB\",\"GG\",\"IM\",\"JE\"],45:[\"DK\"],46:[\"SE\"],47:[\"NO\",\"SJ\"],48:[\"PL\"],49:[\"DE\"],51:[\"PE\"],52:[\"MX\"],53:[\"CU\"],54:[\"AR\"],55:[\"BR\"],56:[\"CL\"],57:[\"CO\"],58:[\"VE\"],60:[\"MY\"],61:[\"AU\",\"CC\",\"CX\"],62:[\"ID\"],63:[\"PH\"],64:[\"NZ\"],65:[\"SG\"],66:[\"TH\"],81:[\"JP\"],82:[\"KR\"],84:[\"VN\"],\n86:[\"CN\"],90:[\"TR\"],91:[\"IN\"],92:[\"PK\"],93:[\"AF\"],94:[\"LK\"],95:[\"MM\"],98:[\"IR\"],211:[\"SS\"],212:[\"MA\",\"EH\"],213:[\"DZ\"],216:[\"TN\"],218:[\"LY\"],220:[\"GM\"],221:[\"SN\"],222:[\"MR\"],223:[\"ML\"],224:[\"GN\"],225:[\"CI\"],226:[\"BF\"],227:[\"NE\"],228:[\"TG\"],229:[\"BJ\"],230:[\"MU\"],231:[\"LR\"],232:[\"SL\"],233:[\"GH\"],234:[\"NG\"],235:[\"TD\"],236:[\"CF\"],237:[\"CM\"],238:[\"CV\"],239:[\"ST\"],240:[\"GQ\"],241:[\"GA\"],242:[\"CG\"],243:[\"CD\"],244:[\"AO\"],245:[\"GW\"],246:[\"IO\"],247:[\"AC\"],248:[\"SC\"],249:[\"SD\"],250:[\"RW\"],251:[\"ET\"],252:[\"SO\"],\n253:[\"DJ\"],254:[\"KE\"],255:[\"TZ\"],256:[\"UG\"],257:[\"BI\"],258:[\"MZ\"],260:[\"ZM\"],261:[\"MG\"],262:[\"RE\",\"YT\"],263:[\"ZW\"],264:[\"NA\"],265:[\"MW\"],266:[\"LS\"],267:[\"BW\"],268:[\"SZ\"],269:[\"KM\"],290:[\"SH\",\"TA\"],291:[\"ER\"],297:[\"AW\"],298:[\"FO\"],299:[\"GL\"],350:[\"GI\"],351:[\"PT\"],352:[\"LU\"],353:[\"IE\"],354:[\"IS\"],355:[\"AL\"],356:[\"MT\"],357:[\"CY\"],358:[\"FI\",\"AX\"],359:[\"BG\"],370:[\"LT\"],371:[\"LV\"],372:[\"EE\"],373:[\"MD\"],374:[\"AM\"],375:[\"BY\"],376:[\"AD\"],377:[\"MC\"],378:[\"SM\"],380:[\"UA\"],381:[\"RS\"],382:[\"ME\"],383:[\"XK\"],385:[\"HR\"],\n386:[\"SI\"],387:[\"BA\"],389:[\"MK\"],420:[\"CZ\"],421:[\"SK\"],423:[\"LI\"],500:[\"FK\"],501:[\"BZ\"],502:[\"GT\"],503:[\"SV\"],504:[\"HN\"],505:[\"NI\"],506:[\"CR\"],507:[\"PA\"],508:[\"PM\"],509:[\"HT\"],590:[\"GP\",\"BL\",\"MF\"],591:[\"BO\"],592:[\"GY\"],593:[\"EC\"],594:[\"GF\"],595:[\"PY\"],596:[\"MQ\"],597:[\"SR\"],598:[\"UY\"],599:[\"CW\",\"BQ\"],670:[\"TL\"],672:[\"NF\"],673:[\"BN\"],674:[\"NR\"],675:[\"PG\"],676:[\"TO\"],677:[\"SB\"],678:[\"VU\"],679:[\"FJ\"],680:[\"PW\"],681:[\"WF\"],682:[\"CK\"],683:[\"NU\"],685:[\"WS\"],686:[\"KI\"],687:[\"NC\"],688:[\"TV\"],689:[\"PF\"],690:[\"TK\"],\n691:[\"FM\"],692:[\"MH\"],800:[\"001\"],808:[\"001\"],850:[\"KP\"],852:[\"HK\"],853:[\"MO\"],855:[\"KH\"],856:[\"LA\"],870:[\"001\"],878:[\"001\"],880:[\"BD\"],881:[\"001\"],882:[\"001\"],883:[\"001\"],886:[\"TW\"],888:[\"001\"],960:[\"MV\"],961:[\"LB\"],962:[\"JO\"],963:[\"SY\"],964:[\"IQ\"],965:[\"KW\"],966:[\"SA\"],967:[\"YE\"],968:[\"OM\"],970:[\"PS\"],971:[\"AE\"],972:[\"IL\"],973:[\"BH\"],974:[\"QA\"],975:[\"BT\"],976:[\"MN\"],977:[\"NP\"],979:[\"001\"],992:[\"TJ\"],993:[\"TM\"],994:[\"AZ\"],995:[\"GE\"],996:[\"KG\"],998:[\"UZ\"]},Da={AC:[,[,,\"(?:[01589]\\\\d|[46])\\\\d{4}\",\n,,,,,,[5,6]],[,,\"6[2-467]\\\\d{3}\",,,,\"62889\",,,[5]],[,,\"4\\\\d{4}\",,,,\"40123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AC\",247,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:0[1-9]|[1589]\\\\d)\\\\d{4}\",,,,\"542011\",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",,,,,,,[6,8,9]],[,,\"[78]\\\\d{5}\",,,,\"712345\",,,[6]],[,,\"690\\\\d{6}|[356]\\\\d{5}\",,,,\"312345\",,,[6,9]],[,,\"180[02]\\\\d{4}\",,,,\"18001234\",,,[8]],[,,\"[19]\\\\d{5}\",,,,\"912345\",,,[6]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AD\",376,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],,[,,,,,,,,,[-1]],,,[,,\"1800\\\\d{4}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",,,,,,,[5,6,7,8,9,10,11,12]],[,,\"[2-4679][2-8]\\\\d{6}\",,,,\"22345678\",,,[8],[7]],[,,\"5[024-68]\\\\d{7}\",,,,\"501234567\",,,[9]],[,,\"400\\\\d{6}|800\\\\d{2,9}\",,,,\"800123456\"],\n[,,\"900[02]\\\\d{5}\",,,,\"900234567\",,,[9]],[,,\"700[05]\\\\d{5}\",,,,\"700012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AE\",971,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"600[25]\\\\d{5}\",,,,\"600212345\",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,\"[2-7]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\\\d{6}\",\n,,,\"234567890\",,,,[7]],[,,\"7\\\\d{8}\",,,,\"701234567\",,,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AF\",93,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AG:[,[,,\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"268(?:4(?:6[0-38]|84)|56[0-2])\\\\d{4}\",,,,\"2684601234\",\n,,,[7]],[,,\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\",,,,\"2684641234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"26848[01]\\\\d{4}\",,,,\"2684801234\",,,,[7]],\n\"AG\",1,\"011\",\"1\",,,\"([457]\\\\d{6})$|1\",\"268$1\",,,,,[,,\"26840[69]\\\\d{4}\",,,,\"2684061234\",,,,[7]],,\"268\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AI:[,[,,\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"264(?:292|4(?:6[12]|9[78]))\\\\d{4}\",,,,\"2644612345\",,,,[7]],[,,\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\",,,,\"2642351234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"AI\",1,\"011\",\"1\",,,\"([2457]\\\\d{6})$|1\",\"264$1\",,,,,[,,\"264724\\\\d{4}\",,,,\"2647241234\",,,,[7]],,\"264\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AL:[,[,,\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",,,,,,,[6,7,8,9],[5]],[,,\"4505[0-2]\\\\d{3}|(?:[2358][16-9]\\\\d[2-9]|4410)\\\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\\\d))\\\\d{5}\",,,,\"22345678\",,,[8],[5,6,7]],[,,\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\",,,,\"672123456\",,,[9]],[,,\"800\\\\d{4}\",,,,\"8001234\",,,[7]],[,,\"900[1-9]\\\\d\\\\d\",\n,,,\"900123\",,,[6]],[,,\"808[1-9]\\\\d\\\\d\",,,,\"808123\",,,[6]],[,,\"700[2-9]\\\\d{4}\",,,,\"70021234\",,,[8]],[,,,,,,,,,[-1]],\"AL\",355,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AM:[,[,,\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",\n,,,,,,[8],[5,6]],[,,\"(?:(?:1[0-25]|47)\\\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\\\d{5}\",,,,\"10123456\",,,,[5,6]],[,,\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\",,,,\"77123456\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"90[016]\\\\d{5}\",,,,\"90012345\"],[,,\"80[1-4]\\\\d{5}\",,,,\"80112345\"],[,,,,,,,,,[-1]],[,,\"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\\\d|9[0-2])\\\\d{4}\",,,,\"60271234\"],\"AM\",374,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AO:[,[,,\"[29]\\\\d{8}\",,,,,,,[9]],[,,\"2\\\\d(?:[0134][25-9]|[25-9]\\\\d)\\\\d{5}\",,,,\"222123456\"],[,,\"9[1-79]\\\\d{7}\",,,,\"923123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AO\",244,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],AR:[,[,,\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",,,,,,,[10,11],[6,7,8]],[,,\"3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\\\d{5}|(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\\\d{5}|(?:(?:11[1-8]|670)\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68])))\\\\d{6}|(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",\n,,,\"1123456789\",,,[10],[6,7,8]],[,,\"93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\\\d{5}|9(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68]))))\\\\d{6}|9(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",\n,,,\"91123456789\",,,,[6,7,8]],[,,\"800\\\\d{7,8}\",,,,\"8001234567\"],[,,\"60[04579]\\\\d{7}\",,,,\"6001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AR\",54,\"00\",\"0\",,,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\n\"9$1\",,,[[,\"(\\\\d{3})\",\"$1\",[\"0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911\"]],[,\"(\\\\d{2})(\\\\d{4})\",\"$1-$2\",[\"[1-9]\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[1-8]\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",,1],[,\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\"]],[[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\n\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",,1],[,\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"]],\n[,\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"91\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3-$4\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,\"810\\\\d{7}\",,,,,,,[10]],[,,\"810\\\\d{7}\",,,,\"8101234567\",,,[10]],,,[,,,,,,,,,[-1]]],AS:[,[,,\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"6846(?:22|33|44|55|77|88|9[19])\\\\d{4}\",,,,\"6846221234\",,,,[7]],[,,\"684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\\\d{4}\",,,,\"6847331234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"AS\",1,\"011\",\"1\",,,\"([267]\\\\d{6})$|1\",\"684$1\",,,,,[,,,,,,,,,[-1]],,\"684\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AT:[,[,,\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",\n,,,,,,[4,5,6,7,8,9,10,11,12,13],[3]],[,,\"1(?:11\\\\d|[2-9]\\\\d{3,11})|(?:316|463)\\\\d{3,10}|648[34]\\\\d{3,9}|(?:51|66|73)2\\\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-7]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\\\d{4,10}\",,,,\"1234567890\",,,,[3]],[,,\"6(?:485|(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d)\\\\d{3,9}\",,,,\"664123456\",\n,,[7,8,9,10,11,12,13]],[,,\"800\\\\d{6,10}\",,,,\"800123456\",,,[9,10,11,12,13]],[,,\"(?:8[69][2-68]|9(?:0[01]|3[019]))\\\\d{6,10}\",,,,\"900123456\",,,[9,10,11,12,13]],[,,\"8(?:10|2[018])\\\\d{6,10}|828\\\\d{5}\",,,,\"810123456\",,,[8,9,10,11,12,13]],[,,,,,,,,,[-1]],[,,\"5(?:0[1-9]|17|[79]\\\\d)\\\\d{2,10}|7[28]0\\\\d{6,10}\",,,,\"780123456\",,,[5,6,7,8,9,10,11,12,13]],\"AT\",43,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"14\"]],[,\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\n\"$1 $2\",[\"5[079]\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"[18]\"]],[,\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",\n[\"5[079]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AU:[,[,,\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",,,,\n,,,[5,6,7,8,9,10,12]],[,,\"(?:(?:241|349)0\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|[34]\\\\d\\\\d)|91(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79]))))\\\\d{3}|(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8])|8(?:55|6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\",,,,\"212345678\",,,[9],[8]],[,\n,\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"AU\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"(183[12])|0\",,\"0011\",,[[,\"(\\\\d{2})(\\\\d{3,4})\",\n\"$1 $2\",[\"16\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"13\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"19\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"180\",\"1802\"]],[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"19\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\",\"$CC ($1)\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"130\"]]],[[,\"(\\\\d{2})(\\\\d{3,4})\",\n\"$1 $2\",[\"16\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\",\"$CC ($1)\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],[,,\"163\\\\d{2,6}\",,,,\"1631234\",,,[5,6,7,8,9]],1,,[,,\"1(?:3(?:00\\\\d{5}|45[0-4])|802)\\\\d{3}|1[38]00\\\\d{6}|13\\\\d{4}\",,,,,,,[6,7,8,10,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AW:[,[,,\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",,,,,,,[7]],[,,\"5(?:2\\\\d|8[1-9])\\\\d{4}\",\n,,,\"5212345\"],[,,\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\",,,,\"5601234\"],[,,\"800\\\\d{4}\",,,,\"8001234\"],[,,\"900\\\\d{4}\",,,,\"9001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:28\\\\d|501)\\\\d{4}\",,,,\"5011234\"],\"AW\",297,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AX:[,[,,\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",,,,,,,[5,6,7,8,9,\n10,11,12]],[,,\"18[1-8]\\\\d{3,6}\",,,,\"181234567\",,,[6,7,8,9]],[,,\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",,,,\"412345678\",,,[6,7,8,9,10]],[,,\"800\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"[67]00\\\\d{5,6}\",,,,\"600123456\",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AX\",358,\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"0\",,,\"0\",,\"00\",,,,[,,,,,,,,,[-1]],,\"18\",[,,,,,,,,,[-1]],[,,\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\",\n,,,\"10112345\"],,,[,,,,,,,,,[-1]]],AZ:[,[,,\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",,,,,,,[9],[7]],[,,\"(?:2[12]428|3655[02])\\\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\\\d{5}|(?:(?:1[28]|46)\\\\d|2(?:[014-6]2|[23]3))\\\\d{6}\",,,,\"123123456\",,,,[7]],[,,\"36554\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\\\d{7}\",,,,\"401234567\"],[,,\"88\\\\d{7}\",,,,\"881234567\"],[,,\"900200\\\\d{3}\",,,,\"900200123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"AZ\",994,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[1-9]\"]],[,\n\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"[13-9]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BA:[,[,,\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",,,,,,,[8,9],[6]],[,,\"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\\\d{5}\",,,,\"30212345\",,,[8],[6]],[,,\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\",,,,\"61123456\"],[,,\"8[08]\\\\d{6}\",,,,\"80123456\",,,[8]],[,,\"9[0246]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"8[12]\\\\d{6}\",,,,\"82123456\",,,[8]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BA\",387,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,\"703[235]0\\\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\\\d{4}\",,,,\"70341234\",,,[8]],,,[,,,,,,,,,[-1]]],BB:[,[,,\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"246521[0369]\\\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\\\d|3[2-9])|5(?:20|[34]\\\\d|54|7[1-3])|6(?:2\\\\d|38)|7[35]7|9(?:1[89]|63))\\\\d{4}\",,,,\"2464123456\",,,,[7]],[,,\"246(?:(?:2(?:[3568]\\\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\\\d)|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d|52(?:1[147]|20))\\\\d{3}\",,,,\"2462501234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002123456\"],[,,\"(?:246976|900[2-9]\\\\d\\\\d)\\\\d{4}\",,,,\"9002123456\",,,,[7]],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"24631\\\\d{5}\",,,,\"2463101234\",,,,[7]],\"BB\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"246$1\",,,,,[,,,,,,,,,[-1]],,\"246\",[,,,,,,,,,[-1]],[,,\"246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\\\d|3[016]|53))\\\\d{4}\",\n,,,\"2464301234\",,,,[7]],,,[,,,,,,,,,[-1]]],BD:[,[,,\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",,,,,,,[6,7,8,9,10]],[,,\"(?:4(?:31\\\\d\\\\d|423)|5222)\\\\d{3}(?:\\\\d{2})?|8332[6-9]\\\\d\\\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\\\d{4}|(?:2(?:[23]\\\\d|[45])\\\\d\\\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\\\d{5}|[59]1\\\\d{5}\",\n,,,\"27111234\"],[,,\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\",,,,\"1812345678\",,,[10]],[,,\"80[03]\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\\\d{6}\",,,,\"9604123456\",,,[10]],\"BD\",880,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BE:[,[,,\"4\\\\d{8}|[1-9]\\\\d{7}\",,,,,,,[8,9]],[,,\"80[2-8]\\\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\\\d{6}\",,,,\"12345678\",,,[8]],[,,\"4[5-9]\\\\d{7}\",,,,\"470123456\",,,[9]],[,,\"800[1-9]\\\\d{4}\",,,,\"80012345\",,,[8]],[,,\"(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\\\\d\\\\d)\\\\d{4}\",,,,\"90012345\",,,[8]],[,,\"7879\\\\d{4}\",\n,,,\"78791234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BE\",32,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\\\\d)\\\\d{4}\",,,,\"78102345\",,,[8]],,,[,,,,,,,,,[-1]]],BF:[,[,,\n\"(?:[025-7]\\\\d|44)\\\\d{6}\",,,,,,,[8]],[,,\"2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\\\d|50|6[5-7]))\\\\d{4}\",,,,\"20491234\"],[,,\"(?:0[1-7]|44|5[0-8]|[67]\\\\d)\\\\d{6}\",,,,\"70123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BF\",226,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[024-7]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BG:[,[,,\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",\n,,,,,,[6,7,8,9,12],[4,5]],[,,\"2\\\\d{5,7}|(?:43[1-6]|70[1-9])\\\\d{4,5}|(?:[36]\\\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\\\d{5,6}\",,,,\"2123456\",,,[6,7,8],[4,5]],[,,\"(?:43[07-9]|99[69]\\\\d)\\\\d{5}|(?:8[7-9]|98)\\\\d{7}\",,,,\"43012345\",,,[8,9]],[,,\"(?:00800\\\\d\\\\d|800)\\\\d{5}\",,,,\"80012345\",,,[8,12]],[,,\"90\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"700\\\\d{5}\",,,,\"70012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BG\",359,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{6})\",\"$1\",[\"1\"]],[,\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\n\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",\n[\"43[1-6]|70[1-9]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BH:[,[,,\"[136-9]\\\\d{7}\",\n,,,,,,[8]],[,,\"(?:1(?:3[1356]|6[0156]|7\\\\d)\\\\d|6(?:1[16]\\\\d|500|6(?:0\\\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\\\d\\\\d|1(?:11|78)))\\\\d{4}\",,,,\"17001234\"],[,,\"(?:3(?:[0-79]\\\\d|8[0-57-9])\\\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\\\d|7[0-689])))\\\\d{4}\",,,,\"36001234\"],[,,\"8[02369]\\\\d{6}\",,,,\"80123456\"],[,,\"(?:87|9[0-8])\\\\d{6}\",,,,\"90123456\"],[,,\"84\\\\d{6}\",,,,\"84123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BH\",973,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]],,[,,,,,,,,,[-1]],,\n,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BI:[,[,,\"(?:[267]\\\\d|31)\\\\d{6}\",,,,,,,[8]],[,,\"(?:22|31)\\\\d{6}\",,,,\"22201234\"],[,,\"(?:29|6[124-9]|7[125-9])\\\\d{6}\",,,,\"79561234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BI\",257,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BJ:[,[,,\"(?:01\\\\d|8)\\\\d{7}\",,,,,,,[8,10]],[,,\"012\\\\d{7}\",,,,\"0120211234\",,,[10]],[,\n,\"01(?:2[5-9]|[4-69]\\\\d)\\\\d{6}\",,,,\"0195123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"857[58]\\\\d{4}\",,,,\"85751234\",,,[8]],\"BJ\",229,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"81\\\\d{6}\",,,,\"81123456\",,,[8]],,,[,,,,,,,,,[-1]]],BL:[,[,,\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\",\n,,,\"590271234\"],[,,\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\",,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\",,,,\"976012345\"],\"BL\",590,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BM:[,[,,\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"441(?:[46]\\\\d\\\\d|5(?:4\\\\d|60|89))\\\\d{4}\",,,,\"4414123456\",\n,,,[7]],[,,\"441(?:[2378]\\\\d|5[0-39]|9[02])\\\\d{5}\",,,,\"4413701234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"BM\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"441$1\",\n,,,,[,,,,,,,,,[-1]],,\"441\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BN:[,[,,\"[2-578]\\\\d{6}\",,,,,,,[7]],[,,\"22[0-7]\\\\d{4}|(?:2[013-9]|[34]\\\\d|5[0-25-9])\\\\d{5}\",,,,\"2345678\"],[,,\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\",,,,\"7123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[34]\\\\d{5}\",,,,\"5345678\"],\"BN\",673,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BO:[,[,,\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",\n,,,,,,[8,9],[7]],[,,\"(?:2(?:2\\\\d\\\\d|5(?:11|[258]\\\\d|9[67])|6(?:12|2\\\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\\\d\\\\d|4(?:6\\\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\\\d\\\\d|6(?:11|[24689]\\\\d|72)))\\\\d{4}\",,,,\"22123456\",,,[8],[7]],[,,\"[67]\\\\d{7}\",,,,\"71234567\",,,[8]],[,,\"8001[07]\\\\d{4}\",,,,\"800171234\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"50\\\\d{6}\",,,,\"50123456\",,,[8],[7]],\"BO\",591,\"00(?:1\\\\d)?\",\"0\",,,\"0(1\\\\d)?\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"],\n,\"0$CC $1\"],[,\"(\\\\d{8})\",\"$1\",[\"[67]\"],,\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],,\"0$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,\"8001[07]\\\\d{4}\",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BQ:[,[,,\"(?:[34]1|7\\\\d)\\\\d{5}\",,,,,,,[7]],[,,\"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\\\d)\\\\d{3}\",,,,\"7151234\"],[,,\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\",,,,\"3181234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BQ\",599,\"00\",\n,,,,,,,,,[,,,,,,,,,[-1]],,\"[347]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BR:[,[,,\"[1-467]\\\\d{9,10}|55[0-46-9]\\\\d{8}|[34]\\\\d{7}|55\\\\d{7,8}|(?:5[0-46-9]|[89]\\\\d)\\\\d{7,9}\",,,,,,,[8,9,10,11]],[,,\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\\\d{7}\",,,,\"1123456789\",,,[10],[8]],[,,\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\",,,,\"11961234567\",,,[10,11],[8,9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\",,,[9,10]],[,,\"[59]00\\\\d{6,7}\",,,,\"500123456\",,,[9,10]],[,,\"(?:30[03]\\\\d{3}|4(?:0(?:0\\\\d|20)|370|864))\\\\d{4}|300\\\\d{5}\",\n,,,\"40041234\",,,[8,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BR\",55,\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"0\",,,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\",,,[[,\"(\\\\d{3,6})\",\"$1\",[\"1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[2-57]\",\"[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\n\"0$1\"],[,\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"9\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\",\"0 $CC ($1)\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\",\"0 $CC ($1)\"]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\n\"($1)\",\"0 $CC ($1)\"],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\",\"0 $CC ($1)\"]],[,,,,,,,,,[-1]],,,[,,\"(?:30[03]\\\\d{3}|4(?:0(?:0\\\\d|20)|864))\\\\d{4}|800\\\\d{6,7}|300\\\\d{5}\",,,,,,,[8,9,10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BS:[,[,,\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\\\d{4}\",,,,\"2423456789\",,,,[7]],[,,\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|3[0-4]|[89]9))\\\\d{4}\",\n,,,\"2423591234\",,,,[7]],[,,\"242300\\\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\",,,,[7]],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"BS\",1,\"011\",\"1\",,,\"([3-8]\\\\d{6})$|1\",\"242$1\",,,,,[,,,,,,,,,[-1]],,\"242\",[,\n,,,,,,,,[-1]],[,,\"242225\\\\d{4}\",,,,\"2422250123\"],,,[,,,,,,,,,[-1]]],BT:[,[,,\"[178]\\\\d{7}|[2-8]\\\\d{6}\",,,,,,,[7,8],[6]],[,,\"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\\\d{5}\",,,,\"2345678\",,,[7],[6]],[,,\"(?:1[67]|[78]7)\\\\d{6}\",,,,\"17123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BT\",975,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[2-7]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",\n[\"1[67]|[78]\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|[78]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BW:[,[,,\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\\\d{4}\",,,,\"2401234\",,,[7]],[,,\"(?:321|7[1-8]\\\\d)\\\\d{5}\",\n,,,\"71123456\",,,[8]],[,,\"(?:0800|800\\\\d)\\\\d{6}\",,,,\"0800012345\",,,[10]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"79(?:1(?:[0-2]\\\\d|3[0-8])|2[0-7]\\\\d)\\\\d{3}\",,,,\"79101234\",,,[8]],\"BW\",267,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],,,[,,,,,,,,,[-1]]],BY:[,[,,\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",,,,,,,[6,7,8,9,10,11],[5]],[,,\"(?:1(?:5(?:1[1-5]|[24]\\\\d|6[2-4]|9[1-7])|6(?:[235]\\\\d|4[1-7])|7\\\\d\\\\d)|2(?:1(?:[246]\\\\d|3[0-35-9]|5[1-9])|2(?:[235]\\\\d|4[0-8])|3(?:[26]\\\\d|3[02-79]|4[024-7]|5[03-7])))\\\\d{5}\",,,,\"152450911\",,,[9],[5,6,7]],[,,\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\",,,,\"294911911\",,,[9]],[,,\"800\\\\d{3,7}|8(?:0[13]|20\\\\d)\\\\d{7}\",\n,,,\"8011234567\"],[,,\"(?:810|902)\\\\d{7}\",,,,\"9021234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"249\\\\d{6}\",,,,\"249123456\",,,[9]],\"BY\",375,\"810\",\"8\",,,\"0|80?\",,\"8~10\",,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,\"800\\\\d{3,7}|(?:8(?:0[13]|10|20\\\\d)|902)\\\\d{7}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BZ:[,[,,\"(?:0800\\\\d|[2-8])\\\\d{6}\",,,,,,,[7,11]],[,,\"(?:2(?:[02]\\\\d|36|[68]0)|[3-58](?:[02]\\\\d|[68]0)|7(?:[02]\\\\d|32|[68]0))\\\\d{4}\",,,,\"2221234\",,,[7]],[,,\"6[0-35-7]\\\\d{5}\",,,,\"6221234\",,,[7]],[,,\"0800\\\\d{7}\",,,,\"08001234123\",\n,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"BZ\",501,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CA:[,[,,\"[2-9]\\\\d{9}|3\\\\d{6}\",,,,,,,[7,10]],[,,\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",\n,,,\"5062345678\",,,[10],[7]],[,,\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",,,,\"5062345678\",,,[10],[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\",,,[10]],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",\n,,,\"5219023456\",,,[10]],[,,\"600[2-9]\\\\d{6}\",,,,\"6002012345\",,,[10]],\"CA\",1,\"011\",\"1\",,,\"1\",,,1,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"310\\\\d{4}\",,,,\"3101234\",,,[7]],,,[,,,,,,,,,[-1]]],CC:[,[,,\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",,,,,,,[6,7,8,9,10,12]],[,,\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",,,,\"891621234\",,,[9],[8]],[,,\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",\n,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"CC\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"([59]\\\\d{7})$|0\",\"8$1\",\"0011\",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CD:[,[,,\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",\n,,,,,,[7,8,9,10]],[,,\"(?:(?:12|573)\\\\d\\\\d|276)\\\\d{5}|[1-6]\\\\d{6}\",,,,\"1234567\"],[,,\"88\\\\d{5}|(?:8[0-69]|9[017-9])\\\\d{7}\",,,,\"991234567\",,,[7,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CD\",243,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CF:[,[,,\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",,,,,,,[8]],[,,\"2[12]\\\\d{6}\",,,,\"21612345\"],[,,\"7[02-7]\\\\d{6}\",,,,\"70012345\"],[,,,,,,,,,[-1]],[,,\"8776\\\\d{4}\",,,,\"87761234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CF\",236,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nCG:[,[,,\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",,,,,,,[9]],[,,\"222[1-589]\\\\d{5}\",,,,\"222123456\"],[,,\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\",,,,\"061234567\"],[,,,,,,,,,[-1]],[,,\"80[0-2]\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CG\",242,\"00\",,,,,,,,[[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CH:[,[,,\"8\\\\d{11}|[2-9]\\\\d{8}\",,,\n,,,,[9,12]],[,,\"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\\\d{7}\",,,,\"212345678\",,,[9]],[,,\"(?:6[89]|7[235-9])\\\\d{7}\",,,,\"781234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"90[016]\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"84[0248]\\\\d{6}\",,,,\"840123456\",,,[9]],[,,\"878\\\\d{6}\",,,,\"878123456\",,,[9]],[,,,,,,,,,[-1]],\"CH\",41,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],,[,,\"74[0248]\\\\d{6}\",,,,\"740123456\",,,[9]],,,[,,,,,,,,,[-1]],[,,\"5[18]\\\\d{7}\",,,,\"581234567\",,,[9]],,,[,,\"860\\\\d{9}\",,,,\"860123456789\",,,[12]]],CI:[,[,,\"[02]\\\\d{9}\",,,,,,,[10]],[,,\"2(?:[15]\\\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\\\d{5}\",,,,\"2123456789\"],[,,\"0[157]\\\\d{8}\",,,,\"0123456789\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CI\",225,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",\n[\"2\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CK:[,[,,\"[2-578]\\\\d{4}\",,,,,,,[5]],[,,\"(?:2\\\\d|3[13-7]|4[1-5])\\\\d{3}\",,,,\"21234\"],[,,\"[578]\\\\d{4}\",,,,\"71234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CK\",682,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CL:[,[,,\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",\n,,,,,,[9,10,11]],[,,\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|2\\\\d{3}|3(?:(?:2\\\\d|50)\\\\d|3(?:[03467]\\\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578])\\\\d|6(?:00|[13-57]\\\\d)|8(?:0[1-9]|[1-9]\\\\d))\\\\d\\\\d|9(?:(?:10[01]|(?:[2458]\\\\d|7[1-9])\\\\d)\\\\d|3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}\",,,,\"600123456\",,,[9]],[,,\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|2\\\\d{3}|3(?:(?:2\\\\d|50)\\\\d|3(?:[03467]\\\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\\\\d|8(?:0[1-8]|[1-9]\\\\d))\\\\d\\\\d|9(?:(?:10[01]|(?:[2458]\\\\d|7[1-9])\\\\d)\\\\d|3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}\",\n,,,\"221234567\",,,[9]],[,,\"(?:123|8)00\\\\d{6}\",,,,\"800123456\",,,[9,11]],[,,,,,,,,,[-1]],[,,\"600\\\\d{7,8}\",,,,\"6001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,\"44\\\\d{7}\",,,,\"441234567\",,,[9]],\"CL\",56,\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"1(?:[03-589]|21)|[29]0|78\"]],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\n\"($1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9(?:10|[2-9])\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],[[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9(?:10|[2-9])\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])\"],\"($1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],[,,,,,,,,,[-1]],,,[,,\"600\\\\d{7,8}\",,,,,,,[10,11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CM:[,[,,\"[26]\\\\d{8}|88\\\\d{6,7}\",,,,,,,[8,9]],[,,\"2(?:22|33)\\\\d{6}\",,,\n,\"222123456\",,,[9]],[,,\"(?:24[23]|6(?:[25-9]\\\\d|40))\\\\d{6}\",,,,\"671234567\",,,[9]],[,,\"88\\\\d{6,7}\",,,,\"88012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CM\",237,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CN:[,[,,\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",\n,,,,,,[7,8,9,10,11,12],[5,6]],[,,\"(?:10(?:[02-79]\\\\d\\\\d|[18](?:0[1-9]|[1-9]\\\\d))|2(?:[02-57-9]\\\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\\\d)|[2-79]\\\\d\\\\d))|(?:41[03]|8078|9(?:78|94))\\\\d\\\\d)\\\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\\\d\\\\d|95\\\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\\\d\\\\d|95\\\\d{3,4})|8078123|(?:43[35]|754|851)\\\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\\\d|23)\\\\d|95\\\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\\\d{7}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{3})?|[1-9]\\\\d{5})|[13-9]\\\\d{6}|2(?:[0-24-9]\\\\d{5}|3\\\\d(?:\\\\d{4})?))|9(?:[0-46-9]\\\\d{6}|5\\\\d{3}(?:\\\\d(?:\\\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\\\d{6}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{2})?|[1-9]\\\\d{4})|[13-9]\\\\d{5}|2(?:[0-24-9]\\\\d{4}|3\\\\d(?:\\\\d{3})?))|9(?:[0-46-9]\\\\d{5}|5\\\\d{3,5}))\",\n,,,\"1012345678\",,,[7,8,9,10,11],[5,6]],[,,\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\\\d{8}\",,,,\"13123456789\",,,[11]],[,,\"(?:(?:10|21)8|8)00\\\\d{7}\",,,,\"8001234567\",,,[10,12]],[,,\"16[08]\\\\d{5}\",,,,\"16812345\",,,[8]],[,,\"10(?:10\\\\d{4}|96\\\\d{3,4})|400\\\\d{7}|950\\\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))96\\\\d{3,4}\",\n,,,\"4001234567\",,,[7,8,9,10,11],[5,6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CN\",86,\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"0\",,,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",,\"00\",,[[,\"(\\\\d{5,6})\",\"$1\",[\"1(?:00|2[13])|9[56]\",\"1(?:00|2(?:1|39))|9[56]\",\"1(?:00|2(?:1|395))|9[56]\"]],[,\"(\\\\d{5,6})\",\"$1\",[\"1(?:0|23)|781|[1-9]12\",\"1(?:0|23)|7812|[1-9]123\",\"1(?:0|23(?:[0-8]|9[0-46-9]))|78123|[1-9]123\"]],[,\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\n\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\n\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\",\"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])\",\"1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|[3-9]\",\"1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))\",\n\"1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:0(?:[0-689]|7[0-79])|1[01459]|2[0-489]|[46]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))\"]],\n[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"16[08]\"]],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\",\"1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]\",\"1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])\",\n\"1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])\"]],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{7,8})\",\n\"$1 $2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",,1]],[[,\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\n\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\n\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\n\"0$1\",\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{7,8})\",\n\"$1 $2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",\"$CC $1\",1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",,1]],[,,,,,,,,,[-1]],,,[,,\"(?:(?:10|21)8|[48])00\\\\d{7}|950\\\\d{7,8}\",,,,,,,[10,11,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CO:[,[,,\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",,,,,,,[8,10,11],[4,7]],[,,\"601055(?:[0-4]\\\\d|50)\\\\d\\\\d|6010(?:[0-4]\\\\d|5[0-4])\\\\d{4}|(?:46|60(?:[18][1-9]|[24-7][2-9]))\\\\d{6}\",\n,,,\"6012345678\",,,[8,10],[4,7]],[,,\"333301[0-5]\\\\d{3}|3333(?:00|2[5-9]|[3-9]\\\\d)\\\\d{4}|(?:3(?:(?:0[0-5]|1\\\\d|5[01]|70)\\\\d|2(?:[0-3]\\\\d|4[1-9])|3(?:00|3[0-24-9]))|9(?:101|408))\\\\d{6}\",,,,\"3211234567\",,,[10]],[,,\"1800\\\\d{7}\",,,,\"18001234567\",,,[11]],[,,\"(?:19(?:0[01]|4[78])|901)\\\\d{7}\",,,,\"19001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CO\",57,\"00(?:4(?:[14]4|56)|[579])\",\"0\",,,\"0([3579]|4(?:[14]4|56))?\",,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\n\"($1)\",\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"],,\"0$CC $1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\"]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\",\"0$CC $1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"],,\"0$CC $1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CR:[,[,,\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",,,,,,,[8,10]],[,,\"210[7-9]\\\\d{4}|2(?:[024-7]\\\\d|1[1-9])\\\\d{5}\",\n,,,\"22123456\",,,[8]],[,,\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\",,,,\"83123456\",,,[8]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"90[059]\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:210[0-6]|4\\\\d{3}|5100)\\\\d{4}\",,,,\"40001234\",,,[8]],\"CR\",506,\"00\",,,,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\",,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],,,[,,,,,,,,,[-1]]],CU:[,[,,\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",,,,,,,[6,7,8,10],[4,5]],[,,\"(?:3[23]|4[89])\\\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\\\d)\\\\d{6}|(?:2[1-4]|4[1257]|7\\\\d)\\\\d{5,6}\",,,,\"71234567\",,,,[4,5]],[,,\"(?:5\\\\d|6[2-4])\\\\d{6}\",,,,\"51234567\",,,[8]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"807\\\\d{7}\",,,,\"8071234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CU\",53,\"119\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{6,7})\",\n\"$1 $2\",[\"7\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CV:[,[,,\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",,,,,,,[7]],[,,\"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\\\d|7[1-3]|8[1-5])\\\\d{4}\",,,,\"2211234\"],[,,\"(?:36|5[1-389]|9\\\\d)\\\\d{5}\",,,,\"9911234\"],[,,\"800\\\\d{4}\",,,,\"8001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:3[3-5]|4[356])\\\\d{5}\",,,,\"3401234\"],\"CV\",238,\"0\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3\",[\"[2-589]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CW:[,[,,\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",,,,,,,[7,8]],[,,\"9(?:4(?:3[0-5]|4[14]|6\\\\d)|50\\\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\\\d|7[01]|8[57-9]))\\\\d{4}\",,,,\"94351234\"],[,,\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\",,,,\"95181234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"60[0-2]\\\\d{4}\",,,,\"6001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"CW\",599,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",\n[\"[3467]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],,[,,\"955\\\\d{5}\",,,,\"95581234\",,,[8]],1,\"[69]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CX:[,[,,\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",,,,,,,[6,7,8,9,10,12]],[,,\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",,,,\"891641234\",,,[9],[8]],[,,\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",\n,,,\"412345678\",,,[9]],[,,\"180(?:0\\\\d{3}|2)\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"190[0-26]\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",,,,\"1300123456\",,,[6,8,10,12]],[,,,,,,,,,[-1]],[,,\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",,,,\"147101234\",,,[9]],\"CX\",61,\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"0\",,,\"([59]\\\\d{7})$|0\",\"8$1\",\"0011\",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CY:[,[,,\"(?:[279]\\\\d|[58]0)\\\\d{6}\",,,,,,\n,[8]],[,,\"2[2-6]\\\\d{6}\",,,,\"22345678\"],[,,\"9(?:10|[4-79]\\\\d)\\\\d{5}\",,,,\"96123456\"],[,,\"800\\\\d{5}\",,,,\"80001234\"],[,,\"90[09]\\\\d{5}\",,,,\"90012345\"],[,,\"80[1-9]\\\\d{5}\",,,,\"80112345\"],[,,\"700\\\\d{5}\",,,,\"70012345\"],[,,,,,,,,,[-1]],\"CY\",357,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:50|77)\\\\d{6}\",,,,\"77123456\"],,,[,,,,,,,,,[-1]]],CZ:[,[,,\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",,,,,,,[9,10,11,12]],[,,\"(?:2\\\\d|3[1257-9]|4[16-9]|5[13-9])\\\\d{7}\",,,,\"212345678\",\n,,[9]],[,,\"7(?:060\\\\d|19(?:[0-5]\\\\d|6[0-6]))\\\\d{4}|(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\",,,,\"601123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"9(?:0[05689]|76)\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"8[134]\\\\d{7}\",,,,\"811234567\",,,[9]],[,,\"70[01]\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"9[17]0\\\\d{6}\",,,,\"910123456\",,,[9]],\"CZ\",420,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",\n[\"9\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"9(?:5\\\\d|7[2-4])\\\\d{6}\",,,,\"972123456\",,,[9]],,,[,,\"9(?:3\\\\d{9}|6\\\\d{7,10})\",,,,\"93123456789\"]],DE:[,[,,\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",,,,,,,[4,5,6,7,8,9,10,11,12,13,14,15],[2,3]],[,,\"32\\\\d{9,11}|49[1-6]\\\\d{10}|322\\\\d{6}|49[0-7]\\\\d{3,9}|(?:[34]0|[68]9)\\\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\\\d|[589][0-7]|6[0-8]|7[0-467]))\\\\d{3,12}\",\n,,,\"30123456\",,,[5,6,7,8,9,10,11,12,13,14,15],[2,3,4]],[,,\"1(?:(?:5(?:[0-25-9]\\\\d\\\\d|3(?:10|33))|7[26-9]\\\\d\\\\d)\\\\d{6}|6[023]\\\\d{7,8})|17\\\\d{8}\",,,,\"15123456789\",,,[10,11]],[,,\"800\\\\d{7,12}\",,,,\"8001234567890\",,,[10,11,12,13,14,15]],[,,\"(?:137[7-9]|900(?:[135]|9\\\\d))\\\\d{6}\",,,,\"9001234567\",,,[10,11]],[,,\"180\\\\d{5,11}|13(?:7[1-6]\\\\d\\\\d|8)\\\\d{4}\",,,,\"18012345\",,,[7,8,9,10,11,12,13,14]],[,,\"700\\\\d{8}\",,,,\"70012345678\",,,[11]],[,,,,,,,,,[-1]],\"DE\",49,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",\n[\"3[02]|40|[68]9\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"227\",\"2277\"]],[,\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],\n[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],\n[,\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],[,,\"16(?:4\\\\d{1,10}|[89]\\\\d{1,11})\",,,,\"16412345\",,,[4,5,6,7,8,9,10,11,12,13,14]],,,[,,,,,,,,,[-1]],[,,\"18(?:1\\\\d{5,11}|[2-9]\\\\d{8})\",,,,\"18500123456\",,,[8,9,10,11,12,13,14]],,,[,,\"1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\\\d{7,8}|15(?:(?:[03-68]00|113)\\\\d|2\\\\d55|7\\\\d99|9\\\\d33)\\\\d{7}\",\n,,,\"177991234567\",,,[12,13]]],DJ:[,[,,\"(?:2\\\\d|77)\\\\d{6}\",,,,,,,[8]],[,,\"2(?:1[2-5]|7[45])\\\\d{5}\",,,,\"21360003\"],[,,\"77\\\\d{6}\",,,,\"77831001\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"DJ\",253,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DK:[,[,,\"[2-9]\\\\d{7}\",,,,,,,[8]],[,,\"(?:2(?:[0-59][1-9]|[6-8]\\\\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\\\\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\\\\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\\\\d))\\\\d{5}\",\n,,,\"32123456\"],[,,\"(?:2[6-8]|37|6[78]|96)\\\\d{6}|(?:2[0-59]|3[0-689]|[457]\\\\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\\\\d{5}\",,,,\"34412345\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"90\\\\d{6}\",,,,\"90123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"DK\",45,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DM:[,[,,\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\\\d{4}\",\n,,,\"7674201234\",,,,[7]],[,,\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\",,,,\"7672251234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"DM\",1,\n\"011\",\"1\",,,\"([2-7]\\\\d{6})$|1\",\"767$1\",,,,,[,,,,,,,,,[-1]],,\"767\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DO:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"8(?:[04]9[2-9]\\\\d\\\\d|29(?:2(?:[0-59]\\\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\\\d|4[7-9])|[45]\\\\d\\\\d|6(?:[0-27-9]\\\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\\\d{4}\",\n,,,\"8092345678\",,,,[7]],[,,\"8[024]9[2-9]\\\\d{6}\",,,,\"8092345678\",,,,[7]],[,,\"800(?:14|[2-9]\\\\d)\\\\d{5}|8[024]9[01]\\\\d{6}|8(?:33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"DO\",1,\n\"011\",\"1\",,,\"1\",,,,,,[,,,,,,,,,[-1]],,\"8001|8[024]9\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DZ:[,[,,\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",,,,,,,[8,9]],[,,\"9619\\\\d{5}|(?:1\\\\d|2[013-79]|3[0-8]|4[013-689])\\\\d{6}\",,,,\"12345678\"],[,,\"(?:5(?:4[0-29]|5\\\\d|6[0-3])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\",,,,\"551234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"80[3-689]1\\\\d{5}\",,,,\"808123456\",,,[9]],[,,\"80[12]1\\\\d{5}\",,,,\"801123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"98[23]\\\\d{6}\",,,,\"983123456\",,,[9]],\n\"DZ\",213,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EC:[,[,,\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",,,,,,,[8,9,10,11],[7]],[,,\"[2-7][2-7]\\\\d{6}\",,,,\"22123456\",,,[8],[7]],[,,\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\",,,,\"991234567\",,,[9]],[,,\"1800\\\\d{7}|1[78]00\\\\d{6}\",\n,,,\"18001234567\",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[2-7]890\\\\d{4}\",,,,\"28901234\",,,[8]],\"EC\",593,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-7]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-7]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],[,,,,\n,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EE:[,[,,\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",,,,,,,[7,8,10]],[,,\"(?:3[23589]|4[3-8]|6\\\\d|7[1-9]|88)\\\\d{5}\",,,,\"3212345\",,,[7]],[,,\"(?:5\\\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\\\d)|[3-9]\\\\d\\\\d)|(?:1(?:0[2-6]|1\\\\d)|(?:2[0-59]|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:0(?:00|4\\\\d)|(?:19|[2-7]\\\\d)\\\\d)|(?:(?:[124-69]\\\\d|3[5-9])\\\\d|7(?:[0-79]\\\\d|8[013-9])|8(?:[2-6]\\\\d|7[01]))\\\\d)|[349]\\\\d{4}))\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\",\n,,,\"51234567\",,,[7,8]],[,,\"800(?:(?:0\\\\d\\\\d|1)\\\\d|[2-9])\\\\d{3}\",,,,\"80012345\"],[,,\"(?:40\\\\d\\\\d|900)\\\\d{4}\",,,,\"9001234\",,,[7,8]],[,,,,,,,,,[-1]],[,,\"70[0-2]\\\\d{5}\",,,,\"70012345\",,,[8]],[,,,,,,,,,[-1]],\"EE\",372,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",\n[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,\"800[2-9]\\\\d{3}\",,,,,,,[7]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EG:[,[,,\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",,,,,,,[8,9,10],[6,7]],[,,\"13[23]\\\\d{6}|(?:15|57)\\\\d{6,7}|(?:2\\\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\\\d{7}\",,,,\"234567890\",,,[8,9],[6,7]],[,,\"1[0-25]\\\\d{8}\",,,,\"1001234567\",,,[10]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n\"EG\",20,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EH:[,[,,\"[5-8]\\\\d{8}\",,,,,,,[9]],[,,\"528[89]\\\\d{5}\",,,,\"528812345\"],[,,\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[016-8]\\\\d|2[0-8]|5[0-5]))\\\\d{6}\",,,,\"650123456\"],[,,\"80[0-7]\\\\d{6}\",,,,\"801234567\"],\n[,,\"89\\\\d{7}\",,,,\"891234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\",,,,\"592401234\"],\"EH\",212,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,\"528[89]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ER:[,[,,\"[178]\\\\d{6}\",,,,,,,[7],[6]],[,,\"(?:1(?:1[12568]|[24]0|55|6[146])|8\\\\d\\\\d)\\\\d{4}\",,,,\"8370362\",,,,[6]],[,,\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\",,,,\"7123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ER\",291,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ES:[,[,,\"[5-9]\\\\d{8}\",,,,,,,[9]],[,,\"96906(?:0[0-8]|1[1-9]|[2-9]\\\\d)\\\\d\\\\d|9(?:69(?:0[0-57-9]|[1-9]\\\\d)|73(?:[0-8]\\\\d|9[1-9]))\\\\d{4}|(?:8(?:[1356]\\\\d|[28][0-8]|[47][1-9])|9(?:[135]\\\\d|[268][0-8]|4[1-9]|7[124-9]))\\\\d{6}\",,,,\"810123456\"],[,,\"96906(?:09|10)\\\\d\\\\d|(?:590(?:10[0-2]|600)|97390\\\\d)\\\\d{3}|(?:6\\\\d|7[1-48])\\\\d{7}\",,,,\"612345678\"],[,,\"[89]00\\\\d{6}\",,,,\"800123456\"],[,,\"80[367]\\\\d{6}\",,,,\"803123456\"],\n[,,\"90[12]\\\\d{6}\",,,,\"901123456\"],[,,\"70\\\\d{7}\",,,,\"701234567\"],[,,,,,,,,,[-1]],\"ES\",34,\"00\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"905\"]],[,\"(\\\\d{6})\",\"$1\",[\"[79]9\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"51\\\\d{7}\",,,,\"511234567\"],,,[,,,,,,,,,[-1]]],ET:[,[,,\"(?:11|[2-579]\\\\d)\\\\d{7}\",\n,,,,,,[9],[7]],[,,\"11667[01]\\\\d{3}|(?:11(?:1(?:1[1-468]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8]|7\\\\d)|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\\\d)))\\\\d{4}\",\n,,,\"111112345\",,,,[7]],[,,\"700[1-9]\\\\d{5}|(?:7(?:0[1-9]|1[0-8]|2[1-35-79]|3\\\\d|77|86|99)|9\\\\d\\\\d)\\\\d{6}\",,,,\"911234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ET\",251,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FI:[,[,,\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",,,,,,,[5,6,7,8,9,10,11,12]],[,,\"1[3-7][1-8]\\\\d{3,6}|(?:19[1-8]|[23568][1-8]\\\\d|9(?:00|[1-8]\\\\d))\\\\d{2,6}\",\n,,,\"131234567\",,,[5,6,7,8,9]],[,,\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",,,,\"412345678\",,,[6,7,8,9,10]],[,,\"800\\\\d{4,6}\",,,,\"800123456\",,,[7,8,9]],[,,\"[67]00\\\\d{5,6}\",,,,\"600123456\",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FI\",358,\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{5})\",\"$1\",[\"75[12]\"],\"0$1\"],[,\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[,\"(\\\\d{6})\",\"$1\",[\"11\"]],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,8})\",\n\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],[[,\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],[,,,,,,,,,[-1]],1,\"1[03-79]|[2-9]\",[,,\"20(?:2[023]|9[89])\\\\d{1,6}|(?:60[12]\\\\d|7099)\\\\d{4,5}|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:[1-3]00|7(?:0[1-5]\\\\d\\\\d|5[03-9]))\\\\d{3,7}\"],\n[,,\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\",,,,\"10112345\"],,,[,,,,,,,,,[-1]]],FJ:[,[,,\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",,,,,,,[7,11]],[,,\"603\\\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\\\d{5}\",,,,\"3212345\",,,[7]],[,,\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\",,,,\"7012345\",,,[7]],[,,\"0800\\\\d{7}\",,,,\"08001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FJ\",679,\"0(?:0|52)\",,,,,\n,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FK:[,[,,\"[2-7]\\\\d{4}\",,,,,,,[5]],[,,\"[2-47]\\\\d{4}\",,,,\"31234\"],[,,\"[56]\\\\d{4}\",,,,\"51234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FK\",500,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FM:[,[,,\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",,,,,,,[7]],[,,\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\\\d)\\\\d)\\\\d{3}\",\n,,,\"3201234\"],[,,\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\",,,,\"3501234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"FM\",691,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FO:[,[,,\"[2-9]\\\\d{5}\",,,,,,,[6]],[,,\"(?:20|[34]\\\\d|8[19])\\\\d{4}\",,,,\"201234\"],[,,\"(?:[27][1-9]|5\\\\d|9[16])\\\\d{4}\",,,,\"211234\"],[,,\"80[257-9]\\\\d{3}\",,,,\"802123\"],[,,\"90(?:[13-5][15-7]|2[125-7]|9\\\\d)\\\\d\\\\d\",\n,,,\"901123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:6[0-36]|88)\\\\d{4}\",,,,\"601234\"],\"FO\",298,\"00\",,,,\"(10(?:01|[12]0|88))\",,,,[[,\"(\\\\d{6})\",\"$1\",[\"[2-9]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FR:[,[,,\"[1-9]\\\\d{8}\",,,,,,,[9]],[,,\"(?:26[013-9]|59[1-35-9])\\\\d{6}|(?:[13]\\\\d|2[0-57-9]|4[1-9]|5[0-8])\\\\d{7}\",,,,\"123456789\"],[,,\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7[3-9]\\\\d)\\\\d{6}\",,,,\"612345678\"],[,,\"80[0-5]\\\\d{6}\",,,,\"801234567\"],[,,\"836(?:0[0-36-9]|[1-9]\\\\d)\\\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\\\d|8[0-35-9])\\\\d{6}\",\n,,,\"891123456\"],[,,\"8(?:1[01]|2[0156]|4[024]|84)\\\\d{6}\",,,,\"884012345\"],[,,,,,,,,,[-1]],[,,\"9\\\\d{8}\",,,,\"912345678\"],\"FR\",33,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"10\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],[,,,,,,,\n,,[-1]],,,[,,,,,,,,,[-1]],[,,\"80[6-9]\\\\d{6}\",,,,\"806123456\"],,,[,,,,,,,,,[-1]]],GA:[,[,,\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",,,,,,,[7,8]],[,,\"[01]1\\\\d{6}\",,,,\"01441234\",,,[8]],[,,\"(?:(?:0[2-7]|7[467])\\\\d|6(?:0[0-4]|10|[256]\\\\d))\\\\d{5}|[2-7]\\\\d{6}\",,,,\"06031234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GA\",241,\"00\",,,,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\",,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GB:[,[,,\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",,,,,,,[7,9,10],[4,5,6,8]],[,,\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-5])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|5[01]))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",\n,,,\"1212345678\",,,[9,10],[4,5,6,7,8]],[,,\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",,,,\"7400123456\",,,[10]],[,,\"80[08]\\\\d{7}|800\\\\d{6}|8001111\",,,,\"8001234567\"],[,,\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",,,,\"9012345678\",,,[7,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,\"56\\\\d{8}\",,,,\"5612345678\",\n,,[10]],\"GB\",44,\"00\",\"0\",\" x\",,\"0|180020\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",\n[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",,,,\"7640123456\",,,[10]],1,,[,,,,,,,,,[-1]],[,,\"(?:3[0347]|55)\\\\d{8}\",,,,\"5512345678\",,,[10]],,,[,,,,,,,,,[-1]]],GD:[,[,,\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-4]|5[59]|73|90)|63[68]|7(?:58|84)|800|938)\\\\d{4}\",\n,,,\"4732691234\",,,,[7]],[,,\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|49|5[6-8])|5(?:2[01]|3[3-8])|901)\\\\d{4}\",,,,\"4734031234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,\n,[-1]],\"GD\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"473$1\",,,,,[,,,,,,,,,[-1]],,\"473\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GE:[,[,,\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",,,,,,,[9],[6,7]],[,,\"(?:3(?:[256]\\\\d|4[124-9]|7[0-4])|4(?:1\\\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\\\d{6}\",,,,\"322123456\",,,,[6,7]],[,,\"5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\\\d|22252[0-4])\\\\d\\\\d|5(?:0(?:0(?:1[09]|70)|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\\\d{3}|(?:5(?:0(?:0(?:0\\\\d|1[12]|22|3[0-6]|44|5[05]|77|88|9[09])|(?:[14]\\\\d|77)\\\\d|22[02])|1(?:1(?:[03][01]|[124]\\\\d|5[2-6]|7[0-4])|4\\\\d\\\\d)|[23]555|4(?:4\\\\d\\\\d|555)|5(?:[0157-9]\\\\d\\\\d|200|333|444)|6[89]\\\\d\\\\d|7(?:(?:[0147-9]\\\\d|22)\\\\d|5(?:00|[57]5))|8(?:0(?:[018]\\\\d|2[0-4])|5(?:55|8[89])|8(?:55|88))|9(?:090|[1-35-9]\\\\d\\\\d))|790\\\\d\\\\d)\\\\d{4}\",\n,,,\"555123456\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"70[67]\\\\d{6}\",,,,\"706123456\"],\"GE\",995,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"70[67]\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GF:[,[,,\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",\n,,,,,,[9]],[,,\"594(?:[02-49]\\\\d|1[0-5]|5[6-9]|6[0-3]|80)\\\\d{4}\",,,,\"594101234\"],[,,\"(?:694(?:[0-249]\\\\d|3[0-8])|7093[0-3])\\\\d{4}\",,,,\"694201234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:396|76\\\\d)\\\\d|476[0-6])\\\\d{4}\",,,,\"976012345\"],\"GF\",594,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,\n,[-1]],,,[,,,,,,,,,[-1]]],GG:[,[,,\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",,,,,,,[7,9,10],[6]],[,,\"1481[25-9]\\\\d{5}\",,,,\"1481256789\",,,[10],[6]],[,,\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",,,,\"7781123456\",,,[10]],[,,\"80[08]\\\\d{7}|800\\\\d{6}|8001111\",,,,\"8001234567\"],[,,\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",,,,\"9012345678\",,,[7,10]],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,\"56\\\\d{8}\",,,,\"5612345678\",,,[10]],\"GG\",44,\"00\",\"0\",,,\"([25-9]\\\\d{5})$|0|180020\",\"1481$1\",\n,,,,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",,,,\"7640123456\",,,[10]],,,[,,,,,,,,,[-1]],[,,\"(?:3[0347]|55)\\\\d{8}\",,,,\"5512345678\",,,[10]],,,[,,,,,,,,,[-1]]],GH:[,[,,\"(?:[235]\\\\d{3}|800)\\\\d{5}\",,,,,,,[8,9],[7]],[,,\"3082[0-5]\\\\d{4}|3(?:0(?:[237]\\\\d|8[01])|[167](?:2[0-6]|7\\\\d|80)|2(?:2[0-5]|7\\\\d|80)|3(?:2[0-3]|7\\\\d|80)|4(?:2[013-9]|3[01]|7\\\\d|80)|5(?:2[0-7]|7\\\\d|80)|8(?:2[0-2]|7\\\\d|80)|9(?:[28]0|7\\\\d))\\\\d{5}\",,,,\"302345678\",,,[9],[7]],[,,\"(?:2(?:[0346-9]\\\\d|5[67])|5(?:[03-7]\\\\d|9[1-9]))\\\\d{6}\",\n,,,\"231234567\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GH\",233,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[237]|8[0-2]\"]],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"800\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GI:[,[,,\"(?:[25]\\\\d|60)\\\\d{6}\",\n,,,,,,[8]],[,,\"2190[0-2]\\\\d{3}|2(?:0(?:[02]\\\\d|3[01])|16[24-9]|2[2-5]\\\\d)\\\\d{4}\",,,,\"20012345\"],[,,\"5251[0-4]\\\\d{3}|(?:5(?:[146-8]\\\\d\\\\d|250)|60(?:1[01]|6\\\\d))\\\\d{4}\",,,,\"57123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GI\",350,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GL:[,[,,\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",,,,,,,[6]],[,,\"(?:19|3[1-7]|[68][1-9]|70|9\\\\d)\\\\d{4}\",,,,\"321000\"],[,,\"[245]\\\\d{5}\",\n,,,\"221234\"],[,,\"80\\\\d{4}\",,,,\"801234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3[89]\\\\d{4}\",,,,\"381234\"],\"GL\",299,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GM:[,[,,\"[2-9]\\\\d{6}\",,,,,,,[7]],[,,\"(?:4(?:[23]\\\\d\\\\d|4(?:1[024679]|[6-9]\\\\d))|5(?:5(?:3\\\\d|4[0-7])|6[67]\\\\d|7(?:1[04]|2[035]|3[58]|48))|8[0-589]\\\\d\\\\d)\\\\d{3}\",,,,\"5661234\"],[,,\"556\\\\d{4}|(?:[23679]\\\\d|4[015]|5[0-489]|8[67])\\\\d{5}\",,,,\n\"3012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GM\",220,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GN:[,[,,\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\\\d\\\\d)\\\\d{4}\",,,,\"30241234\",,,[8]],[,,\"6[0-356]\\\\d{7}\",,,,\"601123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"722\\\\d{6}\",,,,\"722123456\",\n,,[9]],\"GN\",224,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GP:[,[,,\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\",,,,\"590201234\"],[,,\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\",,,,\"690001234\"],\n[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\",,,,\"976012345\"],\"GP\",590,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GQ:[,[,,\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",,,,,,,[9]],[,,\"33[0-24-9]\\\\d[46]\\\\d{4}|3(?:33|5\\\\d)\\\\d[7-9]\\\\d{4}\",,,,\"333091234\"],\n[,,\"(?:222|55\\\\d)\\\\d{6}\",,,,\"222123456\"],[,,\"80\\\\d[1-9]\\\\d{5}\",,,,\"800123456\"],[,,\"90\\\\d[1-9]\\\\d{5}\",,,,\"900123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GQ\",240,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GR:[,[,,\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",,,,,,,[10,11,12]],[,,\"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\",\n,,,\"2123456789\",,,[10]],[,,\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\",,,,\"6912345678\",,,[10]],[,,\"800\\\\d{7,9}\",,,,\"8001234567\"],[,,\"90[19]\\\\d{7}\",,,,\"9091234567\",,,[10]],[,,\"8(?:0[16]|12|[27]5|50)\\\\d{7}\",,,,\"8011234567\",,,[10]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],[,,,,,,,,,[-1]],\"GR\",30,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\n\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"5005000\\\\d{3}\",,,,\"5005000123\",,,[10]],,,[,,,,,,,,,[-1]]],GT:[,[,,\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",,,,,,,[8,11]],[,,\"[267][2-9]\\\\d{6}\",,,,\"22456789\",,,[8]],[,,\"(?:[3-5]\\\\d\\\\d|80[0-4])\\\\d{5}\",,,,\"51234567\",,,[8]],[,,\"18[01]\\\\d{8}\",,,,\"18001112222\",,,[11]],[,,\"19\\\\d{9}\",,,,\"19001112222\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"GT\",502,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GU:[,[,,\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"671(?:2\\\\d\\\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\",,,,\"6713001234\",,,,[7]],[,,\"671(?:2\\\\d\\\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\",\n,,,\"6713001234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"GU\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"671$1\",,1,,,[,,,,,,,,,[-1]],,\"671\",[,,,,,,,,,[-1]],[,,,,\n,,,,,[-1]],,,[,,,,,,,,,[-1]]],GW:[,[,,\"[49]\\\\d{8}|4\\\\d{6}\",,,,,,,[7,9]],[,,\"443\\\\d{6}\",,,,\"443201234\",,,[9]],[,,\"9(?:5\\\\d|6[569]|77)\\\\d{6}\",,,,\"955012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"40\\\\d{5}\",,,,\"4012345\",,,[7]],\"GW\",245,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GY:[,[,,\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",,,,,,,[7]],[,,\"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\\\d|7[0-79])|3(?:2[25-9]|3\\\\d)|4(?:4[0-24]|5[56])|50[0-6]|77[1-57])\\\\d{4}\",\n,,,\"2201234\"],[,,\"(?:51[01]|6\\\\d\\\\d|7(?:[0-5]\\\\d|6[0-49]|70))\\\\d{4}\",,,,\"6091234\"],[,,\"(?:289|8(?:00|6[28]|88|99))\\\\d{4}\",,,,\"2891234\"],[,,\"9008\\\\d{3}\",,,,\"9008123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"515\\\\d{4}\",,,,\"5151234\"],\"GY\",592,\"001\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HK:[,[,,\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",,,,,,,[5,6,7,8,9,11]],[,,\"(?:2(?:[13-9]\\\\d|2[013-9])\\\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\\\d|8(?:4[0-8]|[579]\\\\d|6[0-5]))|58(?:0[1-9]|1[2-9]))\\\\d{4}\",\n,,,\"21234567\",,,[8]],[,,\"(?:4(?:44[0-35-9]|6(?:4[0-57-9]|6[0-6])|7(?:3[0-4]|4[0-48]|6[0-5]))|5(?:35[4-8]|73[0-6]|95[0-8])|6(?:26[013-8]|(?:66|78)[0-5])|70(?:7[1-8]|8[0-8])|84(?:4[0-2]|8[0-35-9])|9(?:29[013-9]|39[014-9]|59[0-467]|899))\\\\d{4}|(?:4(?:4[0-35-9]|6[0-357-9]|7[0-25])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|70[1-59]|84[0-39]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\",,,,\"51234567\",,,[8]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"900(?:[0-24-9]\\\\d{7}|3\\\\d{1,4})\",\n,,,\"90012345678\",,,[5,6,7,8,11]],[,,,,,,,,,[-1]],[,,\"8(?:1[0-4679]\\\\d|2(?:[0-36]\\\\d|7[0-4])|3(?:[034]\\\\d|2[09]|70))\\\\d{4}\",,,,\"81123456\",,,[8]],[,,,,,,,,,[-1]],\"HK\",852,\"00(?:30|5[09]|[126-9]?)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],,[,,\"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\\\d|1[18]|7[27-9])|3(?:[0-38]\\\\d|7[0-369]|9[2357-9])|47\\\\d|5(?:[178]\\\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\\\d)|7(?:[27]\\\\d|8[7-9])|8(?:[23689]\\\\d|7[1-9])|9(?:[025]\\\\d|6[0-246-8]|7[0-36-9]|8[238]))\\\\d{4}\",\n,,,\"71123456\",,,[8]],,,[,,,,,,,,,[-1]],[,,\"30(?:0[1-9]|[15-7]\\\\d|2[047]|89)\\\\d{4}\",,,,\"30161234\",,,[8]],,,[,,,,,,,,,[-1]]],HN:[,[,,\"8\\\\d{10}|[237-9]\\\\d{7}\",,,,,,,[8,11]],[,,\"2(?:2(?:0[0-59]|1[1-9]|[23]\\\\d|4[02-7]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\\\d|6[014-69]|7[04]|80)|6(?:[056]\\\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\\\d{4}\",,,,\"22123456\",\n,,[8]],[,,\"[37-9]\\\\d{7}\",,,,\"91234567\",,,[8]],[,,\"8002\\\\d{7}\",,,,\"80021234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"HN\",504,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]],[,,,,,,,,,[-1]],,,[,,\"8002\\\\d{7}\",,,,,,,[11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HR:[,[,,\"[2-69]\\\\d{8}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{6}\",,,,,,,[7,8,9],[6]],[,,\"1\\\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\\\d{6,7}\",\n,,,\"12345678\",,,[8,9],[6,7]],[,,\"9(?:(?:0[1-9]|[12589]\\\\d)\\\\d\\\\d|7(?:[0679]\\\\d\\\\d|5(?:[01]\\\\d|44|55|77|9[5-79])))\\\\d{4}|98\\\\d{6}\",,,,\"921234567\",,,[8,9]],[,,\"80\\\\d{5,7}\",,,,\"800123456\"],[,,\"6[01459]\\\\d{6}|6[01]\\\\d{5}\",,,,\"6001234\",,,[7,8]],[,,,,,,,,,[-1]],[,,\"7[45]\\\\d{6}\",,,,\"74123456\",,,[8]],[,,,,,,,,,[-1]],\"HR\",385,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\n\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"62\\\\d{6,7}|72\\\\d{6}\",,,,\"62123456\",,,[8,9]],,,[,,,,,,,,,[-1]]],HT:[,[,,\"[2-589]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:2\\\\d|5[1-5]|81|9[149])\\\\d{5}\",,,,\"22453300\"],[,,\"(?:[34]\\\\d|5[56])\\\\d{6}\",,,,\"34101234\"],[,,\"8\\\\d{7}\",,,,\"80012345\"],[,,,,,,,,,\n[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:[67][0-4]|8[0-3589]|9\\\\d)\\\\d{5}\",,,,\"98901234\"],\"HT\",509,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HU:[,[,,\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"(?:1\\\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\\\d{6}\",,,,\"12345678\",,,[8],[6,7]],[,,\"(?:[257]0|3[01])\\\\d{7}\",,,,\"201234567\",,,[9]],[,,\"(?:[48]0\\\\d|680[29])\\\\d{5}\",,,,\"80123456\"],[,\n,\"9[01]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"21\\\\d{7}\",,,,\"211234567\",,,[9]],\"HU\",36,\"00\",\"06\",,,\"06\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],,[,,,,,,,,,[-1]],,,[,,\"(?:[48]0\\\\d|680[29])\\\\d{5}\"],[,,\"38\\\\d{7}\",,,,\"381234567\",,,[9]],,,[,,,,,,,,,[-1]]],ID:[,[,,\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",\n,,,,,,[7,8,9,10,11,12,13,14,15,16,17],[5,6]],[,,\"2[124]\\\\d{7,8}|619\\\\d{8}|2(?:1(?:14|500)|2\\\\d{3})\\\\d{3}|61\\\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\\\d{5,8}\",,,,\n\"218350123\",,,[7,8,9,10,11],[5,6]],[,,\"8[1-35-9]\\\\d{7,10}\",,,,\"812345678\",,,[9,10,11,12]],[,,\"00(?:1803\\\\d{5,11}|7803\\\\d{7})|(?:177\\\\d|800)\\\\d{5,7}\",,,,\"8001234567\",,,[8,9,10,11,12,13,14,15,16,17]],[,,\"809\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,\"804\\\\d{7}\",,,,\"8041234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ID\",62,\"00[89]\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[,\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,8})\",\n\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3 $4\",[\"001\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[,\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",\n[\"2[124]|[36]1\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"001803\\\\d{5,11}|(?:007803\\\\d|8071)\\\\d{6}\",,,,,,,[10,11,12,13,14,15,16,17]],[,\n,\"(?:1500|8071\\\\d{3})\\\\d{3}\",,,,\"8071123456\",,,[7,10]],,,[,,,,,,,,,[-1]]],IE:[,[,,\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",,,,,,,[7,8,9,10],[5,6]],[,,\"(?:1\\\\d|21)\\\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\\\d|7)|5(?:0[45]|1\\\\d|8)|6(?:1\\\\d|[237-9])|9(?:1\\\\d|[35-9]))\\\\d{5}|(?:23|4(?:[1-469]|8\\\\d)|5[23679]|6[4-6]|7[14]|9[04])\\\\d{7}\",,,,\"2212345\",,,,[5,6]],[,,\"8(?:22|[35-9]\\\\d)\\\\d{6}\",,,,\"850123456\",,,[9]],[,,\"1800\\\\d{6}\",,,,\"1800123456\",,,[10]],[,,\"15(?:1[2-8]|[2-8]0|9[089])\\\\d{6}\",,,,\"1520123456\",\n,,[10]],[,,\"18[59]0\\\\d{6}\",,,,\"1850123456\",,,[10]],[,,\"700\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"76\\\\d{7}\",,,,\"761234567\",,,[9]],\"IE\",353,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"18[59]0\\\\d{6}\",,,,,,,[10]],[,,\"818\\\\d{6}\",,,,\"818123456\",,,[9]],,,[,,\"88210[1-9]\\\\d{4}|8(?:[35-79]5\\\\d\\\\d|8(?:[013-9]\\\\d\\\\d|2(?:[01][1-9]|[2-9]\\\\d)))\\\\d{5}\",,,,\"8551234567\",,,[10]]],IL:[,[,,\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",,,,,,,[7,8,\n9,10,11,12]],[,,\"153\\\\d{8,9}|29[1-9]\\\\d{5}|(?:2[0-8]|[3489]\\\\d)\\\\d{6}\",,,,\"21234567\",,,[8,11,12],[7]],[,,\"55(?:4(?:0[0-2]|[16]0)|57[0-289])\\\\d{4}|5(?:(?:[0-2][02-9]|[36]\\\\d|[49][2-9]|8[3-7])\\\\d|5(?:01|2\\\\d|3[0-3]|4[3-5]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\",,,,\"502345678\",,,[9]],[,,\"1(?:255|80[019]\\\\d{3})\\\\d{3}\",,,,\"1800123456\",,,[7,10]],[,,\"1212\\\\d{4}|1(?:200|9(?:0[0-2]|19))\\\\d{6}\",,,,\"1919123456\",,,[8,10]],[,,\"1700\\\\d{6}\",,,,\"1700123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"7(?:38(?:[05]\\\\d|8[0138])|8(?:33|55|77|81)\\\\d)\\\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\\\d|82|9[2-9])\\\\d{6}\",\n,,,\"771234567\",,,[9]],\"IL\",972,\"0(?:0|1[2-9])\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[,\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],,[,,,,,,,,,[-1]],,,[,,\"1700\\\\d{6}\",\n,,,,,,[10]],[,,\"1599\\\\d{6}\",,,,\"1599123456\",,,[10]],,,[,,\"151\\\\d{8,9}\",,,,\"15112340000\",,,[11,12]]],IM:[,[,,\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",,,,,,,[10],[6]],[,,\"1624(?:230|[5-8]\\\\d\\\\d)\\\\d{3}\",,,,\"1624756789\",,,,[6]],[,,\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\",,,,\"7924123456\"],[,,\"808162\\\\d{4}\",,,,\"8081624567\"],[,,\"8(?:440[49]06|72299\\\\d)\\\\d{3}|(?:8(?:45|70)|90[0167])624\\\\d{4}\",,,,\"9016247890\"],[,,,,,,,,,[-1]],[,,\"70\\\\d{8}\",,,,\"7012345678\"],[,,\"56\\\\d{8}\",,,,\"5612345678\"],\"IM\",44,\n\"00\",\"0\",,,\"([25-8]\\\\d{5})$|0|180020\",\"1624$1\",,,,,[,,,,,,,,,[-1]],,\"74576|(?:16|7[56])24\",[,,,,,,,,,[-1]],[,,\"3440[49]06\\\\d{3}|(?:3(?:08162|3\\\\d{4}|45624|7(?:0624|2299))|55\\\\d{4})\\\\d{4}\",,,,\"5512345678\"],,,[,,,,,,,,,[-1]]],IN:[,[,,\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",,,,,,,[8,9,10,11,12,13],[6,7]],[,,\"(?:2717(?:[2-7]\\\\d|95)|6828[235-7]\\\\d)\\\\d{4}|(?:170[24]|280[13468]|4(?:20[24]|72[2-8])|552[1-7])\\\\d{6}|(?:271[0-689]|682[0-79]|782[0-6])[2-7]\\\\d{5}|(?:2(?:[02][2-79]|90)|3(?:23|80)|683|79[1-7])\\\\d{7}|(?:11|33|4[04]|80)[2-7]\\\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\\\d)\\\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[14-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\\\d[2-7]\\\\d{5}\",\n,,,\"7410410123\",,,[10],[6,7,8]],[,,\"(?:6(?:1279|828[01489])|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578])\\\\d|7(?:[235689]\\\\d|4[0189])|8(?:[14-6]\\\\d|2[0-79]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\",\n,,,\"8123456789\",,,[10]],[,,\"000800\\\\d{7}|1(?:600\\\\d{6}|80(?:0\\\\d{4,9}|3\\\\d{9}))\",,,,\"1800123456\"],[,,\"186[12]\\\\d{9}\",,,,\"1861123456789\",,,[13]],[,,\"1860\\\\d{7}\",,,,\"18603451234\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IN\",91,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{7})\",\"$1\",[\"575\"]],[,\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],,,1],[,\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",\n[\"140\"],,,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\n\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689])\\\\d|8(?:[14-6]\\\\d|2[0-79]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",,1],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\n\"1(?:6|8[06]0)\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],,,1]],[[,\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],,,1],[,\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],,,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\n\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\n\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689])\\\\d|8(?:[14-6]\\\\d|2[0-79]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",,1],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\n\"1(?:6|8[06]0)\"],,,1],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],,,1]],[,,,,,,,,,[-1]],,,[,,\"1(?:600\\\\d{6}|800\\\\d{4,9})|(?:000800|18(?:03\\\\d\\\\d|6(?:0|[12]\\\\d\\\\d)))\\\\d{7}\"],[,,\"140\\\\d{7}\",,,,\"1409305260\",,,[10]],,,[,,,,,,,,,[-1]]],IO:[,[,,\"3\\\\d{6}\",,,,,,,[7]],[,,\"37\\\\d{5}\",,,,\"3709100\"],[,,\"38\\\\d{5}\",,,,\"3801234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IO\",246,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IQ:[,[,,\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",,,,,,,[8,9,10],[6,7]],[,,\"1\\\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\\\d{6,7}\",,,,\"12345678\",,,[8,9],[6,7]],[,,\"7[3-9]\\\\d{8}\",,,,\"7912345678\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IQ\",964,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\n,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IR:[,[,,\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",,,,,,,[4,5,6,7,10],[8]],[,,\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\\\d{7}|[16]\\\\d{3}(?:\\\\d{4})?|[289]\\\\d{3}(?:\\\\d(?:\\\\d{3})?)?)|94(?:000[09]|(?:12\\\\d|30[0-2])\\\\d|2(?:121|[2689]0\\\\d)|4(?:111|40\\\\d))\\\\d{4}\",,,,\"2123456789\",,,[6,7,10],[4,5,8]],[,,\"9(?:(?:0[0-5]|[13]\\\\d|2[0-3])\\\\d\\\\d|9(?:[0-46]\\\\d\\\\d|5(?:10|5\\\\d)|8(?:[12]\\\\d|88)|9(?:[0159]\\\\d|21|69|77|8[7-9])))\\\\d{5}\",\n,,,\"9123456789\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"IR\",98,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"9(?:4440\\\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))\",\n,,,,,,[4,5,10]],[,,\"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])\",,,,\"9601\",,,[4,5]],,,[,,,,,,,,,[-1]]],IS:[,[,,\"(?:38\\\\d|[4-9])\\\\d{6}\",,,,,,,[7,9]],[,,\"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\\\d|8[0-36-8])|5(?:05|[156]\\\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\\\d{4}\",,,,\"4101234\",,,[7]],[,,\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[238]))\\\\d{4}\",\n,,,\"6111234\"],[,,\"80[0-8]\\\\d{4}\",,,,\"8001234\",,,[7]],[,,\"90(?:0\\\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\\\d{3}\",,,,\"9001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"49[0-24-79]\\\\d{4}\",,,,\"4921234\",,,[7]],\"IS\",354,\"00|1(?:0(?:01|[12]0)|100)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"809\\\\d{4}\",,,,\"8091234\",,,[7]],,,[,,\"(?:689|8(?:7[18]|80)|95[48])\\\\d{4}\",,,,\"6891234\",,,[7]]],\nIT:[,[,,\"0\\\\d{5,11}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",,,,,,,[6,7,8,9,10,11,12]],[,,\"0(?:669[0-79]\\\\d{1,6}|831\\\\d{2,8})|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",\n,,,\"0212345678\"],[,,\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",,,,\"3123456789\",,,[9,10]],[,,\"80(?:0\\\\d{3}|3)\\\\d{3}\",,,,\"800123456\",,,[6,9]],[,,\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",,,,\"899123456\",,,[6,8,9,10]],[,,\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",,,,\"848123456\",,,[6,9]],[,,\"1(?:78\\\\d|99)\\\\d{6}\",,,,\"1781234567\",,,[9,10]],[,,\"55\\\\d{8}\",,,,\"5512345678\",,,[10]],\"IT\",39,\"00\",,,,,,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"1(?:0|9[246])\",\"1(?:0|9(?:2[2-9]|[46]))\"]],\n[,\"(\\\\d{6})\",\"$1\",[\"1(?:1|92)\"]],[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[,\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],\n[,\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[03]\"]]],[[,\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[,\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[,\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[03]\"]]],[,,,,,,,,,[-1]],1,,[,,\"848\\\\d{6}\",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,\"3[2-8]\\\\d{9,10}\",,,,\"33101234501\",,,[11,12]]],JE:[,[,,\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",,,,,,,[10],[6]],[,,\"1534[0-24-8]\\\\d{5}\",,,,\"1534456789\",,,,[6]],[,,\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\",\n,,,\"7797712345\"],[,,\"80(?:07(?:35|81)|8901)\\\\d{4}\",,,,\"8007354567\"],[,,\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\",,,,\"9018105678\"],[,,,,,,,,,[-1]],[,,\"701511\\\\d{4}\",,,,\"7015115678\"],[,,\"56\\\\d{8}\",,,,\"5612345678\"],\"JE\",44,\"00\",\"0\",,,\"([0-24-8]\\\\d{5})$|0|180020\",\"1534$1\",,,,,[,,\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",,,,\"7640123456\"],,,[,,,,,,,,,[-1]],[,,\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\",\n,,,\"5512345678\"],,,[,,,,,,,,,[-1]]],JM:[,[,,\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"8766060\\\\d{3}|(?:658(?:2(?:[0-8]\\\\d|9[0-46-9])|[3-9]\\\\d\\\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\\\d|9[2-468])))\\\\d{4}\",,,,\"8765230123\",,,,[7]],[,,\"(?:658295|876(?:2(?:0[1-9]|[13-9]\\\\d|2[013-9])|[348]\\\\d\\\\d|5(?:0[1-9]|[1-9]\\\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\",\n,,,\"8762101234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"JM\",1,\"011\",\"1\",,,\"1\",,,,,,[,,,,,,,,,[-1]],,\"658|876\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,\n,,,,[-1]]],JO:[,[,,\"(?:(?:[2689]|7\\\\d)\\\\d|32|427|53)\\\\d{6}\",,,,,,,[8,9]],[,,\"87(?:000|90[01])\\\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\\\d{4}\",\n,,,\"62001234\",,,[8]],[,,\"(?:427|7(?:[78][0-25-9]|9\\\\d))\\\\d{6}\",,,,\"790123456\",,,[9]],[,,\"80\\\\d{6}\",,,,\"80012345\",,,[8]],[,,\"9\\\\d{7}\",,,,\"90012345\",,,[8]],[,,\"85\\\\d{6}\",,,,\"85012345\",,,[8]],[,,\"70\\\\d{7}\",,,,\"700123456\",,,[9]],[,,,,,,,,,[-1]],\"JO\",962,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[47]\"],\"0$1\"]],,[,,\"74(?:66|77)\\\\d{5}\",,,,\"746612345\",\n,,[9]],,,[,,,,,,,,,[-1]],[,,\"8(?:10|8\\\\d)\\\\d{5}\",,,,\"88101234\",,,[8]],,,[,,,,,,,,,[-1]]],JP:[,[,,\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",,,,,,,[8,9,10,11,12,13,14,15,16,17]],[,,\"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\\\d|4(?:[2-578]\\\\d|6[02-8]|9[2-59])|5(?:[2-589]\\\\d|6[1-9]|7[2-8])|7(?:[25-9]\\\\d|3[4-9]|4[02-9])|8(?:[2679]\\\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\\\d|[679][1-9]))\\\\d{6}\",,,,\"312345678\",,,[9]],[,,\"(?:601[0-4]0|[7-9]0[1-9]\\\\d\\\\d)\\\\d{5}\",\n,,,\"9012345678\",,,[10]],[,,\"00777(?:[01]|5\\\\d)\\\\d\\\\d|(?:00(?:7778|882[1245])|(?:120|800\\\\d)\\\\d\\\\d)\\\\d{4}|00(?:37|66|78)\\\\d{6,13}\",,,,\"120123456\"],[,,\"990\\\\d{6}\",,,,\"990123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"60\\\\d{7}\",,,,\"601234567\",,,[9]],[,,\"50[1-9]\\\\d{7}\",,,,\"5012345678\",,,[10]],\"JP\",81,\"010\",\"0\",,,\"(000[2569]\\\\d{4,6})$|(?:(?:003768)0?)|0\",\"$1\",,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"007\",\"0077\",\"00777\",\"00777[01]\"]],[,\"(\\\\d{8,10})\",\"$1\",[\"000\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\n\"0$1\"],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1-$2-$3\",[\"60\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{3,4})\",\"$1-$2-$3\",[\"007\",\"0077\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"008\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{5})(\\\\d{5,6})\",\"$1-$2-$3\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{6})(\\\\d{6,7})\",\"$1-$2-$3\",[\"0\"]]],\n[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\n\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],[,,\"20\\\\d{8}\",,,,\"2012345678\",,,[10]],,,[,,\"00(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d|00(?:37|66|78)\\\\d{6,13}\"],[,,\"570\\\\d{6}\",,,,\"570123456\",,,[9]],,,[,,,,,,,,,[-1]]],KE:[,[,,\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",,,,,,,[7,8,9,10]],[,,\"(?:4[245]|5[1-79]|6[01457-9])\\\\d{5,7}|(?:4[136]|5[08]|62)\\\\d{7}|(?:[24]0|66)\\\\d{6,7}\",\n,,,\"202012345\",,,[7,8,9]],[,,\"(?:1(?:0[0-8]|1\\\\d|2[014]|[34]0)|7\\\\d\\\\d)\\\\d{6}\",,,,\"712123456\",,,[9]],[,,\"800[02-8]\\\\d{5,6}\",,,,\"800223456\",,,[9,10]],[,,\"900[02-9]\\\\d{5}\",,,,\"900223456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KE\",254,\"000\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KG:[,[,,\"8\\\\d{9}|[235-9]\\\\d{8}\",\n,,,,,,[9,10],[5,6]],[,,\"312(?:5[0-79]\\\\d|9(?:[0-689]\\\\d|7[0-24-9]))\\\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\\\d)|5(?:22|3[4-7]|59|6\\\\d)|6(?:22|5[35-7]|6\\\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\\\d)|9(?:22|4[1-8]|6\\\\d))|6(?:09|12|2[2-4])\\\\d)\\\\d{5}\",,,,\"312123456\",,,[9],[5,6]],[,,\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|600|7(?:[07]\\\\d|55)|88[08]|9(?:12|9[05-9]))\\\\d{6}\",,,,\"700123456\",,,[9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,\n,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KG\",996,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KH:[,[,,\"1\\\\d{9}|[1-9]\\\\d{7,8}\",,,,,,,[8,9,10],[6,7]],[,,\"23(?:4(?:[2-4]|[56]\\\\d)|[568]\\\\d\\\\d)\\\\d{4}|23[236-9]\\\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\\\d)\\\\d{5}|6\\\\d{5,6})\",\n,,,\"23756789\",,,[8,9],[6,7]],[,,\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\",,,,\"91234567\",,,[8,9]],[,,\"1800(?:1\\\\d|2[019])\\\\d{4}\",,,,\"1800123456\",,,[10]],[,,\"1900(?:1\\\\d|2[09])\\\\d{4}\",,,,\"1900123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KH\",855,\"00[14-9]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\n,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KI:[,[,,\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",,,,,,,[5,8]],[,,\"(?:[24]\\\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\\\d\\\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\\\d{3}\",,,,\"31234\"],[,,\"(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\\\d{3}|(?:63\\\\d\\\\d|7(?:(?:[0146-9]\\\\d|2[0-689])\\\\d|3(?:[02-9]\\\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\\\d)))\\\\d{4}\",\n,,,\"72001234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"30(?:0[01]\\\\d\\\\d|12(?:11|20))\\\\d\\\\d\",,,,\"30010000\",,,[8]],\"KI\",686,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KM:[,[,,\"[3478]\\\\d{6}\",,,,,,,[7],[4]],[,,\"7[4-7]\\\\d{5}\",,,,\"7712345\",,,,[4]],[,,\"[34]\\\\d{6}\",,,,\"3212345\"],[,,,,,,,,,[-1]],[,,\"8\\\\d{6}\",,,,\"8001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KM\",269,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",\n[\"[3478]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KN:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\\\d{4}\",,,,\"8692361234\",,,,[7]],[,,\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\",,,,\"8697652917\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"KN\",1,\"011\",\"1\",,,\"([2-7]\\\\d{6})$|1\",\"869$1\",,,,,[,,,,,,,,,[-1]],,\"869\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KP:[,[,,\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",,,,,,,[8,10],[6,7]],[,,\"(?:(?:195|2)\\\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\\\d{6}\",,,,\"21234567\",,,,[6,7]],[,,\"19[1-3]\\\\d{7}\",,,,\"1921234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KP\",850,\"00|99\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"238[02-9]\\\\d{4}|2(?:[0-24-9]\\\\d|3[0-79])\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KR:[,[,,\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",,,,,,,[5,6,8,9,10,11,12,13,14],[3,4,7]],[,,\"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\\\d{2,3}\",,,,\"22123456\",,,[5,6,8,9,10],\n[3,4,7]],[,,\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[0-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\",,,,\"1020000000\",,,[9,10]],[,,\"00(?:308\\\\d{6,7}|798\\\\d{7,9})|(?:00368|[38]0)\\\\d{7}\",,,,\"801234567\",,,[9,11,12,13,14]],[,,\"60[2-9]\\\\d{6}\",,,,\"602345678\",,,[9]],[,,,,,,,,,[-1]],[,,\"50\\\\d{8,9}\",,,,\"5012345678\",,,[10,11]],[,,\"70\\\\d{8}\",,,,\"7012345678\",,,[10]],\"KR\",82,\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"0\",,,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\",,,,[[,\"(\\\\d{5})\",\"$1\",[\"1[016-9]1\",\"1[016-9]11\",\"1[016-9]114\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{5})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"003\",\"0030\"]],[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\",\n\"0$CC-$1\"],[,\"(\\\\d{5})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{5})(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\",\"0$CC-$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\",\"0$CC-$1\"],\n[,\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\",\"0$CC-$1\"]],[,,\"15\\\\d{7,8}\",,,,\"1523456789\",,,[9,10]],,,[,,\"00(?:3(?:08\\\\d{6,7}|68\\\\d{7})|798\\\\d{7,9})\",,,,,,,[11,12,13,14]],[,,\"1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[0168]|88)|8(?:00|33|55|77|99))\\\\d{4}\",,,,\"15441234\",,,[8]],,,[,,,,,,,,,[-1]]],KW:[,[,,\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",,,,,,,[7,8]],[,,\"2(?:[23]\\\\d\\\\d|4(?:[1-35-9]\\\\d|44)|5(?:0[034]|[2-46]\\\\d|5[1-3]|7[1-7]))\\\\d{4}\",,,,\"22345678\",,,[8]],[,,\"(?:41\\\\d\\\\d|5(?:(?:[05]\\\\d|1[0-7]|6[56])\\\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\\\d)\\\\d|1(?:00|11|6[16])|2[26]2|3[36]3|4[46]4|7(?:0[013-9]|[67]\\\\d)|8[68]8|9(?:[069]\\\\d|3[039]))|9(?:(?:[04679]\\\\d|8[057-9])\\\\d|1(?:00|1[01]|99)|2(?:00|2\\\\d)|3(?:00|3[03])|5(?:00|5\\\\d)))\\\\d{4}\",\n,,,\"50012345\",,,[8]],[,,\"18\\\\d{5}\",,,,\"1801234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"KW\",965,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KY:[,[,,\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|4[89]|88)|9(?:14|4[035-9]))\\\\d{4}\",,\n,,\"3452221234\",,,,[7]],[,,\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\",,,,\"3453231234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"(?:345976|900[2-9]\\\\d\\\\d)\\\\d{4}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"KY\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"345$1\",,,,,[,,,,,,,,,[-1]],,\"345\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KZ:[,[,,\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",,,,,,,[10,14],[5,6,7]],[,,\"(?:33622|7(?:1(?:0(?:[23]\\\\d|4[0-3]|59|63)|1(?:[23]\\\\d|4[0-79]|59)|2(?:[23]\\\\d|59)|3(?:2\\\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\\\d|3[013-9]|5[1-9]|97)|5(?:2\\\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\\\d|5[19]|61)|72\\\\d|8(?:[27]\\\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\\\d|4[46-9]|5[3469])|2(?:2\\\\d|3[0679]|46|5[12679])|3(?:[2-4]\\\\d|5[139])|4(?:2\\\\d|3[1-35-9]|59)|5(?:[23]\\\\d|4[0-8]|59|61)|6(?:2\\\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\\\d|40|5[279])|8(?:[23]\\\\d|4[0-3]|59)|9(?:2\\\\d|3[124578]|59))))\\\\d{5}\",\n,,,\"7123456789\",,,[10],[5,6,7]],[,,\"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\\\d{7}\",,,,\"7710009998\",,,[10]],[,,\"8(?:00|108\\\\d{3})\\\\d{7}\",,,,\"8001234567\"],[,,\"809\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"808\\\\d{7}\",,,,\"8081234567\",,,[10]],[,,\"751\\\\d{7}\",,,,\"7511234567\",,,[10]],\"KZ\",7,\"810\",\"8\",,,\"8\",,\"8~10\",,,,[,,,,,,,,,[-1]],,\"33622|7\",[,,\"751\\\\d{7}\",,,,,,,[10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LA:[,[,,\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",,,,,,,[8,9,10],[6]],[,,\"(?:2[13]|[35-7][14]|41|8[1468])\\\\d{6}\",\n,,,\"21212862\",,,[8],[6]],[,,\"(?:20(?:[23579]\\\\d|8[78])|30[24]\\\\d)\\\\d{6}|30\\\\d{7}\",,,,\"2023123456\",,,[9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LA\",856,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"3\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LB:[,[,,\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",\n,,,,,,[7,8]],[,,\"7(?:62|8[0-6]|9[04-9])\\\\d{4}|(?:[14-69]\\\\d|2(?:[14-69]\\\\d|[78][1-9])|7[2-57]|8[02-9])\\\\d{5}\",,,,\"1123456\"],[,,\"(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[7-9]|9[0-4]))\\\\d{5}\",,,,\"71123456\"],[,,,,,,,,,[-1]],[,,\"9[01]\\\\d{6}\",,,,\"90123456\",,,[8]],[,,\"80\\\\d{6}\",,,,\"80123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LB\",961,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],,[,\n,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LC:[,[,,\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"758(?:234|4(?:30|5\\\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\\\d{4}\",,,,\"7584305678\",,,,[7]],[,,\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\",,,,\"7582845678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"LC\",1,\"011\",\"1\",,,\"([2-8]\\\\d{6})$|1\",\"758$1\",,,,,[,,,,,,,,,[-1]],,\"758\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LI:[,[,,\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",,,,,,,[7,9]],[,,\"(?:2(?:01|1[27]|2[024]|3\\\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\\\d{4}\",,,,\"2345678\",,,[7]],[,,\"(?:6(?:(?:4[5-9]|5\\\\d)\\\\d|6(?:[024-68]\\\\d|1[01]|3[7-9]|70))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\",,,,\"660234567\"],[,,\"8002[28]\\\\d\\\\d|80(?:05\\\\d|9)\\\\d{4}\",,,,\"8002222\"],[,,\"90(?:02[258]|1(?:23|3[14])|66[136])\\\\d\\\\d\",\n,,,\"9002222\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LI\",423,\"00\",\"0\",,,\"(1001)|0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"870(?:28|87)\\\\d\\\\d\",,,,\"8702812\",,,[7]],,,[,,\"697(?:42|56|[78]\\\\d)\\\\d{4}\",,,,\"697861234\",,,[9]]],\nLK:[,[,,\"[1-9]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:12[2-9]|602|8[12]\\\\d|9(?:1\\\\d|22|9[245]))\\\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\\\d{6}\",,,,\"112345678\",,,,[7]],[,,\"7(?:[0-25-8]\\\\d|4[0-4])\\\\d{6}\",,,,\"712345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LK\",94,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"1973\\\\d{5}\",,,,\"197312345\"],\n,,[,,,,,,,,,[-1]]],LR:[,[,,\"(?:[2457]\\\\d|33|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",,,,,,,[7,8,9]],[,,\"2\\\\d{7}\",,,,\"21234567\",,,[8]],[,,\"(?:(?:(?:22|33)0|555|7(?:6[01]|7\\\\d)|88\\\\d)\\\\d|4(?:240|[67]))\\\\d{5}|[56]\\\\d{6}\",,,,\"770123456\",,,[7,9]],[,,,,,,,,,[-1]],[,,\"332(?:02|[34]\\\\d)\\\\d{4}\",,,,\"332021234\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LR\",231,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LS:[,[,,\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"2\\\\d{7}\",,,,\"22123456\"],[,,\"[56]\\\\d{7}\",,,,\"50123456\"],[,,\"800[1256]\\\\d{4}\",,,,\"80021234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LS\",266,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LT:[,[,,\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",,,,,,,[8]],[,,\"(?:3[1478]|4[124-6]|52)\\\\d{6}\",\n,,,\"31234567\"],[,,\"6\\\\d{7}\",,,,\"61234567\"],[,,\"80[02]\\\\d{5}\",,,,\"80012345\"],[,,\"9(?:0[0239]|10)\\\\d{5}\",,,,\"90012345\"],[,,\"808\\\\d{5}\",,,,\"80812345\"],[,,\"70[05]\\\\d{5}\",,,,\"70012345\"],[,,\"[89]01\\\\d{5}\",,,,\"80123456\"],\"LT\",370,\"00\",\"0\",,,\"[08]\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",,1],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",,1],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",,1],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",,1]],,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,\"70[67]\\\\d{5}\",,,,\"70712345\"],,,[,,,,,,,,,[-1]]],LU:[,[,,\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",,,,,,,[4,5,6,7,8,9,10,11]],[,,\"(?:35[013-9]|80[2-9]|90[89])\\\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\\\d|8[13-9]|9[2-579])\\\\d{2,9}\",,,,\"27123456\"],[,,\"6(?:[269][18]|5[1568]|7[189]|81)\\\\d{6}\",,,,\"628123456\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"90[015]\\\\d{5}\",,,,\"90012345\",,,[8]],[,,\"801\\\\d{5}\",,,,\"80112345\",,,[8]],[,,,,,,,,,[-1]],[,,\"20(?:1\\\\d{5}|[2-689]\\\\d{1,7})\",\n,,,\"20201234\",,,[4,5,6,7,8,9,10]],\"LU\",352,\"00\",,,,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\",,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\n\"$1 $2 $3\",[\"80[01]|90[015]\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"],,\"$CC $1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"],,\"$CC $1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"],,\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LV:[,[,,\"(?:[268]\\\\d|78|90)\\\\d{6}\",,,,,,,[8]],[,,\n\"6\\\\d{7}\",,,,\"63123456\"],[,,\"2333[0-8]\\\\d{3}|2(?:[0-24-9]\\\\d\\\\d|3(?:0[07]|[14-9]\\\\d|2[02-9]|3[0-24-9]))\\\\d{4}\",,,,\"21234567\"],[,,\"80\\\\d{6}\",,,,\"80123456\"],[,,\"90\\\\d{6}\",,,,\"90123456\"],[,,\"81\\\\d{6}\",,,,\"81123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LV\",371,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2679]|8[01]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LY:[,[,,\"[2-9]\\\\d{8}\",,,,,,,[9],[7]],[,,\"(?:2(?:0[56]|[1-6]\\\\d|7[124579]|8[124])|3(?:1\\\\d|2[2356])|4(?:[17]\\\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\\\d|5[2-57]|8[1-5])|7(?:[13]\\\\d|2[13-79])|8(?:[124]\\\\d|5[124]|84))\\\\d{6}\",\n,,,\"212345678\",,,,[7]],[,,\"9[1-6]\\\\d{7}\",,,,\"912345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"LY\",218,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MA:[,[,,\"[5-8]\\\\d{8}\",,,,,,,[9]],[,,\"5(?:(?:18|4[0679]|5[03])\\\\d|2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9]))\\\\d{5}\",,,,\"520123456\"],[,,\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[016-8]\\\\d|2[0-8]|5[0-5]))\\\\d{6}\",\n,,,\"650123456\"],[,,\"80[0-7]\\\\d{6}\",,,,\"801234567\"],[,,\"89\\\\d{7}\",,,,\"891234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\",,,,\"592401234\"],\"MA\",212,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:[19]|2[2-46-9]|3[3-9])|8(?:0[89]|92)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,\n,,,[-1]]],MC:[,[,,\"(?:[3489]|[67]\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"(?:870|9[2-47-9]\\\\d)\\\\d{5}\",,,,\"99123456\",,,[8]],[,,\"4(?:[469]\\\\d|5[1-9])\\\\d{5}|(?:3|[67]\\\\d)\\\\d{7}\",,,,\"612345678\"],[,,\"(?:800|90\\\\d)\\\\d{5}\",,,,\"90123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MC\",377,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4 $5\",[\"[67]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[,\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[67]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,\"8[07]0\\\\d{5}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MD:[,[,,\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",,,,,,,[8]],[,,\"(?:(?:2[1-9]|3[1-79])\\\\d|5(?:33|5[257]))\\\\d{5}\",,,,\"22212345\"],[,,\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\",,,,\"62112345\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],\n[,,\"90[056]\\\\d{5}\",,,,\"90012345\"],[,,\"808\\\\d{5}\",,,,\"80812345\"],[,,,,,,,,,[-1]],[,,\"3[08]\\\\d{6}\",,,,\"30123456\"],\"MD\",373,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"803\\\\d{5}\",,,,\"80312345\"],,,[,,,,,,,,,[-1]]],ME:[,[,,\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",,,,,,,[8,9],[6]],[,,\"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\\\d{5}\",\n,,,\"30234567\",,,[8],[6]],[,,\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\",,,,\"60123456\",,,[8]],[,,\"80(?:[0-2578]|9\\\\d)\\\\d{5}\",,,,\"80080002\"],[,,\"9(?:4[1568]|5[178])\\\\d{5}\",,,,\"94515151\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"78[1-49]\\\\d{5}\",,,,\"78108780\",,,[8]],\"ME\",382,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"77[1-9]\\\\d{5}\",,,,\"77273012\",,,[8]],,,[,,,,,,,,,[-1]]],MF:[,[,,\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",,,,,,,[9]],\n[,,\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\",,,,\"590271234\"],[,,\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\",,,,\"690001234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\",,,,\"976012345\"],\"MF\",590,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MG:[,[,,\"[23]\\\\d{8}\",,,,,,,[9],[7]],[,,\"2072[29]\\\\d{4}|20(?:2\\\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\\\d{5}\",\n,,,\"202123456\",,,,[7]],[,,\"3[2-46-9]\\\\d{7}\",,,,\"321234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"22\\\\d{7}\",,,,\"221234567\"],\"MG\",261,\"00\",\"0\",,,\"([24-9]\\\\d{6})$|0\",\"20$1\",,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MH:[,[,,\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",,,,,,,[7]],[,,\"(?:247|528|625)\\\\d{4}\",,,,\"2471234\"],[,,\"(?:(?:23|54)5|329|45[35-8])\\\\d{4}\",,,,\"2351234\"],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"635\\\\d{4}\",,,,\"6351234\"],\"MH\",692,\"011\",\"1\",,,\"1\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MK:[,[,,\"[2-578]\\\\d{7}\",,,,,,,[8],[6,7]],[,,\"(?:(?:2(?:62|77)0|3444)\\\\d|4[56]440)\\\\d{3}|(?:34|4[357])700\\\\d{3}|(?:2(?:[0-3]\\\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\\\d{5}\",,,,\"22012345\",,,,[6,7]],[,,\"7(?:3555|(?:474|9[019]7)7)\\\\d{3}|7(?:[0-25-8]\\\\d\\\\d|3(?:[1-478]\\\\d|6[01])|4(?:2\\\\d|60|7[01578])|9(?:[2-4]\\\\d|5[01]|7[015]))\\\\d{4}\",\n,,,\"72345678\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,\"5\\\\d{7}\",,,,\"50012345\"],[,,\"8(?:0[1-9]|[1-9]\\\\d)\\\\d{5}\",,,,\"80123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MK\",389,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ML:[,[,,\"[24-9]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:07[0-8]|12[67])\\\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-59]))\\\\d{5}\",\n,,,\"20212345\"],[,,\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[0-3]|[679]\\\\d|8[2-59])\\\\d{6}\",,,,\"65012345\"],[,,\"80\\\\d{6}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ML\",223,\"00\",,,,,,,,[[,\"(\\\\d{4})\",\"$1\",[\"67[057-9]|74[045]\",\"67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],[,,,,,,,,,[-1]],,,[,,\"80\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MM:[,\n[,,\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",,,,,,,[6,7,8,9,10],[5]],[,,\"(?:1(?:(?:12|[28]\\\\d|3[56]|7[3-6]|9[0-6])\\\\d|4(?:2[29]|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\\\d|22|7[0-2]|83)|51\\\\d\\\\d)|4(?:2(?:2\\\\d\\\\d|48[013])|3(?:20\\\\d|4(?:70|83)|56)|420\\\\d|5(?:2\\\\d|470))|6(?:0(?:[23]|88\\\\d)|(?:124|[56]2\\\\d)\\\\d|2472|3(?:20\\\\d|470)|4(?:2[04]\\\\d|472)|7(?:3\\\\d\\\\d|4[67]0|8(?:[01459]\\\\d|8))))\\\\d{4}|5(?:2(?:2\\\\d{5,6}|47[02]\\\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\\\d|6(?:20\\\\d|483)|7(?:20\\\\d|48[01])|8(?:20\\\\d|47[02])|9(?:20\\\\d|470))\\\\d{4})|7(?:(?:0470|4(?:25\\\\d|470)|5(?:202|470|96\\\\d))\\\\d{4}|1(?:20\\\\d{4,5}|4(?:70|83)\\\\d{4}))|8(?:1(?:2\\\\d{5,6}|4(?:10|7[01]\\\\d)\\\\d{3})|2(?:2\\\\d{5,6}|(?:320|490\\\\d)\\\\d{3})|(?:3(?:2\\\\d\\\\d|470)|4[24-7]|5(?:(?:2\\\\d|51)\\\\d|4(?:[1-35-9]\\\\d|4[0-57-9]))|6[23])\\\\d{4})|(?:1[2-6]\\\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|(?:[35]2|64)\\\\d))\\\\d{4}|25\\\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\\\d{4}\",\n,,,\"1234567\",,,[6,7,8,9],[5]],[,,\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|8[89]|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\",,,,\"92123456\",,,[7,8,9,10]],[,,\"80080(?:0[1-9]|2\\\\d)\\\\d{3}\",,,,\"8008001234\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"1333\\\\d{4}\",,,,\"13331234\",,,[8]],\"MM\",95,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\n\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[,\n\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MN:[,[,,\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",,,,,,,[8,9,10],[4,5,6]],[,,\"[12]2[1-3]\\\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\\\d\\\\d|7(?:0(?:[0-5]\\\\d|7[078]|80)|128))\\\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\\\d{6,7}\",,,,\"53123456\",,,,[4,5,6]],[,,\"92[0139]\\\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\\\d{6}\",,,,\"88123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"712[0-79]\\\\d{4}|7(?:1[013-9]|[5-79]\\\\d)\\\\d{5}\",\n,,,\"75123456\",,,[8]],\"MN\",976,\"001\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[,\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[,\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MO:[,[,,\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",,,,,,,[7,8]],[,,\"(?:28[2-9]|8(?:11|[2-57-9]\\\\d))\\\\d{5}\",\n,,,\"28212345\",,,[8]],[,,\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\",,,,\"66123456\",,,[8]],[,,\"0800\\\\d{3}\",,,,\"0800501\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MO\",853,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MP:[,[,,\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",,,,,,,[10],[7]],[,,\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\",\n,,,\"6702345678\",,,,[7]],[,,\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\",,,,\"6702345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"MP\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"670$1\",,1,,,[,,,,,,,,,[-1]],,\"670\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MQ:[,[,,\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"(?:596(?:[03-7]\\\\d|1[05]|2[7-9]|8[0-39]|9[04-9])|80[6-9]\\\\d\\\\d|9(?:477[6-9]|767[4589]))\\\\d{4}\",,,,\"596301234\"],[,,\"(?:69[67]\\\\d\\\\d|7091[0-3])\\\\d{4}\",,,,\"696201234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\"],[,,\"8[129]\\\\d{7}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:397[0-3]|477[0-5]|76(?:6\\\\d|7[0-367]))\\\\d{4}\",\n,,,\"976612345\"],\"MQ\",596,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MR:[,[,,\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"(?:25[08]|35\\\\d|45[1-7])\\\\d{5}\",,,,\"35123456\"],[,,\"[2-4][0-46-9]\\\\d{6}\",,,,\"22123456\"],[,,\"800\\\\d{5}\",,,,\"80012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MR\",\n222,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MS:[,[,,\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"6644(?:1[0-3]|91)\\\\d{4}\",,,,\"6644912345\",,,,[7]],[,,\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\",,,,\"6644923456\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"MS\",1,\"011\",\"1\",,,\"([34]\\\\d{6})$|1\",\"664$1\",,,,,[,,,,,,,,,[-1]],,\"664\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MT:[,[,,\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",,,,,,,[8]],[,,\"20(?:3[1-4]|6[059])\\\\d{4}|2(?:0[19]|[1-357]\\\\d|60)\\\\d{5}\",,,,\"21001234\"],[,,\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\",,,,\"96961234\"],[,,\"800(?:02|[3467]\\\\d)\\\\d{3}\",,,,\"80071234\"],[,,\"5(?:0(?:0(?:37|43)|(?:6\\\\d|70|9[0168])\\\\d)|[12]\\\\d0[1-5])\\\\d{3}\",,,,\n\"50037123\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3550\\\\d{4}\",,,,\"35501234\"],\"MT\",356,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]],,[,,\"7117\\\\d{4}\",,,,\"71171234\"],,,[,,,,,,,,,[-1]],[,,\"501\\\\d{5}\",,,,\"50112345\"],,,[,,,,,,,,,[-1]]],MU:[,[,,\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",,,,,,,[7,8,10]],[,,\"(?:2(?:[0346-8]\\\\d|1[0-8])|4(?:[013568]\\\\d|2[4-8]|71|90)|54(?:[3-5]\\\\d|71)|6\\\\d\\\\d|8(?:14|3[129]))\\\\d{4}\",,,,\"54480123\",,,[7,8]],[,,\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\\\d|8[0-689]|9[0-8])|7(?:0[0-7]|3[013]))\\\\d{5}\",\n,,,\"52512345\",,,[8]],[,,\"802\\\\d{7}|80[0-2]\\\\d{4}\",,,,\"8001234\",,,[7,10]],[,,\"30\\\\d{5}\",,,,\"3012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"3(?:20|9\\\\d)\\\\d{4}\",,,,\"3201234\",,,[7]],\"MU\",230,\"0(?:0|[24-7]0|3[03])\",,,,,,\"020\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],,[,,\"219\\\\d{4}\",,,,\"2190123\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MV:[,[,,\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",,,,,,,[7,\n10]],[,,\"(?:3(?:0[0-4]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\\\d{4}\",,,,\"6701234\",,,[7]],[,,\"(?:46[46]|[79]\\\\d\\\\d)\\\\d{4}\",,,,\"7712345\",,,[7]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"900\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MV\",960,\"0(?:0|19)\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"4(?:0[01]|50)\\\\d{4}\",,,,\"4001234\",,,[7]],,,[,,,,,,,,,[-1]]],\nMW:[,[,,\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",,,,,,,[7,9]],[,,\"(?:1[2-9]|2[12]\\\\d\\\\d)\\\\d{5}\",,,,\"1234567\"],[,,\"111\\\\d{6}|(?:31|77|[89][89])\\\\d{7}\",,,,\"991234567\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"MW\",265,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],MX:[,[,,\"[2-9]\\\\d{9}\",,,,,,,[10],[7,8]],[,,\"(?:2(?:0[01]|2\\\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\\\d|7[12]|8[1-8]))\\\\d{7}\",,,,\"2001234567\",\n,,,[7,8]],[,,\"(?:2(?:2\\\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\\\d|7[12]|8[1-8]))\\\\d{7}\",,,,\"2221234567\",,,,[7,8]],[,,\"8(?:00|88)\\\\d{7}\",,,,\"8001234567\"],\n[,,\"900\\\\d{7}\",,,,\"9001234567\"],[,,\"300\\\\d{7}\",,,,\"3001234567\"],[,,\"500\\\\d{7}\",,,,\"5001234567\"],[,,,,,,,,,[-1]],\"MX\",52,\"0[09]\",,,,,,\"00\",,[[,\"(\\\\d{5})\",\"$1\",[\"53\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],[[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MY:[,[,,\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",,,,,,,\n[8,9,10],[6,7]],[,,\"427[01]\\\\d{4}|(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\\\d|9[0-57])\\\\d|4(?:2[0-689]|[3-79]\\\\d|8[1-35689])|5(?:2[0-589]|[3468]\\\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\\\d|[3489][0-8]))\\\\d{5}\",,,,\"323856789\",,,[8,9],[6,7]],[,,\"1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0-4]\\\\d|5[0-7]))|(?:[269]\\\\d|[37][1-9]|4[235-9])\\\\d|5(?:31|9\\\\d\\\\d)|8(?:1[23]|[236]\\\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\\\d{5}\",\n,,,\"123456789\",,,[9,10]],[,,\"1[378]00\\\\d{6}\",,,,\"1300123456\",,,[10]],[,,\"1600\\\\d{6}\",,,,\"1600123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"15(?:4(?:6[0-4]\\\\d|8(?:0[125]|[17]\\\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\\\d))\\\\d{4}\",,,,\"1546012345\",,,[10]],\"MY\",60,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\n\"$1-$2 $3\",[\"3\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MZ:[,[,,\"(?:2|8\\\\d)\\\\d{7}\",,,,,,,[8,9]],[,,\"2(?:[1346]\\\\d|5[0-2]|[78][12]|93)\\\\d{5}\",,,,\"21123456\",,,[8]],[,,\"8[2-79]\\\\d{7}\",,,,\"821234567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],\"MZ\",258,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NA:[,[,,\"[68]\\\\d{7,8}\",,,,,,,[8,9]],[,,\"64426\\\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\\\d{4,5}|6(?:1(?:(?:0\\\\d|2[0189]|3[24-69]|4[5-9])\\\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\\\d{4}\",\n,,,\"61221234\"],[,,\"(?:60|8[1245])\\\\d{7}\",,,,\"811234567\",,,[9]],[,,\"80\\\\d{7}\",,,,\"800123456\",,,[9]],[,,\"8701\\\\d{5}\",,,,\"870123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"8(?:3\\\\d\\\\d|86)\\\\d{5}\",,,,\"88612345\"],\"NA\",264,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,\n[-1]],,,[,,,,,,,,,[-1]]],NC:[,[,,\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",,,,,,,[6]],[,,\"(?:2[03-9]|3[0-5]|4[1-7]|88)\\\\d{4}\",,,,\"201234\"],[,,\"(?:[579]\\\\d|8[0-79])\\\\d{4}\",,,,\"751234\"],[,,\"050\\\\d{3}\",,,,\"050012\"],[,,\"36\\\\d{4}\",,,,\"366711\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NC\",687,\"00\",,,,,,,,[[,\"(\\\\d{3})\",\"$1\",[\"5[6-8]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,\n,,[-1]]],NE:[,[,,\"[027-9]\\\\d{7}\",,,,,,,[8]],[,,\"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\\\d{4}\",,,,\"20201234\"],[,,\"(?:23|7[0467]|[89]\\\\d)\\\\d{6}\",,,,\"93123456\"],[,,\"08\\\\d{6}\",,,,\"08123456\"],[,,\"09\\\\d{6}\",,,,\"09123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NE\",227,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,\n,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NF:[,[,,\"[13]\\\\d{5}\",,,,,,,[6],[5]],[,,\"(?:1(?:06|17|28|39)|3[0-2]\\\\d)\\\\d{3}\",,,,\"106609\",,,,[5]],[,,\"(?:14|3[58])\\\\d{4}\",,,,\"381234\",,,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NF\",672,\"00\",,,,\"([0-258]\\\\d{4})$\",\"3$1\",,,[[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[,\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NG:[,[,,\"(?:20|9\\\\d)\\\\d{8}|[78]\\\\d{9,13}\",,,,,,,[10,11,\n12,13,14],[6,7]],[,,\"20(?:[1259]\\\\d|3[013-9]|4[1-8]|6[024-689]|7[1-79]|8[2-9])\\\\d{6}\",,,,\"2033123456\",,,[10],[6,7]],[,,\"(?:702[0-24-9]|819[01])\\\\d{6}|(?:7(?:0[13-9]|[12]\\\\d)|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-6]))\\\\d{7}\",,,,\"8021234567\",,,[10]],[,,\"800\\\\d{7,11}\",,,,\"80017591759\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NG\",234,\"009\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"700\\\\d{7,11}\",,,,\"7001234567\"],,,[,,,,,,,,,[-1]]],NI:[,[,,\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",,,,,,,[8]],[,,\"2\\\\d{7}\",,,,\"21234567\"],[,,\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\",,,,\"81234567\"],[,,\"1800\\\\d{4}\",,,,\"18001234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,\n,,,,,,,,[-1]],\"NI\",505,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NL:[,[,,\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",,,,,,,[5,6,7,8,9,10,11]],[,,\"(?:1(?:[035]\\\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\\\d\\\\d)\\\\d{6}\",\n,,,\"101234567\",,,[9]],[,,\"(?:6[1-58]|970\\\\d)\\\\d{7}\",,,,\"612345678\",,,[9,11]],[,,\"800\\\\d{4,7}\",,,,\"8001234\",,,[7,8,9,10]],[,,\"90[069]\\\\d{4,7}\",,,,\"9061234\",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:85|91)\\\\d{7}\",,,,\"851234567\",,,[9]],\"NL\",31,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})\",\"$1\",[\"1[238]|[34]\"]],[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"14\"]],[,\"(\\\\d{6})\",\"$1\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[,\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[,\n\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[,\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\n\"$1 $2 $3\",[\"9\"],\"0$1\"]],[,,\"66\\\\d{7}\",,,,\"662345678\",,,[9]],,,[,,\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\\\d\",,,,,,,[5,6]],[,,\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\\\d{6})\\\\d\",,,,\"14020\",,,[5,6,9]],,,[,,,,,,,,,[-1]]],NO:[,[,,\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",,,,,,,[5,8]],[,,\"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\\\d{6}\",,,,\"21234567\",,,[8]],[,,\"(?:4[015-8]|9\\\\d)\\\\d{6}\",\n,,,\"40612345\",,,[8]],[,,\"80[01]\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"82[09]\\\\d{5}\",,,,\"82012345\",,,[8]],[,,\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",,,,\"81021234\",,,[8]],[,,\"880\\\\d{5}\",,,,\"88012345\",,,[8]],[,,\"85[0-5]\\\\d{5}\",,,,\"85012345\",,,[8]],\"NO\",47,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],,[,,,,,,,,,[-1]],1,\"[02-689]|7[0-8]\",[,,,,,,,,,[-1]],[,,\"(?:0[235-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\",,,,\"02000\"],,,[,,\"81[23]\\\\d{5}\",\n,,,\"81212345\",,,[8]]],NP:[,[,,\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",,,,,,,[8,10,11],[6,7]],[,,\"(?:1[0-6]\\\\d|99[02-6])\\\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\\\d{5}\",,,,\"14567890\",,,[8],[6,7]],[,,\"9(?:00|6[0-3]|7[0-24-6]|8[0-24-68])\\\\d{7}\",,,,\"9841234567\",,,[10]],[,,\"1(?:66001|800\\\\d\\\\d)\\\\d{5}\",,,,\"16600101234\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NP\",977,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6})\",\n\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{5})\",\"$1-$2-$3\",[\"1\"]]],[[,\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NR:[,[,,\"(?:222|444|(?:55|8\\\\d)\\\\d|666|777|999)\\\\d{4}\",,,,,,,[7]],[,,\"444\\\\d{4}\",,,,\"4441234\"],[,,\"(?:222|55[3-9]|666|777|8\\\\d\\\\d|999)\\\\d{4}\",\n,,,\"5551234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NR\",674,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NU:[,[,,\"(?:[4-7]|888\\\\d)\\\\d{3}\",,,,,,,[4,7]],[,,\"[47]\\\\d{3}\",,,,\"7012\",,,[4]],[,,\"(?:[56]|888[1-9])\\\\d{3}\",,,,\"8884012\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"NU\",683,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]],,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NZ:[,[,,\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",,,,,,,[5,6,7,8,9,10]],[,,\"240\\\\d{5}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\\\d{6}\",,,,\"32345678\",,,[8],[7]],[,,\"2(?:[0-27-9]\\\\d|6)\\\\d{6,7}|2(?:1\\\\d|75)\\\\d{5}\",,,,\"211234567\",,,[8,9,10]],[,,\"508\\\\d{6,7}|80\\\\d{6,8}\",,,,\"800123456\",,,[8,9,10]],[,,\"(?:1[13-57-9]\\\\d{5}|50(?:0[08]|30|66|77|88))\\\\d{3}|90\\\\d{6,8}\",,,,\"900123456\",,,[7,8,9,10]],[,,,,,,,,,[-1]],\n[,,\"70\\\\d{7}\",,,,\"701234567\",,,[9]],[,,,,,,,,,[-1]],\"NZ\",64,\"0(?:0|161)\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\n\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"8(?:1[16-9]|22|3\\\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\\\d{2,7}\",,,,\"83012378\"],,,[,,,,,,,,,[-1]]],OM:[,[,,\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",,,,,,,[7,8,9]],[,,\"2[1-6]\\\\d{6}\",,,,\"23123456\",,,[8]],[,,\"(?:1505|90[1-9]\\\\d)\\\\d{4}|(?:7[124-9]|9[1-9])\\\\d{6}\",,,,\"92123456\",,,[8]],[,,\"8007\\\\d{4,5}|(?:500|800[05])\\\\d{4}\",,,,\"80071234\"],[,,\"900\\\\d{5}\",,,,\"90012345\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"OM\",968,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4,6})\",\n\"$1 $2\",[\"[58]\"]],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PA:[,[,,\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",,,,,,,[7,8,10,11]],[,,\"(?:1(?:0\\\\d|1[0479]|2[37]|3[0137]|4[17]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[047-9]\\\\d|1[0-8]|2[0-5]|33|5[0-35]|6[068])|4(?:00|3[0-579]|4\\\\d|7[0-57-9])|5(?:[01]\\\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[4-9]|90)|8(?:09|2[89]|3\\\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\\\d))\\\\d{4}\",\n,,,\"2001234\",,,[7]],[,,\"(?:1[16]1|21[89]|6\\\\d{3}|8(?:1[01]|7[23]))\\\\d{4}\",,,,\"61234567\",,,[7,8]],[,,\"800\\\\d{4,5}|(?:00800|800\\\\d)\\\\d{6}\",,,,\"8001234\"],[,,\"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\\\d{4}\",,,,\"8601234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PA\",507,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PE:[,[,,\"(?:[14-8]|9\\\\d)\\\\d{7}\",\n,,,,,,[8,9],[6,7]],[,,\"(?:(?:(?:4[34]|5[14])[0-8]|687)\\\\d|7(?:173|(?:3[0-8]|55)\\\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[0569]|[56]0)))\\\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\\\d{6}\",,,,\"11234567\",,,[8],[6,7]],[,,\"9\\\\d{8}\",,,,\"912345678\",,,[9]],[,,\"800\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"805\\\\d{5}\",,,,\"80512345\",,,[8]],[,,\"801\\\\d{5}\",,,,\"80112345\",,,[8]],[,,\"80[24]\\\\d{5}\",,,,\"80212345\",,,[8]],[,,,,,,,,,[-1]],\"PE\",51,\"00|19(?:1[124]|77|90)00\",\"0\",\" Anexo \",,\"0\",,\"00\",,[[,\"(\\\\d{3})(\\\\d{5})\",\n\"$1 $2\",[\"80\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PF:[,[,,\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",,,,,,,[6,8,9]],[,,\"4(?:0[4-689]|9[4-68])\\\\d{5}\",,,,\"40412345\",,,[8]],[,,\"8[7-9]\\\\d{6}\",,,,\"87123456\",,,[8]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"499\\\\d{5}\",,,,\"49901234\",,,[8]],\n\"PF\",689,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,\"44\\\\d{4}\",,,,,,,[6]],[,,\"44\\\\d{4}\",,,,\"440123\",,,[6]],,,[,,,,,,,,,[-1]]],PG:[,[,,\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",,,,,,,[7,8]],[,,\"(?:(?:3[0-2]|4[257]|5[34]|9[78])\\\\d|64[1-9]|85[02-46-9])\\\\d{4}\",,,,\"3123456\",,,[7]],[,,\"(?:7\\\\d|8[1-48])\\\\d{6}\",,,,\"70123456\",,,[8]],[,\n,\"180\\\\d{4}\",,,,\"1801234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"2(?:0[0-57]|7[568])\\\\d{4}\",,,,\"2751234\",,,[7]],\"PG\",675,\"00|140[1-3]\",,,,,,\"00\",,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],,[,,\"27[01]\\\\d{4}\",,,,\"2700123\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PH:[,[,,\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",,,,,,,[6,8,9,10,11,12,13],[4,5,7]],[,,\"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\\\d{3}|88(?:22\\\\d\\\\d|42))\\\\d{4}|(?:2|8[2-8]\\\\d\\\\d)\\\\d{5}\",\n,,,\"232345678\",,,[6,8,9,10],[4,5,7]],[,,\"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\\\d|4[2-9]|8[135-9]|9[1-9]))\\\\d{7}\",,,,\"9051234567\",,,[10]],[,,\"1800\\\\d{7,9}\",,,,\"180012345678\",,,[11,12,13]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PH\",63,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\n\"(0$1)\"],[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[,\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PK:[,[,,\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",\n,,,,,,[8,9,10,11,12],[5,6,7]],[,,\"(?:(?:21|42)[2-9]|58[126])\\\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\\\d{5,6}\",,,,\"2123456789\",,,[9,10],[5,6,7,8]],[,,\"3(?:[0-247]\\\\d|3[0-79]|55|64)\\\\d{7}\",,,,\"3012345678\",,,[10]],[,,\"800\\\\d{5}(?:\\\\d{3})?\",,,,\"80012345\",,,[8,11]],[,,\"900\\\\d{5}\",,,,\"90012345\",,,[8]],[,,,,,,,,,[-1]],[,,\"122\\\\d{6}\",\n,,,\"122044444\",,,[9]],[,,,,,,,,,[-1]],\"PK\",92,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[,\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[,\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\\\d{6}\",\n,,,\"21111825888\",,,[11,12]],,,[,,,,,,,,,[-1]]],PL:[,[,,\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",,,,,,,[6,7,8,9,10]],[,,\"47\\\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\\\d{6}|1(?:[0-8]\\\\d{5}|9\\\\d{3}(?:\\\\d{2})?))\",,,,\"123456789\",,,[7,9]],[,,\"2131[89]\\\\d{4}|21(?:1[013-5]|2\\\\d|3[2-9])\\\\d{5}|(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\",,,,\"512345678\",,,[9]],[,,\"800\\\\d{6,7}\",,,,\"800123456\",,,[9,10]],[,,\"70[01346-8]\\\\d{6}\",,,,\"701234567\",,,[9]],[,\n,\"801\\\\d{6}\",,,,\"801234567\",,,[9]],[,,,,,,,,,[-1]],[,,\"39\\\\d{7}\",,,,\"391234567\",,,[9]],\"PL\",48,\"00\",,,,,,,,[[,\"(\\\\d{5})\",\"$1\",[\"19\"]],[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],\n[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]],,[,,\"64\\\\d{4,7}\",,,,\"641234567\",,,[6,7,8,9]],,,[,,,,,,,,,[-1]],[,,\"804\\\\d{6}\",,,,\"804123456\",,,[9]],,,[,,,,,,,,,[-1]]],PM:[,[,,\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",,,,,,,[6,9]],[,,\"(?:4[1-35-9]|5[0-47-9]|80[6-9]\\\\d\\\\d)\\\\d{4}\",,,,\"430123\"],[,,\"(?:4[02-489]|5[02-9]|708(?:4[0-5]|5[0-6]))\\\\d{4}\",,,,\"551234\"],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,\"8[129]\\\\d{7}\",,,,\"810123456\",\n,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PM\",508,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PR:[,[,,\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",,,,,,,[10],[7]],[,,\"(?:787|939)[2-9]\\\\d{6}\",,,,\"7872345678\",,,,[7]],[,,\"(?:787|939)[2-9]\\\\d{6}\",,,,\"7872345678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",\n,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"PR\",1,\"011\",\"1\",,,\"1\",,,1,,,[,,,,,,,,,[-1]],,\"787|939\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PS:[,[,,\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",,,,,,,[8,9,10],\n[7]],[,,\"(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\\\d{5}\",,,,\"22234567\",,,[8],[7]],[,,\"5[69]\\\\d{7}\",,,,\"599123456\",,,[9]],[,,\"1800\\\\d{6}\",,,,\"1800123456\",,,[10]],[,,,,,,,,,[-1]],[,,\"1700\\\\d{6}\",,,,\"1700123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PS\",970,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],\nPT:[,[,,\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",,,,,,,[9]],[,,\"2(?:[12]\\\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\\\d{6}\",,,,\"212345678\"],[,,\"6(?:[06]92(?:30|9\\\\d)|[35]92(?:[049]\\\\d|3[034]))\\\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\",,,,\"912345678\"],[,,\"80[02]\\\\d{6}\",,,,\"800123456\"],[,,\"(?:6(?:0[178]|4[68])\\\\d|76(?:0[1-57]|1[2-47]|2[237]))\\\\d{5}\",,,,\"760123456\"],[,,\"80(?:8\\\\d|9[1579])\\\\d{5}\",,,,\"808123456\"],[,,\"884[0-4689]\\\\d{5}\",,,,\"884123456\"],[,,\"30\\\\d{7}\",,,,\"301234567\"],\n\"PT\",351,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]],,[,,\"6(?:222\\\\d|89(?:00|88|99))\\\\d{4}\",,,,\"622212345\"],,,[,,,,,,,,,[-1]],[,,\"70(?:38[01]|596|(?:7\\\\d|8[17])\\\\d)\\\\d{4}\",,,,\"707123456\"],,,[,,\"600\\\\d{6}|6[06]92(?:0\\\\d|3[349]|49)\\\\d{3}\",,,,\"600110000\"]],PW:[,[,,\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",,,,,,,[7]],[,,\"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\\\d{4}\",,,,\"2771234\"],[,,\"(?:(?:46|83)[0-5]|(?:6[2-4689]|78)0)\\\\d{4}|(?:45|77|88)\\\\d{5}\",\n,,,\"6201234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"PW\",680,\"01[12]\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PY:[,[,,\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",,,,,,,[6,7,8,9,10,11],[5]],[,,\"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\\\d|6[1-578]|75|8[0-8])|858)\\\\d{5,6}\",\n,,,\"212345678\",,,[7,8,9],[5,6]],[,,\"9(?:51|6[129]|7[1-6]|8[1-7]|9[1-5])\\\\d{6}\",,,,\"961456789\",,,[9]],[,,\"9800\\\\d{5,7}\",,,,\"98000123456\",,,[9,10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"8700[0-4]\\\\d{4}\",,,,\"870012345\",,,[9]],\"PY\",595,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[,\"(\\\\d{7})\",\"$1\",[\"[15]\"]],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],[[,\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\n\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"[2-9]0\\\\d{4,7}\",,,,\"201234567\",,,[6,7,8,9]],,,[,,,,,,,,,[-1]]],QA:[,[,,\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",,,,,,,[7,8,9,11]],\n[,,\"4(?:(?:[014]\\\\d\\\\d|999)\\\\d|2022)\\\\d{3}\",,,,\"44123456\",,,[8]],[,,\"[35-7]\\\\d{7}\",,,,\"33123456\",,,[8]],[,,\"800\\\\d{4}|(?:0080[01]|800)\\\\d{6}\",,,,\"8001234\",,,[7,9,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"QA\",974,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[136]|8\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]],,[,,\"2[136]\\\\d{5}\",,,,\"2123456\",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RE:[,[,,\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\",\n,,,\"262161234\"],[,,\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\",,,,\"692123456\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,\"89[1-37-9]\\\\d{6}\",,,,\"891123456\"],[,,\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,\"9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\\\d{4}\",,,,\"939901234\"],\"RE\",262,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],RO:[,[,,\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",,,,,,,[6,9]],[,,\"[23][13-6]\\\\d{7}|(?:2(?:19\\\\d|[3-6]\\\\d9)|31\\\\d\\\\d)\\\\d\\\\d\",,,,\"211234567\"],[,,\"(?:630|702)0\\\\d{5}|(?:6(?:00|2\\\\d)|7(?:0[013-9]|1[0-3]|[2-7]\\\\d|8[03-8]|9[0-39]))\\\\d{6}\",,,,\"712034567\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"90[0136]\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"801\\\\d{6}\",,,,\"801123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RO\",40,\"00\",\"0\",\" int \",,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:37\\\\d|80[578])\\\\d{6}\",,,,\"372123456\",,,[9]],,,[,,,,,,,,,[-1]]],RS:[,[,,\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",,,,,,,[6,7,8,9,10,11,12],[4,5]],[,,\"(?:11[1-9]\\\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\\\d))\\\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\\\d{4,9}\",\n,,,\"10234567\",,,[7,8,9,10,11,12],[4,5,6]],[,,\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\",,,,\"601234567\",,,[8,9,10]],[,,\"800\\\\d{3,9}\",,,,\"80012345\"],[,,\"(?:78\\\\d|90[0169])\\\\d{3,7}\",,,,\"90012345\",,,[6,7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RS\",381,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"7[06]\\\\d{4,10}\",,,,\"700123456\"],,,[,,,,,,,,,[-1]]],RU:[,[,,\"8\\\\d{13}|[347-9]\\\\d{9}\",\n,,,,,,[10,14],[7]],[,,\"336(?:[013-9]\\\\d|2[013-9])\\\\d{5}|(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15-7]|6[0-35-79]|7[1-37-9]))\\\\d{7}\",,,,\"3011234567\",,,[10],[7]],[,,\"9\\\\d{9}\",,,,\"9123456789\",,,[10]],[,,\"8(?:0[04]|108\\\\d{3})\\\\d{7}\",,,,\"8001234567\"],[,,\"80[39]\\\\d{7}\",,,,\"8091234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"808\\\\d{7}\",,,,\"8081234567\",,,[10]],[,,,,,,,,,[-1]],\"RU\",7,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1-$2-$3\",[\"[0-79]\"]],[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",,1],[,\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\n\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",,1],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],[[,\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",,1],[,\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\n\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",,1],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],[,,\n,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RW:[,[,,\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",,,,,,,[8,9]],[,,\"(?:06|2[23568]\\\\d)\\\\d{6}\",,,,\"250123456\"],[,,\"7[237-9]\\\\d{7}\",,,,\"720123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"900\\\\d{6}\",,,,\"900123456\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"RW\",250,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",\n[\"[7-9]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SA:[,[,,\"(?:[15]\\\\d|800|92)\\\\d{7}\",,,,,,,[9,10],[7]],[,,\"1(?:1\\\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\\\d{6}\",,,,\"112345678\",,,[9],[7]],[,,\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-8])\\\\d{6}\",,,,\"512345678\",,,[9]],[,,\"800\\\\d{7}\",,,,\"8001234567\",,,[10]],[,,\"925\\\\d{6}\",,,,\"925012345\",,,[9]],[,,\"920\\\\d{6}\",,,,\"920012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SA\",966,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",\n[\"9\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SB:[,[,,\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",,,,,,,[5,7]],[,,\"(?:1[4-79]|[23]\\\\d|4[0-2]|5[03]|6[0-37])\\\\d{3}\",,,,\"40123\",,,[5]],[,,\"48\\\\d{3}|(?:(?:6[89]|7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\",,,,\"7421234\"],[,,\"1[38]\\\\d{3}\",,\n,,\"18123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[12]\\\\d{3}\",,,,\"51123\",,,[5]],\"SB\",677,\"0[01]\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SC:[,[,,\"(?:[2489]\\\\d|64)\\\\d{5}\",,,,,,,[7]],[,,\"4[2-46]\\\\d{5}\",,,,\"4217123\"],[,,\"2[125-8]\\\\d{5}\",,,,\"2510123\"],[,,\"800[08]\\\\d{3}\",,,,\"8000000\"],[,,\"85\\\\d{5}\",,,,\"8512345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"971\\\\d{4}|(?:64|95)\\\\d{5}\",,,,\n\"6412345\"],\"SC\",248,\"010|0[0-2]\",,,,,,\"00\",,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SD:[,[,,\"[19]\\\\d{8}\",,,,,,,[9]],[,,\"1(?:5\\\\d|8[35-7])\\\\d{6}\",,,,\"153123456\"],[,,\"(?:1[0-2]|9[0-3569])\\\\d{7}\",,,,\"911231234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SD\",249,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],,,[,,,,,,,,,[-1]]],SE:[,[,,\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",,,,,,,[6,7,8,9,10,12]],[,,\"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}\",\n,,,\"8123456\",,,[7,8,9]],[,,\"7[02369]\\\\d{7}\",,,,\"701234567\",,,[9]],[,,\"20\\\\d{4,7}\",,,,\"20123456\",,,[6,7,8,9]],[,,\"649\\\\d{6}|99[1-59]\\\\d{4}(?:\\\\d{3})?|9(?:00|39|44)[1-8]\\\\d{3,6}\",,,,\"9001234567\",,,[7,8,9,10]],[,,\"77[0-7]\\\\d{6}\",,,,\"771234567\",,,[9]],[,,\"75[1-8]\\\\d{6}\",,,,\"751234567\",,,[9]],[,,,,,,,,,[-1]],\"SE\",46,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\n\"0$1\"],[,\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1-$2 $3 $4\",[\"8\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\"]],[[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1 $2 $3\",[\"20\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"9(?:00|39|44|9)\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"]],[,\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1 $2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]],[,\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1 $2 $3\",[\"9(?:00|39|44)\"]],[,\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"10|7\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]\"]]],[,,\"74[02-9]\\\\d{6}\",,,,\"740123456\",,,[9]],,,[,,,,,,,,,[-1]],[,,\"10[1-8]\\\\d{6}\",,,,\"102345678\",,,[9]],,,[,,\"(?:25[245]|67[3-68])\\\\d{9}\",,,,\"254123456789\",,,[12]]],SG:[,[,,\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",,,,,,,[8,10,11]],[,,\"662[0-24-9]\\\\d{4}|6(?:[0-578]\\\\d|6[013-57-9]|9[0-35-9])\\\\d{5}\",\n,,,\"61234567\",,,[8]],[,,\"89(?:8[02-9]|90)\\\\d{4}|(?:8(?:0[1-9]|[1-8]\\\\d|9[0-7])|9[0-8]\\\\d)\\\\d{5}\",,,,\"81234567\",,,[8]],[,,\"(?:18|8)00\\\\d{7}\",,,,\"18001234567\",,,[10,11]],[,,\"1900\\\\d{7}\",,,,\"19001234567\",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:3[12]\\\\d|666)\\\\d{5}\",,,,\"31234567\",,,[8]],\"SG\",65,\"0[0-3]\\\\d\",,,,,,,,[[,\"(\\\\d{4,5})\",\"$1\",[\"1[013-9]|77\",\"1(?:[013-8]|9(?:0[1-9]|[1-9]))|77\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\n\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"7000\\\\d{7}\",,,,\"70001234567\",,,[11]],,,[,,,,,,,,,[-1]]],SH:[,[,,\"(?:[256]\\\\d|8)\\\\d{3}\",,,,,,,[4,5]],[,,\"2(?:[0-57-9]\\\\d|6[4-9])\\\\d\\\\d\",,,,\"22158\"],[,,\"[56]\\\\d{4}\",,,,\"51234\",,,[5]],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"262\\\\d\\\\d\",,,,\"26212\",,,[5]],\"SH\",290,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],1,\"[256]\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SI:[,[,,\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",,,,,,,[5,6,7,8]],[,,\"(?:[1-357][2-8]|4[24-8])\\\\d{6}\",,,,\"12345678\",,,[8],[7]],[,,\"65(?:[178]\\\\d|5[56]|6[01])\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\",,,,\"31234567\",,,[8]],[,,\"80\\\\d{4,6}\",,,,\"80123456\",,,[6,7,8]],[,,\"89[1-3]\\\\d{2,5}|90\\\\d{4,6}\",,,,\"90123456\"],[,,,,,,,,,[-1]],\n[,,,,,,,,,[-1]],[,,\"(?:59\\\\d\\\\d|8(?:1(?:[67]\\\\d|8[0-589])|2(?:0\\\\d|2[0-37-9]|8[0-2489])|3[389]\\\\d))\\\\d{4}\",,,,\"59012345\",,,[8]],\"SI\",386,\"00|10(?:22|66|88|99)\",\"0\",,,\"0\",,\"00\",,[[,\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SJ:[,[,,\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",\n,,,,,,[5,8]],[,,\"79\\\\d{6}\",,,,\"79123456\",,,[8]],[,,\"(?:4[015-8]|9\\\\d)\\\\d{6}\",,,,\"41234567\",,,[8]],[,,\"80[01]\\\\d{5}\",,,,\"80012345\",,,[8]],[,,\"82[09]\\\\d{5}\",,,,\"82012345\",,,[8]],[,,\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",,,,\"81021234\",,,[8]],[,,\"880\\\\d{5}\",,,,\"88012345\",,,[8]],[,,\"85[0-5]\\\\d{5}\",,,,\"85012345\",,,[8]],\"SJ\",47,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"79\",[,,,,,,,,,[-1]],[,,\"(?:0[235-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\",,,,\"02000\"],,,[,,\"81[23]\\\\d{5}\",,,,\"81212345\",,,[8]]],SK:[,[,,\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",\n,,,,,,[6,7,9]],[,,\"(?:2(?:16|[2-9]\\\\d{3})|(?:(?:[3-5][1-8]\\\\d|819)\\\\d|601[1-5])\\\\d)\\\\d{4}|(?:2|[3-5][1-8])1[67]\\\\d{3}|[3-5][1-8]16\\\\d\\\\d\",,,,\"221234567\"],[,,\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\",,,,\"912123456\",,,[9]],[,,\"800\\\\d{6}\",,,,\"800123456\",,,[9]],[,,\"9(?:00|[78]\\\\d)\\\\d{6}\",,,,\"900123456\",,,[9]],[,,\"8[5-9]\\\\d{7}\",,,,\"850123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"6(?:02|5[0-4]|9[0-6])\\\\d{6}\",,,,\"690123456\",,,[9]],\"SK\",421,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",\n[\"21\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"909\",\"9090\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],[[,\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\n\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],[,,\"9090\\\\d{3}\",,,,\"9090123\",,,[7]],,,[,,\"9090\\\\d{3}|(?:602|8(?:00|[5-9]\\\\d)|9(?:00|[78]\\\\d))\\\\d{6}\",,,,,,,[7,9]],[,,\"96\\\\d{7}\",,,,\"961234567\",,,[9]],,,[,,,,,,,,,[-1]]],SL:[,[,,\"(?:[237-9]\\\\d|66)\\\\d{6}\",,,,,,,[8],[6]],[,,\"22[2-4][2-9]\\\\d{4}\",,,,\"22221234\",,,,[6]],[,,\"(?:25|3[0-5]|66|7[1-9]|8[08]|9[09])\\\\d{6}\",,,,\"25123456\"],[,,,,,,,,,[-1]],[,,,,,\n,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SL\",232,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SM:[,[,,\"(?:0549|[5-7]\\\\d)\\\\d{6}\",,,,,,,[8,10],[6]],[,,\"0549(?:8[0157-9]|9\\\\d)\\\\d{4}\",,,,\"0549886377\",,,[10],[6]],[,,\"6[16]\\\\d{6}\",,,,\"66661212\",,,[8]],[,,,,,,,,,[-1]],[,,\"7[178]\\\\d{6}\",,,,\"71123456\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"5[158]\\\\d{6}\",,,,\"58001110\",,,[8]],\"SM\",378,\"00\",,,\n,\"([89]\\\\d{5})$\",\"0549$1\",,,[[,\"(\\\\d{6})\",\"$1\",[\"[89]\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SN:[,[,,\"(?:[378]\\\\d|93)\\\\d{7}\",,,,,,,[9]],[,,\"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\\\d{5}\",,,,\"301012345\"],[,,\"7(?:[015-8]\\\\d|21|90)\\\\d{6}\",,,,\"701234567\"],[,,\"800\\\\d{6}\",\n,,,\"800123456\"],[,,\"88[4689]\\\\d{6}\",,,,\"884123456\"],[,,\"81[02468]\\\\d{6}\",,,,\"810123456\"],[,,,,,,,,,[-1]],[,,\"(?:3(?:392|9[01]\\\\d)\\\\d|93(?:3[13]0|929))\\\\d{4}\",,,,\"933301234\"],\"SN\",221,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SO:[,[,,\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",,,,,,,[6,7,8,9]],[,,\"(?:1\\\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\\\d{5}|(?:[134]\\\\d|8[125])\\\\d{4}\",\n,,,\"4012345\",,,[6,7]],[,,\"(?:(?:15|(?:3[59]|4[89]|6\\\\d|7[679]|8[08])\\\\d|9(?:0\\\\d|[2-9]))\\\\d|2(?:4\\\\d|8))\\\\d{5}|(?:[67]\\\\d\\\\d|904)\\\\d{5}\",,,,\"71123456\",,,[7,8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SO\",252,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[,\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[,\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[,\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],\n[,\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SR:[,[,,\"(?:[2-5]|[6-8]\\\\d|90)\\\\d{5}\",,,,,,,[6,7]],[,,\"(?:2[1-3]|3[0-7]|4\\\\d|5[2-58])\\\\d{4}\",,,,\"211234\",,,[6]],[,,\"(?:6[08]|7[124-7]|8[1-9])\\\\d{5}\",,,,\"7412345\",,,[7]],[,,\"80\\\\d{5}\",,,,\"8012345\",,,[7]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"56\\\\d{4}\",,,,\"561234\",,,[6]],\"SR\",597,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],\n[,\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SS:[,[,,\"[19]\\\\d{8}\",,,,,,,[9]],[,,\"1[89]\\\\d{7}\",,,,\"181234567\"],[,,\"(?:12|9[1257-9])\\\\d{7}\",,,,\"977123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SS\",211,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ST:[,[,\n,\"(?:22|9\\\\d)\\\\d{5}\",,,,,,,[7]],[,,\"22\\\\d{5}\",,,,\"2221234\"],[,,\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\",,,,\"9812345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"ST\",239,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SV:[,[,,\"[25-7]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",,,,,,,[7,8,11]],[,,\"2(?:79(?:0[0347-9]|[1-9]\\\\d)|89(?:0[024589]|[1-9]\\\\d))\\\\d{3}|2(?:[1-69]\\\\d|[78][0-8])\\\\d{5}\",,,\n,\"21234567\",,,[8]],[,,\"(?:5(?:00[0-4]|100)|[67]\\\\d{3})\\\\d{4}\",,,,\"70123456\",,,[8]],[,,\"800\\\\d{8}|80[01]\\\\d{4}\",,,,\"8001234\",,,[7,11]],[,,\"900\\\\d{4}(?:\\\\d{4})?\",,,,\"9001234\",,,[7,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SV\",503,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[25-7]\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SX:[,[,,\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,\n,,,,,[10],[7]],[,,\"7215(?:4[2-8]|8[239]|9[056])\\\\d{4}\",,,,\"7215425678\",,,,[7]],[,,\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\",,,,\"7215205678\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002123456\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002123456\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"SX\",1,\"011\",\"1\",,,\"(5\\\\d{6})$|1\",\"721$1\",,,,,[,,,,,,,,,[-1]],,\"721\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SY:[,[,,\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",,,,,,,[8,9],[6,7]],[,,\"21\\\\d{6,7}|(?:1(?:[14]\\\\d|[2356])|2[235]|3(?:[13]\\\\d|4)|4[134]|5[1-3])\\\\d{6}\",,,,\"112345678\",,,,[6,7]],[,,\"(?:50|9[1-9])\\\\d{7}\",,,,\"944567890\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"SY\",963,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\n\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SZ:[,[,,\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",,,,,,,[8,9]],[,,\"[23][2-5]\\\\d{6}\",,,,\"22171234\",,,[8]],[,,\"7[5-9]\\\\d{6}\",,,,\"76123456\",,,[8]],[,,\"0800\\\\d{4}\",,,,\"08001234\",,,[8]],[,,\"900\\\\d{6}\",,,,\"900012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"70\\\\d{6}\",,,,\"70012345\",,,[8]],\"SZ\",268,\"00\",,,,,,,,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],\n[,\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]],,[,,,,,,,,,[-1]],,,[,,\"0800\\\\d{4}\",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TA:[,[,,\"8\\\\d{3}\",,,,,,,[4]],[,,\"8\\\\d{3}\",,,,\"8999\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TA\",290,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"8\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TC:[,[,,\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"649(?:266|712|9(?:4\\\\d|50))\\\\d{4}\",,,,\"6497121234\",,,,[7]],[,,\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\",\n,,,\"6492311234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"649(?:71[01]|966)\\\\d{4}\",,,,\"6497101234\",,,,[7]],\"TC\",1,\"011\",\"1\",,,\"([2-479]\\\\d{6})$|1\",\"649$1\",,,,,[,,,,,\n,,,,[-1]],,\"649\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TD:[,[,,\"(?:22|30|[689]\\\\d|77)\\\\d{6}\",,,,,,,[8]],[,,\"22(?:[37-9]0|5[0-5]|6[89])\\\\d{4}\",,,,\"22501234\"],[,,\"(?:30|[69]\\\\d|77|8[5-7])\\\\d{6}\",,,,\"63012345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TD\",235,\"00|16\",,,,,,\"00\",,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[236-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TG:[,[,,\"[279]\\\\d{7}\",,,,,,,[8]],[,,\n\"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\\\d{5}\",,,,\"22212345\"],[,,\"(?:7[0-29]|9[0-36-9])\\\\d{6}\",,,,\"90112345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TG\",228,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TH:[,[,,\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",,,,,,,[8,9,10,13]],[,,\"(?:1[0689]|2\\\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\\\d{6}\",,,,\"21234567\",,,[8]],[,,\"67(?:1[0-8]|2[4-7])\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\",\n,,,\"812345678\",,,[9]],[,,\"(?:001800\\\\d|1800)\\\\d{6}\",,,,\"1800123456\",,,[10,13]],[,,\"1900\\\\d{6}\",,,,\"1900123456\",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"6[08]\\\\d{7}\",,,,\"601234567\",,,[9]],\"TH\",66,\"00[1-9]\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TJ:[,[,,\"(?:[0-57-9]\\\\d|66)\\\\d{7}\",,,,,,,[9],[3,5,6,\n7]],[,,\"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\\\d{6}\",,,,\"372123456\",,,,[3,5,6,7]],[,,\"(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\\\d{6}|(?:[09]\\\\d|1[0-27-9]|2[0-27]|3[08]|40|5[05]|66|7[01578]|8[078])\\\\d{7}\",,,,\"917123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TJ\",992,\"810\",,,,,,\"8~10\",,[[,\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[,\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",\n[\"3(?:[1245]|3[12])\"]],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"\\\\d\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TK:[,[,,\"[2-47]\\\\d{3,6}\",,,,,,,[4,5,6,7]],[,,\"(?:2[2-4]|[34]\\\\d)\\\\d{2,5}\",,,,\"3101\"],[,,\"7[2-4]\\\\d{2,5}\",,,,\"7290\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TK\",690,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TL:[,[,,\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",,,,,,,[7,8]],[,,\"(?:2[1-5]|3[1-9]|4[1-4])\\\\d{5}\",\n,,,\"2112345\",,,[7]],[,,\"7[2-8]\\\\d{6}\",,,,\"77212345\",,,[8]],[,,\"80\\\\d{5}\",,,,\"8012345\",,,[7]],[,,\"90\\\\d{5}\",,,,\"9012345\",,,[7]],[,,,,,,,,,[-1]],[,,\"70\\\\d{5}\",,,,\"7012345\",,,[7]],[,,,,,,,,,[-1]],\"TL\",670,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TM:[,[,,\"(?:[1-6]\\\\d|71)\\\\d{6}\",,,,,,,[8]],[,,\"(?:1(?:2\\\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\\\d{5}\",\n,,,\"12345678\"],[,,\"(?:6\\\\d|71)\\\\d{6}\",,,,\"66123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TM\",993,\"810\",\"8\",,,\"8\",,\"8~10\",,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[,\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TN:[,[,,\"[2-57-9]\\\\d{7}\",,,,,,,[8]],[,,\"81200\\\\d{3}|(?:3[0-2]|7\\\\d)\\\\d{6}\",,,,\"30010123\"],\n[,,\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-8])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\",,,,\"20123456\"],[,,\"8010\\\\d{4}\",,,,\"80101234\"],[,,\"88\\\\d{6}\",,,,\"88123456\"],[,,\"8[12]10\\\\d{4}\",,,,\"81101234\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TN\",216,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TO:[,[,,\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",,,,,,,[5,7]],[,,\"(?:2\\\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\\\d{3}\",\n,,,\"20123\",,,[5]],[,,\"(?:5(?:4[0-5]|5[4-6])|6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\",,,,\"7715123\",,,[7]],[,,\"0800\\\\d{3}\",,,,\"0800222\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"55[0-37-9]\\\\d{4}\",,,,\"5510123\",,,[7]],\"TO\",676,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[,\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TR:[,[,,\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",\n,,,,,,[7,10,12,13]],[,,\"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\\\d{7}\",,,,\"2123456789\",,,[10]],[,,\"561(?:011|61\\\\d)\\\\d{4}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\",,,,\"5012345678\",,,[10]],[,,\"8(?:00\\\\d{7}(?:\\\\d{2,3})?|11\\\\d{7})\",,,,\"8001234567\",,,[10,12,13]],[,,\"(?:8[89]8|900)\\\\d{7}\",,,,\"9001234567\",,,[10]],[,,,,,,,,,[-1]],[,,\"592(?:21[12]|461)\\\\d{4}\",,,,\"5922121234\",,,[10]],[,,\"850\\\\d{7}\",,,,\"8500123456\",\n,,[10]],\"TR\",90,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d)(\\\\d{3})\",\"$1 $2 $3\",[\"444\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",,1]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\n\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",,1]],[,,\"512\\\\d{7}\",,,,\"5123456789\",,,[10]],,,[,,\"(?:444|811\\\\d{3})\\\\d{4}\",,,,,,,[7,10]],[,,\"444\\\\d{4}\",,,,\"4441444\",,,[7]],,,[,,,,,,,,,[-1]]],TT:[,[,,\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"868(?:2(?:01|1[5-9]|[23]\\\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\\\d|7[0-79])|82[124])\\\\d{4}\",\n,,,\"8682211234\",,,,[7]],[,,\"868(?:(?:2[5-9]|3\\\\d)\\\\d|4(?:3[0-6]|[6-9]\\\\d)|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\",,,,\"8682911234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,\n,,\"5002345678\"],[,,,,,,,,,[-1]],\"TT\",1,\"011\",\"1\",,,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",,,,,[,,,,,,,,,[-1]],,\"868\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"868619\\\\d{4}\",,,,\"8686191234\",,,,[7]]],TV:[,[,,\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",,,,,,,[5,6,7]],[,,\"2[02-9]\\\\d{3}\",,,,\"20123\",,,[5]],[,,\"(?:7[01]\\\\d|90)\\\\d{4}\",,,,\"901234\",,,[6,7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"TV\",688,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[,\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[,\"(\\\\d{2})(\\\\d{5})\",\n\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TW:[,[,,\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",,,,,,,[7,8,9,10,11]],[,,\"(?:2[2-8]\\\\d|370|55[01]|7[1-9])\\\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\\\d)|1[023]\\\\d)\\\\d{4,5}|(?:[239]\\\\d\\\\d|4(?:0[56]|12|49))\\\\d{5})|6(?:[01]\\\\d{7}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|8(?:(?:2(?:3\\\\d|4[0-269]|[578]0|66)|36[24-9]|90\\\\d\\\\d)\\\\d{4}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|(?:2(?:2(?:0\\\\d\\\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\\\d|1[0-4])|(?:4\\\\d|5[0-49]|6[0-29]|7[0-5])\\\\d)\\\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\\\d\\\\d|4(?:2(?:[089]\\\\d|7[1-9])|(?:3[0-4]|[78]\\\\d|9[01])\\\\d))\\\\d)\\\\d{3}\",\n,,,\"221234567\",,,[8,9]],[,,\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\",,,,\"912345678\",,,[9]],[,,\"80[0-79]\\\\d{6}|800\\\\d{5}\",,,,\"800123456\",,,[8,9]],[,,\"20(?:[013-9]\\\\d\\\\d|2)\\\\d{4}\",,,,\"203123456\",,,[7,9]],[,,,,,,,,,[-1]],[,,\"99\\\\d{7}\",,,,\"990123456\",,,[9]],[,,\"7010(?:[0-2679]\\\\d|3[0-7]|8[0-5])\\\\d{5}|70\\\\d{8}\",,,,\"7012345678\",,,[10,11]],\"TW\",886,\"0(?:0[25-79]|19)\",\"0\",\"#\",,\"0\",,,,[[,\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"50[0-46-9]\\\\d{6}\",,,,\"500123456\",,,[9]],,,[,,,,,,,,,[-1]]],TZ:[,[,,\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",,,,,,,[9]],[,,\"2[2-8]\\\\d{7}\",,,,\"222345678\"],[,,\"(?:6[1-35-9]|7[13-9])\\\\d{7}\",,,,\"621234567\"],[,,\"80[08]\\\\d{6}\",,,,\"800123456\"],[,,\"90\\\\d{7}\",,,,\"900123456\"],\n[,,\"8(?:40|6[01])\\\\d{6}\",,,,\"840123456\"],[,,,,,,,,,[-1]],[,,\"41\\\\d{7}\",,,,\"412345678\"],\"TZ\",255,\"00[056]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,\"(?:8(?:[04]0|6[01])|90\\\\d)\\\\d{6}\"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UA:[,[,,\"[89]\\\\d{9}|[3-9]\\\\d{8}\",,,,,,,[9,10],[5,6,7]],[,,\"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\\\d{7}\",\n,,,\"311234567\",,,[9],[5,6,7]],[,,\"790\\\\d{6}|(?:39|50|6[36-8]|7[1-357]|9[1-9])\\\\d{7}\",,,,\"501234567\",,,[9]],[,,\"800[1-8]\\\\d{5,6}\",,,,\"800123456\"],[,,\"900[239]\\\\d{5,6}\",,,,\"900212345\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"89[1-579]\\\\d{6}\",,,,\"891234567\",,,[9]],\"UA\",380,\"00\",\"0\",,,\"0\",,\"0~0\",,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{5})\",\n\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UG:[,[,,\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",,,,,,,[9],[5,6,7]],[,,\"20(?:(?:240|30[67])\\\\d|6(?:00[0-2]|30[0-4]))\\\\d{3}|(?:20(?:[017]\\\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\\\d{3})\\\\d{5}\",\n,,,\"312345678\",,,,[5,6,7]],[,,\"72[48]0\\\\d{5}|7(?:[014-8]\\\\d|2[0167]|3[06]|9[0-2589])\\\\d{6}\",,,,\"712345678\"],[,,\"800[1-3]\\\\d{5}\",,,,\"800123456\"],[,,\"90[1-3]\\\\d{6}\",,,,\"901123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UG\",256,\"00[057]\",\"0\",,,\"0\",,,,[[,\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],US:[,[,,\"[2-9]\\\\d{9}|3\\\\d{6}\",\n,,,,,,[10],[7]],[,,\"3052(?:0[0-8]|[1-9]\\\\d)\\\\d{4}|(?:2742|305[3-9])\\\\d{6}|(?:472|983)[2-47-9]\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\\\d{6}\",\n,,,\"2015550123\",,,,[7]],[,,\"3052(?:0[0-8]|[1-9]\\\\d)\\\\d{4}|(?:2742|305[3-9])\\\\d{6}|(?:472|983)[2-47-9]\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\\\d{6}\",\n,,,\"2015550123\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,\"305209\\\\d{4}\",,,,\"3052090123\",,,,[7]],\"US\",1,\"011\",\"1\",,,\"1\",,,1,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],,,1],\n[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[24-9]|3(?:[02-9]|1[1-9])\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],,,1]],[[,\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],,,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-9]\"]]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UY:[,[,,\"0004\\\\d{2,9}|[1249]\\\\d{7}|2\\\\d{3,4}|(?:[49]\\\\d|80)\\\\d{5}\",,,,,,,[4,5,6,7,8,9,10,11,12,13]],[,,\"(?:1(?:770|9(?:20|[89]7))|(?:2\\\\d|4[2-7])\\\\d\\\\d)\\\\d{4}\",,,,\"21231234\",,,[8],[7]],[,,\"9[1-9]\\\\d{6}\",,,,\"94231234\",,\n,[8]],[,,\"0004\\\\d{2,9}|(?:405|80[05])\\\\d{4}\",,,,\"8001234\",,,[6,7,8,9,10,11,12,13]],[,,\"90[0-8]\\\\d{4}\",,,,\"9001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UY\",598,\"0(?:0|1[3-9]\\\\d)\",\"0\",\" int. \",,\"0\",,\"00\",,[[,\"(\\\\d{4,5})\",\"$1\",[\"21\"]],[,\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\n\"$1 $2 $3 $4\",[\"0\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"21\\\\d{2,3}\",,,,\"21123\",,,[4,5]],,,[,,,,,,,,,[-1]]],UZ:[,[,,\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",,,,,,,[9]],[,,\"(?:55\\\\d\\\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|[69]\\\\d\\\\d|7(?:[23]\\\\d|7[69]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|[168]\\\\d\\\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\\\d{5}\",,,,\"669050123\"],\n[,,\"(?:(?:[25]0|33|8[078]|9[0-57-9])\\\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079])))|7(?:[07]\\\\d{3}|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\",\n,,,\"912345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"UZ\",998,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VA:[,[,,\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",,,,,,,[6,7,8,9,10,11,12]],[,,\"06698\\\\d{1,6}\",,,,\"0669812345\",,,[6,7,8,9,10,11]],[,,\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",,,,\"3123456789\",,,[9,10]],[,,\"80(?:0\\\\d{3}|3)\\\\d{3}\",\n,,,\"800123456\",,,[6,9]],[,,\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",,,,\"899123456\",,,[6,8,9,10]],[,,\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",,,,\"848123456\",,,[6,9]],[,,\"1(?:78\\\\d|99)\\\\d{6}\",,,,\"1781234567\",,,[9,10]],[,,\"55\\\\d{8}\",,,,\"5512345678\",,,[10]],\"VA\",39,\"00\",,,,,,,,,,[,,,,,,,,,[-1]],,\"06698\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"3[2-8]\\\\d{9,10}\",,,,\"33101234501\",,,[11,12]]],VC:[,[,,\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",,,,,,,[10],[7]],\n[,,\"784(?:266|3(?:6[6-9]|7\\\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\\\d{4}\",,,,\"7842661234\",,,,[7]],[,,\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\",,,,\"7844301234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,\"78451[0-2]\\\\d{4}\",,,,\"7845101234\",,,,[7]],\"VC\",1,\"011\",\"1\",,,\"([2-7]\\\\d{6})$|1\",\"784$1\",,,,,[,,,,,,,,,[-1]],,\"784\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VE:[,[,,\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",,,,,,,[10],[7]],[,,\"(?:2(?:12|3[457-9]|[467]\\\\d|[58][1-9]|9[1-6])|[4-6]00)\\\\d{7}\",,,,\"2121234567\",,,,[7]],[,,\"4(?:1[24-8]|2[246])\\\\d{7}\",,,,\"4121234567\"],[,,\"800\\\\d{7}\",,,,\"8001234567\"],[,,\"90[01]\\\\d{7}\",,,,\"9001234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n\"VE\",58,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\",\"$CC $1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"501\\\\d{7}\",,,,\"5010123456\",,,,[7]],,,[,,,,,,,,,[-1]]],VG:[,[,,\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",,,,,,,[10],[7]],[,,\"284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\\\d{4}\",,,,\"2842291234\",,,,[7]],[,,\"284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\\\d{4}\",,,,\"2843001234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",\n,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VG\",1,\"011\",\"1\",,,\"([2-578]\\\\d{6})$|1\",\"284$1\",,,,,[,,,,,,,,,[-1]],,\"284\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VI:[,[,,\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",,,,,,,[10],[7]],[,,\"340(?:2(?:0\\\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\",\n,,,\"3406421234\",,,,[7]],[,,\"340(?:2(?:0\\\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\",,,,\"3406421234\",,,,[7]],[,,\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",,,,\"8002345678\"],[,,\"900[2-9]\\\\d{6}\",,,,\"9002345678\"],[,,,,,,,,,[-1]],[,,\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\",\n,,,\"5002345678\"],[,,,,,,,,,[-1]],\"VI\",1,\"011\",\"1\",,,\"([2-9]\\\\d{6})$|1\",\"340$1\",,1,,,[,,,,,,,,,[-1]],,\"340\",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VN:[,[,,\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",,,,,,,[7,8,9,10]],[,,\"2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\\\d{7}\",,,,\"2101234567\",,,[10]],[,,\"(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\\\d{6}|(?:3\\\\d|5[1689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\",,,,\"912345678\",,,[9]],[,,\"1800\\\\d{4,6}|12(?:0[13]|28)\\\\d{4}\",\n,,,\"1800123456\",,,[8,9,10]],[,,\"1900\\\\d{4,6}\",,,,\"1900123456\",,,[8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"672\\\\d{6}\",,,,\"672012345\",,,[9]],\"VN\",84,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[17]99\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"69\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],,,1],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"2[48]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",,1]],[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",,1],[,\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],,,1],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",,1],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",,1],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",,1]],[,,,,,,,,,[-1]],,,[,,\"[17]99\\\\d{4}|69\\\\d{5,6}\",,,,,,,[7,8]],[,,\"(?:[17]99|80\\\\d)\\\\d{4}|69\\\\d{5,6}\",\n,,,\"1992000\",,,[7,8]],,,[,,,,,,,,,[-1]]],VU:[,[,,\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",,,,,,,[5,7]],[,,\"(?:38[0-8]|48[4-9])\\\\d\\\\d|(?:2[02-9]|3[4-7]|88)\\\\d{3}\",,,,\"22123\",,,[5]],[,,\"(?:[58]\\\\d|7[013-7])\\\\d{5}\",,,,\"5912345\",,,[7]],[,,\"81[18]\\\\d\\\\d\",,,,\"81123\",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:0[1-9]|1[01])\\\\d{4}\",,,,\"9010123\",,,[7]],\"VU\",678,\"00\",,,,,,,,[[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"(?:3[03]|900\\\\d)\\\\d{3}\",,,,\"30123\"],,\n,[,,,,,,,,,[-1]]],WF:[,[,,\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",,,,,,,[6,9]],[,,\"72\\\\d{4}\",,,,\"721234\",,,[6]],[,,\"(?:72|8[23])\\\\d{4}\",,,,\"821234\",,,[6]],[,,\"80[0-5]\\\\d{6}\",,,,\"800012345\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9[23]\\\\d{4}\",,,,\"921234\",,,[6]],\"WF\",681,\"00\",,,,,,,,[[,\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[,\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"[48]0\\\\d{4}\",,,,\"401234\",,,[6]]],WS:[,\n[,,\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",,,,,,,[5,6,7,10]],[,,\"6[1-9]\\\\d{3}|(?:[2-5]|60)\\\\d{4}\",,,,\"22123\",,,[5,6]],[,,\"(?:7[1-35-8]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\",,,,\"7212345\",,,[7,10]],[,,\"800\\\\d{3}\",,,,\"800123\",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"WS\",685,\"0\",,,,,,,,[[,\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[,\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],XK:[,\n[,,\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",,,,,,,[8,9,10,11,12]],[,,\"38\\\\d{6,10}|(?:2[89]|39)(?:0\\\\d{5,6}|[1-9]\\\\d{5})\",,,,\"28012345\"],[,,\"4[3-9]\\\\d{6}\",,,,\"43201234\",,,[8]],[,,\"800\\\\d{5}\",,,,\"80001234\",,,[8]],[,,\"900\\\\d{5}\",,,,\"90001234\",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"XK\",383,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7,10})\",\n\"$1 $2\",[\"3\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YE:[,[,,\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",,,,,,,[7,8,9],[6]],[,,\"78[0-7]\\\\d{4}|17\\\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\\\d{5}\",,,,\"1234567\",,,[7,8],[6]],[,,\"7[01378]\\\\d{7}\",,,,\"712345678\",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"YE\",967,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\n\"$1 $2 $3\",[\"7\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YT:[,[,,\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",,,,,,,[9]],[,,\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\",,,,\"269601234\"],[,,\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\",,,,\"639012345\"],[,,\"80\\\\d{7}\",,,,\"801234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\",,,,\"939801234\"],\"YT\",262,\"00\",\"0\",,,\"0\",,,,,,[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZA:[,[,,\"[1-79]\\\\d{8}|8\\\\d{4,9}\",,,,,,,[5,6,7,8,9,10]],[,,\"(?:2(?:0330|4302)|52087)0\\\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\\\d|5[1346-8])\\\\d{7}\",,,,\"101234567\",,,[9]],[,,\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:50[0-2]|[67]\\\\d\\\\d)\\\\d\\\\d|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\",\n,,,\"711234567\",,,[5,6,7,8,9]],[,,\"80\\\\d{7}\",,,,\"801234567\",,,[9]],[,,\"(?:86[2-9]|9[0-2]\\\\d)\\\\d{6}\",,,,\"862345678\",,,[9]],[,,\"860\\\\d{6}\",,,,\"860123456\",,,[9]],[,,,,,,,,,[-1]],[,,\"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\\\d)\\\\d{5}\",,,,\"871234567\",,,[9]],\"ZA\",27,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\n\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"861\\\\d{6,7}\",,,,\"861123456\",,,[9,10]],,,[,,,,,,,,,[-1]]],ZM:[,[,,\"800\\\\d{6}|(?:21|[579]\\\\d|63)\\\\d{7}\",,,,,,,[9],[6]],[,,\"21[1-8]\\\\d{6}\",,,,\"211234567\",,,,[6]],[,,\"(?:[59][5-8]|7[5-9])\\\\d{7}\",,,,\"955123456\"],[,,\"800\\\\d{6}\",,,,\"800123456\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"63\\\\d{7}\",,,,\"630123456\"],\"ZM\",260,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[1-9]\"]],\n[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZW:[,[,,\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",,,,,,,[5,6,7,8,9,10],[3,4]],[,,\"(?:1(?:(?:3\\\\d|9)\\\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\\\d\\\\d|[56](?:[14]\\\\d\\\\d|20)|7(?:[089]|2[03]|[35]\\\\d\\\\d))\\\\d|4(?:2\\\\d\\\\d|8))\\\\d|1(?:2|[39]\\\\d{4}))|3(?:(?:123|(?:29\\\\d|92)\\\\d)\\\\d\\\\d|7(?:[19]|[56]\\\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\\\d{3}|83)|5(?:25\\\\d\\\\d|[78])|[689]\\\\d)|6(?:(?:[16-8]21|28|52[013])\\\\d\\\\d|[39])|8(?:[1349]28|523)\\\\d\\\\d)\\\\d{3}|(?:4\\\\d\\\\d|9[2-9])\\\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\\\d|7[1-7])\\\\d|2(?:[278]\\\\d|92)|58(?:2\\\\d|3))|3(?:[26]|9\\\\d{3})|5(?:4\\\\d|5)\\\\d\\\\d)\\\\d|6(?:(?:(?:[0-246]|[78]\\\\d)\\\\d|37)\\\\d|5[2-8]))\\\\d\\\\d|(?:2(?:[569]\\\\d|8[2-57-9])|3(?:[013-59]\\\\d|8[37])|6[89]8)\\\\d{3}\",\n,,,\"1312345\",,,,[3,4]],[,,\"7(?:[1278]\\\\d|3[1-9])\\\\d{6}\",,,,\"712345678\",,,[9]],[,,\"80(?:[01]\\\\d|20|8[0-8])\\\\d{3}\",,,,\"8001234\",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"86(?:1[12]|22|30|44|55|77|8[368])\\\\d{6}\",,,,\"8686123456\",,,[10]],\"ZW\",263,\"00\",\"0\",,,\"0\",,,,[[,\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[,\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],\n[,\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[,\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\n\"0$1\"],[,\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[,\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],800:[,[,,\"(?:00|[1-9]\\\\d)\\\\d{6}\",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:00|[1-9]\\\\d)\\\\d{6}\",,,,\"12345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",800,,,,,,,,1,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\n,,[,,,,,,,,,[-1]]],808:[,[,,\"[1-9]\\\\d{7}\",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[1-9]\\\\d{7}\",,,,\"12345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",808,,,,,,,,1,[[,\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],870:[,[,,\"7\\\\d{11}|[235-7]\\\\d{8}\",,,,,,,[9,12]],[,,,,,,,,,[-1]],[,,\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\",,,,\"301234567\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\n\"2\\\\d{8}\",,,,\"201234567\",,,[9]],\"001\",870,,,,,,,,,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],878:[,[,,\"10\\\\d{10}\",,,,,,,[12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"10\\\\d{10}\",,,,\"101234567890\"],\"001\",878,,,,,,,,1,[[,\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],881:[,[,,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",\n,,,,,,[9,10]],[,,,,,,,,,[-1]],[,,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",,,,\"612345678\"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",881,,,,,,,,,[[,\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[,\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],882:[,[,,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",,,,,,,[7,8,9,10,11,12]],[,,,,,,,,,[-1]],[,,\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",\n,,,\"3421234\",,,[7,8,9,10,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\",,,,\"390123456789\"],\"001\",882,,,,,,,,,[[,\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[,\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[,\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[,\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\n\"$1 $2 $3\",[\"16\"]],[,\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[,\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[,\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,\"348[57]\\\\d{7}\",,,,\"34851234567\",,,[11]]],883:[,[,,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",,,,,,,[8,9,10,11,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\",\n,,,\"510012345\"],\"001\",883,,,,,,,,1,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[,\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[,\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],888:[,[,,\"\\\\d{11}\",,,,,,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,\n,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",888,,,,,,,,1,[[,\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,\"\\\\d{11}\",,,,\"12345678901\"],,,[,,,,,,,,,[-1]]],979:[,[,,\"[1359]\\\\d{8}\",,,,,,,[9],[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,\"[1359]\\\\d{8}\",,,,\"123456789\",,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],\"001\",979,,,,,,,,1,[[,\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]]};/*\n\n Copyright (C) 2010 The Libphonenumber Authors.\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*/\nfunction K(){this.g={}}K.h=void 0;K.g=function(){return K.h?K.h:K.h=new K};\nvar Ea={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",\"\\uff10\":\"0\",\"\\uff11\":\"1\",\"\\uff12\":\"2\",\"\\uff13\":\"3\",\"\\uff14\":\"4\",\"\\uff15\":\"5\",\"\\uff16\":\"6\",\"\\uff17\":\"7\",\"\\uff18\":\"8\",\"\\uff19\":\"9\",\"\\u0660\":\"0\",\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u06f0\":\"0\",\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\"},Fa={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",\n7:\"7\",8:\"8\",9:\"9\",\"+\":\"+\",\"*\":\"*\",\"#\":\"#\"},Ga={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",\"\\uff10\":\"0\",\"\\uff11\":\"1\",\"\\uff12\":\"2\",\"\\uff13\":\"3\",\"\\uff14\":\"4\",\"\\uff15\":\"5\",\"\\uff16\":\"6\",\"\\uff17\":\"7\",\"\\uff18\":\"8\",\"\\uff19\":\"9\",\"\\u0660\":\"0\",\"\\u0661\":\"1\",\"\\u0662\":\"2\",\"\\u0663\":\"3\",\"\\u0664\":\"4\",\"\\u0665\":\"5\",\"\\u0666\":\"6\",\"\\u0667\":\"7\",\"\\u0668\":\"8\",\"\\u0669\":\"9\",\"\\u06f0\":\"0\",\"\\u06f1\":\"1\",\"\\u06f2\":\"2\",\"\\u06f3\":\"3\",\"\\u06f4\":\"4\",\"\\u06f5\":\"5\",\"\\u06f6\":\"6\",\"\\u06f7\":\"7\",\"\\u06f8\":\"8\",\"\\u06f9\":\"9\",A:\"2\",\nB:\"2\",C:\"2\",D:\"3\",E:\"3\",F:\"3\",G:\"4\",H:\"4\",I:\"4\",J:\"5\",K:\"5\",L:\"5\",M:\"6\",N:\"6\",O:\"6\",P:\"7\",Q:\"7\",R:\"7\",S:\"7\",T:\"8\",U:\"8\",V:\"8\",W:\"9\",X:\"9\",Y:\"9\",Z:\"9\"},Ha=RegExp(\"[+\\uff0b]+\"),L=RegExp(\"^[+\\uff0b]+\"),Ia=RegExp(\"([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])\"),Ja=RegExp(\"[+\\uff0b0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]\"),Ka=/[\\\\\\/] *x/,La=RegExp(\"[^0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9A-Za-z#]+$\"),Ma=/(?:.*?[A-Za-z]){3}.*/,Na=RegExp(\"^\\\\+([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]|[\\\\-\\\\.\\\\(\\\\)]?)*[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]|[\\\\-\\\\.\\\\(\\\\)]?)*$\"),\nOa=RegExp(\"^([A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]+((\\\\-)*[A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])*\\\\.)*[A-Za-z]+((\\\\-)*[A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9])*\\\\.?$\");function M(a){return\"([0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]{1,\"+a+\"})\"}\nfunction Pa(){return\";ext=\"+M(\"20\")+\"|[ \\u00a0\\\\t,]*(?:e?xt(?:ensi(?:o\\u0301?|\\u00f3))?n?|\\uff45?\\uff58\\uff54\\uff4e?|\\u0434\\u043e\\u0431|anexo)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\"+(M(\"20\")+\"#?|[ \\u00a0\\\\t,]*(?:[x\\uff58#\\uff03~\\uff5e]|int|\\uff49\\uff4e\\uff54)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(M(\"9\")+\"#?|[- ]+\")+(M(\"6\")+\"#|[ \\u00a0\\\\t]*(?:,{2}|;)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(M(\"15\")+\"#?|[ \\u00a0\\\\t]*(?:,)+[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\")+(M(\"9\")+\"#?\")}\nvar Qa=new RegExp(\"(?:\"+Pa()+\")$\",\"i\"),Ra=new RegExp(\"^[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]{2}$|^[+\\uff0b]*(?:[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e*]*[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]){3,}[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e*A-Za-z0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]*(?:\"+Pa()+\")?$\",\"i\"),Sa=/(\\$\\d)/,\nTa=/^\\(?\\$1\\)?$/;function Ua(a){return 2>a.length?!1:N(Ra,a)}function Va(a){return N(Ma,a)?O(a,Ga):O(a,Ea)}function Wa(a){var b=Va(a.toString());E(a);a.g(b)}function Xa(a){return null!=a&&(1!=x(a,9)||-1!=u(a,9)[0])}function O(a,b){for(var c=new D,d,e=a.length,f=0;f<e;++f)d=a.charAt(f),d=b[d.toUpperCase()],null!=d&&c.g(d);return c.toString()}function Ya(a){return 0==a.length||Ta.test(a)}function P(a){return null!=a&&isNaN(a)&&a.toUpperCase()in Da}\nK.prototype.format=function(a,b){if(0==r(a,2)&&q(a,5)){var c=w(a,5);if(0<c.length)return c}c=w(a,1);var d=Q(a);if(0==b)return Za(c,0,d,\"\");if(!(c in J))return d;var e=R(this,c,S(c));a=q(a,3)&&0!=r(a,3).length?3==b?\";ext=\"+r(a,3):q(e,13)?r(e,13)+w(a,3):\" ext. \"+w(a,3):\"\";a:{e=0==u(e,20).length||2==b?u(e,19):u(e,20);for(var f,g=e.length,h=0;h<g;++h){f=e[h];var l=x(f,3);if(0==l||0==d.search(r(f,3,l-1)))if(l=new RegExp(r(f,1)),N(l,d)){e=f;break a}}e=null}null!=e&&(g=e,e=w(g,2),f=new RegExp(r(g,1)),w(g,\n5),g=w(g,4),d=2==b&&null!=g&&0<g.length?d.replace(f,e.replace(Sa,g)):d.replace(f,e),3==b&&(d=d.replace(RegExp(\"^[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]+\"),\"\"),d=d.replace(RegExp(\"[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]+\",\"g\"),\"-\")));return Za(c,b,d,a)};function R(a,b,c){return\"001\"==c?T(a,\"\"+b):T(a,c)}\nfunction Q(a){if(!q(a,2))return\"\";var b=\"\"+r(a,2);return q(a,4)&&r(a,4)&&0<w(a,8)?Array(w(a,8)+1).join(\"0\")+b:b}function Za(a,b,c,d){switch(b){case 0:return\"+\"+a+c+d;case 1:return\"+\"+a+\" \"+c+d;case 3:return\"tel:+\"+a+\"-\"+c+d;default:return c+d}}\nfunction U(a,b){switch(b){case 4:return r(a,5);case 3:return r(a,4);case 1:return r(a,3);case 0:case 2:return r(a,2);case 5:return r(a,6);case 6:return r(a,8);case 7:return r(a,7);case 8:return r(a,21);case 9:return r(a,25);case 10:return r(a,28);default:return r(a,1)}}function $a(a,b){var c=ab(a,b);a=R(a,w(b,1),c);if(null==a)return-1;b=Q(b);return bb(b,a)}\nfunction bb(a,b){return V(a,r(b,1))?V(a,r(b,5))?4:V(a,r(b,4))?3:V(a,r(b,6))?5:V(a,r(b,8))?6:V(a,r(b,7))?7:V(a,r(b,21))?8:V(a,r(b,25))?9:V(a,r(b,28))?10:V(a,r(b,2))?r(b,18)||V(a,r(b,3))?2:0:!r(b,18)&&V(a,r(b,3))?1:-1:-1}function T(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.g[b];if(null==c){c=Da[b];if(null==c)return null;c=(new C).g(H.m(),c);a.g[b]=c}return c}function V(a,b){var c=a.length;return 0<x(b,9)&&-1==u(b,9).indexOf(c)?!1:N(w(b,2),a)}\nfunction cb(a,b){var c=ab(a,b);var d=w(b,1);var e=R(a,d,c);null==e||\"001\"!=c&&d!=db(a,c)?e=!1:(a=Q(b),e=-1!=bb(a,e));return e}function ab(a,b){if(null==b)return null;var c=w(b,1);c=J[c];if(null==c)a=null;else if(1==c.length)a=c[0];else a:{b=Q(b);for(var d,e=c.length,f=0;f<e;f++){d=c[f];var g=T(a,d);if(q(g,23)){if(0==b.search(r(g,23))){a=d;break a}}else if(-1!=bb(b,g)){a=d;break a}}a=null}return a}function S(a){a=J[a];return null==a?\"ZZ\":a[0]}\nfunction db(a,b){a=T(a,b);if(null==a)throw Error(\"Invalid region code: \"+b);return w(a,10)}function W(a,b,c,d){var e=U(c,d),f=0==x(e,9)?u(r(c,1),9):u(e,9);e=u(e,10);if(2==d)if(Xa(U(c,0)))a=U(c,1),Xa(a)&&(f=f.concat(0==x(a,9)?u(r(c,1),9):u(a,9)),f.sort(),0==e.length?e=u(a,10):(e=e.concat(u(a,10)),e.sort()));else return W(a,b,c,1);if(-1==f[0])return 5;b=b.length;if(-1<e.indexOf(b))return 4;c=f[0];return c==b?0:c>b?2:f[f.length-1]<b?3:-1<f.indexOf(b,1)?0:5}\nfunction X(a,b,c){var d=Q(b);b=w(b,1);if(!(b in J))return 1;b=R(a,b,S(b));return W(a,d,b,c)}function eb(a,b){a=a.toString();if(0==a.length||\"0\"==a.charAt(0))return 0;for(var c,d=a.length,e=1;3>=e&&e<=d;++e)if(c=parseInt(a.substring(0,e),10),c in J)return b.g(a.substring(e)),c;return 0}\nfunction fb(a,b,c,d,e,f){if(0==b.length)return 0;b=new D(b);var g;null!=c&&(g=r(c,11));null==g&&(g=\"NonMatch\");var h=b.toString();if(0==h.length)g=20;else if(L.test(h))h=h.replace(L,\"\"),E(b),b.g(Va(h)),g=1;else{h=new RegExp(g);Wa(b);g=b.toString();if(0==g.search(h)){h=g.match(h)[0].length;var l=g.substring(h).match(Ia);l&&null!=l[1]&&0<l[1].length&&\"0\"==O(l[1],Ea)?g=!1:(E(b),b.g(g.substring(h)),g=!0)}else g=!1;g=g?5:20}e&&t(f,6,g);if(20!=g){if(2>=b.h.length)throw Error(\"Phone number too short after IDD\");\na=eb(b,d);if(0!=a)return t(f,1,a),a;throw Error(\"Invalid country calling code\");}if(null!=c&&(g=w(c,10),h=\"\"+g,l=b.toString(),0==l.lastIndexOf(h,0)&&(h=new D(l.substring(h.length)),l=r(c,1),l=new RegExp(w(l,2)),gb(h,c,null),h=h.toString(),!N(l,b.toString())&&N(l,h)||3==W(a,b.toString(),c,-1))))return d.g(h),e&&t(f,6,10),t(f,1,g),g;t(f,1,0);return 0}\nfunction gb(a,b,c){var d=a.toString(),e=d.length,f=r(b,15);if(0!=e&&null!=f&&0!=f.length){var g=new RegExp(\"^(?:\"+f+\")\");if(e=g.exec(d)){f=new RegExp(w(r(b,1),2));var h=N(f,d),l=e.length-1;b=r(b,16);if(null==b||0==b.length||null==e[l]||0==e[l].length){if(!h||N(f,d.substring(e[0].length)))null!=c&&0<l&&null!=e[l]&&c.g(e[1]),a.set(d.substring(e[0].length))}else if(d=d.replace(g,b),!h||N(f,d))null!=c&&0<l&&c.g(e[1]),a.set(d)}}}\nfunction Y(a,b,c){if(!P(c)&&0<b.length&&\"+\"!=b.charAt(0))throw Error(\"Invalid country calling code\");return hb(a,b,c,!0)}\nfunction hb(a,b,c,d){if(null==b)throw Error(\"The string supplied did not seem to be a phone number\");if(250<b.length)throw Error(\"The string supplied is too long to be a phone number\");var e=new D;var f=b.indexOf(\";phone-context=\");if(-1===f)f=null;else if(f+=15,f>=b.length)f=\"\";else{var g=b.indexOf(\";\",f);f=-1!==g?b.substring(f,g):b.substring(f)}var h=f;null==h?g=!0:0===h.length?g=!1:(g=Na.exec(h),h=Oa.exec(h),g=null!==g||null!==h);if(!g)throw Error(\"The string supplied did not seem to be a phone number\");\nnull!=f?(\"+\"===f.charAt(0)&&e.g(f),f=b.indexOf(\"tel:\"),e.g(b.substring(0<=f?f+4:0,b.indexOf(\";phone-context=\")))):(f=e.g,g=b??\"\",h=g.search(Ja),0<=h?(g=g.substring(h),g=g.replace(La,\"\"),h=g.search(Ka),0<=h&&(g=g.substring(0,h))):g=\"\",f.call(e,g));f=e.toString();g=f.indexOf(\";isub=\");0<g&&(E(e),e.g(f.substring(0,g)));if(!Ua(e.toString()))throw Error(\"The string supplied did not seem to be a phone number\");f=e.toString();if(!(P(c)||null!=f&&0<f.length&&L.test(f)))throw Error(\"Invalid country calling code\");\nf=new I;d&&t(f,5,b);a:{b=e.toString();g=b.search(Qa);if(0<=g&&Ua(b.substring(0,g))){h=b.match(Qa);for(var l=h.length,A=1;A<l;++A)if(null!=h[A]&&0<h[A].length){E(e);e.g(b.substring(0,g));b=h[A];break a}}b=\"\"}0<b.length&&t(f,3,b);g=T(a,c);b=new D;h=0;l=e.toString();try{h=fb(a,l,g,b,d,f)}catch(ca){if(\"Invalid country calling code\"==ca.message&&L.test(l)){if(l=l.replace(L,\"\"),h=fb(a,l,g,b,d,f),0==h)throw ca;}else throw ca;}0!=h?(e=S(h),e!=c&&(g=R(a,h,e))):(Wa(e),b.g(e.toString()),null!=c?(h=w(g,10),t(f,\n1,h)):d&&(delete f.h[6],f.g&&delete f.g[6]));if(2>b.h.length)throw Error(\"The string supplied is too short to be a phone number\");null!=g&&(c=new D,e=new D(b.toString()),gb(e,g,c),a=W(a,e.toString(),g,-1),2!=a&&4!=a&&5!=a&&(b=e,d&&0<c.toString().length&&t(f,7,c.toString())));d=b.toString();a=d.length;if(2>a)throw Error(\"The string supplied is too short to be a phone number\");if(17<a)throw Error(\"The string supplied is too long to be a phone number\");if(1<d.length&&\"0\"==d.charAt(0)){t(f,4,!0);for(a=\n1;a<d.length-1&&\"0\"==d.charAt(a);)a++;1!=a&&t(f,8,a)}t(f,2,parseInt(d,10));return f}function N(a,b){return(a=b.match(new RegExp(\"^(?:\"+(\"string\"==typeof a?a:a.source)+\")$\",\"i\")))&&a[0].length==b.length?!0:!1};function ib(a){this.fa=RegExp(\"\\u2008\");this.ja=\"\";this.v=new D;this.da=\"\";this.s=new D;this.ba=new D;this.u=!0;this.ea=this.ca=this.la=!1;this.ga=K.g();this.$=0;this.h=new D;this.ha=!1;this.o=\"\";this.g=new D;this.j=[];this.ka=a;this.l=jb(this,this.ka)}var kb=new H;t(kb,11,\"NA\");\nvar lb=RegExp(\"^[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]*\\\\$1[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]*(\\\\$\\\\d[-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e]*)*$\"),mb=/[- ]/;\nfunction jb(a,b){var c=a.ga;b=P(b)?db(c,b):0;a=T(a.ga,S(b));return null!=a?a:kb}function nb(a){for(var b=a.j.length,c=0;c<b;++c){var d=a.j[c],e=w(d,1);if(a.da==e)return!1;var f=a;var g=d,h=w(g,1);E(f.v);var l=f;g=w(g,2);var A=\"999999999999999\".match(h)[0];A.length<l.g.h.length?l=\"\":(l=A.replace(new RegExp(h,\"g\"),g),l=l.replace(RegExp(\"9\",\"g\"),\"\\u2008\"));0<l.length?(f.v.g(l),f=!0):f=!1;if(f)return a.da=e,a.ha=mb.test(r(d,4)),a.$=0,!0}return a.u=!1}\nfunction ob(a,b){for(var c=[],d=b.length-3,e=a.j.length,f=0;f<e;++f){var g=a.j[f];0==x(g,3)?c.push(a.j[f]):(g=r(g,3,Math.min(d,x(g,3)-1)),0==b.search(g)&&c.push(a.j[f]))}a.j=c}\nfunction pb(a,b){a.s.g(b);var c=b;Ia.test(c)||1==a.s.h.length&&Ha.test(c)?(\"+\"==b?(c=b,a.ba.g(b)):(c=Ea[b],a.ba.g(c),a.g.g(c)),b=c):(a.u=!1,a.la=!0);if(!a.u){if(!a.la)if(qb(a)){if(rb(a))return sb(a)}else if(0<a.o.length&&(b=a.g.toString(),E(a.g),a.g.g(a.o),a.g.g(b),b=a.h.toString(),c=b.lastIndexOf(a.o),E(a.h),a.h.g(b.substring(0,c))),a.o!=tb(a))return a.h.g(\" \"),sb(a);return a.s.toString()}switch(a.ba.h.length){case 0:case 1:case 2:return a.s.toString();case 3:if(qb(a))a.ea=!0;else return a.o=tb(a),\nub(a);default:if(a.ea)return rb(a)&&(a.ea=!1),a.h.toString()+a.g.toString();if(0<a.j.length){b=vb(a,b);c=wb(a);if(0<c.length)return c;ob(a,a.g.toString());return nb(a)?xb(a):a.u?Z(a,b):a.s.toString()}return ub(a)}}function sb(a){a.u=!0;a.ea=!1;a.j=[];a.$=0;E(a.v);a.da=\"\";return ub(a)}\nfunction wb(a){for(var b=a.g.toString(),c=a.j.length,d=0;d<c;++d){var e=a.j[d],f=w(e,1);if((new RegExp(\"^(?:\"+f+\")$\")).test(b)&&(a.ha=mb.test(r(e,4)),e=b.replace(new RegExp(f,\"g\"),r(e,2)),e=Z(a,e),O(e,Fa)==a.ba))return e}return\"\"}function Z(a,b){var c=a.h.h.length;return a.ha&&0<c&&\" \"!=a.h.toString().charAt(c-1)?a.h+\" \"+b:a.h+b}\nfunction ub(a){var b=a.g.toString();if(3<=b.length){for(var c=a.ca&&0==a.o.length&&0<x(a.l,20)?u(a.l,20):u(a.l,19),d=c.length,e=0;e<d;++e){var f=c[e];0<a.o.length&&Ya(w(f,4))&&!r(f,6)&&!q(f,5)||(0!=a.o.length||a.ca||Ya(w(f,4))||r(f,6))&&lb.test(w(f,2))&&a.j.push(f)}ob(a,b);b=wb(a);return 0<b.length?b:nb(a)?xb(a):a.s.toString()}return Z(a,b)}function xb(a){var b=a.g.toString(),c=b.length;if(0<c){for(var d=\"\",e=0;e<c;e++)d=vb(a,b.charAt(e));return a.u?Z(a,d):a.s.toString()}return a.h.toString()}\nfunction tb(a){var b=a.g.toString(),c=0;if(1!=r(a.l,10))var d=!1;else d=a.g.toString(),d=\"1\"==d.charAt(0)&&\"0\"!=d.charAt(1)&&\"1\"!=d.charAt(1);d?(c=1,a.h.g(\"1\").g(\" \"),a.ca=!0):q(a.l,15)&&(d=new RegExp(\"^(?:\"+r(a.l,15)+\")\"),d=b.match(d),null!=d&&null!=d[0]&&0<d[0].length&&(a.ca=!0,c=d[0].length,a.h.g(b.substring(0,c))));E(a.g);a.g.g(b.substring(c));return b.substring(0,c)}\nfunction qb(a){var b=a.ba.toString(),c=new RegExp(\"^(?:\\\\+|\"+r(a.l,11)+\")\");c=b.match(c);return null!=c&&null!=c[0]&&0<c[0].length?(a.ca=!0,c=c[0].length,E(a.g),a.g.g(b.substring(c)),E(a.h),a.h.g(b.substring(0,c)),\"+\"!=b.charAt(0)&&a.h.g(\" \"),!0):!1}function rb(a){if(0==a.g.h.length)return!1;var b=new D,c=eb(a.g,b);if(0==c)return!1;E(a.g);a.g.g(b.toString());b=S(c);\"001\"==b?a.l=T(a.ga,\"\"+c):b!=a.ka&&(a.l=jb(a,b));a.h.g(\"\"+c).g(\" \");a.o=\"\";return!0}\nfunction vb(a,b){var c=a.v.toString();if(0<=c.substring(a.$).search(a.fa)){var d=c.search(a.fa);b=c.replace(a.fa,b);E(a.v);a.v.g(b);a.$=d;return b.substring(0,a.$+1)}1==a.j.length&&(a.u=!1);a.da=\"\";return a.s.toString()};const yb=a=>{const b=[];a.includes(\"FIXED_LINE_OR_MOBILE\")?(a.includes(\"MOBILE\")||b.push(\"MOBILE\"),a.includes(\"FIXED_LINE\")||b.push(\"FIXED_LINE\")):(a.includes(\"MOBILE\")||a.includes(\"FIXED_LINE\"))&&b.push(\"FIXED_LINE_OR_MOBILE\");return a.concat(b)},zb={FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3,PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1};m(\"intlTelInputUtilsTemp\",{});\nm(\"intlTelInputUtilsTemp.formatNumberAsYouType\",(a,b)=>{try{const c=a.replace(/[^+0-9]/g,\"\"),d=new ib(b);b=\"\";for(let e=0;e<c.length;e++)d.ja=pb(d,c.charAt(e)),b=d.ja;return b}catch{return a}});m(\"intlTelInputUtilsTemp.formatNumber\",(a,b,c)=>{try{const e=K.g(),f=Y(e,a,b);var d=X(e,f,-1);return 0==d||4==d?e.format(f,\"undefined\"===typeof c?0:c):a}catch{return a}});\nm(\"intlTelInputUtilsTemp.getExampleNumber\",(a,b,c,d)=>{try{const l=K.g();a:{var e=l;if(P(a)){var f=U(T(e,a),c);try{if(q(f,6)){var g=r(f,6);var h=hb(e,g,a,!1);break a}}catch(A){}}h=null}return l.format(h,d?0:b?2:1)}catch{return\"\"}});m(\"intlTelInputUtilsTemp.getExtension\",(a,b)=>{try{return r(Y(K.g(),a,b),3)}catch{return\"\"}});m(\"intlTelInputUtilsTemp.getNumberType\",(a,b)=>{try{const c=K.g(),d=Y(c,a,b);return $a(c,d)}catch{return-99}});\nm(\"intlTelInputUtilsTemp.getValidationError\",(a,b)=>{if(!b)return 1;try{const c=K.g(),d=Y(c,a,b);return X(c,d,-1)}catch(c){return\"Invalid country calling code\"===c.message?1:3>=a.length||\"Phone number too short after IDD\"===c.message||\"The string supplied is too short to be a phone number\"===c.message?2:\"The string supplied is too long to be a phone number\"===c.message?3:-99}});\nm(\"intlTelInputUtilsTemp.isValidNumber\",(a,b,c)=>{try{const d=K.g(),e=Y(d,a,b),f=cb(d,e);if(c){const g=yb(c).map(h=>zb[h]);return f&&g.includes($a(d,e))}return f}catch{return!1}});m(\"intlTelInputUtilsTemp.isPossibleNumber\",(a,b,c)=>{try{const d=K.g(),e=Y(d,a,b);if(c){const f=yb(c);for(let g of f)if(0===X(d,e,zb[g]))return!0;return!1}return 0===X(d,e,-1)}catch{return!1}});m(\"intlTelInputUtilsTemp.getCoreNumber\",(a,b)=>{try{return r(Y(K.g(),a,b),2).toString()}catch{return\"\"}});\nm(\"intlTelInputUtilsTemp.numberFormat\",{E164:0,INTERNATIONAL:1,NATIONAL:2,RFC3966:3});m(\"intlTelInputUtilsTemp.numberType\",zb);m(\"intlTelInputUtilsTemp.validationError\",{IS_POSSIBLE:0,INVALID_COUNTRY_CODE:1,TOO_SHORT:2,TOO_LONG:3,IS_POSSIBLE_LOCAL_ONLY:4,INVALID_LENGTH:5});})();\nconst globalContext = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this;\nconst utils = globalContext.intlTelInputUtilsTemp;\ndelete globalContext.intlTelInputUtilsTemp;\nexport default utils;\n", "/*\nTurbo 7.1.0\nCopyright \u00A9 2021 Basecamp, LLC\n */\n(function () {\n    if (window.Reflect === undefined || window.customElements === undefined ||\n        window.customElements.polyfillWrapFlushCallback) {\n        return;\n    }\n    const BuiltInHTMLElement = HTMLElement;\n    const wrapperForTheName = {\n        'HTMLElement': function HTMLElement() {\n            return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n        }\n    };\n    window.HTMLElement =\n        wrapperForTheName['HTMLElement'];\n    HTMLElement.prototype = BuiltInHTMLElement.prototype;\n    HTMLElement.prototype.constructor = HTMLElement;\n    Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n  if (typeof prototype.requestSubmit == \"function\") return\n\n  prototype.requestSubmit = function(submitter) {\n    if (submitter) {\n      validateSubmitter(submitter, this);\n      submitter.click();\n    } else {\n      submitter = document.createElement(\"input\");\n      submitter.type = \"submit\";\n      submitter.hidden = true;\n      this.appendChild(submitter);\n      submitter.click();\n      this.removeChild(submitter);\n    }\n  };\n\n  function validateSubmitter(submitter, form) {\n    submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n    submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n    submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n  }\n\n  function raise(errorConstructor, message, name) {\n    throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n  }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap;\nfunction findSubmitterFromClickTarget(target) {\n    const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n    const candidate = element ? element.closest(\"input, button\") : null;\n    return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n    const submitter = findSubmitterFromClickTarget(event.target);\n    if (submitter && submitter.form) {\n        submittersByForm.set(submitter.form, submitter);\n    }\n}\n(function () {\n    if (\"submitter\" in Event.prototype)\n        return;\n    let prototype;\n    if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n        prototype = window.SubmitEvent.prototype;\n    }\n    else if (\"SubmitEvent\" in window) {\n        return;\n    }\n    else {\n        prototype = window.Event.prototype;\n    }\n    addEventListener(\"click\", clickCaptured, true);\n    Object.defineProperty(prototype, \"submitter\", {\n        get() {\n            if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n                return submittersByForm.get(this.target);\n            }\n        }\n    });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n    FrameLoadingStyle[\"eager\"] = \"eager\";\n    FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n    constructor() {\n        super();\n        this.loaded = Promise.resolve();\n        this.delegate = new FrameElement.delegateConstructor(this);\n    }\n    static get observedAttributes() {\n        return [\"disabled\", \"loading\", \"src\"];\n    }\n    connectedCallback() {\n        this.delegate.connect();\n    }\n    disconnectedCallback() {\n        this.delegate.disconnect();\n    }\n    reload() {\n        const { src } = this;\n        this.src = null;\n        this.src = src;\n    }\n    attributeChangedCallback(name) {\n        if (name == \"loading\") {\n            this.delegate.loadingStyleChanged();\n        }\n        else if (name == \"src\") {\n            this.delegate.sourceURLChanged();\n        }\n        else {\n            this.delegate.disabledChanged();\n        }\n    }\n    get src() {\n        return this.getAttribute(\"src\");\n    }\n    set src(value) {\n        if (value) {\n            this.setAttribute(\"src\", value);\n        }\n        else {\n            this.removeAttribute(\"src\");\n        }\n    }\n    get loading() {\n        return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n    }\n    set loading(value) {\n        if (value) {\n            this.setAttribute(\"loading\", value);\n        }\n        else {\n            this.removeAttribute(\"loading\");\n        }\n    }\n    get disabled() {\n        return this.hasAttribute(\"disabled\");\n    }\n    set disabled(value) {\n        if (value) {\n            this.setAttribute(\"disabled\", \"\");\n        }\n        else {\n            this.removeAttribute(\"disabled\");\n        }\n    }\n    get autoscroll() {\n        return this.hasAttribute(\"autoscroll\");\n    }\n    set autoscroll(value) {\n        if (value) {\n            this.setAttribute(\"autoscroll\", \"\");\n        }\n        else {\n            this.removeAttribute(\"autoscroll\");\n        }\n    }\n    get complete() {\n        return !this.delegate.isLoading;\n    }\n    get isActive() {\n        return this.ownerDocument === document && !this.isPreview;\n    }\n    get isPreview() {\n        var _a, _b;\n        return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n    }\n}\nfunction frameLoadingStyleFromString(style) {\n    switch (style.toLowerCase()) {\n        case \"lazy\": return FrameLoadingStyle.lazy;\n        default: return FrameLoadingStyle.eager;\n    }\n}\n\nfunction expandURL(locatable) {\n    return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n    let anchorMatch;\n    if (url.hash) {\n        return url.hash.slice(1);\n    }\n    else if (anchorMatch = url.href.match(/#(.*)$/)) {\n        return anchorMatch[1];\n    }\n}\nfunction getAction(form, submitter) {\n    const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n    return expandURL(action);\n}\nfunction getExtension(url) {\n    return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n    return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n    const prefix = getPrefix(url);\n    return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n    return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n    const anchor = getAnchor(url);\n    return anchor != null\n        ? url.href.slice(0, -(anchor.length + 1))\n        : url.href;\n}\nfunction toCacheKey(url) {\n    return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n    return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n    return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n    return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n    return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n    return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n    constructor(response) {\n        this.response = response;\n    }\n    get succeeded() {\n        return this.response.ok;\n    }\n    get failed() {\n        return !this.succeeded;\n    }\n    get clientError() {\n        return this.statusCode >= 400 && this.statusCode <= 499;\n    }\n    get serverError() {\n        return this.statusCode >= 500 && this.statusCode <= 599;\n    }\n    get redirected() {\n        return this.response.redirected;\n    }\n    get location() {\n        return expandURL(this.response.url);\n    }\n    get isHTML() {\n        return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n    }\n    get statusCode() {\n        return this.response.status;\n    }\n    get contentType() {\n        return this.header(\"Content-Type\");\n    }\n    get responseText() {\n        return this.response.clone().text();\n    }\n    get responseHTML() {\n        if (this.isHTML) {\n            return this.response.clone().text();\n        }\n        else {\n            return Promise.resolve(undefined);\n        }\n    }\n    header(name) {\n        return this.response.headers.get(name);\n    }\n}\n\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n    const event = new CustomEvent(eventName, { cancelable, bubbles: true, detail });\n    if (target && target.isConnected) {\n        target.dispatchEvent(event);\n    }\n    else {\n        document.documentElement.dispatchEvent(event);\n    }\n    return event;\n}\nfunction nextAnimationFrame() {\n    return new Promise(resolve => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n    return new Promise(resolve => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n    return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n    return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n    const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n    const match = lines[0].match(/^\\s+/);\n    const indent = match ? match[0].length : 0;\n    return lines.map(line => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n    return strings.reduce((result, string, i) => {\n        const value = values[i] == undefined ? \"\" : values[i];\n        return result + string + value;\n    }, \"\");\n}\nfunction uuid() {\n    return Array.apply(null, { length: 36 }).map((_, i) => {\n        if (i == 8 || i == 13 || i == 18 || i == 23) {\n            return \"-\";\n        }\n        else if (i == 14) {\n            return \"4\";\n        }\n        else if (i == 19) {\n            return (Math.floor(Math.random() * 4) + 8).toString(16);\n        }\n        else {\n            return Math.floor(Math.random() * 15).toString(16);\n        }\n    }).join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n    for (const value of elements.map(element => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n        if (typeof value == \"string\")\n            return value;\n    }\n    return null;\n}\nfunction markAsBusy(...elements) {\n    for (const element of elements) {\n        if (element.localName == \"turbo-frame\") {\n            element.setAttribute(\"busy\", \"\");\n        }\n        element.setAttribute(\"aria-busy\", \"true\");\n    }\n}\nfunction clearBusyState(...elements) {\n    for (const element of elements) {\n        if (element.localName == \"turbo-frame\") {\n            element.removeAttribute(\"busy\");\n        }\n        element.removeAttribute(\"aria-busy\");\n    }\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n    FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n    FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n    FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n    FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n    FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n    switch (method.toLowerCase()) {\n        case \"get\": return FetchMethod.get;\n        case \"post\": return FetchMethod.post;\n        case \"put\": return FetchMethod.put;\n        case \"patch\": return FetchMethod.patch;\n        case \"delete\": return FetchMethod.delete;\n    }\n}\nclass FetchRequest {\n    constructor(delegate, method, location, body = new URLSearchParams, target = null) {\n        this.abortController = new AbortController;\n        this.resolveRequestPromise = (value) => { };\n        this.delegate = delegate;\n        this.method = method;\n        this.headers = this.defaultHeaders;\n        this.body = body;\n        this.url = location;\n        this.target = target;\n    }\n    get location() {\n        return this.url;\n    }\n    get params() {\n        return this.url.searchParams;\n    }\n    get entries() {\n        return this.body ? Array.from(this.body.entries()) : [];\n    }\n    cancel() {\n        this.abortController.abort();\n    }\n    async perform() {\n        var _a, _b;\n        const { fetchOptions } = this;\n        (_b = (_a = this.delegate).prepareHeadersForRequest) === null || _b === void 0 ? void 0 : _b.call(_a, this.headers, this);\n        await this.allowRequestToBeIntercepted(fetchOptions);\n        try {\n            this.delegate.requestStarted(this);\n            const response = await fetch(this.url.href, fetchOptions);\n            return await this.receive(response);\n        }\n        catch (error) {\n            if (error.name !== 'AbortError') {\n                this.delegate.requestErrored(this, error);\n                throw error;\n            }\n        }\n        finally {\n            this.delegate.requestFinished(this);\n        }\n    }\n    async receive(response) {\n        const fetchResponse = new FetchResponse(response);\n        const event = dispatch(\"turbo:before-fetch-response\", { cancelable: true, detail: { fetchResponse }, target: this.target });\n        if (event.defaultPrevented) {\n            this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n        }\n        else if (fetchResponse.succeeded) {\n            this.delegate.requestSucceededWithResponse(this, fetchResponse);\n        }\n        else {\n            this.delegate.requestFailedWithResponse(this, fetchResponse);\n        }\n        return fetchResponse;\n    }\n    get fetchOptions() {\n        var _a;\n        return {\n            method: FetchMethod[this.method].toUpperCase(),\n            credentials: \"same-origin\",\n            headers: this.headers,\n            redirect: \"follow\",\n            body: this.isIdempotent ? null : this.body,\n            signal: this.abortSignal,\n            referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href\n        };\n    }\n    get defaultHeaders() {\n        return {\n            \"Accept\": \"text/html, application/xhtml+xml\"\n        };\n    }\n    get isIdempotent() {\n        return this.method == FetchMethod.get;\n    }\n    get abortSignal() {\n        return this.abortController.signal;\n    }\n    async allowRequestToBeIntercepted(fetchOptions) {\n        const requestInterception = new Promise(resolve => this.resolveRequestPromise = resolve);\n        const event = dispatch(\"turbo:before-fetch-request\", {\n            cancelable: true,\n            detail: {\n                fetchOptions,\n                url: this.url,\n                resume: this.resolveRequestPromise\n            },\n            target: this.target\n        });\n        if (event.defaultPrevented)\n            await requestInterception;\n    }\n}\n\nclass AppearanceObserver {\n    constructor(delegate, element) {\n        this.started = false;\n        this.intersect = entries => {\n            const lastEntry = entries.slice(-1)[0];\n            if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n                this.delegate.elementAppearedInViewport(this.element);\n            }\n        };\n        this.delegate = delegate;\n        this.element = element;\n        this.intersectionObserver = new IntersectionObserver(this.intersect);\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.intersectionObserver.observe(this.element);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.intersectionObserver.unobserve(this.element);\n        }\n    }\n}\n\nclass StreamMessage {\n    constructor(html) {\n        this.templateElement = document.createElement(\"template\");\n        this.templateElement.innerHTML = html;\n    }\n    static wrap(message) {\n        if (typeof message == \"string\") {\n            return new this(message);\n        }\n        else {\n            return message;\n        }\n    }\n    get fragment() {\n        const fragment = document.createDocumentFragment();\n        for (const element of this.foreignElements) {\n            fragment.appendChild(document.importNode(element, true));\n        }\n        return fragment;\n    }\n    get foreignElements() {\n        return this.templateChildren.reduce((streamElements, child) => {\n            if (child.tagName.toLowerCase() == \"turbo-stream\") {\n                return [...streamElements, child];\n            }\n            else {\n                return streamElements;\n            }\n        }, []);\n    }\n    get templateChildren() {\n        return Array.from(this.templateElement.content.children);\n    }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n    FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n    FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n    FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n    FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n    FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n    FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n    FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n    FormEnctype[\"multipart\"] = \"multipart/form-data\";\n    FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n    switch (encoding.toLowerCase()) {\n        case FormEnctype.multipart: return FormEnctype.multipart;\n        case FormEnctype.plain: return FormEnctype.plain;\n        default: return FormEnctype.urlEncoded;\n    }\n}\nclass FormSubmission {\n    constructor(delegate, formElement, submitter, mustRedirect = false) {\n        this.state = FormSubmissionState.initialized;\n        this.delegate = delegate;\n        this.formElement = formElement;\n        this.submitter = submitter;\n        this.formData = buildFormData(formElement, submitter);\n        this.location = expandURL(this.action);\n        if (this.method == FetchMethod.get) {\n            mergeFormDataEntries(this.location, [...this.body.entries()]);\n        }\n        this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n        this.mustRedirect = mustRedirect;\n    }\n    static confirmMethod(message, element) {\n        return confirm(message);\n    }\n    get method() {\n        var _a;\n        const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n        return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n    }\n    get action() {\n        var _a;\n        const formElementAction = typeof this.formElement.action === 'string' ? this.formElement.action : null;\n        return ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formaction\")) || this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n    }\n    get body() {\n        if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n            return new URLSearchParams(this.stringFormData);\n        }\n        else {\n            return this.formData;\n        }\n    }\n    get enctype() {\n        var _a;\n        return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n    }\n    get isIdempotent() {\n        return this.fetchRequest.isIdempotent;\n    }\n    get stringFormData() {\n        return [...this.formData].reduce((entries, [name, value]) => {\n            return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n        }, []);\n    }\n    get confirmationMessage() {\n        return this.formElement.getAttribute(\"data-turbo-confirm\");\n    }\n    get needsConfirmation() {\n        return this.confirmationMessage !== null;\n    }\n    async start() {\n        const { initialized, requesting } = FormSubmissionState;\n        if (this.needsConfirmation) {\n            const answer = FormSubmission.confirmMethod(this.confirmationMessage, this.formElement);\n            if (!answer) {\n                return;\n            }\n        }\n        if (this.state == initialized) {\n            this.state = requesting;\n            return this.fetchRequest.perform();\n        }\n    }\n    stop() {\n        const { stopping, stopped } = FormSubmissionState;\n        if (this.state != stopping && this.state != stopped) {\n            this.state = stopping;\n            this.fetchRequest.cancel();\n            return true;\n        }\n    }\n    prepareHeadersForRequest(headers, request) {\n        if (!request.isIdempotent) {\n            const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n            if (token) {\n                headers[\"X-CSRF-Token\"] = token;\n            }\n            headers[\"Accept\"] = [StreamMessage.contentType, headers[\"Accept\"]].join(\", \");\n        }\n    }\n    requestStarted(request) {\n        var _a;\n        this.state = FormSubmissionState.waiting;\n        (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n        dispatch(\"turbo:submit-start\", { target: this.formElement, detail: { formSubmission: this } });\n        this.delegate.formSubmissionStarted(this);\n    }\n    requestPreventedHandlingResponse(request, response) {\n        this.result = { success: response.succeeded, fetchResponse: response };\n    }\n    requestSucceededWithResponse(request, response) {\n        if (response.clientError || response.serverError) {\n            this.delegate.formSubmissionFailedWithResponse(this, response);\n        }\n        else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n            const error = new Error(\"Form responses must redirect to another location\");\n            this.delegate.formSubmissionErrored(this, error);\n        }\n        else {\n            this.state = FormSubmissionState.receiving;\n            this.result = { success: true, fetchResponse: response };\n            this.delegate.formSubmissionSucceededWithResponse(this, response);\n        }\n    }\n    requestFailedWithResponse(request, response) {\n        this.result = { success: false, fetchResponse: response };\n        this.delegate.formSubmissionFailedWithResponse(this, response);\n    }\n    requestErrored(request, error) {\n        this.result = { success: false, error };\n        this.delegate.formSubmissionErrored(this, error);\n    }\n    requestFinished(request) {\n        var _a;\n        this.state = FormSubmissionState.stopped;\n        (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n        dispatch(\"turbo:submit-end\", { target: this.formElement, detail: Object.assign({ formSubmission: this }, this.result) });\n        this.delegate.formSubmissionFinished(this);\n    }\n    requestMustRedirect(request) {\n        return !request.isIdempotent && this.mustRedirect;\n    }\n}\nfunction buildFormData(formElement, submitter) {\n    const formData = new FormData(formElement);\n    const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n    const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n    if (name && value != null && formData.get(name) != value) {\n        formData.append(name, value);\n    }\n    return formData;\n}\nfunction getCookieValue(cookieName) {\n    if (cookieName != null) {\n        const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n        const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n        if (cookie) {\n            const value = cookie.split(\"=\").slice(1).join(\"=\");\n            return value ? decodeURIComponent(value) : undefined;\n        }\n    }\n}\nfunction getMetaContent(name) {\n    const element = document.querySelector(`meta[name=\"${name}\"]`);\n    return element && element.content;\n}\nfunction responseSucceededWithoutRedirect(response) {\n    return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n    const searchParams = new URLSearchParams;\n    for (const [name, value] of entries) {\n        if (value instanceof File)\n            continue;\n        searchParams.append(name, value);\n    }\n    url.search = searchParams.toString();\n    return url;\n}\n\nclass Snapshot {\n    constructor(element) {\n        this.element = element;\n    }\n    get children() {\n        return [...this.element.children];\n    }\n    hasAnchor(anchor) {\n        return this.getElementForAnchor(anchor) != null;\n    }\n    getElementForAnchor(anchor) {\n        return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n    }\n    get isConnected() {\n        return this.element.isConnected;\n    }\n    get firstAutofocusableElement() {\n        return this.element.querySelector(\"[autofocus]\");\n    }\n    get permanentElements() {\n        return [...this.element.querySelectorAll(\"[id][data-turbo-permanent]\")];\n    }\n    getPermanentElementById(id) {\n        return this.element.querySelector(`#${id}[data-turbo-permanent]`);\n    }\n    getPermanentElementMapForSnapshot(snapshot) {\n        const permanentElementMap = {};\n        for (const currentPermanentElement of this.permanentElements) {\n            const { id } = currentPermanentElement;\n            const newPermanentElement = snapshot.getPermanentElementById(id);\n            if (newPermanentElement) {\n                permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n            }\n        }\n        return permanentElementMap;\n    }\n}\n\nclass FormInterceptor {\n    constructor(delegate, element) {\n        this.submitBubbled = ((event) => {\n            const form = event.target;\n            if (!event.defaultPrevented && form instanceof HTMLFormElement && form.closest(\"turbo-frame, html\") == this.element) {\n                const submitter = event.submitter || undefined;\n                const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.method;\n                if (method != \"dialog\" && this.delegate.shouldInterceptFormSubmission(form, submitter)) {\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n                    this.delegate.formSubmissionIntercepted(form, submitter);\n                }\n            }\n        });\n        this.delegate = delegate;\n        this.element = element;\n    }\n    start() {\n        this.element.addEventListener(\"submit\", this.submitBubbled);\n    }\n    stop() {\n        this.element.removeEventListener(\"submit\", this.submitBubbled);\n    }\n}\n\nclass View {\n    constructor(delegate, element) {\n        this.resolveRenderPromise = (value) => { };\n        this.resolveInterceptionPromise = (value) => { };\n        this.delegate = delegate;\n        this.element = element;\n    }\n    scrollToAnchor(anchor) {\n        const element = this.snapshot.getElementForAnchor(anchor);\n        if (element) {\n            this.scrollToElement(element);\n            this.focusElement(element);\n        }\n        else {\n            this.scrollToPosition({ x: 0, y: 0 });\n        }\n    }\n    scrollToAnchorFromLocation(location) {\n        this.scrollToAnchor(getAnchor(location));\n    }\n    scrollToElement(element) {\n        element.scrollIntoView();\n    }\n    focusElement(element) {\n        if (element instanceof HTMLElement) {\n            if (element.hasAttribute(\"tabindex\")) {\n                element.focus();\n            }\n            else {\n                element.setAttribute(\"tabindex\", \"-1\");\n                element.focus();\n                element.removeAttribute(\"tabindex\");\n            }\n        }\n    }\n    scrollToPosition({ x, y }) {\n        this.scrollRoot.scrollTo(x, y);\n    }\n    scrollToTop() {\n        this.scrollToPosition({ x: 0, y: 0 });\n    }\n    get scrollRoot() {\n        return window;\n    }\n    async render(renderer) {\n        const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n        if (shouldRender) {\n            try {\n                this.renderPromise = new Promise(resolve => this.resolveRenderPromise = resolve);\n                this.renderer = renderer;\n                this.prepareToRenderSnapshot(renderer);\n                const renderInterception = new Promise(resolve => this.resolveInterceptionPromise = resolve);\n                const immediateRender = this.delegate.allowsImmediateRender(snapshot, this.resolveInterceptionPromise);\n                if (!immediateRender)\n                    await renderInterception;\n                await this.renderSnapshot(renderer);\n                this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n                this.finishRenderingSnapshot(renderer);\n            }\n            finally {\n                delete this.renderer;\n                this.resolveRenderPromise(undefined);\n                delete this.renderPromise;\n            }\n        }\n        else {\n            this.invalidate();\n        }\n    }\n    invalidate() {\n        this.delegate.viewInvalidated();\n    }\n    prepareToRenderSnapshot(renderer) {\n        this.markAsPreview(renderer.isPreview);\n        renderer.prepareToRender();\n    }\n    markAsPreview(isPreview) {\n        if (isPreview) {\n            this.element.setAttribute(\"data-turbo-preview\", \"\");\n        }\n        else {\n            this.element.removeAttribute(\"data-turbo-preview\");\n        }\n    }\n    async renderSnapshot(renderer) {\n        await renderer.render();\n    }\n    finishRenderingSnapshot(renderer) {\n        renderer.finishRendering();\n    }\n}\n\nclass FrameView extends View {\n    invalidate() {\n        this.element.innerHTML = \"\";\n    }\n    get snapshot() {\n        return new Snapshot(this.element);\n    }\n}\n\nclass LinkInterceptor {\n    constructor(delegate, element) {\n        this.clickBubbled = (event) => {\n            if (this.respondsToEventTarget(event.target)) {\n                this.clickEvent = event;\n            }\n            else {\n                delete this.clickEvent;\n            }\n        };\n        this.linkClicked = ((event) => {\n            if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n                if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url)) {\n                    this.clickEvent.preventDefault();\n                    event.preventDefault();\n                    this.delegate.linkClickIntercepted(event.target, event.detail.url);\n                }\n            }\n            delete this.clickEvent;\n        });\n        this.willVisit = () => {\n            delete this.clickEvent;\n        };\n        this.delegate = delegate;\n        this.element = element;\n    }\n    start() {\n        this.element.addEventListener(\"click\", this.clickBubbled);\n        document.addEventListener(\"turbo:click\", this.linkClicked);\n        document.addEventListener(\"turbo:before-visit\", this.willVisit);\n    }\n    stop() {\n        this.element.removeEventListener(\"click\", this.clickBubbled);\n        document.removeEventListener(\"turbo:click\", this.linkClicked);\n        document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n    }\n    respondsToEventTarget(target) {\n        const element = target instanceof Element\n            ? target\n            : target instanceof Node\n                ? target.parentElement\n                : null;\n        return element && element.closest(\"turbo-frame, html\") == this.element;\n    }\n}\n\nclass Bardo {\n    constructor(permanentElementMap) {\n        this.permanentElementMap = permanentElementMap;\n    }\n    static preservingPermanentElements(permanentElementMap, callback) {\n        const bardo = new this(permanentElementMap);\n        bardo.enter();\n        callback();\n        bardo.leave();\n    }\n    enter() {\n        for (const id in this.permanentElementMap) {\n            const [, newPermanentElement] = this.permanentElementMap[id];\n            this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n        }\n    }\n    leave() {\n        for (const id in this.permanentElementMap) {\n            const [currentPermanentElement] = this.permanentElementMap[id];\n            this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n            this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n        }\n    }\n    replaceNewPermanentElementWithPlaceholder(permanentElement) {\n        const placeholder = createPlaceholderForPermanentElement(permanentElement);\n        permanentElement.replaceWith(placeholder);\n    }\n    replaceCurrentPermanentElementWithClone(permanentElement) {\n        const clone = permanentElement.cloneNode(true);\n        permanentElement.replaceWith(clone);\n    }\n    replacePlaceholderWithPermanentElement(permanentElement) {\n        const placeholder = this.getPlaceholderById(permanentElement.id);\n        placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n    }\n    getPlaceholderById(id) {\n        return this.placeholders.find(element => element.content == id);\n    }\n    get placeholders() {\n        return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n    }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n    const element = document.createElement(\"meta\");\n    element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n    element.setAttribute(\"content\", permanentElement.id);\n    return element;\n}\n\nclass Renderer {\n    constructor(currentSnapshot, newSnapshot, isPreview, willRender = true) {\n        this.currentSnapshot = currentSnapshot;\n        this.newSnapshot = newSnapshot;\n        this.isPreview = isPreview;\n        this.willRender = willRender;\n        this.promise = new Promise((resolve, reject) => this.resolvingFunctions = { resolve, reject });\n    }\n    get shouldRender() {\n        return true;\n    }\n    prepareToRender() {\n        return;\n    }\n    finishRendering() {\n        if (this.resolvingFunctions) {\n            this.resolvingFunctions.resolve();\n            delete this.resolvingFunctions;\n        }\n    }\n    createScriptElement(element) {\n        if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n            return element;\n        }\n        else {\n            const createdScriptElement = document.createElement(\"script\");\n            if (this.cspNonce) {\n                createdScriptElement.nonce = this.cspNonce;\n            }\n            createdScriptElement.textContent = element.textContent;\n            createdScriptElement.async = false;\n            copyElementAttributes(createdScriptElement, element);\n            return createdScriptElement;\n        }\n    }\n    preservingPermanentElements(callback) {\n        Bardo.preservingPermanentElements(this.permanentElementMap, callback);\n    }\n    focusFirstAutofocusableElement() {\n        const element = this.connectedSnapshot.firstAutofocusableElement;\n        if (elementIsFocusable(element)) {\n            element.focus();\n        }\n    }\n    get connectedSnapshot() {\n        return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n    }\n    get currentElement() {\n        return this.currentSnapshot.element;\n    }\n    get newElement() {\n        return this.newSnapshot.element;\n    }\n    get permanentElementMap() {\n        return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n    }\n    get cspNonce() {\n        var _a;\n        return (_a = document.head.querySelector('meta[name=\"csp-nonce\"]')) === null || _a === void 0 ? void 0 : _a.getAttribute(\"content\");\n    }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n    for (const { name, value } of [...sourceElement.attributes]) {\n        destinationElement.setAttribute(name, value);\n    }\n}\nfunction elementIsFocusable(element) {\n    return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n    get shouldRender() {\n        return true;\n    }\n    async render() {\n        await nextAnimationFrame();\n        this.preservingPermanentElements(() => {\n            this.loadFrameElement();\n        });\n        this.scrollFrameIntoView();\n        await nextAnimationFrame();\n        this.focusFirstAutofocusableElement();\n        await nextAnimationFrame();\n        this.activateScriptElements();\n    }\n    loadFrameElement() {\n        var _a;\n        const destinationRange = document.createRange();\n        destinationRange.selectNodeContents(this.currentElement);\n        destinationRange.deleteContents();\n        const frameElement = this.newElement;\n        const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n        if (sourceRange) {\n            sourceRange.selectNodeContents(frameElement);\n            this.currentElement.appendChild(sourceRange.extractContents());\n        }\n    }\n    scrollFrameIntoView() {\n        if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n            const element = this.currentElement.firstElementChild;\n            const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n            if (element) {\n                element.scrollIntoView({ block });\n                return true;\n            }\n        }\n        return false;\n    }\n    activateScriptElements() {\n        for (const inertScriptElement of this.newScriptElements) {\n            const activatedScriptElement = this.createScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    get newScriptElements() {\n        return this.currentElement.querySelectorAll(\"script\");\n    }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n    if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n        return value;\n    }\n    else {\n        return defaultValue;\n    }\n}\n\nclass ProgressBar {\n    constructor() {\n        this.hiding = false;\n        this.value = 0;\n        this.visible = false;\n        this.trickle = () => {\n            this.setValue(this.value + Math.random() / 100);\n        };\n        this.stylesheetElement = this.createStylesheetElement();\n        this.progressElement = this.createProgressElement();\n        this.installStylesheetElement();\n        this.setValue(0);\n    }\n    static get defaultCSS() {\n        return unindent `\n      .turbo-progress-bar {\n        position: fixed;\n        display: block;\n        top: 0;\n        left: 0;\n        height: 3px;\n        background: #0076ff;\n        z-index: 9999;\n        transition:\n          width ${ProgressBar.animationDuration}ms ease-out,\n          opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n        transform: translate3d(0, 0, 0);\n      }\n    `;\n    }\n    show() {\n        if (!this.visible) {\n            this.visible = true;\n            this.installProgressElement();\n            this.startTrickling();\n        }\n    }\n    hide() {\n        if (this.visible && !this.hiding) {\n            this.hiding = true;\n            this.fadeProgressElement(() => {\n                this.uninstallProgressElement();\n                this.stopTrickling();\n                this.visible = false;\n                this.hiding = false;\n            });\n        }\n    }\n    setValue(value) {\n        this.value = value;\n        this.refresh();\n    }\n    installStylesheetElement() {\n        document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n    }\n    installProgressElement() {\n        this.progressElement.style.width = \"0\";\n        this.progressElement.style.opacity = \"1\";\n        document.documentElement.insertBefore(this.progressElement, document.body);\n        this.refresh();\n    }\n    fadeProgressElement(callback) {\n        this.progressElement.style.opacity = \"0\";\n        setTimeout(callback, ProgressBar.animationDuration * 1.5);\n    }\n    uninstallProgressElement() {\n        if (this.progressElement.parentNode) {\n            document.documentElement.removeChild(this.progressElement);\n        }\n    }\n    startTrickling() {\n        if (!this.trickleInterval) {\n            this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n        }\n    }\n    stopTrickling() {\n        window.clearInterval(this.trickleInterval);\n        delete this.trickleInterval;\n    }\n    refresh() {\n        requestAnimationFrame(() => {\n            this.progressElement.style.width = `${10 + (this.value * 90)}%`;\n        });\n    }\n    createStylesheetElement() {\n        const element = document.createElement(\"style\");\n        element.type = \"text/css\";\n        element.textContent = ProgressBar.defaultCSS;\n        return element;\n    }\n    createProgressElement() {\n        const element = document.createElement(\"div\");\n        element.className = \"turbo-progress-bar\";\n        return element;\n    }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n    constructor() {\n        super(...arguments);\n        this.detailsByOuterHTML = this.children\n            .filter((element) => !elementIsNoscript(element))\n            .map((element) => elementWithoutNonce(element))\n            .reduce((result, element) => {\n            const { outerHTML } = element;\n            const details = outerHTML in result\n                ? result[outerHTML]\n                : {\n                    type: elementType(element),\n                    tracked: elementIsTracked(element),\n                    elements: []\n                };\n            return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n        }, {});\n    }\n    get trackedElementSignature() {\n        return Object.keys(this.detailsByOuterHTML)\n            .filter(outerHTML => this.detailsByOuterHTML[outerHTML].tracked)\n            .join(\"\");\n    }\n    getScriptElementsNotInSnapshot(snapshot) {\n        return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n    }\n    getStylesheetElementsNotInSnapshot(snapshot) {\n        return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n    }\n    getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n        return Object.keys(this.detailsByOuterHTML)\n            .filter(outerHTML => !(outerHTML in snapshot.detailsByOuterHTML))\n            .map(outerHTML => this.detailsByOuterHTML[outerHTML])\n            .filter(({ type }) => type == matchedType)\n            .map(({ elements: [element] }) => element);\n    }\n    get provisionalElements() {\n        return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n            const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n            if (type == null && !tracked) {\n                return [...result, ...elements];\n            }\n            else if (elements.length > 1) {\n                return [...result, ...elements.slice(1)];\n            }\n            else {\n                return result;\n            }\n        }, []);\n    }\n    getMetaValue(name) {\n        const element = this.findMetaElementByName(name);\n        return element\n            ? element.getAttribute(\"content\")\n            : null;\n    }\n    findMetaElementByName(name) {\n        return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n            const { elements: [element] } = this.detailsByOuterHTML[outerHTML];\n            return elementIsMetaElementWithName(element, name) ? element : result;\n        }, undefined);\n    }\n}\nfunction elementType(element) {\n    if (elementIsScript(element)) {\n        return \"script\";\n    }\n    else if (elementIsStylesheet(element)) {\n        return \"stylesheet\";\n    }\n}\nfunction elementIsTracked(element) {\n    return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n    const tagName = element.tagName.toLowerCase();\n    return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n    const tagName = element.tagName.toLowerCase();\n    return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n    const tagName = element.tagName.toLowerCase();\n    return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n    const tagName = element.tagName.toLowerCase();\n    return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n    if (element.hasAttribute(\"nonce\")) {\n        element.setAttribute(\"nonce\", \"\");\n    }\n    return element;\n}\n\nclass PageSnapshot extends Snapshot {\n    constructor(element, headSnapshot) {\n        super(element);\n        this.headSnapshot = headSnapshot;\n    }\n    static fromHTMLString(html = \"\") {\n        return this.fromDocument(parseHTMLDocument(html));\n    }\n    static fromElement(element) {\n        return this.fromDocument(element.ownerDocument);\n    }\n    static fromDocument({ head, body }) {\n        return new this(body, new HeadSnapshot(head));\n    }\n    clone() {\n        return new PageSnapshot(this.element.cloneNode(true), this.headSnapshot);\n    }\n    get headElement() {\n        return this.headSnapshot.element;\n    }\n    get rootLocation() {\n        var _a;\n        const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n        return expandURL(root);\n    }\n    get cacheControlValue() {\n        return this.getSetting(\"cache-control\");\n    }\n    get isPreviewable() {\n        return this.cacheControlValue != \"no-preview\";\n    }\n    get isCacheable() {\n        return this.cacheControlValue != \"no-cache\";\n    }\n    get isVisitable() {\n        return this.getSetting(\"visit-control\") != \"reload\";\n    }\n    getSetting(name) {\n        return this.headSnapshot.getMetaValue(`turbo-${name}`);\n    }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n    TimingMetric[\"visitStart\"] = \"visitStart\";\n    TimingMetric[\"requestStart\"] = \"requestStart\";\n    TimingMetric[\"requestEnd\"] = \"requestEnd\";\n    TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n    VisitState[\"initialized\"] = \"initialized\";\n    VisitState[\"started\"] = \"started\";\n    VisitState[\"canceled\"] = \"canceled\";\n    VisitState[\"failed\"] = \"failed\";\n    VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n    action: \"advance\",\n    historyChanged: false,\n    visitCachedSnapshot: () => { },\n    willRender: true,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n    SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n    SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n    SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n    constructor(delegate, location, restorationIdentifier, options = {}) {\n        this.identifier = uuid();\n        this.timingMetrics = {};\n        this.followedRedirect = false;\n        this.historyChanged = false;\n        this.scrolled = false;\n        this.snapshotCached = false;\n        this.state = VisitState.initialized;\n        this.delegate = delegate;\n        this.location = location;\n        this.restorationIdentifier = restorationIdentifier || uuid();\n        const { action, historyChanged, referrer, snapshotHTML, response, visitCachedSnapshot, willRender } = Object.assign(Object.assign({}, defaultOptions), options);\n        this.action = action;\n        this.historyChanged = historyChanged;\n        this.referrer = referrer;\n        this.snapshotHTML = snapshotHTML;\n        this.response = response;\n        this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n        this.visitCachedSnapshot = visitCachedSnapshot;\n        this.willRender = willRender;\n        this.scrolled = !willRender;\n    }\n    get adapter() {\n        return this.delegate.adapter;\n    }\n    get view() {\n        return this.delegate.view;\n    }\n    get history() {\n        return this.delegate.history;\n    }\n    get restorationData() {\n        return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n    }\n    get silent() {\n        return this.isSamePage;\n    }\n    start() {\n        if (this.state == VisitState.initialized) {\n            this.recordTimingMetric(TimingMetric.visitStart);\n            this.state = VisitState.started;\n            this.adapter.visitStarted(this);\n            this.delegate.visitStarted(this);\n        }\n    }\n    cancel() {\n        if (this.state == VisitState.started) {\n            if (this.request) {\n                this.request.cancel();\n            }\n            this.cancelRender();\n            this.state = VisitState.canceled;\n        }\n    }\n    complete() {\n        if (this.state == VisitState.started) {\n            this.recordTimingMetric(TimingMetric.visitEnd);\n            this.state = VisitState.completed;\n            this.adapter.visitCompleted(this);\n            this.delegate.visitCompleted(this);\n            this.followRedirect();\n        }\n    }\n    fail() {\n        if (this.state == VisitState.started) {\n            this.state = VisitState.failed;\n            this.adapter.visitFailed(this);\n        }\n    }\n    changeHistory() {\n        var _a;\n        if (!this.historyChanged) {\n            const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n            const method = this.getHistoryMethodForAction(actionForHistory);\n            this.history.update(method, this.location, this.restorationIdentifier);\n            this.historyChanged = true;\n        }\n    }\n    issueRequest() {\n        if (this.hasPreloadedResponse()) {\n            this.simulateRequest();\n        }\n        else if (this.shouldIssueRequest() && !this.request) {\n            this.request = new FetchRequest(this, FetchMethod.get, this.location);\n            this.request.perform();\n        }\n    }\n    simulateRequest() {\n        if (this.response) {\n            this.startRequest();\n            this.recordResponse();\n            this.finishRequest();\n        }\n    }\n    startRequest() {\n        this.recordTimingMetric(TimingMetric.requestStart);\n        this.adapter.visitRequestStarted(this);\n    }\n    recordResponse(response = this.response) {\n        this.response = response;\n        if (response) {\n            const { statusCode } = response;\n            if (isSuccessful(statusCode)) {\n                this.adapter.visitRequestCompleted(this);\n            }\n            else {\n                this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n            }\n        }\n    }\n    finishRequest() {\n        this.recordTimingMetric(TimingMetric.requestEnd);\n        this.adapter.visitRequestFinished(this);\n    }\n    loadResponse() {\n        if (this.response) {\n            const { statusCode, responseHTML } = this.response;\n            this.render(async () => {\n                this.cacheSnapshot();\n                if (this.view.renderPromise)\n                    await this.view.renderPromise;\n                if (isSuccessful(statusCode) && responseHTML != null) {\n                    await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender);\n                    this.adapter.visitRendered(this);\n                    this.complete();\n                }\n                else {\n                    await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML));\n                    this.adapter.visitRendered(this);\n                    this.fail();\n                }\n            });\n        }\n    }\n    getCachedSnapshot() {\n        const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n        if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n            if (this.action == \"restore\" || snapshot.isPreviewable) {\n                return snapshot;\n            }\n        }\n    }\n    getPreloadedSnapshot() {\n        if (this.snapshotHTML) {\n            return PageSnapshot.fromHTMLString(this.snapshotHTML);\n        }\n    }\n    hasCachedSnapshot() {\n        return this.getCachedSnapshot() != null;\n    }\n    loadCachedSnapshot() {\n        const snapshot = this.getCachedSnapshot();\n        if (snapshot) {\n            const isPreview = this.shouldIssueRequest();\n            this.render(async () => {\n                this.cacheSnapshot();\n                if (this.isSamePage) {\n                    this.adapter.visitRendered(this);\n                }\n                else {\n                    if (this.view.renderPromise)\n                        await this.view.renderPromise;\n                    await this.view.renderPage(snapshot, isPreview, this.willRender);\n                    this.adapter.visitRendered(this);\n                    if (!isPreview) {\n                        this.complete();\n                    }\n                }\n            });\n        }\n    }\n    followRedirect() {\n        var _a;\n        if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n            this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n                action: 'replace',\n                response: this.response\n            });\n            this.followedRedirect = true;\n        }\n    }\n    goToSamePageAnchor() {\n        if (this.isSamePage) {\n            this.render(async () => {\n                this.cacheSnapshot();\n                this.adapter.visitRendered(this);\n            });\n        }\n    }\n    requestStarted() {\n        this.startRequest();\n    }\n    requestPreventedHandlingResponse(request, response) {\n    }\n    async requestSucceededWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({ statusCode: SystemStatusCode.contentTypeMismatch, redirected });\n        }\n        else {\n            this.redirectedToLocation = response.redirected ? response.location : undefined;\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    async requestFailedWithResponse(request, response) {\n        const responseHTML = await response.responseHTML;\n        const { redirected, statusCode } = response;\n        if (responseHTML == undefined) {\n            this.recordResponse({ statusCode: SystemStatusCode.contentTypeMismatch, redirected });\n        }\n        else {\n            this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n        }\n    }\n    requestErrored(request, error) {\n        this.recordResponse({ statusCode: SystemStatusCode.networkFailure, redirected: false });\n    }\n    requestFinished() {\n        this.finishRequest();\n    }\n    performScroll() {\n        if (!this.scrolled) {\n            if (this.action == \"restore\") {\n                this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n            }\n            else {\n                this.scrollToAnchor() || this.view.scrollToTop();\n            }\n            if (this.isSamePage) {\n                this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n            }\n            this.scrolled = true;\n        }\n    }\n    scrollToRestoredPosition() {\n        const { scrollPosition } = this.restorationData;\n        if (scrollPosition) {\n            this.view.scrollToPosition(scrollPosition);\n            return true;\n        }\n    }\n    scrollToAnchor() {\n        const anchor = getAnchor(this.location);\n        if (anchor != null) {\n            this.view.scrollToAnchor(anchor);\n            return true;\n        }\n    }\n    recordTimingMetric(metric) {\n        this.timingMetrics[metric] = new Date().getTime();\n    }\n    getTimingMetrics() {\n        return Object.assign({}, this.timingMetrics);\n    }\n    getHistoryMethodForAction(action) {\n        switch (action) {\n            case \"replace\": return history.replaceState;\n            case \"advance\":\n            case \"restore\": return history.pushState;\n        }\n    }\n    hasPreloadedResponse() {\n        return typeof this.response == \"object\";\n    }\n    shouldIssueRequest() {\n        if (this.isSamePage) {\n            return false;\n        }\n        else if (this.action == \"restore\") {\n            return !this.hasCachedSnapshot();\n        }\n        else {\n            return this.willRender;\n        }\n    }\n    cacheSnapshot() {\n        if (!this.snapshotCached) {\n            this.view.cacheSnapshot().then(snapshot => snapshot && this.visitCachedSnapshot(snapshot));\n            this.snapshotCached = true;\n        }\n    }\n    async render(callback) {\n        this.cancelRender();\n        await new Promise(resolve => {\n            this.frame = requestAnimationFrame(() => resolve());\n        });\n        await callback();\n        delete this.frame;\n        this.performScroll();\n    }\n    cancelRender() {\n        if (this.frame) {\n            cancelAnimationFrame(this.frame);\n            delete this.frame;\n        }\n    }\n}\nfunction isSuccessful(statusCode) {\n    return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n    constructor(session) {\n        this.progressBar = new ProgressBar;\n        this.showProgressBar = () => {\n            this.progressBar.show();\n        };\n        this.session = session;\n    }\n    visitProposedToLocation(location, options) {\n        this.navigator.startVisit(location, uuid(), options);\n    }\n    visitStarted(visit) {\n        visit.loadCachedSnapshot();\n        visit.issueRequest();\n        visit.changeHistory();\n        visit.goToSamePageAnchor();\n    }\n    visitRequestStarted(visit) {\n        this.progressBar.setValue(0);\n        if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n            this.showVisitProgressBarAfterDelay();\n        }\n        else {\n            this.showProgressBar();\n        }\n    }\n    visitRequestCompleted(visit) {\n        visit.loadResponse();\n    }\n    visitRequestFailedWithStatusCode(visit, statusCode) {\n        switch (statusCode) {\n            case SystemStatusCode.networkFailure:\n            case SystemStatusCode.timeoutFailure:\n            case SystemStatusCode.contentTypeMismatch:\n                return this.reload();\n            default:\n                return visit.loadResponse();\n        }\n    }\n    visitRequestFinished(visit) {\n        this.progressBar.setValue(1);\n        this.hideVisitProgressBar();\n    }\n    visitCompleted(visit) {\n    }\n    pageInvalidated() {\n        this.reload();\n    }\n    visitFailed(visit) {\n    }\n    visitRendered(visit) {\n    }\n    formSubmissionStarted(formSubmission) {\n        this.progressBar.setValue(0);\n        this.showFormProgressBarAfterDelay();\n    }\n    formSubmissionFinished(formSubmission) {\n        this.progressBar.setValue(1);\n        this.hideFormProgressBar();\n    }\n    showVisitProgressBarAfterDelay() {\n        this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n    }\n    hideVisitProgressBar() {\n        this.progressBar.hide();\n        if (this.visitProgressBarTimeout != null) {\n            window.clearTimeout(this.visitProgressBarTimeout);\n            delete this.visitProgressBarTimeout;\n        }\n    }\n    showFormProgressBarAfterDelay() {\n        if (this.formProgressBarTimeout == null) {\n            this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n        }\n    }\n    hideFormProgressBar() {\n        this.progressBar.hide();\n        if (this.formProgressBarTimeout != null) {\n            window.clearTimeout(this.formProgressBarTimeout);\n            delete this.formProgressBarTimeout;\n        }\n    }\n    reload() {\n        window.location.reload();\n    }\n    get navigator() {\n        return this.session.navigator;\n    }\n}\n\nclass CacheObserver {\n    constructor() {\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n        }\n    }\n    removeStaleElements() {\n        const staleElements = [...document.querySelectorAll('[data-turbo-cache=\"false\"]')];\n        for (const element of staleElements) {\n            element.remove();\n        }\n    }\n}\n\nclass FormSubmitObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.submitCaptured = () => {\n            removeEventListener(\"submit\", this.submitBubbled, false);\n            addEventListener(\"submit\", this.submitBubbled, false);\n        };\n        this.submitBubbled = ((event) => {\n            if (!event.defaultPrevented) {\n                const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n                const submitter = event.submitter || undefined;\n                if (form) {\n                    const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n                    if (method != \"dialog\" && this.delegate.willSubmitForm(form, submitter)) {\n                        event.preventDefault();\n                        this.delegate.formSubmitted(form, submitter);\n                    }\n                }\n            }\n        });\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"submit\", this.submitCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"submit\", this.submitCaptured, true);\n            this.started = false;\n        }\n    }\n}\n\nclass FrameRedirector {\n    constructor(element) {\n        this.element = element;\n        this.linkInterceptor = new LinkInterceptor(this, element);\n        this.formInterceptor = new FormInterceptor(this, element);\n    }\n    start() {\n        this.linkInterceptor.start();\n        this.formInterceptor.start();\n    }\n    stop() {\n        this.linkInterceptor.stop();\n        this.formInterceptor.stop();\n    }\n    shouldInterceptLinkClick(element, url) {\n        return this.shouldRedirect(element);\n    }\n    linkClickIntercepted(element, url) {\n        const frame = this.findFrameElement(element);\n        if (frame) {\n            frame.delegate.linkClickIntercepted(element, url);\n        }\n    }\n    shouldInterceptFormSubmission(element, submitter) {\n        return this.shouldSubmit(element, submitter);\n    }\n    formSubmissionIntercepted(element, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        if (frame) {\n            frame.removeAttribute(\"reloadable\");\n            frame.delegate.formSubmissionIntercepted(element, submitter);\n        }\n    }\n    shouldSubmit(form, submitter) {\n        var _a;\n        const action = getAction(form, submitter);\n        const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n        const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n        return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n    }\n    shouldRedirect(element, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        return frame ? frame != element.closest(\"turbo-frame\") : false;\n    }\n    findFrameElement(element, submitter) {\n        const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n        if (id && id != \"_top\") {\n            const frame = this.element.querySelector(`#${id}:not([disabled])`);\n            if (frame instanceof FrameElement) {\n                return frame;\n            }\n        }\n    }\n}\n\nclass History {\n    constructor(delegate) {\n        this.restorationIdentifier = uuid();\n        this.restorationData = {};\n        this.started = false;\n        this.pageLoaded = false;\n        this.onPopState = (event) => {\n            if (this.shouldHandlePopState()) {\n                const { turbo } = event.state || {};\n                if (turbo) {\n                    this.location = new URL(window.location.href);\n                    const { restorationIdentifier } = turbo;\n                    this.restorationIdentifier = restorationIdentifier;\n                    this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n                }\n            }\n        };\n        this.onPageLoad = async (event) => {\n            await nextMicrotask();\n            this.pageLoaded = true;\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"popstate\", this.onPopState, false);\n            addEventListener(\"load\", this.onPageLoad, false);\n            this.started = true;\n            this.replace(new URL(window.location.href));\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"popstate\", this.onPopState, false);\n            removeEventListener(\"load\", this.onPageLoad, false);\n            this.started = false;\n        }\n    }\n    push(location, restorationIdentifier) {\n        this.update(history.pushState, location, restorationIdentifier);\n    }\n    replace(location, restorationIdentifier) {\n        this.update(history.replaceState, location, restorationIdentifier);\n    }\n    update(method, location, restorationIdentifier = uuid()) {\n        const state = { turbo: { restorationIdentifier } };\n        method.call(history, state, \"\", location.href);\n        this.location = location;\n        this.restorationIdentifier = restorationIdentifier;\n    }\n    getRestorationDataForIdentifier(restorationIdentifier) {\n        return this.restorationData[restorationIdentifier] || {};\n    }\n    updateRestorationData(additionalData) {\n        const { restorationIdentifier } = this;\n        const restorationData = this.restorationData[restorationIdentifier];\n        this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n    }\n    assumeControlOfScrollRestoration() {\n        var _a;\n        if (!this.previousScrollRestoration) {\n            this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n            history.scrollRestoration = \"manual\";\n        }\n    }\n    relinquishControlOfScrollRestoration() {\n        if (this.previousScrollRestoration) {\n            history.scrollRestoration = this.previousScrollRestoration;\n            delete this.previousScrollRestoration;\n        }\n    }\n    shouldHandlePopState() {\n        return this.pageIsLoaded();\n    }\n    pageIsLoaded() {\n        return this.pageLoaded || document.readyState == \"complete\";\n    }\n}\n\nclass LinkClickObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.clickCaptured = () => {\n            removeEventListener(\"click\", this.clickBubbled, false);\n            addEventListener(\"click\", this.clickBubbled, false);\n        };\n        this.clickBubbled = (event) => {\n            if (this.clickEventIsSignificant(event)) {\n                const target = (event.composedPath && event.composedPath()[0]) || event.target;\n                const link = this.findLinkFromClickTarget(target);\n                if (link) {\n                    const location = this.getLocationForLink(link);\n                    if (this.delegate.willFollowLinkToLocation(link, location)) {\n                        event.preventDefault();\n                        this.delegate.followedLinkToLocation(link, location);\n                    }\n                }\n            }\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"click\", this.clickCaptured, true);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"click\", this.clickCaptured, true);\n            this.started = false;\n        }\n    }\n    clickEventIsSignificant(event) {\n        return !((event.target && event.target.isContentEditable)\n            || event.defaultPrevented\n            || event.which > 1\n            || event.altKey\n            || event.ctrlKey\n            || event.metaKey\n            || event.shiftKey);\n    }\n    findLinkFromClickTarget(target) {\n        if (target instanceof Element) {\n            return target.closest(\"a[href]:not([target^=_]):not([download])\");\n        }\n    }\n    getLocationForLink(link) {\n        return expandURL(link.getAttribute(\"href\") || \"\");\n    }\n}\n\nfunction isAction(action) {\n    return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\n\nclass Navigator {\n    constructor(delegate) {\n        this.delegate = delegate;\n    }\n    proposeVisit(location, options = {}) {\n        if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n            if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n                this.delegate.visitProposedToLocation(location, options);\n            }\n            else {\n                window.location.href = location.toString();\n            }\n        }\n    }\n    startVisit(locatable, restorationIdentifier, options = {}) {\n        this.stop();\n        this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n        this.currentVisit.start();\n    }\n    submitForm(form, submitter) {\n        this.stop();\n        this.formSubmission = new FormSubmission(this, form, submitter, true);\n        this.formSubmission.start();\n    }\n    stop() {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n            delete this.formSubmission;\n        }\n        if (this.currentVisit) {\n            this.currentVisit.cancel();\n            delete this.currentVisit;\n        }\n    }\n    get adapter() {\n        return this.delegate.adapter;\n    }\n    get view() {\n        return this.delegate.view;\n    }\n    get history() {\n        return this.delegate.history;\n    }\n    formSubmissionStarted(formSubmission) {\n        if (typeof this.adapter.formSubmissionStarted === 'function') {\n            this.adapter.formSubmissionStarted(formSubmission);\n        }\n    }\n    async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n        if (formSubmission == this.formSubmission) {\n            const responseHTML = await fetchResponse.responseHTML;\n            if (responseHTML) {\n                if (formSubmission.method != FetchMethod.get) {\n                    this.view.clearSnapshotCache();\n                }\n                const { statusCode, redirected } = fetchResponse;\n                const action = this.getActionForFormSubmission(formSubmission);\n                const visitOptions = { action, response: { statusCode, responseHTML, redirected } };\n                this.proposeVisit(fetchResponse.location, visitOptions);\n            }\n        }\n    }\n    async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        const responseHTML = await fetchResponse.responseHTML;\n        if (responseHTML) {\n            const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n            if (fetchResponse.serverError) {\n                await this.view.renderError(snapshot);\n            }\n            else {\n                await this.view.renderPage(snapshot);\n            }\n            this.view.scrollToTop();\n            this.view.clearSnapshotCache();\n        }\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished(formSubmission) {\n        if (typeof this.adapter.formSubmissionFinished === 'function') {\n            this.adapter.formSubmissionFinished(formSubmission);\n        }\n    }\n    visitStarted(visit) {\n        this.delegate.visitStarted(visit);\n    }\n    visitCompleted(visit) {\n        this.delegate.visitCompleted(visit);\n    }\n    locationWithActionIsSamePage(location, action) {\n        const anchor = getAnchor(location);\n        const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n        const isRestorationToTop = action === 'restore' && typeof anchor === 'undefined';\n        return action !== \"replace\" &&\n            getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n            (isRestorationToTop || (anchor != null && anchor !== currentAnchor));\n    }\n    visitScrolledToSamePageLocation(oldURL, newURL) {\n        this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n    }\n    get location() {\n        return this.history.location;\n    }\n    get restorationIdentifier() {\n        return this.history.restorationIdentifier;\n    }\n    getActionForFormSubmission(formSubmission) {\n        const { formElement, submitter } = formSubmission;\n        const action = getAttribute(\"data-turbo-action\", submitter, formElement);\n        return isAction(action) ? action : \"advance\";\n    }\n}\n\nvar PageStage;\n(function (PageStage) {\n    PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n    PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n    PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n    PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n    constructor(delegate) {\n        this.stage = PageStage.initial;\n        this.started = false;\n        this.interpretReadyState = () => {\n            const { readyState } = this;\n            if (readyState == \"interactive\") {\n                this.pageIsInteractive();\n            }\n            else if (readyState == \"complete\") {\n                this.pageIsComplete();\n            }\n        };\n        this.pageWillUnload = () => {\n            this.delegate.pageWillUnload();\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            if (this.stage == PageStage.initial) {\n                this.stage = PageStage.loading;\n            }\n            document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n            addEventListener(\"pagehide\", this.pageWillUnload, false);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n            removeEventListener(\"pagehide\", this.pageWillUnload, false);\n            this.started = false;\n        }\n    }\n    pageIsInteractive() {\n        if (this.stage == PageStage.loading) {\n            this.stage = PageStage.interactive;\n            this.delegate.pageBecameInteractive();\n        }\n    }\n    pageIsComplete() {\n        this.pageIsInteractive();\n        if (this.stage == PageStage.interactive) {\n            this.stage = PageStage.complete;\n            this.delegate.pageLoaded();\n        }\n    }\n    get readyState() {\n        return document.readyState;\n    }\n}\n\nclass ScrollObserver {\n    constructor(delegate) {\n        this.started = false;\n        this.onScroll = () => {\n            this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            addEventListener(\"scroll\", this.onScroll, false);\n            this.onScroll();\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            removeEventListener(\"scroll\", this.onScroll, false);\n            this.started = false;\n        }\n    }\n    updatePosition(position) {\n        this.delegate.scrollPositionChanged(position);\n    }\n}\n\nclass StreamObserver {\n    constructor(delegate) {\n        this.sources = new Set;\n        this.started = false;\n        this.inspectFetchResponse = ((event) => {\n            const response = fetchResponseFromEvent(event);\n            if (response && fetchResponseIsStream(response)) {\n                event.preventDefault();\n                this.receiveMessageResponse(response);\n            }\n        });\n        this.receiveMessageEvent = (event) => {\n            if (this.started && typeof event.data == \"string\") {\n                this.receiveMessageHTML(event.data);\n            }\n        };\n        this.delegate = delegate;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n        }\n    }\n    connectStreamSource(source) {\n        if (!this.streamSourceIsConnected(source)) {\n            this.sources.add(source);\n            source.addEventListener(\"message\", this.receiveMessageEvent, false);\n        }\n    }\n    disconnectStreamSource(source) {\n        if (this.streamSourceIsConnected(source)) {\n            this.sources.delete(source);\n            source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n        }\n    }\n    streamSourceIsConnected(source) {\n        return this.sources.has(source);\n    }\n    async receiveMessageResponse(response) {\n        const html = await response.responseHTML;\n        if (html) {\n            this.receiveMessageHTML(html);\n        }\n    }\n    receiveMessageHTML(html) {\n        this.delegate.receivedMessageFromStream(new StreamMessage(html));\n    }\n}\nfunction fetchResponseFromEvent(event) {\n    var _a;\n    const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n    if (fetchResponse instanceof FetchResponse) {\n        return fetchResponse;\n    }\n}\nfunction fetchResponseIsStream(response) {\n    var _a;\n    const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n    return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n    async render() {\n        this.replaceHeadAndBody();\n        this.activateScriptElements();\n    }\n    replaceHeadAndBody() {\n        const { documentElement, head, body } = document;\n        documentElement.replaceChild(this.newHead, head);\n        documentElement.replaceChild(this.newElement, body);\n    }\n    activateScriptElements() {\n        for (const replaceableElement of this.scriptElements) {\n            const parentNode = replaceableElement.parentNode;\n            if (parentNode) {\n                const element = this.createScriptElement(replaceableElement);\n                parentNode.replaceChild(element, replaceableElement);\n            }\n        }\n    }\n    get newHead() {\n        return this.newSnapshot.headSnapshot.element;\n    }\n    get scriptElements() {\n        return [...document.documentElement.querySelectorAll(\"script\")];\n    }\n}\n\nclass PageRenderer extends Renderer {\n    get shouldRender() {\n        return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n    }\n    prepareToRender() {\n        this.mergeHead();\n    }\n    async render() {\n        if (this.willRender) {\n            this.replaceBody();\n        }\n    }\n    finishRendering() {\n        super.finishRendering();\n        if (!this.isPreview) {\n            this.focusFirstAutofocusableElement();\n        }\n    }\n    get currentHeadSnapshot() {\n        return this.currentSnapshot.headSnapshot;\n    }\n    get newHeadSnapshot() {\n        return this.newSnapshot.headSnapshot;\n    }\n    get newElement() {\n        return this.newSnapshot.element;\n    }\n    mergeHead() {\n        this.copyNewHeadStylesheetElements();\n        this.copyNewHeadScriptElements();\n        this.removeCurrentHeadProvisionalElements();\n        this.copyNewHeadProvisionalElements();\n    }\n    replaceBody() {\n        this.preservingPermanentElements(() => {\n            this.activateNewBody();\n            this.assignNewBody();\n        });\n    }\n    get trackedElementsAreIdentical() {\n        return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n    }\n    copyNewHeadStylesheetElements() {\n        for (const element of this.newHeadStylesheetElements) {\n            document.head.appendChild(element);\n        }\n    }\n    copyNewHeadScriptElements() {\n        for (const element of this.newHeadScriptElements) {\n            document.head.appendChild(this.createScriptElement(element));\n        }\n    }\n    removeCurrentHeadProvisionalElements() {\n        for (const element of this.currentHeadProvisionalElements) {\n            document.head.removeChild(element);\n        }\n    }\n    copyNewHeadProvisionalElements() {\n        for (const element of this.newHeadProvisionalElements) {\n            document.head.appendChild(element);\n        }\n    }\n    activateNewBody() {\n        document.adoptNode(this.newElement);\n        this.activateNewBodyScriptElements();\n    }\n    activateNewBodyScriptElements() {\n        for (const inertScriptElement of this.newBodyScriptElements) {\n            const activatedScriptElement = this.createScriptElement(inertScriptElement);\n            inertScriptElement.replaceWith(activatedScriptElement);\n        }\n    }\n    assignNewBody() {\n        if (document.body && this.newElement instanceof HTMLBodyElement) {\n            document.body.replaceWith(this.newElement);\n        }\n        else {\n            document.documentElement.appendChild(this.newElement);\n        }\n    }\n    get newHeadStylesheetElements() {\n        return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n    }\n    get newHeadScriptElements() {\n        return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n    }\n    get currentHeadProvisionalElements() {\n        return this.currentHeadSnapshot.provisionalElements;\n    }\n    get newHeadProvisionalElements() {\n        return this.newHeadSnapshot.provisionalElements;\n    }\n    get newBodyScriptElements() {\n        return this.newElement.querySelectorAll(\"script\");\n    }\n}\n\nclass SnapshotCache {\n    constructor(size) {\n        this.keys = [];\n        this.snapshots = {};\n        this.size = size;\n    }\n    has(location) {\n        return toCacheKey(location) in this.snapshots;\n    }\n    get(location) {\n        if (this.has(location)) {\n            const snapshot = this.read(location);\n            this.touch(location);\n            return snapshot;\n        }\n    }\n    put(location, snapshot) {\n        this.write(location, snapshot);\n        this.touch(location);\n        return snapshot;\n    }\n    clear() {\n        this.snapshots = {};\n    }\n    read(location) {\n        return this.snapshots[toCacheKey(location)];\n    }\n    write(location, snapshot) {\n        this.snapshots[toCacheKey(location)] = snapshot;\n    }\n    touch(location) {\n        const key = toCacheKey(location);\n        const index = this.keys.indexOf(key);\n        if (index > -1)\n            this.keys.splice(index, 1);\n        this.keys.unshift(key);\n        this.trim();\n    }\n    trim() {\n        for (const key of this.keys.splice(this.size)) {\n            delete this.snapshots[key];\n        }\n    }\n}\n\nclass PageView extends View {\n    constructor() {\n        super(...arguments);\n        this.snapshotCache = new SnapshotCache(10);\n        this.lastRenderedLocation = new URL(location.href);\n    }\n    renderPage(snapshot, isPreview = false, willRender = true) {\n        const renderer = new PageRenderer(this.snapshot, snapshot, isPreview, willRender);\n        return this.render(renderer);\n    }\n    renderError(snapshot) {\n        const renderer = new ErrorRenderer(this.snapshot, snapshot, false);\n        return this.render(renderer);\n    }\n    clearSnapshotCache() {\n        this.snapshotCache.clear();\n    }\n    async cacheSnapshot() {\n        if (this.shouldCacheSnapshot) {\n            this.delegate.viewWillCacheSnapshot();\n            const { snapshot, lastRenderedLocation: location } = this;\n            await nextEventLoopTick();\n            const cachedSnapshot = snapshot.clone();\n            this.snapshotCache.put(location, cachedSnapshot);\n            return cachedSnapshot;\n        }\n    }\n    getCachedSnapshotForLocation(location) {\n        return this.snapshotCache.get(location);\n    }\n    get snapshot() {\n        return PageSnapshot.fromElement(this.element);\n    }\n    get shouldCacheSnapshot() {\n        return this.snapshot.isCacheable;\n    }\n}\n\nclass Session {\n    constructor() {\n        this.navigator = new Navigator(this);\n        this.history = new History(this);\n        this.view = new PageView(this, document.documentElement);\n        this.adapter = new BrowserAdapter(this);\n        this.pageObserver = new PageObserver(this);\n        this.cacheObserver = new CacheObserver();\n        this.linkClickObserver = new LinkClickObserver(this);\n        this.formSubmitObserver = new FormSubmitObserver(this);\n        this.scrollObserver = new ScrollObserver(this);\n        this.streamObserver = new StreamObserver(this);\n        this.frameRedirector = new FrameRedirector(document.documentElement);\n        this.drive = true;\n        this.enabled = true;\n        this.progressBarDelay = 500;\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.pageObserver.start();\n            this.cacheObserver.start();\n            this.linkClickObserver.start();\n            this.formSubmitObserver.start();\n            this.scrollObserver.start();\n            this.streamObserver.start();\n            this.frameRedirector.start();\n            this.history.start();\n            this.started = true;\n            this.enabled = true;\n        }\n    }\n    disable() {\n        this.enabled = false;\n    }\n    stop() {\n        if (this.started) {\n            this.pageObserver.stop();\n            this.cacheObserver.stop();\n            this.linkClickObserver.stop();\n            this.formSubmitObserver.stop();\n            this.scrollObserver.stop();\n            this.streamObserver.stop();\n            this.frameRedirector.stop();\n            this.history.stop();\n            this.started = false;\n        }\n    }\n    registerAdapter(adapter) {\n        this.adapter = adapter;\n    }\n    visit(location, options = {}) {\n        this.navigator.proposeVisit(expandURL(location), options);\n    }\n    connectStreamSource(source) {\n        this.streamObserver.connectStreamSource(source);\n    }\n    disconnectStreamSource(source) {\n        this.streamObserver.disconnectStreamSource(source);\n    }\n    renderStreamMessage(message) {\n        document.documentElement.appendChild(StreamMessage.wrap(message).fragment);\n    }\n    clearCache() {\n        this.view.clearSnapshotCache();\n    }\n    setProgressBarDelay(delay) {\n        this.progressBarDelay = delay;\n    }\n    get location() {\n        return this.history.location;\n    }\n    get restorationIdentifier() {\n        return this.history.restorationIdentifier;\n    }\n    historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n        if (this.enabled) {\n            this.navigator.startVisit(location, restorationIdentifier, { action: \"restore\", historyChanged: true });\n        }\n        else {\n            this.adapter.pageInvalidated();\n        }\n    }\n    scrollPositionChanged(position) {\n        this.history.updateRestorationData({ scrollPosition: position });\n    }\n    willFollowLinkToLocation(link, location) {\n        return this.elementDriveEnabled(link)\n            && locationIsVisitable(location, this.snapshot.rootLocation)\n            && this.applicationAllowsFollowingLinkToLocation(link, location);\n    }\n    followedLinkToLocation(link, location) {\n        const action = this.getActionForLink(link);\n        this.convertLinkWithMethodClickToFormSubmission(link) || this.visit(location.href, { action });\n    }\n    convertLinkWithMethodClickToFormSubmission(link) {\n        const linkMethod = link.getAttribute(\"data-turbo-method\");\n        if (linkMethod) {\n            const form = document.createElement(\"form\");\n            form.method = linkMethod;\n            form.action = link.getAttribute(\"href\") || \"undefined\";\n            form.hidden = true;\n            if (link.hasAttribute(\"data-turbo-confirm\")) {\n                form.setAttribute(\"data-turbo-confirm\", link.getAttribute(\"data-turbo-confirm\"));\n            }\n            const frame = this.getTargetFrameForLink(link);\n            if (frame) {\n                form.setAttribute(\"data-turbo-frame\", frame);\n                form.addEventListener(\"turbo:submit-start\", () => form.remove());\n            }\n            else {\n                form.addEventListener(\"submit\", () => form.remove());\n            }\n            document.body.appendChild(form);\n            return dispatch(\"submit\", { cancelable: true, target: form });\n        }\n        else {\n            return false;\n        }\n    }\n    allowsVisitingLocationWithAction(location, action) {\n        return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n    }\n    visitProposedToLocation(location, options) {\n        extendURLWithDeprecatedProperties(location);\n        this.adapter.visitProposedToLocation(location, options);\n    }\n    visitStarted(visit) {\n        extendURLWithDeprecatedProperties(visit.location);\n        if (!visit.silent) {\n            this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n        }\n    }\n    visitCompleted(visit) {\n        this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n    }\n    locationWithActionIsSamePage(location, action) {\n        return this.navigator.locationWithActionIsSamePage(location, action);\n    }\n    visitScrolledToSamePageLocation(oldURL, newURL) {\n        this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n    }\n    willSubmitForm(form, submitter) {\n        const action = getAction(form, submitter);\n        return this.elementDriveEnabled(form)\n            && (!submitter || this.elementDriveEnabled(submitter))\n            && locationIsVisitable(expandURL(action), this.snapshot.rootLocation);\n    }\n    formSubmitted(form, submitter) {\n        this.navigator.submitForm(form, submitter);\n    }\n    pageBecameInteractive() {\n        this.view.lastRenderedLocation = this.location;\n        this.notifyApplicationAfterPageLoad();\n    }\n    pageLoaded() {\n        this.history.assumeControlOfScrollRestoration();\n    }\n    pageWillUnload() {\n        this.history.relinquishControlOfScrollRestoration();\n    }\n    receivedMessageFromStream(message) {\n        this.renderStreamMessage(message);\n    }\n    viewWillCacheSnapshot() {\n        var _a;\n        if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n            this.notifyApplicationBeforeCachingSnapshot();\n        }\n    }\n    allowsImmediateRender({ element }, resume) {\n        const event = this.notifyApplicationBeforeRender(element, resume);\n        return !event.defaultPrevented;\n    }\n    viewRenderedSnapshot(snapshot, isPreview) {\n        this.view.lastRenderedLocation = this.history.location;\n        this.notifyApplicationAfterRender();\n    }\n    viewInvalidated() {\n        this.adapter.pageInvalidated();\n    }\n    frameLoaded(frame) {\n        this.notifyApplicationAfterFrameLoad(frame);\n    }\n    frameRendered(fetchResponse, frame) {\n        this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n    }\n    applicationAllowsFollowingLinkToLocation(link, location) {\n        const event = this.notifyApplicationAfterClickingLinkToLocation(link, location);\n        return !event.defaultPrevented;\n    }\n    applicationAllowsVisitingLocation(location) {\n        const event = this.notifyApplicationBeforeVisitingLocation(location);\n        return !event.defaultPrevented;\n    }\n    notifyApplicationAfterClickingLinkToLocation(link, location) {\n        return dispatch(\"turbo:click\", { target: link, detail: { url: location.href }, cancelable: true });\n    }\n    notifyApplicationBeforeVisitingLocation(location) {\n        return dispatch(\"turbo:before-visit\", { detail: { url: location.href }, cancelable: true });\n    }\n    notifyApplicationAfterVisitingLocation(location, action) {\n        markAsBusy(document.documentElement);\n        return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n    }\n    notifyApplicationBeforeCachingSnapshot() {\n        return dispatch(\"turbo:before-cache\");\n    }\n    notifyApplicationBeforeRender(newBody, resume) {\n        return dispatch(\"turbo:before-render\", { detail: { newBody, resume }, cancelable: true });\n    }\n    notifyApplicationAfterRender() {\n        return dispatch(\"turbo:render\");\n    }\n    notifyApplicationAfterPageLoad(timing = {}) {\n        clearBusyState(document.documentElement);\n        return dispatch(\"turbo:load\", { detail: { url: this.location.href, timing } });\n    }\n    notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n        dispatchEvent(new HashChangeEvent(\"hashchange\", { oldURL: oldURL.toString(), newURL: newURL.toString() }));\n    }\n    notifyApplicationAfterFrameLoad(frame) {\n        return dispatch(\"turbo:frame-load\", { target: frame });\n    }\n    notifyApplicationAfterFrameRender(fetchResponse, frame) {\n        return dispatch(\"turbo:frame-render\", { detail: { fetchResponse }, target: frame, cancelable: true });\n    }\n    elementDriveEnabled(element) {\n        const container = element === null || element === void 0 ? void 0 : element.closest(\"[data-turbo]\");\n        if (this.drive) {\n            if (container) {\n                return container.getAttribute(\"data-turbo\") != \"false\";\n            }\n            else {\n                return true;\n            }\n        }\n        else {\n            if (container) {\n                return container.getAttribute(\"data-turbo\") == \"true\";\n            }\n            else {\n                return false;\n            }\n        }\n    }\n    getActionForLink(link) {\n        const action = link.getAttribute(\"data-turbo-action\");\n        return isAction(action) ? action : \"advance\";\n    }\n    getTargetFrameForLink(link) {\n        const frame = link.getAttribute(\"data-turbo-frame\");\n        if (frame) {\n            return frame;\n        }\n        else {\n            const container = link.closest(\"turbo-frame\");\n            if (container) {\n                return container.id;\n            }\n        }\n    }\n    get snapshot() {\n        return this.view.snapshot;\n    }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n    Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n    absoluteURL: {\n        get() {\n            return this.toString();\n        }\n    }\n};\n\nconst session = new Session;\nconst { navigator: navigator$1 } = session;\nfunction start() {\n    session.start();\n}\nfunction registerAdapter(adapter) {\n    session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n    session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n    session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n    session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n    session.renderStreamMessage(message);\n}\nfunction clearCache() {\n    session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n    session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n    FormSubmission.confirmMethod = confirmMethod;\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    navigator: navigator$1,\n    session: session,\n    PageRenderer: PageRenderer,\n    PageSnapshot: PageSnapshot,\n    start: start,\n    registerAdapter: registerAdapter,\n    visit: visit,\n    connectStreamSource: connectStreamSource,\n    disconnectStreamSource: disconnectStreamSource,\n    renderStreamMessage: renderStreamMessage,\n    clearCache: clearCache,\n    setProgressBarDelay: setProgressBarDelay,\n    setConfirmMethod: setConfirmMethod\n});\n\nclass FrameController {\n    constructor(element) {\n        this.fetchResponseLoaded = (fetchResponse) => { };\n        this.currentFetchRequest = null;\n        this.resolveVisitPromise = () => { };\n        this.connected = false;\n        this.hasBeenLoaded = false;\n        this.settingSourceURL = false;\n        this.element = element;\n        this.view = new FrameView(this, this.element);\n        this.appearanceObserver = new AppearanceObserver(this, this.element);\n        this.linkInterceptor = new LinkInterceptor(this, this.element);\n        this.formInterceptor = new FormInterceptor(this, this.element);\n    }\n    connect() {\n        if (!this.connected) {\n            this.connected = true;\n            this.reloadable = false;\n            if (this.loadingStyle == FrameLoadingStyle.lazy) {\n                this.appearanceObserver.start();\n            }\n            this.linkInterceptor.start();\n            this.formInterceptor.start();\n            this.sourceURLChanged();\n        }\n    }\n    disconnect() {\n        if (this.connected) {\n            this.connected = false;\n            this.appearanceObserver.stop();\n            this.linkInterceptor.stop();\n            this.formInterceptor.stop();\n        }\n    }\n    disabledChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.eager) {\n            this.loadSourceURL();\n        }\n    }\n    sourceURLChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n            this.loadSourceURL();\n        }\n    }\n    loadingStyleChanged() {\n        if (this.loadingStyle == FrameLoadingStyle.lazy) {\n            this.appearanceObserver.start();\n        }\n        else {\n            this.appearanceObserver.stop();\n            this.loadSourceURL();\n        }\n    }\n    async loadSourceURL() {\n        if (!this.settingSourceURL && this.enabled && this.isActive && (this.reloadable || this.sourceURL != this.currentURL)) {\n            const previousURL = this.currentURL;\n            this.currentURL = this.sourceURL;\n            if (this.sourceURL) {\n                try {\n                    this.element.loaded = this.visit(expandURL(this.sourceURL));\n                    this.appearanceObserver.stop();\n                    await this.element.loaded;\n                    this.hasBeenLoaded = true;\n                }\n                catch (error) {\n                    this.currentURL = previousURL;\n                    throw error;\n                }\n            }\n        }\n    }\n    async loadResponse(fetchResponse) {\n        if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n            this.sourceURL = fetchResponse.response.url;\n        }\n        try {\n            const html = await fetchResponse.responseHTML;\n            if (html) {\n                const { body } = parseHTMLDocument(html);\n                const snapshot = new Snapshot(await this.extractForeignFrameElement(body));\n                const renderer = new FrameRenderer(this.view.snapshot, snapshot, false, false);\n                if (this.view.renderPromise)\n                    await this.view.renderPromise;\n                await this.view.render(renderer);\n                session.frameRendered(fetchResponse, this.element);\n                session.frameLoaded(this.element);\n                this.fetchResponseLoaded(fetchResponse);\n            }\n        }\n        catch (error) {\n            console.error(error);\n            this.view.invalidate();\n        }\n        finally {\n            this.fetchResponseLoaded = () => { };\n        }\n    }\n    elementAppearedInViewport(element) {\n        this.loadSourceURL();\n    }\n    shouldInterceptLinkClick(element, url) {\n        if (element.hasAttribute(\"data-turbo-method\")) {\n            return false;\n        }\n        else {\n            return this.shouldInterceptNavigation(element);\n        }\n    }\n    linkClickIntercepted(element, url) {\n        this.reloadable = true;\n        this.navigateFrame(element, url);\n    }\n    shouldInterceptFormSubmission(element, submitter) {\n        return this.shouldInterceptNavigation(element, submitter);\n    }\n    formSubmissionIntercepted(element, submitter) {\n        if (this.formSubmission) {\n            this.formSubmission.stop();\n        }\n        this.reloadable = false;\n        this.formSubmission = new FormSubmission(this, element, submitter);\n        const { fetchRequest } = this.formSubmission;\n        this.prepareHeadersForRequest(fetchRequest.headers, fetchRequest);\n        this.formSubmission.start();\n    }\n    prepareHeadersForRequest(headers, request) {\n        headers[\"Turbo-Frame\"] = this.id;\n    }\n    requestStarted(request) {\n        markAsBusy(this.element);\n    }\n    requestPreventedHandlingResponse(request, response) {\n        this.resolveVisitPromise();\n    }\n    async requestSucceededWithResponse(request, response) {\n        await this.loadResponse(response);\n        this.resolveVisitPromise();\n    }\n    requestFailedWithResponse(request, response) {\n        console.error(response);\n        this.resolveVisitPromise();\n    }\n    requestErrored(request, error) {\n        console.error(error);\n        this.resolveVisitPromise();\n    }\n    requestFinished(request) {\n        clearBusyState(this.element);\n    }\n    formSubmissionStarted({ formElement }) {\n        markAsBusy(formElement, this.findFrameElement(formElement));\n    }\n    formSubmissionSucceededWithResponse(formSubmission, response) {\n        const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n        this.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n        frame.delegate.loadResponse(response);\n    }\n    formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n        this.element.delegate.loadResponse(fetchResponse);\n    }\n    formSubmissionErrored(formSubmission, error) {\n        console.error(error);\n    }\n    formSubmissionFinished({ formElement }) {\n        clearBusyState(formElement, this.findFrameElement(formElement));\n    }\n    allowsImmediateRender(snapshot, resume) {\n        return true;\n    }\n    viewRenderedSnapshot(snapshot, isPreview) {\n    }\n    viewInvalidated() {\n    }\n    async visit(url) {\n        var _a;\n        const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams, this.element);\n        (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n        this.currentFetchRequest = request;\n        return new Promise(resolve => {\n            this.resolveVisitPromise = () => {\n                this.resolveVisitPromise = () => { };\n                this.currentFetchRequest = null;\n                resolve();\n            };\n            request.perform();\n        });\n    }\n    navigateFrame(element, url, submitter) {\n        const frame = this.findFrameElement(element, submitter);\n        this.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n        frame.setAttribute(\"reloadable\", \"\");\n        frame.src = url;\n    }\n    proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n        const action = getAttribute(\"data-turbo-action\", submitter, element, frame);\n        if (isAction(action)) {\n            const { visitCachedSnapshot } = new SnapshotSubstitution(frame);\n            frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n                if (frame.src) {\n                    const { statusCode, redirected } = fetchResponse;\n                    const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n                    const response = { statusCode, redirected, responseHTML };\n                    session.visit(frame.src, { action, response, visitCachedSnapshot, willRender: false });\n                }\n            };\n        }\n    }\n    findFrameElement(element, submitter) {\n        var _a;\n        const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n        return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n    }\n    async extractForeignFrameElement(container) {\n        let element;\n        const id = CSS.escape(this.id);\n        try {\n            if (element = activateElement(container.querySelector(`turbo-frame#${id}`), this.currentURL)) {\n                return element;\n            }\n            if (element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.currentURL)) {\n                await element.loaded;\n                return await this.extractForeignFrameElement(element);\n            }\n            console.error(`Response has no matching <turbo-frame id=\"${id}\"> element`);\n        }\n        catch (error) {\n            console.error(error);\n        }\n        return new FrameElement();\n    }\n    formActionIsVisitable(form, submitter) {\n        const action = getAction(form, submitter);\n        return locationIsVisitable(expandURL(action), this.rootLocation);\n    }\n    shouldInterceptNavigation(element, submitter) {\n        const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n        if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n            return false;\n        }\n        if (!this.enabled || id == \"_top\") {\n            return false;\n        }\n        if (id) {\n            const frameElement = getFrameElementById(id);\n            if (frameElement) {\n                return !frameElement.disabled;\n            }\n        }\n        if (!session.elementDriveEnabled(element)) {\n            return false;\n        }\n        if (submitter && !session.elementDriveEnabled(submitter)) {\n            return false;\n        }\n        return true;\n    }\n    get id() {\n        return this.element.id;\n    }\n    get enabled() {\n        return !this.element.disabled;\n    }\n    get sourceURL() {\n        if (this.element.src) {\n            return this.element.src;\n        }\n    }\n    get reloadable() {\n        const frame = this.findFrameElement(this.element);\n        return frame.hasAttribute(\"reloadable\");\n    }\n    set reloadable(value) {\n        const frame = this.findFrameElement(this.element);\n        if (value) {\n            frame.setAttribute(\"reloadable\", \"\");\n        }\n        else {\n            frame.removeAttribute(\"reloadable\");\n        }\n    }\n    set sourceURL(sourceURL) {\n        this.settingSourceURL = true;\n        this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n        this.currentURL = this.element.src;\n        this.settingSourceURL = false;\n    }\n    get loadingStyle() {\n        return this.element.loading;\n    }\n    get isLoading() {\n        return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n    }\n    get isActive() {\n        return this.element.isActive && this.connected;\n    }\n    get rootLocation() {\n        var _a;\n        const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n        const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n        return expandURL(root);\n    }\n}\nclass SnapshotSubstitution {\n    constructor(element) {\n        this.visitCachedSnapshot = ({ element }) => {\n            var _a;\n            const { id, clone } = this;\n            (_a = element.querySelector(\"#\" + id)) === null || _a === void 0 ? void 0 : _a.replaceWith(clone);\n        };\n        this.clone = element.cloneNode(true);\n        this.id = element.id;\n    }\n}\nfunction getFrameElementById(id) {\n    if (id != null) {\n        const element = document.getElementById(id);\n        if (element instanceof FrameElement) {\n            return element;\n        }\n    }\n}\nfunction activateElement(element, currentURL) {\n    if (element) {\n        const src = element.getAttribute(\"src\");\n        if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n            throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`);\n        }\n        if (element.ownerDocument !== document) {\n            element = document.importNode(element, true);\n        }\n        if (element instanceof FrameElement) {\n            element.connectedCallback();\n            element.disconnectedCallback();\n            return element;\n        }\n    }\n}\n\nconst StreamActions = {\n    after() {\n        this.targetElements.forEach(e => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n    },\n    append() {\n        this.removeDuplicateTargetChildren();\n        this.targetElements.forEach(e => e.append(this.templateContent));\n    },\n    before() {\n        this.targetElements.forEach(e => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n    },\n    prepend() {\n        this.removeDuplicateTargetChildren();\n        this.targetElements.forEach(e => e.prepend(this.templateContent));\n    },\n    remove() {\n        this.targetElements.forEach(e => e.remove());\n    },\n    replace() {\n        this.targetElements.forEach(e => e.replaceWith(this.templateContent));\n    },\n    update() {\n        this.targetElements.forEach(e => {\n            e.innerHTML = \"\";\n            e.append(this.templateContent);\n        });\n    }\n};\n\nclass StreamElement extends HTMLElement {\n    async connectedCallback() {\n        try {\n            await this.render();\n        }\n        catch (error) {\n            console.error(error);\n        }\n        finally {\n            this.disconnect();\n        }\n    }\n    async render() {\n        var _a;\n        return (_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n            if (this.dispatchEvent(this.beforeRenderEvent)) {\n                await nextAnimationFrame();\n                this.performAction();\n            }\n        })());\n    }\n    disconnect() {\n        try {\n            this.remove();\n        }\n        catch (_a) { }\n    }\n    removeDuplicateTargetChildren() {\n        this.duplicateChildren.forEach(c => c.remove());\n    }\n    get duplicateChildren() {\n        var _a;\n        const existingChildren = this.targetElements.flatMap(e => [...e.children]).filter(c => !!c.id);\n        const newChildrenIds = [...(_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children].filter(c => !!c.id).map(c => c.id);\n        return existingChildren.filter(c => newChildrenIds.includes(c.id));\n    }\n    get performAction() {\n        if (this.action) {\n            const actionFunction = StreamActions[this.action];\n            if (actionFunction) {\n                return actionFunction;\n            }\n            this.raise(\"unknown action\");\n        }\n        this.raise(\"action attribute is missing\");\n    }\n    get targetElements() {\n        if (this.target) {\n            return this.targetElementsById;\n        }\n        else if (this.targets) {\n            return this.targetElementsByQuery;\n        }\n        else {\n            this.raise(\"target or targets attribute is missing\");\n        }\n    }\n    get templateContent() {\n        return this.templateElement.content.cloneNode(true);\n    }\n    get templateElement() {\n        if (this.firstElementChild instanceof HTMLTemplateElement) {\n            return this.firstElementChild;\n        }\n        this.raise(\"first child element must be a <template> element\");\n    }\n    get action() {\n        return this.getAttribute(\"action\");\n    }\n    get target() {\n        return this.getAttribute(\"target\");\n    }\n    get targets() {\n        return this.getAttribute(\"targets\");\n    }\n    raise(message) {\n        throw new Error(`${this.description}: ${message}`);\n    }\n    get description() {\n        var _a, _b;\n        return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\n    }\n    get beforeRenderEvent() {\n        return new CustomEvent(\"turbo:before-stream-render\", { bubbles: true, cancelable: true });\n    }\n    get targetElementsById() {\n        var _a;\n        const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n        if (element !== null) {\n            return [element];\n        }\n        else {\n            return [];\n        }\n    }\n    get targetElementsByQuery() {\n        var _a;\n        const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n        if (elements.length !== 0) {\n            return Array.prototype.slice.call(elements);\n        }\n        else {\n            return [];\n        }\n    }\n}\n\nFrameElement.delegateConstructor = FrameController;\ncustomElements.define(\"turbo-frame\", FrameElement);\ncustomElements.define(\"turbo-stream\", StreamElement);\n\n(() => {\n    let element = document.currentScript;\n    if (!element)\n        return;\n    if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n        return;\n    while (element = element.parentElement) {\n        if (element == document.body) {\n            return console.warn(unindent `\n        You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n        Load your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n        For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n        \u2014\u2014\n        Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n      `, element.outerHTML);\n        }\n    }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { PageRenderer, PageSnapshot, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setProgressBarDelay, start, visit };\n", "let consumer\n\nexport async function getConsumer() {\n  return consumer || setConsumer(createConsumer().then(setConsumer))\n}\n\nexport function setConsumer(newConsumer) {\n  return consumer = newConsumer\n}\n\nexport async function createConsumer() {\n  const { createConsumer } = await import(/* webpackChunkName: \"actioncable\" */ \"@rails/actioncable/src\")\n  return createConsumer()\n}\n\nexport async function subscribeTo(channel, mixin) {\n  const { subscriptions } = await getConsumer()\n  return subscriptions.create(channel, mixin)\n}\n", "// Based on https://github.com/nathan7/snakeize\n//\n// This software is released under the MIT license:\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nexport default function walk (obj) {\n    if (!obj || typeof obj !== 'object') return obj;\n    if (obj instanceof Date || obj instanceof RegExp) return obj;\n    if (Array.isArray(obj)) return obj.map(walk);\n    return Object.keys(obj).reduce(function (acc, key) {\n        var camel = key[0].toLowerCase() + key.slice(1).replace(/([A-Z]+)/g, function (m, x) {\n            return '_' + x.toLowerCase();\n        });\n        acc[camel] = walk(obj[key]);\n        return acc;\n    }, {});\n};", "import { connectStreamSource, disconnectStreamSource } from \"@hotwired/turbo\"\nimport { subscribeTo } from \"./cable\"\nimport snakeize from \"./snakeize\"\n\nclass TurboCableStreamSourceElement extends HTMLElement {\n  async connectedCallback() {\n    connectStreamSource(this)\n    this.subscription = await subscribeTo(this.channel, { received: this.dispatchMessageEvent.bind(this) })\n  }\n\n  disconnectedCallback() {\n    disconnectStreamSource(this)\n    if (this.subscription) this.subscription.unsubscribe()\n  }\n\n  dispatchMessageEvent(data) {\n    const event = new MessageEvent(\"message\", { data })\n    return this.dispatchEvent(event)\n  }\n\n  get channel() {\n    const channel = this.getAttribute(\"channel\")\n    const signed_stream_name = this.getAttribute(\"signed-stream-name\")\n    return { channel, signed_stream_name, ...snakeize({ ...this.dataset }) }\n  }\n}\n\ncustomElements.define(\"turbo-cable-stream-source\", TurboCableStreamSourceElement)\n", "export function overrideMethodWithFormmethod({ detail: { formSubmission: { fetchRequest, submitter } } }) {\n  if (submitter && submitter.formMethod && fetchRequest.body.has(\"_method\")) {\n    fetchRequest.body.set(\"_method\", submitter.formMethod)\n  }\n}\n", "import \"./cable_stream_source_element\"\nimport { overrideMethodWithFormmethod } from \"./form_submissions\"\n\nimport * as Turbo from \"@hotwired/turbo\"\nexport { Turbo }\n\nimport * as cable from \"./cable\"\nexport { cable }\n\naddEventListener(\"turbo:submit-start\", overrideMethodWithFormmethod)\n", "/*\nStimulus 3.0.1\nCopyright \u00A9 2021 Basecamp, LLC\n */\nclass EventListener {\n    constructor(eventTarget, eventName, eventOptions) {\n        this.eventTarget = eventTarget;\n        this.eventName = eventName;\n        this.eventOptions = eventOptions;\n        this.unorderedBindings = new Set();\n    }\n    connect() {\n        this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n    }\n    disconnect() {\n        this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n    }\n    bindingConnected(binding) {\n        this.unorderedBindings.add(binding);\n    }\n    bindingDisconnected(binding) {\n        this.unorderedBindings.delete(binding);\n    }\n    handleEvent(event) {\n        const extendedEvent = extendEvent(event);\n        for (const binding of this.bindings) {\n            if (extendedEvent.immediatePropagationStopped) {\n                break;\n            }\n            else {\n                binding.handleEvent(extendedEvent);\n            }\n        }\n    }\n    get bindings() {\n        return Array.from(this.unorderedBindings).sort((left, right) => {\n            const leftIndex = left.index, rightIndex = right.index;\n            return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n        });\n    }\n}\nfunction extendEvent(event) {\n    if (\"immediatePropagationStopped\" in event) {\n        return event;\n    }\n    else {\n        const { stopImmediatePropagation } = event;\n        return Object.assign(event, {\n            immediatePropagationStopped: false,\n            stopImmediatePropagation() {\n                this.immediatePropagationStopped = true;\n                stopImmediatePropagation.call(this);\n            }\n        });\n    }\n}\n\nclass Dispatcher {\n    constructor(application) {\n        this.application = application;\n        this.eventListenerMaps = new Map;\n        this.started = false;\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.eventListeners.forEach(eventListener => eventListener.connect());\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.started = false;\n            this.eventListeners.forEach(eventListener => eventListener.disconnect());\n        }\n    }\n    get eventListeners() {\n        return Array.from(this.eventListenerMaps.values())\n            .reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n    }\n    bindingConnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n    }\n    bindingDisconnected(binding) {\n        this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n    }\n    handleError(error, message, detail = {}) {\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    fetchEventListenerForBinding(binding) {\n        const { eventTarget, eventName, eventOptions } = binding;\n        return this.fetchEventListener(eventTarget, eventName, eventOptions);\n    }\n    fetchEventListener(eventTarget, eventName, eventOptions) {\n        const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n        const cacheKey = this.cacheKey(eventName, eventOptions);\n        let eventListener = eventListenerMap.get(cacheKey);\n        if (!eventListener) {\n            eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n            eventListenerMap.set(cacheKey, eventListener);\n        }\n        return eventListener;\n    }\n    createEventListener(eventTarget, eventName, eventOptions) {\n        const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n        if (this.started) {\n            eventListener.connect();\n        }\n        return eventListener;\n    }\n    fetchEventListenerMapForEventTarget(eventTarget) {\n        let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n        if (!eventListenerMap) {\n            eventListenerMap = new Map;\n            this.eventListenerMaps.set(eventTarget, eventListenerMap);\n        }\n        return eventListenerMap;\n    }\n    cacheKey(eventName, eventOptions) {\n        const parts = [eventName];\n        Object.keys(eventOptions).sort().forEach(key => {\n            parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n        });\n        return parts.join(\":\");\n    }\n}\n\nconst descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n    const source = descriptorString.trim();\n    const matches = source.match(descriptorPattern) || [];\n    return {\n        eventTarget: parseEventTarget(matches[4]),\n        eventName: matches[2],\n        eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n        identifier: matches[5],\n        methodName: matches[7]\n    };\n}\nfunction parseEventTarget(eventTargetName) {\n    if (eventTargetName == \"window\") {\n        return window;\n    }\n    else if (eventTargetName == \"document\") {\n        return document;\n    }\n}\nfunction parseEventOptions(eventOptions) {\n    return eventOptions.split(\":\").reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n    if (eventTarget == window) {\n        return \"window\";\n    }\n    else if (eventTarget == document) {\n        return \"document\";\n    }\n}\n\nfunction camelize(value) {\n    return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction capitalize(value) {\n    return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n    return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n    return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n    constructor(element, index, descriptor) {\n        this.element = element;\n        this.index = index;\n        this.eventTarget = descriptor.eventTarget || element;\n        this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n        this.eventOptions = descriptor.eventOptions || {};\n        this.identifier = descriptor.identifier || error(\"missing identifier\");\n        this.methodName = descriptor.methodName || error(\"missing method name\");\n    }\n    static forToken(token) {\n        return new this(token.element, token.index, parseActionDescriptorString(token.content));\n    }\n    toString() {\n        const eventNameSuffix = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n        return `${this.eventName}${eventNameSuffix}->${this.identifier}#${this.methodName}`;\n    }\n    get params() {\n        if (this.eventTarget instanceof Element) {\n            return this.getParamsFromEventTargetAttributes(this.eventTarget);\n        }\n        else {\n            return {};\n        }\n    }\n    getParamsFromEventTargetAttributes(eventTarget) {\n        const params = {};\n        const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`);\n        const attributes = Array.from(eventTarget.attributes);\n        attributes.forEach(({ name, value }) => {\n            const match = name.match(pattern);\n            const key = match && match[1];\n            if (key) {\n                Object.assign(params, { [camelize(key)]: typecast(value) });\n            }\n        });\n        return params;\n    }\n    get eventTargetName() {\n        return stringifyEventTarget(this.eventTarget);\n    }\n}\nconst defaultEventNames = {\n    \"a\": e => \"click\",\n    \"button\": e => \"click\",\n    \"form\": e => \"submit\",\n    \"details\": e => \"toggle\",\n    \"input\": e => e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\",\n    \"select\": e => \"change\",\n    \"textarea\": e => \"input\"\n};\nfunction getDefaultEventNameForElement(element) {\n    const tagName = element.tagName.toLowerCase();\n    if (tagName in defaultEventNames) {\n        return defaultEventNames[tagName](element);\n    }\n}\nfunction error(message) {\n    throw new Error(message);\n}\nfunction typecast(value) {\n    try {\n        return JSON.parse(value);\n    }\n    catch (o_O) {\n        return value;\n    }\n}\n\nclass Binding {\n    constructor(context, action) {\n        this.context = context;\n        this.action = action;\n    }\n    get index() {\n        return this.action.index;\n    }\n    get eventTarget() {\n        return this.action.eventTarget;\n    }\n    get eventOptions() {\n        return this.action.eventOptions;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    handleEvent(event) {\n        if (this.willBeInvokedByEvent(event)) {\n            this.invokeWithEvent(event);\n        }\n    }\n    get eventName() {\n        return this.action.eventName;\n    }\n    get method() {\n        const method = this.controller[this.methodName];\n        if (typeof method == \"function\") {\n            return method;\n        }\n        throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n    }\n    invokeWithEvent(event) {\n        const { target, currentTarget } = event;\n        try {\n            const { params } = this.action;\n            const actionEvent = Object.assign(event, { params });\n            this.method.call(this.controller, actionEvent);\n            this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n        }\n        catch (error) {\n            const { identifier, controller, element, index } = this;\n            const detail = { identifier, controller, element, index, event };\n            this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n        }\n    }\n    willBeInvokedByEvent(event) {\n        const eventTarget = event.target;\n        if (this.element === eventTarget) {\n            return true;\n        }\n        else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n            return this.scope.containsElement(eventTarget);\n        }\n        else {\n            return this.scope.containsElement(this.action.element);\n        }\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    get methodName() {\n        return this.action.methodName;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nclass ElementObserver {\n    constructor(element, delegate) {\n        this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n        this.element = element;\n        this.started = false;\n        this.delegate = delegate;\n        this.elements = new Set;\n        this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.refresh();\n        }\n    }\n    pause(callback) {\n        if (this.started) {\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n        callback();\n        if (!this.started) {\n            this.mutationObserver.observe(this.element, this.mutationObserverInit);\n            this.started = true;\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            const matches = new Set(this.matchElementsInTree());\n            for (const element of Array.from(this.elements)) {\n                if (!matches.has(element)) {\n                    this.removeElement(element);\n                }\n            }\n            for (const element of Array.from(matches)) {\n                this.addElement(element);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        if (mutation.type == \"attributes\") {\n            this.processAttributeChange(mutation.target, mutation.attributeName);\n        }\n        else if (mutation.type == \"childList\") {\n            this.processRemovedNodes(mutation.removedNodes);\n            this.processAddedNodes(mutation.addedNodes);\n        }\n    }\n    processAttributeChange(node, attributeName) {\n        const element = node;\n        if (this.elements.has(element)) {\n            if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n                this.delegate.elementAttributeChanged(element, attributeName);\n            }\n            else {\n                this.removeElement(element);\n            }\n        }\n        else if (this.matchElement(element)) {\n            this.addElement(element);\n        }\n    }\n    processRemovedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element) {\n                this.processTree(element, this.removeElement);\n            }\n        }\n    }\n    processAddedNodes(nodes) {\n        for (const node of Array.from(nodes)) {\n            const element = this.elementFromNode(node);\n            if (element && this.elementIsActive(element)) {\n                this.processTree(element, this.addElement);\n            }\n        }\n    }\n    matchElement(element) {\n        return this.delegate.matchElement(element);\n    }\n    matchElementsInTree(tree = this.element) {\n        return this.delegate.matchElementsInTree(tree);\n    }\n    processTree(tree, processor) {\n        for (const element of this.matchElementsInTree(tree)) {\n            processor.call(this, element);\n        }\n    }\n    elementFromNode(node) {\n        if (node.nodeType == Node.ELEMENT_NODE) {\n            return node;\n        }\n    }\n    elementIsActive(element) {\n        if (element.isConnected != this.element.isConnected) {\n            return false;\n        }\n        else {\n            return this.element.contains(element);\n        }\n    }\n    addElement(element) {\n        if (!this.elements.has(element)) {\n            if (this.elementIsActive(element)) {\n                this.elements.add(element);\n                if (this.delegate.elementMatched) {\n                    this.delegate.elementMatched(element);\n                }\n            }\n        }\n    }\n    removeElement(element) {\n        if (this.elements.has(element)) {\n            this.elements.delete(element);\n            if (this.delegate.elementUnmatched) {\n                this.delegate.elementUnmatched(element);\n            }\n        }\n    }\n}\n\nclass AttributeObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeName = attributeName;\n        this.delegate = delegate;\n        this.elementObserver = new ElementObserver(element, this);\n    }\n    get element() {\n        return this.elementObserver.element;\n    }\n    get selector() {\n        return `[${this.attributeName}]`;\n    }\n    start() {\n        this.elementObserver.start();\n    }\n    pause(callback) {\n        this.elementObserver.pause(callback);\n    }\n    stop() {\n        this.elementObserver.stop();\n    }\n    refresh() {\n        this.elementObserver.refresh();\n    }\n    get started() {\n        return this.elementObserver.started;\n    }\n    matchElement(element) {\n        return element.hasAttribute(this.attributeName);\n    }\n    matchElementsInTree(tree) {\n        const match = this.matchElement(tree) ? [tree] : [];\n        const matches = Array.from(tree.querySelectorAll(this.selector));\n        return match.concat(matches);\n    }\n    elementMatched(element) {\n        if (this.delegate.elementMatchedAttribute) {\n            this.delegate.elementMatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementUnmatched(element) {\n        if (this.delegate.elementUnmatchedAttribute) {\n            this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n        }\n    }\n    elementAttributeChanged(element, attributeName) {\n        if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n            this.delegate.elementAttributeValueChanged(element, attributeName);\n        }\n    }\n}\n\nclass StringMapObserver {\n    constructor(element, delegate) {\n        this.element = element;\n        this.delegate = delegate;\n        this.started = false;\n        this.stringMap = new Map;\n        this.mutationObserver = new MutationObserver(mutations => this.processMutations(mutations));\n    }\n    start() {\n        if (!this.started) {\n            this.started = true;\n            this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n            this.refresh();\n        }\n    }\n    stop() {\n        if (this.started) {\n            this.mutationObserver.takeRecords();\n            this.mutationObserver.disconnect();\n            this.started = false;\n        }\n    }\n    refresh() {\n        if (this.started) {\n            for (const attributeName of this.knownAttributeNames) {\n                this.refreshAttribute(attributeName, null);\n            }\n        }\n    }\n    processMutations(mutations) {\n        if (this.started) {\n            for (const mutation of mutations) {\n                this.processMutation(mutation);\n            }\n        }\n    }\n    processMutation(mutation) {\n        const attributeName = mutation.attributeName;\n        if (attributeName) {\n            this.refreshAttribute(attributeName, mutation.oldValue);\n        }\n    }\n    refreshAttribute(attributeName, oldValue) {\n        const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n        if (key != null) {\n            if (!this.stringMap.has(attributeName)) {\n                this.stringMapKeyAdded(key, attributeName);\n            }\n            const value = this.element.getAttribute(attributeName);\n            if (this.stringMap.get(attributeName) != value) {\n                this.stringMapValueChanged(value, key, oldValue);\n            }\n            if (value == null) {\n                const oldValue = this.stringMap.get(attributeName);\n                this.stringMap.delete(attributeName);\n                if (oldValue)\n                    this.stringMapKeyRemoved(key, attributeName, oldValue);\n            }\n            else {\n                this.stringMap.set(attributeName, value);\n            }\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        if (this.delegate.stringMapKeyAdded) {\n            this.delegate.stringMapKeyAdded(key, attributeName);\n        }\n    }\n    stringMapValueChanged(value, key, oldValue) {\n        if (this.delegate.stringMapValueChanged) {\n            this.delegate.stringMapValueChanged(value, key, oldValue);\n        }\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        if (this.delegate.stringMapKeyRemoved) {\n            this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n        }\n    }\n    get knownAttributeNames() {\n        return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n    }\n    get currentAttributeNames() {\n        return Array.from(this.element.attributes).map(attribute => attribute.name);\n    }\n    get recordedAttributeNames() {\n        return Array.from(this.stringMap.keys());\n    }\n}\n\nfunction add(map, key, value) {\n    fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n    fetch(map, key).delete(value);\n    prune(map, key);\n}\nfunction fetch(map, key) {\n    let values = map.get(key);\n    if (!values) {\n        values = new Set();\n        map.set(key, values);\n    }\n    return values;\n}\nfunction prune(map, key) {\n    const values = map.get(key);\n    if (values != null && values.size == 0) {\n        map.delete(key);\n    }\n}\n\nclass Multimap {\n    constructor() {\n        this.valuesByKey = new Map();\n    }\n    get keys() {\n        return Array.from(this.valuesByKey.keys());\n    }\n    get values() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n    }\n    get size() {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.reduce((size, set) => size + set.size, 0);\n    }\n    add(key, value) {\n        add(this.valuesByKey, key, value);\n    }\n    delete(key, value) {\n        del(this.valuesByKey, key, value);\n    }\n    has(key, value) {\n        const values = this.valuesByKey.get(key);\n        return values != null && values.has(value);\n    }\n    hasKey(key) {\n        return this.valuesByKey.has(key);\n    }\n    hasValue(value) {\n        const sets = Array.from(this.valuesByKey.values());\n        return sets.some(set => set.has(value));\n    }\n    getValuesForKey(key) {\n        const values = this.valuesByKey.get(key);\n        return values ? Array.from(values) : [];\n    }\n    getKeysForValue(value) {\n        return Array.from(this.valuesByKey)\n            .filter(([key, values]) => values.has(value))\n            .map(([key, values]) => key);\n    }\n}\n\nclass IndexedMultimap extends Multimap {\n    constructor() {\n        super();\n        this.keysByValue = new Map;\n    }\n    get values() {\n        return Array.from(this.keysByValue.keys());\n    }\n    add(key, value) {\n        super.add(key, value);\n        add(this.keysByValue, value, key);\n    }\n    delete(key, value) {\n        super.delete(key, value);\n        del(this.keysByValue, value, key);\n    }\n    hasValue(value) {\n        return this.keysByValue.has(value);\n    }\n    getKeysForValue(value) {\n        const set = this.keysByValue.get(value);\n        return set ? Array.from(set) : [];\n    }\n}\n\nclass TokenListObserver {\n    constructor(element, attributeName, delegate) {\n        this.attributeObserver = new AttributeObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.tokensByElement = new Multimap;\n    }\n    get started() {\n        return this.attributeObserver.started;\n    }\n    start() {\n        this.attributeObserver.start();\n    }\n    pause(callback) {\n        this.attributeObserver.pause(callback);\n    }\n    stop() {\n        this.attributeObserver.stop();\n    }\n    refresh() {\n        this.attributeObserver.refresh();\n    }\n    get element() {\n        return this.attributeObserver.element;\n    }\n    get attributeName() {\n        return this.attributeObserver.attributeName;\n    }\n    elementMatchedAttribute(element) {\n        this.tokensMatched(this.readTokensForElement(element));\n    }\n    elementAttributeValueChanged(element) {\n        const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n        this.tokensUnmatched(unmatchedTokens);\n        this.tokensMatched(matchedTokens);\n    }\n    elementUnmatchedAttribute(element) {\n        this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n    }\n    tokensMatched(tokens) {\n        tokens.forEach(token => this.tokenMatched(token));\n    }\n    tokensUnmatched(tokens) {\n        tokens.forEach(token => this.tokenUnmatched(token));\n    }\n    tokenMatched(token) {\n        this.delegate.tokenMatched(token);\n        this.tokensByElement.add(token.element, token);\n    }\n    tokenUnmatched(token) {\n        this.delegate.tokenUnmatched(token);\n        this.tokensByElement.delete(token.element, token);\n    }\n    refreshTokensForElement(element) {\n        const previousTokens = this.tokensByElement.getValuesForKey(element);\n        const currentTokens = this.readTokensForElement(element);\n        const firstDifferingIndex = zip(previousTokens, currentTokens)\n            .findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n        if (firstDifferingIndex == -1) {\n            return [[], []];\n        }\n        else {\n            return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n        }\n    }\n    readTokensForElement(element) {\n        const attributeName = this.attributeName;\n        const tokenString = element.getAttribute(attributeName) || \"\";\n        return parseTokenString(tokenString, element, attributeName);\n    }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n    return tokenString.trim().split(/\\s+/).filter(content => content.length)\n        .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n    const length = Math.max(left.length, right.length);\n    return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n    return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n    constructor(element, attributeName, delegate) {\n        this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n        this.delegate = delegate;\n        this.parseResultsByToken = new WeakMap;\n        this.valuesByTokenByElement = new WeakMap;\n    }\n    get started() {\n        return this.tokenListObserver.started;\n    }\n    start() {\n        this.tokenListObserver.start();\n    }\n    stop() {\n        this.tokenListObserver.stop();\n    }\n    refresh() {\n        this.tokenListObserver.refresh();\n    }\n    get element() {\n        return this.tokenListObserver.element;\n    }\n    get attributeName() {\n        return this.tokenListObserver.attributeName;\n    }\n    tokenMatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).set(token, value);\n            this.delegate.elementMatchedValue(element, value);\n        }\n    }\n    tokenUnmatched(token) {\n        const { element } = token;\n        const { value } = this.fetchParseResultForToken(token);\n        if (value) {\n            this.fetchValuesByTokenForElement(element).delete(token);\n            this.delegate.elementUnmatchedValue(element, value);\n        }\n    }\n    fetchParseResultForToken(token) {\n        let parseResult = this.parseResultsByToken.get(token);\n        if (!parseResult) {\n            parseResult = this.parseToken(token);\n            this.parseResultsByToken.set(token, parseResult);\n        }\n        return parseResult;\n    }\n    fetchValuesByTokenForElement(element) {\n        let valuesByToken = this.valuesByTokenByElement.get(element);\n        if (!valuesByToken) {\n            valuesByToken = new Map;\n            this.valuesByTokenByElement.set(element, valuesByToken);\n        }\n        return valuesByToken;\n    }\n    parseToken(token) {\n        try {\n            const value = this.delegate.parseValueForToken(token);\n            return { value };\n        }\n        catch (error) {\n            return { error };\n        }\n    }\n}\n\nclass BindingObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.bindingsByAction = new Map;\n    }\n    start() {\n        if (!this.valueListObserver) {\n            this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n            this.valueListObserver.start();\n        }\n    }\n    stop() {\n        if (this.valueListObserver) {\n            this.valueListObserver.stop();\n            delete this.valueListObserver;\n            this.disconnectAllActions();\n        }\n    }\n    get element() {\n        return this.context.element;\n    }\n    get identifier() {\n        return this.context.identifier;\n    }\n    get actionAttribute() {\n        return this.schema.actionAttribute;\n    }\n    get schema() {\n        return this.context.schema;\n    }\n    get bindings() {\n        return Array.from(this.bindingsByAction.values());\n    }\n    connectAction(action) {\n        const binding = new Binding(this.context, action);\n        this.bindingsByAction.set(action, binding);\n        this.delegate.bindingConnected(binding);\n    }\n    disconnectAction(action) {\n        const binding = this.bindingsByAction.get(action);\n        if (binding) {\n            this.bindingsByAction.delete(action);\n            this.delegate.bindingDisconnected(binding);\n        }\n    }\n    disconnectAllActions() {\n        this.bindings.forEach(binding => this.delegate.bindingDisconnected(binding));\n        this.bindingsByAction.clear();\n    }\n    parseValueForToken(token) {\n        const action = Action.forToken(token);\n        if (action.identifier == this.identifier) {\n            return action;\n        }\n    }\n    elementMatchedValue(element, action) {\n        this.connectAction(action);\n    }\n    elementUnmatchedValue(element, action) {\n        this.disconnectAction(action);\n    }\n}\n\nclass ValueObserver {\n    constructor(context, receiver) {\n        this.context = context;\n        this.receiver = receiver;\n        this.stringMapObserver = new StringMapObserver(this.element, this);\n        this.valueDescriptorMap = this.controller.valueDescriptorMap;\n        this.invokeChangedCallbacksForDefaultValues();\n    }\n    start() {\n        this.stringMapObserver.start();\n    }\n    stop() {\n        this.stringMapObserver.stop();\n    }\n    get element() {\n        return this.context.element;\n    }\n    get controller() {\n        return this.context.controller;\n    }\n    getStringMapKeyForAttribute(attributeName) {\n        if (attributeName in this.valueDescriptorMap) {\n            return this.valueDescriptorMap[attributeName].name;\n        }\n    }\n    stringMapKeyAdded(key, attributeName) {\n        const descriptor = this.valueDescriptorMap[attributeName];\n        if (!this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n        }\n    }\n    stringMapValueChanged(value, name, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[name];\n        if (value === null)\n            return;\n        if (oldValue === null) {\n            oldValue = descriptor.writer(descriptor.defaultValue);\n        }\n        this.invokeChangedCallback(name, value, oldValue);\n    }\n    stringMapKeyRemoved(key, attributeName, oldValue) {\n        const descriptor = this.valueDescriptorNameMap[key];\n        if (this.hasValue(key)) {\n            this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n        }\n        else {\n            this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n        }\n    }\n    invokeChangedCallbacksForDefaultValues() {\n        for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n            if (defaultValue != undefined && !this.controller.data.has(key)) {\n                this.invokeChangedCallback(name, writer(defaultValue), undefined);\n            }\n        }\n    }\n    invokeChangedCallback(name, rawValue, rawOldValue) {\n        const changedMethodName = `${name}Changed`;\n        const changedMethod = this.receiver[changedMethodName];\n        if (typeof changedMethod == \"function\") {\n            const descriptor = this.valueDescriptorNameMap[name];\n            const value = descriptor.reader(rawValue);\n            let oldValue = rawOldValue;\n            if (rawOldValue) {\n                oldValue = descriptor.reader(rawOldValue);\n            }\n            changedMethod.call(this.receiver, value, oldValue);\n        }\n    }\n    get valueDescriptors() {\n        const { valueDescriptorMap } = this;\n        return Object.keys(valueDescriptorMap).map(key => valueDescriptorMap[key]);\n    }\n    get valueDescriptorNameMap() {\n        const descriptors = {};\n        Object.keys(this.valueDescriptorMap).forEach(key => {\n            const descriptor = this.valueDescriptorMap[key];\n            descriptors[descriptor.name] = descriptor;\n        });\n        return descriptors;\n    }\n    hasValue(attributeName) {\n        const descriptor = this.valueDescriptorNameMap[attributeName];\n        const hasMethodName = `has${capitalize(descriptor.name)}`;\n        return this.receiver[hasMethodName];\n    }\n}\n\nclass TargetObserver {\n    constructor(context, delegate) {\n        this.context = context;\n        this.delegate = delegate;\n        this.targetsByName = new Multimap;\n    }\n    start() {\n        if (!this.tokenListObserver) {\n            this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n            this.tokenListObserver.start();\n        }\n    }\n    stop() {\n        if (this.tokenListObserver) {\n            this.disconnectAllTargets();\n            this.tokenListObserver.stop();\n            delete this.tokenListObserver;\n        }\n    }\n    tokenMatched({ element, content: name }) {\n        if (this.scope.containsElement(element)) {\n            this.connectTarget(element, name);\n        }\n    }\n    tokenUnmatched({ element, content: name }) {\n        this.disconnectTarget(element, name);\n    }\n    connectTarget(element, name) {\n        var _a;\n        if (!this.targetsByName.has(name, element)) {\n            this.targetsByName.add(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n        }\n    }\n    disconnectTarget(element, name) {\n        var _a;\n        if (this.targetsByName.has(name, element)) {\n            this.targetsByName.delete(name, element);\n            (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n        }\n    }\n    disconnectAllTargets() {\n        for (const name of this.targetsByName.keys) {\n            for (const element of this.targetsByName.getValuesForKey(name)) {\n                this.disconnectTarget(element, name);\n            }\n        }\n    }\n    get attributeName() {\n        return `data-${this.context.identifier}-target`;\n    }\n    get element() {\n        return this.context.element;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n}\n\nclass Context {\n    constructor(module, scope) {\n        this.logDebugActivity = (functionName, detail = {}) => {\n            const { identifier, controller, element } = this;\n            detail = Object.assign({ identifier, controller, element }, detail);\n            this.application.logDebugActivity(this.identifier, functionName, detail);\n        };\n        this.module = module;\n        this.scope = scope;\n        this.controller = new module.controllerConstructor(this);\n        this.bindingObserver = new BindingObserver(this, this.dispatcher);\n        this.valueObserver = new ValueObserver(this, this.controller);\n        this.targetObserver = new TargetObserver(this, this);\n        try {\n            this.controller.initialize();\n            this.logDebugActivity(\"initialize\");\n        }\n        catch (error) {\n            this.handleError(error, \"initializing controller\");\n        }\n    }\n    connect() {\n        this.bindingObserver.start();\n        this.valueObserver.start();\n        this.targetObserver.start();\n        try {\n            this.controller.connect();\n            this.logDebugActivity(\"connect\");\n        }\n        catch (error) {\n            this.handleError(error, \"connecting controller\");\n        }\n    }\n    disconnect() {\n        try {\n            this.controller.disconnect();\n            this.logDebugActivity(\"disconnect\");\n        }\n        catch (error) {\n            this.handleError(error, \"disconnecting controller\");\n        }\n        this.targetObserver.stop();\n        this.valueObserver.stop();\n        this.bindingObserver.stop();\n    }\n    get application() {\n        return this.module.application;\n    }\n    get identifier() {\n        return this.module.identifier;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get dispatcher() {\n        return this.application.dispatcher;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get parentElement() {\n        return this.element.parentElement;\n    }\n    handleError(error, message, detail = {}) {\n        const { identifier, controller, element } = this;\n        detail = Object.assign({ identifier, controller, element }, detail);\n        this.application.handleError(error, `Error ${message}`, detail);\n    }\n    targetConnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetConnected`, element);\n    }\n    targetDisconnected(element, name) {\n        this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n    }\n    invokeControllerMethod(methodName, ...args) {\n        const controller = this.controller;\n        if (typeof controller[methodName] == \"function\") {\n            controller[methodName](...args);\n        }\n    }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return Array.from(ancestors.reduce((values, constructor) => {\n        getOwnStaticArrayValues(constructor, propertyName).forEach(name => values.add(name));\n        return values;\n    }, new Set));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n    const ancestors = getAncestorsForConstructor(constructor);\n    return ancestors.reduce((pairs, constructor) => {\n        pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n        return pairs;\n    }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n    const ancestors = [];\n    while (constructor) {\n        ancestors.push(constructor);\n        constructor = Object.getPrototypeOf(constructor);\n    }\n    return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n    const definition = constructor[propertyName];\n    return definition ? Object.keys(definition).map(key => [key, definition[key]]) : [];\n}\n\nfunction bless(constructor) {\n    return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n    const shadowConstructor = extend(constructor);\n    const shadowProperties = getShadowProperties(constructor.prototype, properties);\n    Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n    return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n    const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n    return blessings.reduce((blessedProperties, blessing) => {\n        const properties = blessing(constructor);\n        for (const key in properties) {\n            const descriptor = blessedProperties[key] || {};\n            blessedProperties[key] = Object.assign(descriptor, properties[key]);\n        }\n        return blessedProperties;\n    }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n    return getOwnKeys(properties).reduce((shadowProperties, key) => {\n        const descriptor = getShadowedDescriptor(prototype, properties, key);\n        if (descriptor) {\n            Object.assign(shadowProperties, { [key]: descriptor });\n        }\n        return shadowProperties;\n    }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n    const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n    const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n    if (!shadowedByValue) {\n        const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n        if (shadowingDescriptor) {\n            descriptor.get = shadowingDescriptor.get || descriptor.get;\n            descriptor.set = shadowingDescriptor.set || descriptor.set;\n        }\n        return descriptor;\n    }\n}\nconst getOwnKeys = (() => {\n    if (typeof Object.getOwnPropertySymbols == \"function\") {\n        return (object) => [\n            ...Object.getOwnPropertyNames(object),\n            ...Object.getOwnPropertySymbols(object)\n        ];\n    }\n    else {\n        return Object.getOwnPropertyNames;\n    }\n})();\nconst extend = (() => {\n    function extendWithReflect(constructor) {\n        function extended() {\n            return Reflect.construct(constructor, arguments, new.target);\n        }\n        extended.prototype = Object.create(constructor.prototype, {\n            constructor: { value: extended }\n        });\n        Reflect.setPrototypeOf(extended, constructor);\n        return extended;\n    }\n    function testReflectExtension() {\n        const a = function () { this.a.call(this); };\n        const b = extendWithReflect(a);\n        b.prototype.a = function () { };\n        return new b;\n    }\n    try {\n        testReflectExtension();\n        return extendWithReflect;\n    }\n    catch (error) {\n        return (constructor) => class extended extends constructor {\n        };\n    }\n})();\n\nfunction blessDefinition(definition) {\n    return {\n        identifier: definition.identifier,\n        controllerConstructor: bless(definition.controllerConstructor)\n    };\n}\n\nclass Module {\n    constructor(application, definition) {\n        this.application = application;\n        this.definition = blessDefinition(definition);\n        this.contextsByScope = new WeakMap;\n        this.connectedContexts = new Set;\n    }\n    get identifier() {\n        return this.definition.identifier;\n    }\n    get controllerConstructor() {\n        return this.definition.controllerConstructor;\n    }\n    get contexts() {\n        return Array.from(this.connectedContexts);\n    }\n    connectContextForScope(scope) {\n        const context = this.fetchContextForScope(scope);\n        this.connectedContexts.add(context);\n        context.connect();\n    }\n    disconnectContextForScope(scope) {\n        const context = this.contextsByScope.get(scope);\n        if (context) {\n            this.connectedContexts.delete(context);\n            context.disconnect();\n        }\n    }\n    fetchContextForScope(scope) {\n        let context = this.contextsByScope.get(scope);\n        if (!context) {\n            context = new Context(this, scope);\n            this.contextsByScope.set(scope, context);\n        }\n        return context;\n    }\n}\n\nclass ClassMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    has(name) {\n        return this.data.has(this.getDataKey(name));\n    }\n    get(name) {\n        return this.getAll(name)[0];\n    }\n    getAll(name) {\n        const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n        return tokenize(tokenString);\n    }\n    getAttributeName(name) {\n        return this.data.getAttributeNameForKey(this.getDataKey(name));\n    }\n    getDataKey(name) {\n        return `${name}-class`;\n    }\n    get data() {\n        return this.scope.data;\n    }\n}\n\nclass DataMap {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.getAttribute(name);\n    }\n    set(key, value) {\n        const name = this.getAttributeNameForKey(key);\n        this.element.setAttribute(name, value);\n        return this.get(key);\n    }\n    has(key) {\n        const name = this.getAttributeNameForKey(key);\n        return this.element.hasAttribute(name);\n    }\n    delete(key) {\n        if (this.has(key)) {\n            const name = this.getAttributeNameForKey(key);\n            this.element.removeAttribute(name);\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    getAttributeNameForKey(key) {\n        return `data-${this.identifier}-${dasherize(key)}`;\n    }\n}\n\nclass Guide {\n    constructor(logger) {\n        this.warnedKeysByObject = new WeakMap;\n        this.logger = logger;\n    }\n    warn(object, key, message) {\n        let warnedKeys = this.warnedKeysByObject.get(object);\n        if (!warnedKeys) {\n            warnedKeys = new Set;\n            this.warnedKeysByObject.set(object, warnedKeys);\n        }\n        if (!warnedKeys.has(key)) {\n            warnedKeys.add(key);\n            this.logger.warn(message, object);\n        }\n    }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n    return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n    constructor(scope) {\n        this.scope = scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get schema() {\n        return this.scope.schema;\n    }\n    has(targetName) {\n        return this.find(targetName) != null;\n    }\n    find(...targetNames) {\n        return targetNames.reduce((target, targetName) => target\n            || this.findTarget(targetName)\n            || this.findLegacyTarget(targetName), undefined);\n    }\n    findAll(...targetNames) {\n        return targetNames.reduce((targets, targetName) => [\n            ...targets,\n            ...this.findAllTargets(targetName),\n            ...this.findAllLegacyTargets(targetName)\n        ], []);\n    }\n    findTarget(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findElement(selector);\n    }\n    findAllTargets(targetName) {\n        const selector = this.getSelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector);\n    }\n    getSelectorForTargetName(targetName) {\n        const attributeName = this.schema.targetAttributeForScope(this.identifier);\n        return attributeValueContainsToken(attributeName, targetName);\n    }\n    findLegacyTarget(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.deprecate(this.scope.findElement(selector), targetName);\n    }\n    findAllLegacyTargets(targetName) {\n        const selector = this.getLegacySelectorForTargetName(targetName);\n        return this.scope.findAllElements(selector).map(element => this.deprecate(element, targetName));\n    }\n    getLegacySelectorForTargetName(targetName) {\n        const targetDescriptor = `${this.identifier}.${targetName}`;\n        return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n    }\n    deprecate(element, targetName) {\n        if (element) {\n            const { identifier } = this;\n            const attributeName = this.schema.targetAttribute;\n            const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n            this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n                `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n        }\n        return element;\n    }\n    get guide() {\n        return this.scope.guide;\n    }\n}\n\nclass Scope {\n    constructor(schema, element, identifier, logger) {\n        this.targets = new TargetSet(this);\n        this.classes = new ClassMap(this);\n        this.data = new DataMap(this);\n        this.containsElement = (element) => {\n            return element.closest(this.controllerSelector) === this.element;\n        };\n        this.schema = schema;\n        this.element = element;\n        this.identifier = identifier;\n        this.guide = new Guide(logger);\n    }\n    findElement(selector) {\n        return this.element.matches(selector)\n            ? this.element\n            : this.queryElements(selector).find(this.containsElement);\n    }\n    findAllElements(selector) {\n        return [\n            ...this.element.matches(selector) ? [this.element] : [],\n            ...this.queryElements(selector).filter(this.containsElement)\n        ];\n    }\n    queryElements(selector) {\n        return Array.from(this.element.querySelectorAll(selector));\n    }\n    get controllerSelector() {\n        return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n    }\n}\n\nclass ScopeObserver {\n    constructor(element, schema, delegate) {\n        this.element = element;\n        this.schema = schema;\n        this.delegate = delegate;\n        this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n        this.scopesByIdentifierByElement = new WeakMap;\n        this.scopeReferenceCounts = new WeakMap;\n    }\n    start() {\n        this.valueListObserver.start();\n    }\n    stop() {\n        this.valueListObserver.stop();\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    parseValueForToken(token) {\n        const { element, content: identifier } = token;\n        const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n        let scope = scopesByIdentifier.get(identifier);\n        if (!scope) {\n            scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n            scopesByIdentifier.set(identifier, scope);\n        }\n        return scope;\n    }\n    elementMatchedValue(element, value) {\n        const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n        this.scopeReferenceCounts.set(value, referenceCount);\n        if (referenceCount == 1) {\n            this.delegate.scopeConnected(value);\n        }\n    }\n    elementUnmatchedValue(element, value) {\n        const referenceCount = this.scopeReferenceCounts.get(value);\n        if (referenceCount) {\n            this.scopeReferenceCounts.set(value, referenceCount - 1);\n            if (referenceCount == 1) {\n                this.delegate.scopeDisconnected(value);\n            }\n        }\n    }\n    fetchScopesByIdentifierForElement(element) {\n        let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n        if (!scopesByIdentifier) {\n            scopesByIdentifier = new Map;\n            this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n        }\n        return scopesByIdentifier;\n    }\n}\n\nclass Router {\n    constructor(application) {\n        this.application = application;\n        this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n        this.scopesByIdentifier = new Multimap;\n        this.modulesByIdentifier = new Map;\n    }\n    get element() {\n        return this.application.element;\n    }\n    get schema() {\n        return this.application.schema;\n    }\n    get logger() {\n        return this.application.logger;\n    }\n    get controllerAttribute() {\n        return this.schema.controllerAttribute;\n    }\n    get modules() {\n        return Array.from(this.modulesByIdentifier.values());\n    }\n    get contexts() {\n        return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n    }\n    start() {\n        this.scopeObserver.start();\n    }\n    stop() {\n        this.scopeObserver.stop();\n    }\n    loadDefinition(definition) {\n        this.unloadIdentifier(definition.identifier);\n        const module = new Module(this.application, definition);\n        this.connectModule(module);\n    }\n    unloadIdentifier(identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            this.disconnectModule(module);\n        }\n    }\n    getContextForElementAndIdentifier(element, identifier) {\n        const module = this.modulesByIdentifier.get(identifier);\n        if (module) {\n            return module.contexts.find(context => context.element == element);\n        }\n    }\n    handleError(error, message, detail) {\n        this.application.handleError(error, message, detail);\n    }\n    createScopeForElementAndIdentifier(element, identifier) {\n        return new Scope(this.schema, element, identifier, this.logger);\n    }\n    scopeConnected(scope) {\n        this.scopesByIdentifier.add(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.connectContextForScope(scope);\n        }\n    }\n    scopeDisconnected(scope) {\n        this.scopesByIdentifier.delete(scope.identifier, scope);\n        const module = this.modulesByIdentifier.get(scope.identifier);\n        if (module) {\n            module.disconnectContextForScope(scope);\n        }\n    }\n    connectModule(module) {\n        this.modulesByIdentifier.set(module.identifier, module);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach(scope => module.connectContextForScope(scope));\n    }\n    disconnectModule(module) {\n        this.modulesByIdentifier.delete(module.identifier);\n        const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n        scopes.forEach(scope => module.disconnectContextForScope(scope));\n    }\n}\n\nconst defaultSchema = {\n    controllerAttribute: \"data-controller\",\n    actionAttribute: \"data-action\",\n    targetAttribute: \"data-target\",\n    targetAttributeForScope: identifier => `data-${identifier}-target`\n};\n\nclass Application {\n    constructor(element = document.documentElement, schema = defaultSchema) {\n        this.logger = console;\n        this.debug = false;\n        this.logDebugActivity = (identifier, functionName, detail = {}) => {\n            if (this.debug) {\n                this.logFormattedMessage(identifier, functionName, detail);\n            }\n        };\n        this.element = element;\n        this.schema = schema;\n        this.dispatcher = new Dispatcher(this);\n        this.router = new Router(this);\n    }\n    static start(element, schema) {\n        const application = new Application(element, schema);\n        application.start();\n        return application;\n    }\n    async start() {\n        await domReady();\n        this.logDebugActivity(\"application\", \"starting\");\n        this.dispatcher.start();\n        this.router.start();\n        this.logDebugActivity(\"application\", \"start\");\n    }\n    stop() {\n        this.logDebugActivity(\"application\", \"stopping\");\n        this.dispatcher.stop();\n        this.router.stop();\n        this.logDebugActivity(\"application\", \"stop\");\n    }\n    register(identifier, controllerConstructor) {\n        if (controllerConstructor.shouldLoad) {\n            this.load({ identifier, controllerConstructor });\n        }\n    }\n    load(head, ...rest) {\n        const definitions = Array.isArray(head) ? head : [head, ...rest];\n        definitions.forEach(definition => this.router.loadDefinition(definition));\n    }\n    unload(head, ...rest) {\n        const identifiers = Array.isArray(head) ? head : [head, ...rest];\n        identifiers.forEach(identifier => this.router.unloadIdentifier(identifier));\n    }\n    get controllers() {\n        return this.router.contexts.map(context => context.controller);\n    }\n    getControllerForElementAndIdentifier(element, identifier) {\n        const context = this.router.getContextForElementAndIdentifier(element, identifier);\n        return context ? context.controller : null;\n    }\n    handleError(error, message, detail) {\n        var _a;\n        this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n        (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n    }\n    logFormattedMessage(identifier, functionName, detail = {}) {\n        detail = Object.assign({ application: this }, detail);\n        this.logger.groupCollapsed(`${identifier} #${functionName}`);\n        this.logger.log(\"details:\", Object.assign({}, detail));\n        this.logger.groupEnd();\n    }\n}\nfunction domReady() {\n    return new Promise(resolve => {\n        if (document.readyState == \"loading\") {\n            document.addEventListener(\"DOMContentLoaded\", () => resolve());\n        }\n        else {\n            resolve();\n        }\n    });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n    const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n    return classes.reduce((properties, classDefinition) => {\n        return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n    }, {});\n}\nfunction propertiesForClassDefinition(key) {\n    return {\n        [`${key}Class`]: {\n            get() {\n                const { classes } = this;\n                if (classes.has(key)) {\n                    return classes.get(key);\n                }\n                else {\n                    const attribute = classes.getAttributeName(key);\n                    throw new Error(`Missing attribute \"${attribute}\"`);\n                }\n            }\n        },\n        [`${key}Classes`]: {\n            get() {\n                return this.classes.getAll(key);\n            }\n        },\n        [`has${capitalize(key)}Class`]: {\n            get() {\n                return this.classes.has(key);\n            }\n        }\n    };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n    const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n    return targets.reduce((properties, targetDefinition) => {\n        return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n    }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n    return {\n        [`${name}Target`]: {\n            get() {\n                const target = this.targets.find(name);\n                if (target) {\n                    return target;\n                }\n                else {\n                    throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n                }\n            }\n        },\n        [`${name}Targets`]: {\n            get() {\n                return this.targets.findAll(name);\n            }\n        },\n        [`has${capitalize(name)}Target`]: {\n            get() {\n                return this.targets.has(name);\n            }\n        }\n    };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n    const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n    const propertyDescriptorMap = {\n        valueDescriptorMap: {\n            get() {\n                return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n                    const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n                    const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n                    return Object.assign(result, { [attributeName]: valueDescriptor });\n                }, {});\n            }\n        }\n    };\n    return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n        return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n    }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n    const definition = parseValueDefinitionPair(valueDefinitionPair);\n    const { key, name, reader: read, writer: write } = definition;\n    return {\n        [name]: {\n            get() {\n                const value = this.data.get(key);\n                if (value !== null) {\n                    return read(value);\n                }\n                else {\n                    return definition.defaultValue;\n                }\n            },\n            set(value) {\n                if (value === undefined) {\n                    this.data.delete(key);\n                }\n                else {\n                    this.data.set(key, write(value));\n                }\n            }\n        },\n        [`has${capitalize(name)}`]: {\n            get() {\n                return this.data.has(key) || definition.hasCustomDefaultValue;\n            }\n        }\n    };\n}\nfunction parseValueDefinitionPair([token, typeDefinition]) {\n    return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\nfunction parseValueTypeConstant(constant) {\n    switch (constant) {\n        case Array: return \"array\";\n        case Boolean: return \"boolean\";\n        case Number: return \"number\";\n        case Object: return \"object\";\n        case String: return \"string\";\n    }\n}\nfunction parseValueTypeDefault(defaultValue) {\n    switch (typeof defaultValue) {\n        case \"boolean\": return \"boolean\";\n        case \"number\": return \"number\";\n        case \"string\": return \"string\";\n    }\n    if (Array.isArray(defaultValue))\n        return \"array\";\n    if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n        return \"object\";\n}\nfunction parseValueTypeObject(typeObject) {\n    const typeFromObject = parseValueTypeConstant(typeObject.type);\n    if (typeFromObject) {\n        const defaultValueType = parseValueTypeDefault(typeObject.default);\n        if (typeFromObject !== defaultValueType) {\n            throw new Error(`Type \"${typeFromObject}\" must match the type of the default value. Given default value: \"${typeObject.default}\" as \"${defaultValueType}\"`);\n        }\n        return typeFromObject;\n    }\n}\nfunction parseValueTypeDefinition(typeDefinition) {\n    const typeFromObject = parseValueTypeObject(typeDefinition);\n    const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n    const typeFromConstant = parseValueTypeConstant(typeDefinition);\n    const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n    if (type)\n        return type;\n    throw new Error(`Unknown value type \"${typeDefinition}\"`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n    const constant = parseValueTypeConstant(typeDefinition);\n    if (constant)\n        return defaultValuesByType[constant];\n    const defaultValue = typeDefinition.default;\n    if (defaultValue !== undefined)\n        return defaultValue;\n    return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n    const key = `${dasherize(token)}-value`;\n    const type = parseValueTypeDefinition(typeDefinition);\n    return {\n        type,\n        key,\n        name: camelize(key),\n        get defaultValue() { return defaultValueForDefinition(typeDefinition); },\n        get hasCustomDefaultValue() { return parseValueTypeDefault(typeDefinition) !== undefined; },\n        reader: readers[type],\n        writer: writers[type] || writers.default\n    };\n}\nconst defaultValuesByType = {\n    get array() { return []; },\n    boolean: false,\n    number: 0,\n    get object() { return {}; },\n    string: \"\"\n};\nconst readers = {\n    array(value) {\n        const array = JSON.parse(value);\n        if (!Array.isArray(array)) {\n            throw new TypeError(\"Expected array\");\n        }\n        return array;\n    },\n    boolean(value) {\n        return !(value == \"0\" || value == \"false\");\n    },\n    number(value) {\n        return Number(value);\n    },\n    object(value) {\n        const object = JSON.parse(value);\n        if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n            throw new TypeError(\"Expected object\");\n        }\n        return object;\n    },\n    string(value) {\n        return value;\n    }\n};\nconst writers = {\n    default: writeString,\n    array: writeJSON,\n    object: writeJSON\n};\nfunction writeJSON(value) {\n    return JSON.stringify(value);\n}\nfunction writeString(value) {\n    return `${value}`;\n}\n\nclass Controller {\n    constructor(context) {\n        this.context = context;\n    }\n    static get shouldLoad() {\n        return true;\n    }\n    get application() {\n        return this.context.application;\n    }\n    get scope() {\n        return this.context.scope;\n    }\n    get element() {\n        return this.scope.element;\n    }\n    get identifier() {\n        return this.scope.identifier;\n    }\n    get targets() {\n        return this.scope.targets;\n    }\n    get classes() {\n        return this.scope.classes;\n    }\n    get data() {\n        return this.scope.data;\n    }\n    initialize() {\n    }\n    connect() {\n    }\n    disconnect() {\n    }\n    dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n        const type = prefix ? `${prefix}:${eventName}` : eventName;\n        const event = new CustomEvent(type, { detail, bubbles, cancelable });\n        target.dispatchEvent(event);\n        return event;\n    }\n}\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.debug = false\nwindow.Stimulus   = application\n\nexport { application }\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"content\", \"icon\", \"button\"]\n\n  connect() {\n    this.contentTargets.forEach((content) => {\n      content.classList.add(\"hidden\")\n    })\n\n    this.buttonTargets.forEach((button, index) => {\n      button.setAttribute('aria-expanded', 'false')\n      this.iconTargets[index].classList.remove('rotate-180')\n    })\n  }\n\n  toggle(event) {\n    const index = parseInt(event.currentTarget.dataset.index)\n    this.contentTargets[index].classList.toggle(\"hidden\")\n    this.iconTargets[index].classList.toggle(\"rotate-180\")\n\n    const button = event.currentTarget\n    const expanded = button.getAttribute(\"aria-expanded\") === \"true\"\n    button.setAttribute(\"aria-expanded\", !expanded)\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['collapseContent', 'toggleCollapseButton'];\n\n  static values = {\n    showText: String,\n    hideText: String,\n  };\n\n  toggleCollapse(event) {\n    this.collapseContentTarget.classList.toggle('collapse-show');\n    if (this.collapseContentTarget.classList.contains('collapse-show')) {\n      this.toggleCollapseButtonTarget.innerHTML = this.hideTextValue;\n    } else {\n      this.toggleCollapseButtonTarget.innerHTML = this.showTextValue;\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['copyText'];\n  static values = { copiedText: String, initialText: String };\n\n  copyTextValue(event) {\n    event.preventDefault();\n\n    const targetValue = event.currentTarget.dataset.targetValue;\n\n    navigator.clipboard.writeText(targetValue);\n\n    this.copyTextTarget.innerText = this.copiedTextValue;\n  }\n\n  resetText(event) {\n    this.copyTextTarget.innerText = this.initialTextValue;\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"container\", \"item\", \"template\", \"addButton\"]\n  static values = { maxUbos: Number, titleTemplate: String }\n\n  connect() {\n    this.renumberItems()\n    this.openFirstItem()\n    this.updateAddButtonVisibility()\n  }\n\n  add() {\n    const clone = this.templateTarget.content.cloneNode(true)\n    const timestamp = new Date().getTime()\n\n    clone.querySelectorAll(\"*\").forEach(element => {\n      for (const attr of element.attributes) {\n        if (attr.value.includes(\"NEW_RECORD\")) {\n          attr.value = attr.value.replaceAll(\"NEW_RECORD\", timestamp)\n        }\n      }\n    })\n\n    this.containerTarget.appendChild(clone)\n    this.renumberItems()\n    this.updateAddButtonVisibility()\n\n    const items = this.visibleItems()\n    const lastItem = items[items.length - 1]\n    this.expandItem(lastItem)\n  }\n\n  remove(event) {\n    const item = event.target.closest(\"[data-dynamic-ubo-target='item']\")\n    const destroyField = item.querySelector(\"[data-destroy-field]\")\n\n    if (destroyField) {\n      destroyField.value = \"1\"\n      this.clearInputs(item)\n      item.style.display = \"none\"\n    } else {\n      item.remove()\n    }\n\n    this.renumberItems()\n    this.updateAddButtonVisibility()\n  }\n\n  toggle(event) {\n    const item = event.target.closest(\"[data-dynamic-ubo-target='item']\")\n    const content = item.querySelector(\"[data-dynamic-ubo-target='content']\")\n    const icon = item.querySelector(\"[data-dynamic-ubo-target='icon']\")\n    const button = event.currentTarget\n    const expanded = button.getAttribute(\"aria-expanded\") === \"true\"\n\n    content.classList.toggle(\"hidden\")\n    icon.classList.toggle(\"rotate-180\")\n    button.setAttribute(\"aria-expanded\", String(!expanded))\n  }\n\n  // private\n\n  visibleItems() {\n    return this.itemTargets.filter(item => item.style.display !== \"none\")\n  }\n\n  renumberItems() {\n    let number = 1\n    this.itemTargets.forEach(item => {\n      if (item.style.display === \"none\") return\n\n      const title = item.querySelector(\"[data-ubo-title]\")\n      if (title) {\n        title.textContent = this.titleTemplateValue.replace(\"%{number}\", number)\n      }\n\n      const removeButton = item.querySelector(\"[data-ubo-remove]\")\n      if (removeButton) {\n        removeButton.classList.toggle(\"hidden\", number === 1)\n      }\n\n      number++\n    })\n  }\n\n  expandItem(item) {\n    const content = item.querySelector(\"[data-dynamic-ubo-target='content']\")\n    const icon = item.querySelector(\"[data-dynamic-ubo-target='icon']\")\n    const button = item.querySelector(\"[data-dynamic-ubo-target='toggleButton']\")\n\n    if (content) content.classList.remove(\"hidden\")\n    if (icon) icon.classList.add(\"rotate-180\")\n    if (button) button.setAttribute(\"aria-expanded\", \"true\")\n  }\n\n  collapseItem(item) {\n    const content = item.querySelector(\"[data-dynamic-ubo-target='content']\")\n    const icon = item.querySelector(\"[data-dynamic-ubo-target='icon']\")\n    const button = item.querySelector(\"[data-dynamic-ubo-target='toggleButton']\")\n\n    if (content) content.classList.add(\"hidden\")\n    if (icon) icon.classList.remove(\"rotate-180\")\n    if (button) button.setAttribute(\"aria-expanded\", \"false\")\n  }\n\n  openFirstItem() {\n    this.visibleItems().forEach((item, index) => {\n      if (index === 0) {\n        this.expandItem(item)\n      } else {\n        this.collapseItem(item)\n      }\n    })\n  }\n\n  updateAddButtonVisibility() {\n    if (!this.hasAddButtonTarget) return\n\n    const visibleCount = this.visibleItems().length\n    this.addButtonTarget.classList.toggle(\"hidden\", visibleCount >= this.maxUbosValue)\n  }\n\n  clearInputs(item) {\n    item.querySelectorAll(\"input, select, textarea\").forEach(input => {\n      if (input.dataset.destroyField !== undefined) return\n\n      if (input.type === \"checkbox\" || input.type === \"radio\") {\n        input.checked = false\n      } else {\n        input.value = \"\"\n      }\n    })\n  }\n}\n", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n// We're using a generic because languages have different plural rules.\n\n// eslint-disable-next-line no-use-before-define\n\nfunction insertReplacement(source, rx, replacement) {\n  const newParts = [];\n  source.forEach(chunk => {\n    // When the source contains multiple placeholders for interpolation,\n    // we should ignore chunks that are not strings, because those\n    // can be JSX objects and will be otherwise incorrectly turned into strings.\n    // Without this condition we\u2019d get this: [object Object] hello [object Object] my <button>\n    if (typeof chunk !== 'string') {\n      return newParts.push(chunk);\n    }\n    return rx[Symbol.split](chunk).forEach((raw, i, list) => {\n      if (raw !== '') {\n        newParts.push(raw);\n      }\n\n      // Interlace with the `replacement` value\n      if (i < list.length - 1) {\n        newParts.push(replacement);\n      }\n    });\n  });\n  return newParts;\n}\n\n/**\n * Takes a string with placeholder variables like `%{smart_count} file selected`\n * and replaces it with values from options `{smart_count: 5}`\n *\n * @license https://github.com/airbnb/polyglot.js/blob/master/LICENSE\n * taken from https://github.com/airbnb/polyglot.js/blob/master/lib/polyglot.js#L299\n *\n * @param phrase that needs interpolation, with placeholders\n * @param options with values that will be used to replace placeholders\n */\nfunction interpolate(phrase, options) {\n  const dollarRegex = /\\$/g;\n  const dollarBillsYall = '$$$$';\n  let interpolated = [phrase];\n  if (options == null) return interpolated;\n  for (const arg of Object.keys(options)) {\n    if (arg !== '_') {\n      // Ensure replacement value is escaped to prevent special $-prefixed\n      // regex replace tokens. the \"$$$$\" is needed because each \"$\" needs to\n      // be escaped with \"$\" itself, and we need two in the resulting output.\n      let replacement = options[arg];\n      if (typeof replacement === 'string') {\n        replacement = dollarRegex[Symbol.replace](replacement, dollarBillsYall);\n      }\n      // We create a new `RegExp` each time instead of using a more-efficient\n      // string replace so that the same argument can be replaced multiple times\n      // in the same phrase.\n      interpolated = insertReplacement(interpolated, new RegExp(`%\\\\{${arg}\\\\}`, 'g'), replacement);\n    }\n  }\n  return interpolated;\n}\nconst defaultOnMissingKey = key => {\n  throw new Error(`missing string: ${key}`);\n};\n\n/**\n * Translates strings with interpolation & pluralization support.\n * Extensible with custom dictionaries and pluralization functions.\n *\n * Borrows heavily from and inspired by Polyglot https://github.com/airbnb/polyglot.js,\n * basically a stripped-down version of it. Differences: pluralization functions are not hardcoded\n * and can be easily added among with dictionaries, nested objects are used for pluralization\n * as opposed to `||||` delimeter\n *\n * Usage example: `translator.translate('files_chosen', {smart_count: 3})`\n */\nvar _onMissingKey = /*#__PURE__*/_classPrivateFieldLooseKey(\"onMissingKey\");\nvar _apply = /*#__PURE__*/_classPrivateFieldLooseKey(\"apply\");\nexport default class Translator {\n  constructor(locales, _temp) {\n    let {\n      onMissingKey = defaultOnMissingKey\n    } = _temp === void 0 ? {} : _temp;\n    Object.defineProperty(this, _apply, {\n      value: _apply2\n    });\n    Object.defineProperty(this, _onMissingKey, {\n      writable: true,\n      value: void 0\n    });\n    this.locale = {\n      strings: {},\n      pluralize(n) {\n        if (n === 1) {\n          return 0;\n        }\n        return 1;\n      }\n    };\n    if (Array.isArray(locales)) {\n      locales.forEach(_classPrivateFieldLooseBase(this, _apply)[_apply], this);\n    } else {\n      _classPrivateFieldLooseBase(this, _apply)[_apply](locales);\n    }\n    _classPrivateFieldLooseBase(this, _onMissingKey)[_onMissingKey] = onMissingKey;\n  }\n  /**\n   * Public translate method\n   *\n   * @param key\n   * @param options with values that will be used later to replace placeholders in string\n   * @returns string translated (and interpolated)\n   */\n  translate(key, options) {\n    return this.translateArray(key, options).join('');\n  }\n\n  /**\n   * Get a translation and return the translated and interpolated parts as an array.\n   *\n   * @returns The translated and interpolated parts, in order.\n   */\n  translateArray(key, options) {\n    let string = this.locale.strings[key];\n    if (string == null) {\n      _classPrivateFieldLooseBase(this, _onMissingKey)[_onMissingKey](key);\n      string = key;\n    }\n    const hasPluralForms = typeof string === 'object';\n    if (hasPluralForms) {\n      if (options && typeof options.smart_count !== 'undefined') {\n        const plural = this.locale.pluralize(options.smart_count);\n        return interpolate(string[plural], options);\n      }\n      throw new Error('Attempted to use a string with plural forms, but no value was given for %{smart_count}');\n    }\n    if (typeof string !== 'string') {\n      throw new Error(`string was not a string`);\n    }\n    return interpolate(string, options);\n  }\n}\nfunction _apply2(locale) {\n  if (!(locale != null && locale.strings)) {\n    return;\n  }\n  const prevLocale = this.locale;\n  Object.assign(this.locale, {\n    strings: {\n      ...prevLocale.strings,\n      ...locale.strings\n    },\n    pluralize: locale.pluralize || prevLocale.pluralize\n  });\n}", "let _Symbol$for, _Symbol$for2;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n/* eslint-disable max-classes-per-file */\n/* global AggregateError */\n\nimport Translator from '@uppy/utils/lib/Translator';\nimport ee from 'namespace-emitter';\nimport { nanoid } from 'nanoid/non-secure';\nimport throttle from 'lodash/throttle.js';\nimport DefaultStore from '@uppy/store-default';\nimport getFileType from '@uppy/utils/lib/getFileType';\nimport getFileNameAndExtension from '@uppy/utils/lib/getFileNameAndExtension';\nimport { getSafeFileId } from '@uppy/utils/lib/generateFileID';\nimport supportsUploadProgress from './supportsUploadProgress.js';\nimport getFileName from './getFileName.js';\nimport { justErrorsLogger, debugLogger } from './loggers.js';\nimport { Restricter, defaultOptions as defaultRestrictionOptions, RestrictionError } from './Restricter.js';\nconst packageJson = {\n  \"version\": \"3.8.0\"\n};\nimport locale from './locale.js';\nconst getDefaultUploadState = () => ({\n  totalProgress: 0,\n  allowNewUpload: true,\n  error: null,\n  recoveredState: null\n});\n\n/**\n * Uppy Core module.\n * Manages plugins, state updates, acts as an event bus,\n * adds/removes files and metadata.\n */\nvar _plugins = /*#__PURE__*/_classPrivateFieldLooseKey(\"plugins\");\nvar _restricter = /*#__PURE__*/_classPrivateFieldLooseKey(\"restricter\");\nvar _storeUnsubscribe = /*#__PURE__*/_classPrivateFieldLooseKey(\"storeUnsubscribe\");\nvar _emitter = /*#__PURE__*/_classPrivateFieldLooseKey(\"emitter\");\nvar _preProcessors = /*#__PURE__*/_classPrivateFieldLooseKey(\"preProcessors\");\nvar _uploaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploaders\");\nvar _postProcessors = /*#__PURE__*/_classPrivateFieldLooseKey(\"postProcessors\");\nvar _informAndEmit = /*#__PURE__*/_classPrivateFieldLooseKey(\"informAndEmit\");\nvar _checkRequiredMetaFieldsOnFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkRequiredMetaFieldsOnFile\");\nvar _checkRequiredMetaFields = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkRequiredMetaFields\");\nvar _assertNewUploadAllowed = /*#__PURE__*/_classPrivateFieldLooseKey(\"assertNewUploadAllowed\");\nvar _transformFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"transformFile\");\nvar _startIfAutoProceed = /*#__PURE__*/_classPrivateFieldLooseKey(\"startIfAutoProceed\");\nvar _checkAndUpdateFileState = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkAndUpdateFileState\");\nvar _addListeners = /*#__PURE__*/_classPrivateFieldLooseKey(\"addListeners\");\nvar _updateOnlineStatus = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateOnlineStatus\");\nvar _requestClientById = /*#__PURE__*/_classPrivateFieldLooseKey(\"requestClientById\");\nvar _createUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createUpload\");\nvar _getUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUpload\");\nvar _removeUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"removeUpload\");\nvar _runUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"runUpload\");\n_Symbol$for = Symbol.for('uppy test: getPlugins');\n_Symbol$for2 = Symbol.for('uppy test: createUpload');\nclass Uppy {\n  /**\n   * Instantiate Uppy\n   *\n   * @param {object} opts \u2014 Uppy options\n   */\n  constructor(_opts) {\n    /**\n     * Run an upload. This picks up where it left off in case the upload is being restored.\n     *\n     * @private\n     */\n    Object.defineProperty(this, _runUpload, {\n      value: _runUpload2\n    });\n    /**\n     * Remove an upload, eg. if it has been canceled or completed.\n     *\n     * @param {string} uploadID The ID of the upload.\n     */\n    Object.defineProperty(this, _removeUpload, {\n      value: _removeUpload2\n    });\n    Object.defineProperty(this, _getUpload, {\n      value: _getUpload2\n    });\n    /**\n     * Create an upload for a bunch of files.\n     *\n     * @param {Array<string>} fileIDs File IDs to include in this upload.\n     * @returns {string} ID of this upload.\n     */\n    Object.defineProperty(this, _createUpload, {\n      value: _createUpload2\n    });\n    /**\n     * Registers listeners for all global actions, like:\n     * `error`, `file-removed`, `upload-progress`\n     */\n    Object.defineProperty(this, _addListeners, {\n      value: _addListeners2\n    });\n    Object.defineProperty(this, _checkAndUpdateFileState, {\n      value: _checkAndUpdateFileState2\n    });\n    // Schedule an upload if `autoProceed` is enabled.\n    Object.defineProperty(this, _startIfAutoProceed, {\n      value: _startIfAutoProceed2\n    });\n    /**\n     * Create a file state object based on user-provided `addFile()` options.\n     */\n    Object.defineProperty(this, _transformFile, {\n      value: _transformFile2\n    });\n    Object.defineProperty(this, _assertNewUploadAllowed, {\n      value: _assertNewUploadAllowed2\n    });\n    Object.defineProperty(this, _checkRequiredMetaFields, {\n      value: _checkRequiredMetaFields2\n    });\n    Object.defineProperty(this, _checkRequiredMetaFieldsOnFile, {\n      value: _checkRequiredMetaFieldsOnFile2\n    });\n    /*\n    * @constructs\n    * @param { Error[] } errors\n    * @param { undefined } file\n    */\n    /*\n    * @constructs\n    * @param { RestrictionError } error\n    */\n    Object.defineProperty(this, _informAndEmit, {\n      value: _informAndEmit2\n    });\n    /** @type {Record<string, BasePlugin[]>} */\n    Object.defineProperty(this, _plugins, {\n      writable: true,\n      value: Object.create(null)\n    });\n    Object.defineProperty(this, _restricter, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _storeUnsubscribe, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _emitter, {\n      writable: true,\n      value: ee()\n    });\n    Object.defineProperty(this, _preProcessors, {\n      writable: true,\n      value: new Set()\n    });\n    Object.defineProperty(this, _uploaders, {\n      writable: true,\n      value: new Set()\n    });\n    Object.defineProperty(this, _postProcessors, {\n      writable: true,\n      value: new Set()\n    });\n    // ___Why throttle at 500ms?\n    //    - We must throttle at >250ms for superfocus in Dashboard to work well\n    //    (because animation takes 0.25s, and we want to wait for all animations to be over before refocusing).\n    //    [Practical Check]: if thottle is at 100ms, then if you are uploading a file,\n    //    and click 'ADD MORE FILES', - focus won't activate in Firefox.\n    //    - We must throttle at around >500ms to avoid performance lags.\n    //    [Practical Check] Firefox, try to upload a big file for a prolonged period of time. Laptop will start to heat up.\n    this.calculateProgress = throttle((file, data) => {\n      const fileInState = this.getFile(file == null ? void 0 : file.id);\n      if (file == null || !fileInState) {\n        this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n        return;\n      }\n      if (fileInState.progress.percentage === 100) {\n        this.log(`Not setting progress for a file that has been already uploaded: ${file.id}`);\n        return;\n      }\n\n      // bytesTotal may be null or zero; in that case we can't divide by it\n      const canHavePercentage = Number.isFinite(data.bytesTotal) && data.bytesTotal > 0;\n      this.setFileState(file.id, {\n        progress: {\n          ...fileInState.progress,\n          bytesUploaded: data.bytesUploaded,\n          bytesTotal: data.bytesTotal,\n          percentage: canHavePercentage ? Math.round(data.bytesUploaded / data.bytesTotal * 100) : 0\n        }\n      });\n      this.calculateTotalProgress();\n    }, 500, {\n      leading: true,\n      trailing: true\n    });\n    Object.defineProperty(this, _updateOnlineStatus, {\n      writable: true,\n      value: this.updateOnlineStatus.bind(this)\n    });\n    // We need to store request clients by a unique ID, so we can share RequestClient instances across files\n    // this allows us to do rate limiting and synchronous operations like refreshing provider tokens\n    // example: refreshing tokens: if each file has their own requestclient,\n    // we don't have any way to synchronize all requests in order to\n    // - block all requests\n    // - refresh the token\n    // - unblock all requests and allow them to run with a the new access token\n    // back when we had a requestclient per file, once an access token expired,\n    // all 6 files would go ahead and refresh the token at the same time\n    // (calling /refresh-token up to 6 times), which will probably fail for some providers\n    Object.defineProperty(this, _requestClientById, {\n      writable: true,\n      value: new Map()\n    });\n    this.defaultLocale = locale;\n    const defaultOptions = {\n      id: 'uppy',\n      autoProceed: false,\n      allowMultipleUploadBatches: true,\n      debug: false,\n      restrictions: defaultRestrictionOptions,\n      meta: {},\n      onBeforeFileAdded: (file, files) => !Object.hasOwn(files, file.id),\n      onBeforeUpload: files => files,\n      store: new DefaultStore(),\n      logger: justErrorsLogger,\n      infoTimeout: 5000\n    };\n\n    // Merge default options with the ones set by user,\n    // making sure to merge restrictions too\n    this.opts = {\n      ...defaultOptions,\n      ..._opts,\n      restrictions: {\n        ...defaultOptions.restrictions,\n        ...(_opts && _opts.restrictions)\n      }\n    };\n\n    // Support debug: true for backwards-compatability, unless logger is set in opts\n    // opts instead of this.opts to avoid comparing objects \u2014 we set logger: justErrorsLogger in defaultOptions\n    if (_opts && _opts.logger && _opts.debug) {\n      this.log('You are using a custom `logger`, but also set `debug: true`, which uses built-in logger to output logs to console. Ignoring `debug: true` and using your custom `logger`.', 'warning');\n    } else if (_opts && _opts.debug) {\n      this.opts.logger = debugLogger;\n    }\n    this.log(`Using Core v${this.constructor.VERSION}`);\n    this.i18nInit();\n    this.store = this.opts.store;\n    this.setState({\n      ...getDefaultUploadState(),\n      plugins: {},\n      files: {},\n      currentUploads: {},\n      capabilities: {\n        uploadProgress: supportsUploadProgress(),\n        individualCancellation: true,\n        resumableUploads: false\n      },\n      meta: {\n        ...this.opts.meta\n      },\n      info: []\n    });\n    _classPrivateFieldLooseBase(this, _restricter)[_restricter] = new Restricter(() => this.opts, this.i18n);\n    _classPrivateFieldLooseBase(this, _storeUnsubscribe)[_storeUnsubscribe] = this.store.subscribe((prevState, nextState, patch) => {\n      this.emit('state-update', prevState, nextState, patch);\n      this.updateAll(nextState);\n    });\n\n    // Exposing uppy object on window for debugging and testing\n    if (this.opts.debug && typeof window !== 'undefined') {\n      window[this.opts.id] = this;\n    }\n    _classPrivateFieldLooseBase(this, _addListeners)[_addListeners]();\n  }\n  emit(event) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].emit(event, ...args);\n  }\n  on(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(event, callback);\n    return this;\n  }\n  once(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].once(event, callback);\n    return this;\n  }\n  off(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].off(event, callback);\n    return this;\n  }\n\n  /**\n   * Iterate on all plugins and run `update` on them.\n   * Called each time state changes.\n   *\n   */\n  updateAll(state) {\n    this.iteratePlugins(plugin => {\n      plugin.update(state);\n    });\n  }\n\n  /**\n   * Updates state with a patch\n   *\n   * @param {object} patch {foo: 'bar'}\n   */\n  setState(patch) {\n    this.store.setState(patch);\n  }\n\n  /**\n   * Returns current state.\n   *\n   * @returns {object}\n   */\n  getState() {\n    return this.store.getState();\n  }\n  patchFilesState(filesWithNewState) {\n    const existingFilesState = this.getState().files;\n    this.setState({\n      files: {\n        ...existingFilesState,\n        ...Object.fromEntries(Object.entries(filesWithNewState).map(_ref => {\n          let [fileID, newFileState] = _ref;\n          return [fileID, {\n            ...existingFilesState[fileID],\n            ...newFileState\n          }];\n        }))\n      }\n    });\n  }\n\n  /**\n   * Shorthand to set state for a specific file.\n   */\n  setFileState(fileID, state) {\n    if (!this.getState().files[fileID]) {\n      throw new Error(`Can\u2019t set state for ${fileID} (the file could have been removed)`);\n    }\n    this.patchFilesState({\n      [fileID]: state\n    });\n  }\n  i18nInit() {\n    const onMissingKey = key => this.log(`Missing i18n string: ${key}`, 'error');\n    const translator = new Translator([this.defaultLocale, this.opts.locale], {\n      onMissingKey\n    });\n    this.i18n = translator.translate.bind(translator);\n    this.i18nArray = translator.translateArray.bind(translator);\n    this.locale = translator.locale;\n  }\n  setOptions(newOpts) {\n    this.opts = {\n      ...this.opts,\n      ...newOpts,\n      restrictions: {\n        ...this.opts.restrictions,\n        ...(newOpts && newOpts.restrictions)\n      }\n    };\n    if (newOpts.meta) {\n      this.setMeta(newOpts.meta);\n    }\n    this.i18nInit();\n    if (newOpts.locale) {\n      this.iteratePlugins(plugin => {\n        plugin.setOptions(newOpts);\n      });\n    }\n\n    // Note: this is not the preact `setState`, it's an internal function that has the same name.\n    this.setState(); // so that UI re-renders with new options\n  }\n\n  // todo next major: rename to something better? (it doesn't just reset progress)\n  resetProgress() {\n    const defaultProgress = {\n      percentage: 0,\n      bytesUploaded: 0,\n      uploadComplete: false,\n      uploadStarted: null\n    };\n    const files = {\n      ...this.getState().files\n    };\n    const updatedFiles = {};\n    Object.keys(files).forEach(fileID => {\n      updatedFiles[fileID] = {\n        ...files[fileID],\n        progress: {\n          ...files[fileID].progress,\n          ...defaultProgress\n        }\n      };\n    });\n    this.setState({\n      files: updatedFiles,\n      ...getDefaultUploadState()\n    });\n    this.emit('reset-progress');\n  }\n\n  /** @protected */\n  clearUploadedFiles() {\n    this.setState({\n      ...getDefaultUploadState(),\n      files: {}\n    });\n  }\n  addPreProcessor(fn) {\n    _classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors].add(fn);\n  }\n  removePreProcessor(fn) {\n    return _classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors].delete(fn);\n  }\n  addPostProcessor(fn) {\n    _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].add(fn);\n  }\n  removePostProcessor(fn) {\n    return _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].delete(fn);\n  }\n  addUploader(fn) {\n    _classPrivateFieldLooseBase(this, _uploaders)[_uploaders].add(fn);\n  }\n  removeUploader(fn) {\n    return _classPrivateFieldLooseBase(this, _uploaders)[_uploaders].delete(fn);\n  }\n  setMeta(data) {\n    const updatedMeta = {\n      ...this.getState().meta,\n      ...data\n    };\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    Object.keys(updatedFiles).forEach(fileID => {\n      updatedFiles[fileID] = {\n        ...updatedFiles[fileID],\n        meta: {\n          ...updatedFiles[fileID].meta,\n          ...data\n        }\n      };\n    });\n    this.log('Adding metadata:');\n    this.log(data);\n    this.setState({\n      meta: updatedMeta,\n      files: updatedFiles\n    });\n  }\n  setFileMeta(fileID, data) {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    if (!updatedFiles[fileID]) {\n      this.log('Was trying to set metadata for a file that has been removed: ', fileID);\n      return;\n    }\n    const newMeta = {\n      ...updatedFiles[fileID].meta,\n      ...data\n    };\n    updatedFiles[fileID] = {\n      ...updatedFiles[fileID],\n      meta: newMeta\n    };\n    this.setState({\n      files: updatedFiles\n    });\n  }\n\n  /**\n   * Get a file object.\n   *\n   * @param {string} fileID The ID of the file object to return.\n   */\n  getFile(fileID) {\n    return this.getState().files[fileID];\n  }\n\n  /**\n   * Get all files in an array.\n   */\n  getFiles() {\n    const {\n      files\n    } = this.getState();\n    return Object.values(files);\n  }\n  getFilesByIds(ids) {\n    return ids.map(id => this.getFile(id));\n  }\n  getObjectOfFilesPerState() {\n    const {\n      files: filesObject,\n      totalProgress,\n      error\n    } = this.getState();\n    const files = Object.values(filesObject);\n    const inProgressFiles = files.filter(_ref2 => {\n      let {\n        progress\n      } = _ref2;\n      return !progress.uploadComplete && progress.uploadStarted;\n    });\n    const newFiles = files.filter(file => !file.progress.uploadStarted);\n    const startedFiles = files.filter(file => file.progress.uploadStarted || file.progress.preprocess || file.progress.postprocess);\n    const uploadStartedFiles = files.filter(file => file.progress.uploadStarted);\n    const pausedFiles = files.filter(file => file.isPaused);\n    const completeFiles = files.filter(file => file.progress.uploadComplete);\n    const erroredFiles = files.filter(file => file.error);\n    const inProgressNotPausedFiles = inProgressFiles.filter(file => !file.isPaused);\n    const processingFiles = files.filter(file => file.progress.preprocess || file.progress.postprocess);\n    return {\n      newFiles,\n      startedFiles,\n      uploadStartedFiles,\n      pausedFiles,\n      completeFiles,\n      erroredFiles,\n      inProgressFiles,\n      inProgressNotPausedFiles,\n      processingFiles,\n      isUploadStarted: uploadStartedFiles.length > 0,\n      isAllComplete: totalProgress === 100 && completeFiles.length === files.length && processingFiles.length === 0,\n      isAllErrored: !!error && erroredFiles.length === files.length,\n      isAllPaused: inProgressFiles.length !== 0 && pausedFiles.length === inProgressFiles.length,\n      isUploadInProgress: inProgressFiles.length > 0,\n      isSomeGhost: files.some(file => file.isGhost)\n    };\n  }\n  validateRestrictions(file, files) {\n    if (files === void 0) {\n      files = this.getFiles();\n    }\n    try {\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validate(files, [file]);\n    } catch (err) {\n      return err;\n    }\n    return null;\n  }\n  checkIfFileAlreadyExists(fileID) {\n    const {\n      files\n    } = this.getState();\n    if (files[fileID] && !files[fileID].isGhost) {\n      return true;\n    }\n    return false;\n  }\n  /**\n   * Add a new file to `state.files`. This will run `onBeforeFileAdded`,\n   * try to guess file type in a clever way, check file against restrictions,\n   * and start an upload if `autoProceed === true`.\n   *\n   * @param {object} file object to add\n   * @returns {string} id for the added file\n   */\n  addFile(file) {\n    _classPrivateFieldLooseBase(this, _assertNewUploadAllowed)[_assertNewUploadAllowed](file);\n    const {\n      nextFilesState,\n      validFilesToAdd,\n      errors\n    } = _classPrivateFieldLooseBase(this, _checkAndUpdateFileState)[_checkAndUpdateFileState]([file]);\n    const restrictionErrors = errors.filter(error => error.isRestriction);\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit](restrictionErrors);\n    if (errors.length > 0) throw errors[0];\n    this.setState({\n      files: nextFilesState\n    });\n    const [firstValidFileToAdd] = validFilesToAdd;\n    this.emit('file-added', firstValidFileToAdd);\n    this.emit('files-added', validFilesToAdd);\n    this.log(`Added file: ${firstValidFileToAdd.name}, ${firstValidFileToAdd.id}, mime type: ${firstValidFileToAdd.type}`);\n    _classPrivateFieldLooseBase(this, _startIfAutoProceed)[_startIfAutoProceed]();\n    return firstValidFileToAdd.id;\n  }\n\n  /**\n   * Add multiple files to `state.files`. See the `addFile()` documentation.\n   *\n   * If an error occurs while adding a file, it is logged and the user is notified.\n   * This is good for UI plugins, but not for programmatic use.\n   * Programmatic users should usually still use `addFile()` on individual files.\n   */\n  addFiles(fileDescriptors) {\n    _classPrivateFieldLooseBase(this, _assertNewUploadAllowed)[_assertNewUploadAllowed]();\n    const {\n      nextFilesState,\n      validFilesToAdd,\n      errors\n    } = _classPrivateFieldLooseBase(this, _checkAndUpdateFileState)[_checkAndUpdateFileState](fileDescriptors);\n    const restrictionErrors = errors.filter(error => error.isRestriction);\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit](restrictionErrors);\n    const nonRestrictionErrors = errors.filter(error => !error.isRestriction);\n    if (nonRestrictionErrors.length > 0) {\n      let message = 'Multiple errors occurred while adding files:\\n';\n      nonRestrictionErrors.forEach(subError => {\n        message += `\\n * ${subError.message}`;\n      });\n      this.info({\n        message: this.i18n('addBulkFilesFailed', {\n          smart_count: nonRestrictionErrors.length\n        }),\n        details: message\n      }, 'error', this.opts.infoTimeout);\n      if (typeof AggregateError === 'function') {\n        throw new AggregateError(nonRestrictionErrors, message);\n      } else {\n        const err = new Error(message);\n        err.errors = nonRestrictionErrors;\n        throw err;\n      }\n    }\n\n    // OK, we haven't thrown an error, we can start updating state and emitting events now:\n\n    this.setState({\n      files: nextFilesState\n    });\n    validFilesToAdd.forEach(file => {\n      this.emit('file-added', file);\n    });\n    this.emit('files-added', validFilesToAdd);\n    if (validFilesToAdd.length > 5) {\n      this.log(`Added batch of ${validFilesToAdd.length} files`);\n    } else {\n      Object.values(validFilesToAdd).forEach(file => {\n        this.log(`Added file: ${file.name}\\n id: ${file.id}\\n type: ${file.type}`);\n      });\n    }\n    if (validFilesToAdd.length > 0) {\n      _classPrivateFieldLooseBase(this, _startIfAutoProceed)[_startIfAutoProceed]();\n    }\n  }\n  removeFiles(fileIDs, reason) {\n    const {\n      files,\n      currentUploads\n    } = this.getState();\n    const updatedFiles = {\n      ...files\n    };\n    const updatedUploads = {\n      ...currentUploads\n    };\n    const removedFiles = Object.create(null);\n    fileIDs.forEach(fileID => {\n      if (files[fileID]) {\n        removedFiles[fileID] = files[fileID];\n        delete updatedFiles[fileID];\n      }\n    });\n\n    // Remove files from the `fileIDs` list in each upload.\n    function fileIsNotRemoved(uploadFileID) {\n      return removedFiles[uploadFileID] === undefined;\n    }\n    Object.keys(updatedUploads).forEach(uploadID => {\n      const newFileIDs = currentUploads[uploadID].fileIDs.filter(fileIsNotRemoved);\n\n      // Remove the upload if no files are associated with it anymore.\n      if (newFileIDs.length === 0) {\n        delete updatedUploads[uploadID];\n        return;\n      }\n      const {\n        capabilities\n      } = this.getState();\n      if (newFileIDs.length !== currentUploads[uploadID].fileIDs.length && !capabilities.individualCancellation) {\n        throw new Error('individualCancellation is disabled');\n      }\n      updatedUploads[uploadID] = {\n        ...currentUploads[uploadID],\n        fileIDs: newFileIDs\n      };\n    });\n    const stateUpdate = {\n      currentUploads: updatedUploads,\n      files: updatedFiles\n    };\n\n    // If all files were removed - allow new uploads,\n    // and clear recoveredState\n    if (Object.keys(updatedFiles).length === 0) {\n      stateUpdate.allowNewUpload = true;\n      stateUpdate.error = null;\n      stateUpdate.recoveredState = null;\n    }\n    this.setState(stateUpdate);\n    this.calculateTotalProgress();\n    const removedFileIDs = Object.keys(removedFiles);\n    removedFileIDs.forEach(fileID => {\n      this.emit('file-removed', removedFiles[fileID], reason);\n    });\n    if (removedFileIDs.length > 5) {\n      this.log(`Removed ${removedFileIDs.length} files`);\n    } else {\n      this.log(`Removed files: ${removedFileIDs.join(', ')}`);\n    }\n  }\n  removeFile(fileID, reason) {\n    if (reason === void 0) {\n      reason = null;\n    }\n    this.removeFiles([fileID], reason);\n  }\n  pauseResume(fileID) {\n    if (!this.getState().capabilities.resumableUploads || this.getFile(fileID).uploadComplete) {\n      return undefined;\n    }\n    const wasPaused = this.getFile(fileID).isPaused || false;\n    const isPaused = !wasPaused;\n    this.setFileState(fileID, {\n      isPaused\n    });\n    this.emit('upload-pause', fileID, isPaused);\n    return isPaused;\n  }\n  pauseAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const inProgressUpdatedFiles = Object.keys(updatedFiles).filter(file => {\n      return !updatedFiles[file].progress.uploadComplete && updatedFiles[file].progress.uploadStarted;\n    });\n    inProgressUpdatedFiles.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: true\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles\n    });\n    this.emit('pause-all');\n  }\n  resumeAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const inProgressUpdatedFiles = Object.keys(updatedFiles).filter(file => {\n      return !updatedFiles[file].progress.uploadComplete && updatedFiles[file].progress.uploadStarted;\n    });\n    inProgressUpdatedFiles.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: false,\n        error: null\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles\n    });\n    this.emit('resume-all');\n  }\n  retryAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const filesToRetry = Object.keys(updatedFiles).filter(file => {\n      return updatedFiles[file].error;\n    });\n    filesToRetry.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: false,\n        error: null\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles,\n      error: null\n    });\n    this.emit('retry-all', filesToRetry);\n    if (filesToRetry.length === 0) {\n      return Promise.resolve({\n        successful: [],\n        failed: []\n      });\n    }\n    const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](filesToRetry, {\n      forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n    });\n\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  cancelAll(_temp) {\n    let {\n      reason = 'user'\n    } = _temp === void 0 ? {} : _temp;\n    this.emit('cancel-all', {\n      reason\n    });\n\n    // Only remove existing uploads if user is canceling\n    if (reason === 'user') {\n      const {\n        files\n      } = this.getState();\n      const fileIDs = Object.keys(files);\n      if (fileIDs.length) {\n        this.removeFiles(fileIDs, 'cancel-all');\n      }\n      this.setState(getDefaultUploadState());\n      // todo should we call this.emit('reset-progress') like we do for resetProgress?\n    }\n  }\n\n  retryUpload(fileID) {\n    this.setFileState(fileID, {\n      error: null,\n      isPaused: false\n    });\n    this.emit('upload-retry', fileID);\n    const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload]([fileID], {\n      forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n    });\n\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  logout() {\n    this.iteratePlugins(plugin => {\n      if (plugin.provider && plugin.provider.logout) {\n        plugin.provider.logout();\n      }\n    });\n  }\n  calculateTotalProgress() {\n    // calculate total progress, using the number of files currently uploading,\n    // multiplied by 100 and the summ of individual progress of each file\n    const files = this.getFiles();\n    const inProgress = files.filter(file => {\n      return file.progress.uploadStarted || file.progress.preprocess || file.progress.postprocess;\n    });\n    if (inProgress.length === 0) {\n      this.emit('progress', 0);\n      this.setState({\n        totalProgress: 0\n      });\n      return;\n    }\n    const sizedFiles = inProgress.filter(file => file.progress.bytesTotal != null);\n    const unsizedFiles = inProgress.filter(file => file.progress.bytesTotal == null);\n    if (sizedFiles.length === 0) {\n      const progressMax = inProgress.length * 100;\n      const currentProgress = unsizedFiles.reduce((acc, file) => {\n        return acc + file.progress.percentage;\n      }, 0);\n      const totalProgress = Math.round(currentProgress / progressMax * 100);\n      this.setState({\n        totalProgress\n      });\n      return;\n    }\n    let totalSize = sizedFiles.reduce((acc, file) => {\n      return acc + file.progress.bytesTotal;\n    }, 0);\n    const averageSize = totalSize / sizedFiles.length;\n    totalSize += averageSize * unsizedFiles.length;\n    let uploadedSize = 0;\n    sizedFiles.forEach(file => {\n      uploadedSize += file.progress.bytesUploaded;\n    });\n    unsizedFiles.forEach(file => {\n      uploadedSize += averageSize * (file.progress.percentage || 0) / 100;\n    });\n    let totalProgress = totalSize === 0 ? 0 : Math.round(uploadedSize / totalSize * 100);\n\n    // hot fix, because:\n    // uploadedSize ended up larger than totalSize, resulting in 1325% total\n    if (totalProgress > 100) {\n      totalProgress = 100;\n    }\n    this.setState({\n      totalProgress\n    });\n    this.emit('progress', totalProgress);\n  }\n  updateOnlineStatus() {\n    const online = typeof window.navigator.onLine !== 'undefined' ? window.navigator.onLine : true;\n    if (!online) {\n      this.emit('is-offline');\n      this.info(this.i18n('noInternetConnection'), 'error', 0);\n      this.wasOffline = true;\n    } else {\n      this.emit('is-online');\n      if (this.wasOffline) {\n        this.emit('back-online');\n        this.info(this.i18n('connectedToInternet'), 'success', 3000);\n        this.wasOffline = false;\n      }\n    }\n  }\n  getID() {\n    return this.opts.id;\n  }\n\n  /**\n   * Registers a plugin with Core.\n   *\n   * @param {object} Plugin object\n   * @param {object} [opts] object with options to be passed to Plugin\n   * @returns {object} self for chaining\n   */\n  // eslint-disable-next-line no-shadow\n  use(Plugin, opts) {\n    if (typeof Plugin !== 'function') {\n      const msg = `Expected a plugin class, but got ${Plugin === null ? 'null' : typeof Plugin}.` + ' Please verify that the plugin was imported and spelled correctly.';\n      throw new TypeError(msg);\n    }\n\n    // Instantiate\n    const plugin = new Plugin(this, opts);\n    const pluginId = plugin.id;\n    if (!pluginId) {\n      throw new Error('Your plugin must have an id');\n    }\n    if (!plugin.type) {\n      throw new Error('Your plugin must have a type');\n    }\n    const existsPluginAlready = this.getPlugin(pluginId);\n    if (existsPluginAlready) {\n      const msg = `Already found a plugin named '${existsPluginAlready.id}'. ` + `Tried to use: '${pluginId}'.\\n` + 'Uppy plugins must have unique `id` options. See https://uppy.io/docs/plugins/#id.';\n      throw new Error(msg);\n    }\n    if (Plugin.VERSION) {\n      this.log(`Using ${pluginId} v${Plugin.VERSION}`);\n    }\n    if (plugin.type in _classPrivateFieldLooseBase(this, _plugins)[_plugins]) {\n      _classPrivateFieldLooseBase(this, _plugins)[_plugins][plugin.type].push(plugin);\n    } else {\n      _classPrivateFieldLooseBase(this, _plugins)[_plugins][plugin.type] = [plugin];\n    }\n    plugin.install();\n    this.emit('plugin-added', plugin);\n    return this;\n  }\n\n  /**\n   * Find one Plugin by name.\n   *\n   * @param {string} id plugin id\n   * @returns {BasePlugin|undefined}\n   */\n  getPlugin(id) {\n    for (const plugins of Object.values(_classPrivateFieldLooseBase(this, _plugins)[_plugins])) {\n      const foundPlugin = plugins.find(plugin => plugin.id === id);\n      if (foundPlugin != null) return foundPlugin;\n    }\n    return undefined;\n  }\n  [_Symbol$for](type) {\n    return _classPrivateFieldLooseBase(this, _plugins)[_plugins][type];\n  }\n\n  /**\n   * Iterate through all `use`d plugins.\n   *\n   * @param {Function} method that will be run on each plugin\n   */\n  iteratePlugins(method) {\n    Object.values(_classPrivateFieldLooseBase(this, _plugins)[_plugins]).flat(1).forEach(method);\n  }\n\n  /**\n   * Uninstall and remove a plugin.\n   *\n   * @param {object} instance The plugin instance to remove.\n   */\n  removePlugin(instance) {\n    this.log(`Removing plugin ${instance.id}`);\n    this.emit('plugin-remove', instance);\n    if (instance.uninstall) {\n      instance.uninstall();\n    }\n    const list = _classPrivateFieldLooseBase(this, _plugins)[_plugins][instance.type];\n    // list.indexOf failed here, because Vue3 converted the plugin instance\n    // to a Proxy object, which failed the strict comparison test:\n    // obj !== objProxy\n    const index = list.findIndex(item => item.id === instance.id);\n    if (index !== -1) {\n      list.splice(index, 1);\n    }\n    const state = this.getState();\n    const updatedState = {\n      plugins: {\n        ...state.plugins,\n        [instance.id]: undefined\n      }\n    };\n    this.setState(updatedState);\n  }\n\n  /**\n   * Uninstall all plugins and close down this Uppy instance.\n   */\n  close(_temp2) {\n    let {\n      reason\n    } = _temp2 === void 0 ? {} : _temp2;\n    this.log(`Closing Uppy instance ${this.opts.id}: removing all files and uninstalling plugins`);\n    this.cancelAll({\n      reason\n    });\n    _classPrivateFieldLooseBase(this, _storeUnsubscribe)[_storeUnsubscribe]();\n    this.iteratePlugins(plugin => {\n      this.removePlugin(plugin);\n    });\n    if (typeof window !== 'undefined' && window.removeEventListener) {\n      window.removeEventListener('online', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n      window.removeEventListener('offline', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    }\n  }\n  hideInfo() {\n    const {\n      info\n    } = this.getState();\n    this.setState({\n      info: info.slice(1)\n    });\n    this.emit('info-hidden');\n  }\n\n  /**\n   * Set info message in `state.info`, so that UI plugins like `Informer`\n   * can display the message.\n   *\n   * @param {string | object} message Message to be displayed by the informer\n   * @param {string} [type]\n   * @param {number} [duration]\n   */\n  info(message, type, duration) {\n    if (type === void 0) {\n      type = 'info';\n    }\n    if (duration === void 0) {\n      duration = 3000;\n    }\n    const isComplexMessage = typeof message === 'object';\n    this.setState({\n      info: [...this.getState().info, {\n        type,\n        message: isComplexMessage ? message.message : message,\n        details: isComplexMessage ? message.details : null\n      }]\n    });\n    setTimeout(() => this.hideInfo(), duration);\n    this.emit('info-visible');\n  }\n\n  /**\n   * Passes messages to a function, provided in `opts.logger`.\n   * If `opts.logger: Uppy.debugLogger` or `opts.debug: true`, logs to the browser console.\n   *\n   * @param {string|object} message to log\n   * @param {string} [type] optional `error` or `warning`\n   */\n  log(message, type) {\n    const {\n      logger\n    } = this.opts;\n    switch (type) {\n      case 'error':\n        logger.error(message);\n        break;\n      case 'warning':\n        logger.warn(message);\n        break;\n      default:\n        logger.debug(message);\n        break;\n    }\n  }\n  registerRequestClient(id, client) {\n    _classPrivateFieldLooseBase(this, _requestClientById)[_requestClientById].set(id, client);\n  }\n\n  /** @protected */\n  getRequestClientForFile(file) {\n    if (!file.remote) throw new Error(`Tried to get RequestClient for a non-remote file ${file.id}`);\n    const requestClient = _classPrivateFieldLooseBase(this, _requestClientById)[_requestClientById].get(file.remote.requestClientId);\n    if (requestClient == null) throw new Error(`requestClientId \"${file.remote.requestClientId}\" not registered for file \"${file.id}\"`);\n    return requestClient;\n  }\n\n  /**\n   * Restore an upload by its ID.\n   */\n  restore(uploadID) {\n    this.log(`Core: attempting to restore upload \"${uploadID}\"`);\n    if (!this.getState().currentUploads[uploadID]) {\n      _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n      return Promise.reject(new Error('Nonexistent upload'));\n    }\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  [_Symbol$for2]() {\n    return _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](...arguments);\n  }\n  /**\n   * Add data to an upload's result object.\n   *\n   * @param {string} uploadID The ID of the upload.\n   * @param {object} data Data properties to add to the result object.\n   */\n  addResultData(uploadID, data) {\n    if (!_classPrivateFieldLooseBase(this, _getUpload)[_getUpload](uploadID)) {\n      this.log(`Not setting result for an upload that has been removed: ${uploadID}`);\n      return;\n    }\n    const {\n      currentUploads\n    } = this.getState();\n    const currentUpload = {\n      ...currentUploads[uploadID],\n      result: {\n        ...currentUploads[uploadID].result,\n        ...data\n      }\n    };\n    this.setState({\n      currentUploads: {\n        ...currentUploads,\n        [uploadID]: currentUpload\n      }\n    });\n  }\n  /**\n   * Start an upload for all the files that are not currently being uploaded.\n   *\n   * @returns {Promise}\n   */\n  upload() {\n    var _classPrivateFieldLoo;\n    if (!((_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _plugins)[_plugins].uploader) != null && _classPrivateFieldLoo.length)) {\n      this.log('No uploader type plugins are used', 'warning');\n    }\n    let {\n      files\n    } = this.getState();\n    const onBeforeUploadResult = this.opts.onBeforeUpload(files);\n    if (onBeforeUploadResult === false) {\n      return Promise.reject(new Error('Not starting the upload because onBeforeUpload returned false'));\n    }\n    if (onBeforeUploadResult && typeof onBeforeUploadResult === 'object') {\n      files = onBeforeUploadResult;\n      // Updating files in state, because uploader plugins receive file IDs,\n      // and then fetch the actual file object from state\n      this.setState({\n        files\n      });\n    }\n    return Promise.resolve().then(() => _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateMinNumberOfFiles(files)).catch(err => {\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([err]);\n      throw err;\n    }).then(() => {\n      if (!_classPrivateFieldLooseBase(this, _checkRequiredMetaFields)[_checkRequiredMetaFields](files)) {\n        throw new RestrictionError(this.i18n('missingRequiredMetaField'));\n      }\n    }).catch(err => {\n      // Doing this in a separate catch because we already emited and logged\n      // all the errors in `checkRequiredMetaFields` so we only throw a generic\n      // missing fields error here.\n      throw err;\n    }).then(() => {\n      const {\n        currentUploads\n      } = this.getState();\n      // get a list of files that are currently assigned to uploads\n      const currentlyUploadingFiles = Object.values(currentUploads).flatMap(curr => curr.fileIDs);\n      const waitingFileIDs = [];\n      Object.keys(files).forEach(fileID => {\n        const file = this.getFile(fileID);\n        // if the file hasn't started uploading and hasn't already been assigned to an upload..\n        if (!file.progress.uploadStarted && currentlyUploadingFiles.indexOf(fileID) === -1) {\n          waitingFileIDs.push(file.id);\n        }\n      });\n      const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](waitingFileIDs);\n      return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n    }).catch(err => {\n      this.emit('error', err);\n      this.log(err, 'error');\n      throw err;\n    });\n  }\n}\nfunction _informAndEmit2(errors) {\n  for (const error of errors) {\n    const {\n      file,\n      isRestriction\n    } = error;\n    if (isRestriction) {\n      this.emit('restriction-failed', file, error);\n    } else {\n      this.emit('error', error);\n    }\n    this.log(error, 'warning');\n  }\n  const userFacingErrors = errors.filter(error => error.isUserFacing);\n\n  // don't flood the user: only show the first 4 toasts\n  const maxNumToShow = 4;\n  const firstErrors = userFacingErrors.slice(0, maxNumToShow);\n  const additionalErrors = userFacingErrors.slice(maxNumToShow);\n  firstErrors.forEach(_ref3 => {\n    let {\n      message,\n      details = ''\n    } = _ref3;\n    this.info({\n      message,\n      details\n    }, 'error', this.opts.infoTimeout);\n  });\n  if (additionalErrors.length > 0) {\n    this.info({\n      message: this.i18n('additionalRestrictionsFailed', {\n        count: additionalErrors.length\n      })\n    });\n  }\n}\nfunction _checkRequiredMetaFieldsOnFile2(file) {\n  const {\n    missingFields,\n    error\n  } = _classPrivateFieldLooseBase(this, _restricter)[_restricter].getMissingRequiredMetaFields(file);\n  if (missingFields.length > 0) {\n    this.setFileState(file.id, {\n      missingRequiredMetaFields: missingFields\n    });\n    this.log(error.message);\n    this.emit('restriction-failed', file, error);\n    return false;\n  }\n  return true;\n}\nfunction _checkRequiredMetaFields2(files) {\n  let success = true;\n  for (const file of Object.values(files)) {\n    if (!_classPrivateFieldLooseBase(this, _checkRequiredMetaFieldsOnFile)[_checkRequiredMetaFieldsOnFile](file)) {\n      success = false;\n    }\n  }\n  return success;\n}\nfunction _assertNewUploadAllowed2(file) {\n  const {\n    allowNewUpload\n  } = this.getState();\n  if (allowNewUpload === false) {\n    const error = new RestrictionError(this.i18n('noMoreFilesAllowed'), {\n      file\n    });\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([error]);\n    throw error;\n  }\n}\nfunction _transformFile2(fileDescriptorOrFile) {\n  // Uppy expects files in { name, type, size, data } format.\n  // If the actual File object is passed from input[type=file] or drag-drop,\n  // we normalize it to match Uppy file object\n  const fileDescriptor = fileDescriptorOrFile instanceof File ? {\n    name: fileDescriptorOrFile.name,\n    type: fileDescriptorOrFile.type,\n    size: fileDescriptorOrFile.size,\n    data: fileDescriptorOrFile\n  } : fileDescriptorOrFile;\n  const fileType = getFileType(fileDescriptor);\n  const fileName = getFileName(fileType, fileDescriptor);\n  const fileExtension = getFileNameAndExtension(fileName).extension;\n  const isRemote = Boolean(fileDescriptor.isRemote);\n  const id = getSafeFileId(fileDescriptor);\n  const meta = fileDescriptor.meta || {};\n  meta.name = fileName;\n  meta.type = fileType;\n\n  // `null` means the size is unknown.\n  const size = Number.isFinite(fileDescriptor.data.size) ? fileDescriptor.data.size : null;\n  return {\n    source: fileDescriptor.source || '',\n    id,\n    name: fileName,\n    extension: fileExtension || '',\n    meta: {\n      ...this.getState().meta,\n      ...meta\n    },\n    type: fileType,\n    data: fileDescriptor.data,\n    progress: {\n      percentage: 0,\n      bytesUploaded: 0,\n      bytesTotal: size,\n      uploadComplete: false,\n      uploadStarted: null\n    },\n    size,\n    isRemote,\n    remote: fileDescriptor.remote || '',\n    preview: fileDescriptor.preview\n  };\n}\nfunction _startIfAutoProceed2() {\n  if (this.opts.autoProceed && !this.scheduledAutoProceed) {\n    this.scheduledAutoProceed = setTimeout(() => {\n      this.scheduledAutoProceed = null;\n      this.upload().catch(err => {\n        if (!err.isRestriction) {\n          this.log(err.stack || err.message || err);\n        }\n      });\n    }, 4);\n  }\n}\nfunction _checkAndUpdateFileState2(filesToAdd) {\n  const {\n    files: existingFiles\n  } = this.getState();\n\n  // create a copy of the files object only once\n  const nextFilesState = {\n    ...existingFiles\n  };\n  const validFilesToAdd = [];\n  const errors = [];\n  for (const fileToAdd of filesToAdd) {\n    try {\n      var _existingFiles$newFil;\n      let newFile = _classPrivateFieldLooseBase(this, _transformFile)[_transformFile](fileToAdd);\n\n      // If a file has been recovered (Golden Retriever), but we were unable to recover its data (probably too large),\n      // users are asked to re-select these half-recovered files and then this method will be called again.\n      // In order to keep the progress, meta and everthing else, we keep the existing file,\n      // but we replace `data`, and we remove `isGhost`, because the file is no longer a ghost now\n      const isGhost = (_existingFiles$newFil = existingFiles[newFile.id]) == null ? void 0 : _existingFiles$newFil.isGhost;\n      if (isGhost) {\n        const {\n          isGhost: _,\n          ...existingFileState\n        } = existingFiles[newFile.id];\n        newFile = {\n          ...existingFileState,\n          data: fileToAdd.data\n        };\n        this.log(`Replaced the blob in the restored ghost file: ${newFile.name}, ${newFile.id}`);\n      }\n      const onBeforeFileAddedResult = this.opts.onBeforeFileAdded(newFile, nextFilesState);\n      if (!onBeforeFileAddedResult && this.checkIfFileAlreadyExists(newFile.id)) {\n        throw new RestrictionError(this.i18n('noDuplicates', {\n          fileName: newFile.name\n        }), {\n          file: fileToAdd\n        });\n      }\n\n      // Pass through reselected files from Golden Retriever\n      if (onBeforeFileAddedResult === false && !isGhost) {\n        // Don\u2019t show UI info for this error, as it should be done by the developer\n        throw new RestrictionError('Cannot add the file because onBeforeFileAdded returned false.', {\n          isUserFacing: false,\n          file: fileToAdd\n        });\n      } else if (typeof onBeforeFileAddedResult === 'object' && onBeforeFileAddedResult !== null) {\n        newFile = onBeforeFileAddedResult;\n      }\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateSingleFile(newFile);\n\n      // need to add it to the new local state immediately, so we can use the state to validate the next files too\n      nextFilesState[newFile.id] = newFile;\n      validFilesToAdd.push(newFile);\n    } catch (err) {\n      errors.push(err);\n    }\n  }\n  try {\n    // need to run this separately because it's much more slow, so if we run it inside the for-loop it will be very slow\n    // when many files are added\n    _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateAggregateRestrictions(Object.values(existingFiles), validFilesToAdd);\n  } catch (err) {\n    errors.push(err);\n\n    // If we have any aggregate error, don't allow adding this batch\n    return {\n      nextFilesState: existingFiles,\n      validFilesToAdd: [],\n      errors\n    };\n  }\n  return {\n    nextFilesState,\n    validFilesToAdd,\n    errors\n  };\n}\nfunction _addListeners2() {\n  /**\n   * @param {Error} error\n   * @param {object} [file]\n   * @param {object} [response]\n   */\n  const errorHandler = (error, file, response) => {\n    let errorMsg = error.message || 'Unknown error';\n    if (error.details) {\n      errorMsg += ` ${error.details}`;\n    }\n    this.setState({\n      error: errorMsg\n    });\n    if (file != null && file.id in this.getState().files) {\n      this.setFileState(file.id, {\n        error: errorMsg,\n        response\n      });\n    }\n  };\n  this.on('error', errorHandler);\n  this.on('upload-error', (file, error, response) => {\n    errorHandler(error, file, response);\n    if (typeof error === 'object' && error.message) {\n      this.log(error.message, 'error');\n      const newError = new Error(this.i18n('failedToUpload', {\n        file: file == null ? void 0 : file.name\n      }));\n      newError.isUserFacing = true; // todo maybe don't do this with all errors?\n      newError.details = error.message;\n      if (error.details) {\n        newError.details += ` ${error.details}`;\n      }\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([newError]);\n    } else {\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([error]);\n    }\n  });\n  let uploadStalledWarningRecentlyEmitted;\n  this.on('upload-stalled', (error, files) => {\n    const {\n      message\n    } = error;\n    const details = files.map(file => file.meta.name).join(', ');\n    if (!uploadStalledWarningRecentlyEmitted) {\n      this.info({\n        message,\n        details\n      }, 'warning', this.opts.infoTimeout);\n      uploadStalledWarningRecentlyEmitted = setTimeout(() => {\n        uploadStalledWarningRecentlyEmitted = null;\n      }, this.opts.infoTimeout);\n    }\n    this.log(`${message} ${details}`.trim(), 'warning');\n  });\n  this.on('upload', () => {\n    this.setState({\n      error: null\n    });\n  });\n  const onUploadStarted = files => {\n    const filesFiltered = files.filter(file => {\n      const exists = file != null && this.getFile(file.id);\n      if (!exists) this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return exists;\n    });\n    const filesState = Object.fromEntries(filesFiltered.map(file => [file.id, {\n      progress: {\n        uploadStarted: Date.now(),\n        uploadComplete: false,\n        percentage: 0,\n        bytesUploaded: 0,\n        bytesTotal: file.size\n      }\n    }]));\n    this.patchFilesState(filesState);\n  };\n  this.on('upload-start', files => {\n    files.forEach(file => {\n      // todo backward compat, remove this event in a next major\n      this.emit('upload-started', file);\n    });\n    onUploadStarted(files);\n  });\n  this.on('upload-progress', this.calculateProgress);\n  this.on('upload-success', (file, uploadResp) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const currentProgress = this.getFile(file.id).progress;\n    this.setFileState(file.id, {\n      progress: {\n        ...currentProgress,\n        postprocess: _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].size > 0 ? {\n          mode: 'indeterminate'\n        } : null,\n        uploadComplete: true,\n        percentage: 100,\n        bytesUploaded: currentProgress.bytesTotal\n      },\n      response: uploadResp,\n      uploadURL: uploadResp.uploadURL,\n      isPaused: false\n    });\n\n    // Remote providers sometimes don't tell us the file size,\n    // but we can know how many bytes we uploaded once the upload is complete.\n    if (file.size == null) {\n      this.setFileState(file.id, {\n        size: uploadResp.bytesUploaded || currentProgress.bytesTotal\n      });\n    }\n    this.calculateTotalProgress();\n  });\n  this.on('preprocess-progress', (file, progress) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    this.setFileState(file.id, {\n      progress: {\n        ...this.getFile(file.id).progress,\n        preprocess: progress\n      }\n    });\n  });\n  this.on('preprocess-complete', file => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const files = {\n      ...this.getState().files\n    };\n    files[file.id] = {\n      ...files[file.id],\n      progress: {\n        ...files[file.id].progress\n      }\n    };\n    delete files[file.id].progress.preprocess;\n    this.setState({\n      files\n    });\n  });\n  this.on('postprocess-progress', (file, progress) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    this.setFileState(file.id, {\n      progress: {\n        ...this.getState().files[file.id].progress,\n        postprocess: progress\n      }\n    });\n  });\n  this.on('postprocess-complete', file => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const files = {\n      ...this.getState().files\n    };\n    files[file.id] = {\n      ...files[file.id],\n      progress: {\n        ...files[file.id].progress\n      }\n    };\n    delete files[file.id].progress.postprocess;\n    this.setState({\n      files\n    });\n  });\n  this.on('restored', () => {\n    // Files may have changed--ensure progress is still accurate.\n    this.calculateTotalProgress();\n  });\n  this.on('dashboard:file-edit-complete', file => {\n    if (file) {\n      _classPrivateFieldLooseBase(this, _checkRequiredMetaFieldsOnFile)[_checkRequiredMetaFieldsOnFile](file);\n    }\n  });\n\n  // show informer if offline\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('online', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    window.addEventListener('offline', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    setTimeout(_classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus], 3000);\n  }\n}\nfunction _createUpload2(fileIDs, opts) {\n  if (opts === void 0) {\n    opts = {};\n  }\n  // uppy.retryAll sets this to true \u2014 when retrying we want to ignore `allowNewUpload: false`\n  const {\n    forceAllowNewUpload = false\n  } = opts;\n  const {\n    allowNewUpload,\n    currentUploads\n  } = this.getState();\n  if (!allowNewUpload && !forceAllowNewUpload) {\n    throw new Error('Cannot create a new upload: already uploading.');\n  }\n  const uploadID = nanoid();\n  this.emit('upload', {\n    id: uploadID,\n    fileIDs\n  });\n  this.setState({\n    allowNewUpload: this.opts.allowMultipleUploadBatches !== false && this.opts.allowMultipleUploads !== false,\n    currentUploads: {\n      ...currentUploads,\n      [uploadID]: {\n        fileIDs,\n        step: 0,\n        result: {}\n      }\n    }\n  });\n  return uploadID;\n}\nfunction _getUpload2(uploadID) {\n  const {\n    currentUploads\n  } = this.getState();\n  return currentUploads[uploadID];\n}\nfunction _removeUpload2(uploadID) {\n  const currentUploads = {\n    ...this.getState().currentUploads\n  };\n  delete currentUploads[uploadID];\n  this.setState({\n    currentUploads\n  });\n}\nasync function _runUpload2(uploadID) {\n  const getCurrentUpload = () => {\n    const {\n      currentUploads\n    } = this.getState();\n    return currentUploads[uploadID];\n  };\n  let currentUpload = getCurrentUpload();\n  const steps = [..._classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors], ..._classPrivateFieldLooseBase(this, _uploaders)[_uploaders], ..._classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors]];\n  try {\n    for (let step = currentUpload.step || 0; step < steps.length; step++) {\n      if (!currentUpload) {\n        break;\n      }\n      const fn = steps[step];\n      this.setState({\n        currentUploads: {\n          ...this.getState().currentUploads,\n          [uploadID]: {\n            ...currentUpload,\n            step\n          }\n        }\n      });\n      const {\n        fileIDs\n      } = currentUpload;\n\n      // TODO give this the `updatedUpload` object as its only parameter maybe?\n      // Otherwise when more metadata may be added to the upload this would keep getting more parameters\n      await fn(fileIDs, uploadID);\n\n      // Update currentUpload value in case it was modified asynchronously.\n      currentUpload = getCurrentUpload();\n    }\n  } catch (err) {\n    _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n    throw err;\n  }\n\n  // Set result data.\n  if (currentUpload) {\n    // Mark postprocessing step as complete if necessary; this addresses a case where we might get\n    // stuck in the postprocessing UI while the upload is fully complete.\n    // If the postprocessing steps do not do any work, they may not emit postprocessing events at\n    // all, and never mark the postprocessing as complete. This is fine on its own but we\n    // introduced code in the @uppy/core upload-success handler to prepare postprocessing progress\n    // state if any postprocessors are registered. That is to avoid a \"flash of completed state\"\n    // before the postprocessing plugins can emit events.\n    //\n    // So, just in case an upload with postprocessing plugins *has* completed *without* emitting\n    // postprocessing completion, we do it instead.\n    currentUpload.fileIDs.forEach(fileID => {\n      const file = this.getFile(fileID);\n      if (file && file.progress.postprocess) {\n        this.emit('postprocess-complete', file);\n      }\n    });\n    const files = currentUpload.fileIDs.map(fileID => this.getFile(fileID));\n    const successful = files.filter(file => !file.error);\n    const failed = files.filter(file => file.error);\n    await this.addResultData(uploadID, {\n      successful,\n      failed,\n      uploadID\n    });\n\n    // Update currentUpload value in case it was modified asynchronously.\n    currentUpload = getCurrentUpload();\n  }\n  // Emit completion events.\n  // This is in a separate function so that the `currentUploads` variable\n  // always refers to the latest state. In the handler right above it refers\n  // to an outdated object without the `.result` property.\n  let result;\n  if (currentUpload) {\n    result = currentUpload.result;\n    this.emit('complete', result);\n    _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n  }\n  if (result == null) {\n    this.log(`Not setting result for an upload that has been removed: ${uploadID}`);\n  }\n  return result;\n}\nUppy.VERSION = packageJson.version;\nexport default Uppy;", "let urlAlphabet =\n  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n  return (size = defaultSize) => {\n    let id = ''\n    let i = size\n    while (i--) {\n      id += alphabet[(Math.random() * alphabet.length) | 0]\n    }\n    return id\n  }\n}\nexport let nanoid = (size = 21) => {\n  let id = ''\n  let i = size\n  while (i--) {\n    id += urlAlphabet[(Math.random() * 64) | 0]\n  }\n  return id\n}\n", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.2.0\"\n};\nvar _callbacks = /*#__PURE__*/_classPrivateFieldLooseKey(\"callbacks\");\nvar _publish = /*#__PURE__*/_classPrivateFieldLooseKey(\"publish\");\n/**\n * Default store that keeps state in a simple object.\n */\nclass DefaultStore {\n  constructor() {\n    Object.defineProperty(this, _publish, {\n      value: _publish2\n    });\n    this.state = {};\n    Object.defineProperty(this, _callbacks, {\n      writable: true,\n      value: new Set()\n    });\n  }\n  getState() {\n    return this.state;\n  }\n  setState(patch) {\n    const prevState = {\n      ...this.state\n    };\n    const nextState = {\n      ...this.state,\n      ...patch\n    };\n    this.state = nextState;\n    _classPrivateFieldLooseBase(this, _publish)[_publish](prevState, nextState, patch);\n  }\n  subscribe(listener) {\n    _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].add(listener);\n    return () => {\n      _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].delete(listener);\n    };\n  }\n}\nfunction _publish2() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].forEach(listener => {\n    listener(...args);\n  });\n}\nDefaultStore.VERSION = packageJson.version;\nexport default DefaultStore;", "/**\n * Takes a full filename string and returns an object {name, extension}\n */\nexport default function getFileNameAndExtension(fullFileName) {\n  const lastDot = fullFileName.lastIndexOf('.');\n  // these count as no extension: \"no-dot\", \"trailing-dot.\"\n  if (lastDot === -1 || lastDot === fullFileName.length - 1) {\n    return {\n      name: fullFileName,\n      extension: undefined\n    };\n  }\n  return {\n    name: fullFileName.slice(0, lastDot),\n    extension: fullFileName.slice(lastDot + 1)\n  };\n}", "// ___Why not add the mime-types package?\n//    It's 19.7kB gzipped, and we only need mime types for well-known extensions (for file previews).\n// ___Where to take new extensions from?\n//    https://github.com/jshttp/mime-db/blob/master/db.json\n\nexport default {\n  __proto__: null,\n  md: 'text/markdown',\n  markdown: 'text/markdown',\n  mp4: 'video/mp4',\n  mp3: 'audio/mp3',\n  svg: 'image/svg+xml',\n  jpg: 'image/jpeg',\n  png: 'image/png',\n  webp: 'image/webp',\n  gif: 'image/gif',\n  heic: 'image/heic',\n  heif: 'image/heif',\n  yaml: 'text/yaml',\n  yml: 'text/yaml',\n  csv: 'text/csv',\n  tsv: 'text/tab-separated-values',\n  tab: 'text/tab-separated-values',\n  avi: 'video/x-msvideo',\n  mks: 'video/x-matroska',\n  mkv: 'video/x-matroska',\n  mov: 'video/quicktime',\n  dicom: 'application/dicom',\n  doc: 'application/msword',\n  docm: 'application/vnd.ms-word.document.macroenabled.12',\n  docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n  dot: 'application/msword',\n  dotm: 'application/vnd.ms-word.template.macroenabled.12',\n  dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n  xla: 'application/vnd.ms-excel',\n  xlam: 'application/vnd.ms-excel.addin.macroenabled.12',\n  xlc: 'application/vnd.ms-excel',\n  xlf: 'application/x-xliff+xml',\n  xlm: 'application/vnd.ms-excel',\n  xls: 'application/vnd.ms-excel',\n  xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n  xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12',\n  xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n  xlt: 'application/vnd.ms-excel',\n  xltm: 'application/vnd.ms-excel.template.macroenabled.12',\n  xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n  xlw: 'application/vnd.ms-excel',\n  txt: 'text/plain',\n  text: 'text/plain',\n  conf: 'text/plain',\n  log: 'text/plain',\n  pdf: 'application/pdf',\n  zip: 'application/zip',\n  '7z': 'application/x-7z-compressed',\n  rar: 'application/x-rar-compressed',\n  tar: 'application/x-tar',\n  gz: 'application/gzip',\n  dmg: 'application/x-apple-diskimage'\n};", "import getFileNameAndExtension from \"./getFileNameAndExtension.js\";\nimport mimeTypes from \"./mimeTypes.js\";\nexport default function getFileType(file) {\n  var _getFileNameAndExtens;\n  if (file.type) return file.type;\n  const fileExtension = file.name ? (_getFileNameAndExtens = getFileNameAndExtension(file.name).extension) == null ? void 0 : _getFileNameAndExtens.toLowerCase() : null;\n  if (fileExtension && fileExtension in mimeTypes) {\n    // else, see if we can map extension to a mime type\n    return mimeTypes[fileExtension];\n  }\n  // if all fails, fall back to a generic byte stream type\n  return 'application/octet-stream';\n}", "import getFileType from \"./getFileType.js\";\nfunction encodeCharacter(character) {\n  return character.charCodeAt(0).toString(32);\n}\nfunction encodeFilename(name) {\n  let suffix = '';\n  return name.replace(/[^A-Z0-9]/gi, character => {\n    suffix += `-${encodeCharacter(character)}`;\n    return '/';\n  }) + suffix;\n}\n\n/**\n * Takes a file object and turns it into fileID, by converting file.name to lowercase,\n * removing extra characters and adding type, size and lastModified\n */\nexport default function generateFileID(file, instanceId) {\n  // It's tempting to do `[items].filter(Boolean).join('-')` here, but that\n  // is slower! simple string concatenation is fast\n\n  let id = instanceId || 'uppy';\n  if (typeof file.name === 'string') {\n    id += `-${encodeFilename(file.name.toLowerCase())}`;\n  }\n  if (file.type !== undefined) {\n    id += `-${file.type}`;\n  }\n  if (file.meta && typeof file.meta.relativePath === 'string') {\n    id += `-${encodeFilename(file.meta.relativePath.toLowerCase())}`;\n  }\n  if (file.data.size !== undefined) {\n    id += `-${file.data.size}`;\n  }\n  if (file.data.lastModified !== undefined) {\n    id += `-${file.data.lastModified}`;\n  }\n  return id;\n}\n\n// If the provider has a stable, unique ID, then we can use that to identify the file.\n// Then we don't have to generate our own ID, and we can add the same file many times if needed (different path)\nfunction hasFileStableId(file) {\n  if (!file.isRemote || !file.remote) return false;\n  // These are the providers that it seems like have stable IDs for their files. The other's I haven't checked yet.\n  const stableIdProviders = new Set(['box', 'dropbox', 'drive', 'facebook', 'unsplash']);\n  return stableIdProviders.has(file.remote.provider);\n}\nexport function getSafeFileId(file, instanceId) {\n  if (hasFileStableId(file)) return file.id;\n  const fileType = getFileType(file);\n  return generateFileID({\n    ...file,\n    type: fileType\n  }, instanceId);\n}", "// Edge 15.x does not fire 'progress' events on uploads.\n// See https://github.com/transloadit/uppy/issues/945\n// And https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12224510/\nexport default function supportsUploadProgress(userAgent) {\n  // Allow passing in userAgent for tests\n  if (userAgent == null && typeof navigator !== 'undefined') {\n    // eslint-disable-next-line no-param-reassign\n    userAgent = navigator.userAgent;\n  }\n  // Assume it works because basically everything supports progress events.\n  if (!userAgent) return true;\n  const m = /Edge\\/(\\d+\\.\\d+)/.exec(userAgent);\n  if (!m) return true;\n  const edgeVersion = m[1];\n  let [major, minor] = edgeVersion.split('.');\n  major = parseInt(major, 10);\n  minor = parseInt(minor, 10);\n\n  // Worked before:\n  // Edge 40.15063.0.0\n  // Microsoft EdgeHTML 15.15063\n  if (major < 15 || major === 15 && minor < 15063) {\n    return true;\n  }\n\n  // Fixed in:\n  // Microsoft EdgeHTML 18.18218\n  if (major > 18 || major === 18 && minor >= 18218) {\n    return true;\n  }\n\n  // other versions don't work.\n  return false;\n}", "export default function getFileName(fileType, fileDescriptor) {\n  if (fileDescriptor.name) {\n    return fileDescriptor.name;\n  }\n  if (fileType.split('/')[0] === 'image') {\n    return `${fileType.split('/')[0]}.${fileType.split('/')[1]}`;\n  }\n  return 'noname';\n}", "/**\n * Adds zero to strings shorter than two characters.\n */\nfunction pad(number) {\n  return number < 10 ? `0${number}` : number.toString();\n}\n\n/**\n * Returns a timestamp in the format of `hours:minutes:seconds`\n */\nexport default function getTimeStamp() {\n  const date = new Date();\n  const hours = pad(date.getHours());\n  const minutes = pad(date.getMinutes());\n  const seconds = pad(date.getSeconds());\n  return `${hours}:${minutes}:${seconds}`;\n}", "/* eslint-disable no-console */\nimport getTimeStamp from '@uppy/utils/lib/getTimeStamp';\n\n// Swallow all logs, except errors.\n// default if logger is not set or debug: false\nconst justErrorsLogger = {\n  debug: () => {},\n  warn: () => {},\n  error: function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return console.error(`[Uppy] [${getTimeStamp()}]`, ...args);\n  }\n};\n\n// Print logs to console with namespace + timestamp,\n// set by logger: Uppy.debugLogger or debug: true\nconst debugLogger = {\n  debug: function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return console.debug(`[Uppy] [${getTimeStamp()}]`, ...args);\n  },\n  warn: function () {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    return console.warn(`[Uppy] [${getTimeStamp()}]`, ...args);\n  },\n  error: function () {\n    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n    return console.error(`[Uppy] [${getTimeStamp()}]`, ...args);\n  }\n};\nexport { justErrorsLogger, debugLogger };", "/* eslint-disable max-classes-per-file, class-methods-use-this */\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport match from 'mime-match';\nconst defaultOptions = {\n  maxFileSize: null,\n  minFileSize: null,\n  maxTotalFileSize: null,\n  maxNumberOfFiles: null,\n  minNumberOfFiles: null,\n  allowedFileTypes: null,\n  requiredMetaFields: []\n};\nclass RestrictionError extends Error {\n  constructor(message, _temp) {\n    let {\n      isUserFacing = true,\n      file\n    } = _temp === void 0 ? {} : _temp;\n    super(message);\n    this.isRestriction = true;\n    this.isUserFacing = isUserFacing;\n    if (file != null) this.file = file; // only some restriction errors are related to a particular file\n  }\n}\n\nclass Restricter {\n  constructor(getOpts, i18n) {\n    this.i18n = i18n;\n    this.getOpts = () => {\n      const opts = getOpts();\n      if (opts.restrictions.allowedFileTypes != null && !Array.isArray(opts.restrictions.allowedFileTypes)) {\n        throw new TypeError('`restrictions.allowedFileTypes` must be an array');\n      }\n      return opts;\n    };\n  }\n\n  // Because these operations are slow, we cannot run them for every file (if we are adding multiple files)\n  validateAggregateRestrictions(existingFiles, addingFiles) {\n    const {\n      maxTotalFileSize,\n      maxNumberOfFiles\n    } = this.getOpts().restrictions;\n    if (maxNumberOfFiles) {\n      const nonGhostFiles = existingFiles.filter(f => !f.isGhost);\n      if (nonGhostFiles.length + addingFiles.length > maxNumberOfFiles) {\n        throw new RestrictionError(`${this.i18n('youCanOnlyUploadX', {\n          smart_count: maxNumberOfFiles\n        })}`);\n      }\n    }\n    if (maxTotalFileSize) {\n      let totalFilesSize = existingFiles.reduce((total, f) => total + f.size, 0);\n      for (const addingFile of addingFiles) {\n        if (addingFile.size != null) {\n          // We can't check maxTotalFileSize if the size is unknown.\n          totalFilesSize += addingFile.size;\n          if (totalFilesSize > maxTotalFileSize) {\n            throw new RestrictionError(this.i18n('exceedsSize', {\n              size: prettierBytes(maxTotalFileSize),\n              file: addingFile.name\n            }));\n          }\n        }\n      }\n    }\n  }\n  validateSingleFile(file) {\n    const {\n      maxFileSize,\n      minFileSize,\n      allowedFileTypes\n    } = this.getOpts().restrictions;\n    if (allowedFileTypes) {\n      const isCorrectFileType = allowedFileTypes.some(type => {\n        // check if this is a mime-type\n        if (type.includes('/')) {\n          if (!file.type) return false;\n          return match(file.type.replace(/;.*?$/, ''), type);\n        }\n\n        // otherwise this is likely an extension\n        if (type[0] === '.' && file.extension) {\n          return file.extension.toLowerCase() === type.slice(1).toLowerCase();\n        }\n        return false;\n      });\n      if (!isCorrectFileType) {\n        const allowedFileTypesString = allowedFileTypes.join(', ');\n        throw new RestrictionError(this.i18n('youCanOnlyUploadFileTypes', {\n          types: allowedFileTypesString\n        }), {\n          file\n        });\n      }\n    }\n\n    // We can't check maxFileSize if the size is unknown.\n    if (maxFileSize && file.size != null && file.size > maxFileSize) {\n      throw new RestrictionError(this.i18n('exceedsSize', {\n        size: prettierBytes(maxFileSize),\n        file: file.name\n      }), {\n        file\n      });\n    }\n\n    // We can't check minFileSize if the size is unknown.\n    if (minFileSize && file.size != null && file.size < minFileSize) {\n      throw new RestrictionError(this.i18n('inferiorSize', {\n        size: prettierBytes(minFileSize)\n      }), {\n        file\n      });\n    }\n  }\n  validate(existingFiles, addingFiles) {\n    addingFiles.forEach(addingFile => {\n      this.validateSingleFile(addingFile);\n    });\n    this.validateAggregateRestrictions(existingFiles, addingFiles);\n  }\n  validateMinNumberOfFiles(files) {\n    const {\n      minNumberOfFiles\n    } = this.getOpts().restrictions;\n    if (Object.keys(files).length < minNumberOfFiles) {\n      throw new RestrictionError(this.i18n('youHaveToAtLeastSelectX', {\n        smart_count: minNumberOfFiles\n      }));\n    }\n  }\n  getMissingRequiredMetaFields(file) {\n    const error = new RestrictionError(this.i18n('missingRequiredMetaFieldOnFile', {\n      fileName: file.name\n    }));\n    const {\n      requiredMetaFields\n    } = this.getOpts().restrictions;\n    const missingFields = [];\n    for (const field of requiredMetaFields) {\n      if (!Object.hasOwn(file.meta, field) || file.meta[field] === '') {\n        missingFields.push(field);\n      }\n    }\n    return {\n      missingFields,\n      error\n    };\n  }\n}\nexport { Restricter, defaultOptions, RestrictionError };", "export default {\n  strings: {\n    addBulkFilesFailed: {\n      0: 'Failed to add %{smart_count} file due to an internal error',\n      1: 'Failed to add %{smart_count} files due to internal errors'\n    },\n    youCanOnlyUploadX: {\n      0: 'You can only upload %{smart_count} file',\n      1: 'You can only upload %{smart_count} files'\n    },\n    youHaveToAtLeastSelectX: {\n      0: 'You have to select at least %{smart_count} file',\n      1: 'You have to select at least %{smart_count} files'\n    },\n    exceedsSize: '%{file} exceeds maximum allowed size of %{size}',\n    missingRequiredMetaField: 'Missing required meta fields',\n    missingRequiredMetaFieldOnFile: 'Missing required meta fields in %{fileName}',\n    inferiorSize: 'This file is smaller than the allowed size of %{size}',\n    youCanOnlyUploadFileTypes: 'You can only upload: %{types}',\n    noMoreFilesAllowed: 'Cannot add more files',\n    noDuplicates: \"Cannot add the duplicate file '%{fileName}', it already exists\",\n    companionError: 'Connection with Companion failed',\n    authAborted: 'Authentication aborted',\n    companionUnauthorizeHint: 'To unauthorize to your %{provider} account, please go to %{url}',\n    failedToUpload: 'Failed to upload %{file}',\n    noInternetConnection: 'No Internet connection',\n    connectedToInternet: 'Connected to the Internet',\n    // Strings for remote providers\n    noFilesFound: 'You have no files or folders here',\n    noSearchResults: 'Unfortunately, there are no results for this search',\n    selectX: {\n      0: 'Select %{smart_count}',\n      1: 'Select %{smart_count}'\n    },\n    allFilesFromFolderNamed: 'All files from folder %{name}',\n    openFolderNamed: 'Open folder %{name}',\n    cancel: 'Cancel',\n    logOut: 'Log out',\n    filter: 'Filter',\n    resetFilter: 'Reset filter',\n    loading: 'Loading...',\n    loadedXFiles: 'Loaded %{numFiles} files',\n    authenticateWithTitle: 'Please authenticate with %{pluginName} to select files',\n    authenticateWith: 'Connect to %{pluginName}',\n    signInWithGoogle: 'Sign in with Google',\n    searchImages: 'Search for images',\n    enterTextToSearch: 'Enter text to search for images',\n    search: 'Search',\n    resetSearch: 'Reset search',\n    emptyFolderAdded: 'No files were added from empty folder',\n    addedNumFiles: 'Added %{numFiles} file(s)',\n    folderAlreadyAdded: 'The folder \"%{folder}\" was already added',\n    folderAdded: {\n      0: 'Added %{smart_count} file from %{folder}',\n      1: 'Added %{smart_count} files from %{folder}'\n    },\n    additionalRestrictionsFailed: '%{count} additional restrictions were not fulfilled'\n  }\n};", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {preact.ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the\n * virtual node\n * @returns {VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor == undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tparentDom = component._parentDom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {Component} a\n * @param {Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Component[]} */\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType =\n\t\tcontext);\n}\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR, INSERT_VNODE, MATCHED } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\tnewParentVNode._nextDom = oldDom;\n\tconstructNewChildrenArray(newParentVNode, renderResult, oldChildren);\n\toldDom = newParentVNode._nextDom;\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (\n\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\tchildVNode._nextDom !== undefined\n\t\t) {\n\t\t\t// Since Fragments or components that return Fragment like VNodes can\n\t\t\t// contain multiple DOM nodes as the same level, continue the diff from\n\t\t\t// the sibling of last DOM child of this child VNode\n\t\t\toldDom = childVNode._nextDom;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because it\n\t\t// is only used by `diffChildren` to determine where to resume the diff\n\t\t// after diffing Components and Fragments. Once we store it the nextDOM\n\t\t// local var, we can clean up the property. Also prevents us hanging on to\n\t\t// DOM nodes that may have been unmounted.\n\t\tchildVNode._nextDom = undefined;\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\t// TODO: With new child diffing algo, consider alt ways to diff Fragments.\n\t// Such as dropping oldDom and moving fragments in place\n\t//\n\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t// _nextDom property to the nextSibling of its last child DOM node.\n\t//\n\t// `oldDom` contains the correct value here because if the last child\n\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t// node's nextSibling.\n\tnewParentVNode._nextDom = oldDom;\n\tnewParentVNode._dom = firstChildDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(newParentVNode, renderResult, oldChildren) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tconst newChildrenLength = renderResult.length;\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === undefined && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t//   const reuse = <div />\n\t\t\t//   <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Handle unmounting null placeholders, i.e. VNode => null in unkeyed children\n\t\tif (childVNode == null) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode && oldVNode.key == null && oldVNode._dom) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode, false);\n\n\t\t\t\t// Explicitly nullify this position in oldChildren instead of just\n\t\t\t\t// setting `_match=true` to prevent other routines (e.g.\n\t\t\t\t// `findMatchingIndex` or `getDomSibling`) from thinking VNodes or DOM\n\t\t\t\t// nodes in this position are still available to be used in diffing when\n\t\t\t\t// they have actually already been unmounted. For example, by only\n\t\t\t\t// setting `_match=true` here, the unmounting loop later would attempt\n\t\t\t\t// to unmount this VNode again seeing `_match==true`.  Further,\n\t\t\t\t// getDomSibling doesn't know about _match and so would incorrectly\n\t\t\t\t// assume DOM nodes in this subtree are mounted and usable.\n\t\t\t\toldChildren[i] = null;\n\t\t\t\tremainingOldChildren--;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\tconst skewedIndex = i + skew;\n\t\tconst matchingIndex = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t);\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tchildVNode._index = matchingIndex;\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\tif (matchingIndex === skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else if (matchingIndex > skewedIndex) {\n\t\t\t\tif (remainingOldChildren > newChildrenLength - skewedIndex) {\n\t\t\t\t\tskew += matchingIndex - skewedIndex;\n\t\t\t\t} else {\n\t\t\t\t\t// ### Change from keyed: I think this was missing from the algo...\n\t\t\t\t\tskew--;\n\t\t\t\t}\n\t\t\t} else if (matchingIndex < skewedIndex) {\n\t\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\t\tskew = matchingIndex - skewedIndex;\n\t\t\t\t} else {\n\t\t\t\t\tskew = 0;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tskew = 0;\n\t\t\t}\n\n\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t// match the new skew index (i + new skew)\n\t\t\tif (matchingIndex !== i + skew) {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) === 0) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\treturn oldDom && oldDom.nextSibling;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet x = skewedIndex - 1;\n\tlet y = skewedIndex + 1;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\tlet shouldSearch =\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) === 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode && key == oldVNode.key && type === oldVNode.type)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n", "import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture =\n\t\t\tname !== (name = name.replace(/(PointerCapture)$|Capture$/, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = Date.now();\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'width' &&\n\t\t\tname !== 'height' &&\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname !== 'rowSpan' &&\n\t\t\tname !== 'colSpan' &&\n\t\t\tname !== 'role' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] === '-')) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {PreactEvent} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tconst eventHandler = this._listeners[e.type + false];\n\t/**\n\t * This trick is inspired by Vue https://github.com/vuejs/core/blob/main/packages/runtime-dom/src/modules/events.ts#L90-L101\n\t * when the dom performs an event it leaves micro-ticks in between bubbling up which means that an event can trigger on a newly\n\t * created DOM-node while the event bubbles up, this can cause quirky behavior as seen in https://github.com/preactjs/preact/issues/3927\n\t */\n\tif (!e._dispatched) {\n\t\t// When an event has no _dispatched we know this is the first event-target in the chain\n\t\t// so we set the initial dispatched time.\n\t\te._dispatched = Date.now();\n\t\t// When the _dispatched is smaller than the time when the targetted event handler was attached\n\t\t// we know we have bubbled up to an element that was added during patching the dom.\n\t} else if (e._dispatched <= eventHandler._attached) {\n\t\treturn;\n\t}\n\treturn eventHandler(options.event ? options.event(e) : e);\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {PreactEvent} e The event object from the browser\n * @private\n */\nfunction eventProxyCapture(e) {\n\treturn this._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n", "import {\n\tEMPTY_OBJ,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original === oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t: MODE_HYDRATE;\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\t// ^ could possibly be simplified to:\n\t\t\t\t// excessDomChildren.length = 0;\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original === oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\tnewVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n}\n\n/**\n * @param {Array<Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\troot._nextDom = undefined;\n\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value === !!nodeType &&\n\t\t\t\t(nodeType ? value.localName === nodeType : value.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS('http://www.w3.org/2000/svg', nodeType);\n\t\t} else {\n\t\t\tdom = document.createElement(nodeType, newProps.is && newProps);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (i !== 'key' && !(i in newProps)) {\n\t\t\t\tsetProperty(dom, i, null, value, isSvg);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\ti !== 'key' &&\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], isSvg);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (\n\t\t\t\tinputValue !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType === 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && inputValue !== oldProps[i]))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, inputValue, oldProps[i], false);\n\t\t\t}\n\n\t\t\ti = 'checked';\n\t\t\tif (checked !== undefined && checked !== dom[i]) {\n\t\t\t\tsetProperty(dom, i, checked, oldProps[i], false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {Ref<any>} ref\n * @param {any} value\n * @param {VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {VNode} vnode The virtual node to unmount\n * @param {VNode} parentVNode The parent of the VNode that initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t\tvnode._component = undefined;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type !== 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n", "import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to render into\n * @param {PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating && replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n", "import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<ComponentChildren>} rest Any additional arguments will be used\n * as replacement children.\n * @returns {VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\n\tlet defaultProps;\n\n\tif (vnode.type && vnode.type.defaultProps) {\n\t\tdefaultProps = vnode.type.defaultProps;\n\t}\n\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse if (props[i] === undefined && defaultProps !== undefined) {\n\t\t\tnormalizedProps[i] = defaultProps[i];\n\t\t} else {\n\t\t\tnormalizedProps[i] = props[i];\n\t\t}\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n", "/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {VNode} [oldVNode]\n * @param {ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {Component} */\n\tlet component,\n\t\t/** @type {ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n", "/**\n * Check if an object is a DOM element. Duck-typing based on `nodeType`.\n */\nexport default function isDOMElement(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  if (!('nodeType' in obj)) return false;\n  return obj.nodeType === Node.ELEMENT_NODE;\n}", "import isDOMElement from \"./isDOMElement.js\";\nfunction findDOMElement(element, context) {\n  if (context === void 0) {\n    context = document;\n  }\n  if (typeof element === 'string') {\n    return context.querySelector(element);\n  }\n  if (isDOMElement(element)) {\n    return element;\n  }\n  return null;\n}\nexport default findDOMElement;", "/**\n * Get the declared text direction for an element.\n */\n\nfunction getTextDirection(element) {\n  var _element;\n  // There is another way to determine text direction using getComputedStyle(), as done here:\n  // https://github.com/pencil-js/text-direction/blob/2a235ce95089b3185acec3b51313cbba921b3811/text-direction.js\n  //\n  // We do not use that approach because we are interested specifically in the _declared_ text direction.\n  // If no text direction is declared, we have to provide our own explicit text direction so our\n  // bidirectional CSS style sheets work.\n  while (element && !element.dir) {\n    // eslint-disable-next-line no-param-reassign\n    element = element.parentNode;\n  }\n  return (_element = element) == null ? void 0 : _element.dir;\n}\nexport default getTextDirection;", "/**\n * Core plugin logic that all plugins share.\n *\n * BasePlugin does not contain DOM rendering so it can be used for plugins\n * without a user interface.\n *\n * See `Plugin` for the extended version with Preact rendering for interfaces.\n */\n\nimport Translator from '@uppy/utils/lib/Translator';\nexport default class BasePlugin {\n  constructor(uppy, opts) {\n    if (opts === void 0) {\n      opts = {};\n    }\n    this.uppy = uppy;\n    this.opts = opts;\n  }\n  getPluginState() {\n    const {\n      plugins\n    } = this.uppy.getState();\n    return plugins[this.id] || {};\n  }\n  setPluginState(update) {\n    const {\n      plugins\n    } = this.uppy.getState();\n    this.uppy.setState({\n      plugins: {\n        ...plugins,\n        [this.id]: {\n          ...plugins[this.id],\n          ...update\n        }\n      }\n    });\n  }\n  setOptions(newOpts) {\n    this.opts = {\n      ...this.opts,\n      ...newOpts\n    };\n    this.setPluginState(); // so that UI re-renders with new options\n    this.i18nInit();\n  }\n  i18nInit() {\n    const onMissingKey = key => this.uppy.log(`Missing i18n string: ${key}`, 'error');\n    const translator = new Translator([this.defaultLocale, this.uppy.locale, this.opts.locale], {\n      onMissingKey\n    });\n    this.i18n = translator.translate.bind(translator);\n    this.i18nArray = translator.translateArray.bind(translator);\n    this.setPluginState(); // so that UI re-renders and we see the updated locale\n  }\n\n  /**\n   * Extendable methods\n   * ==================\n   * These methods are here to serve as an overview of the extendable methods as well as\n   * making them not conditional in use, such as `if (this.afterUpdate)`.\n   */\n\n  // eslint-disable-next-line class-methods-use-this\n  addTarget() {\n    throw new Error('Extend the addTarget method to add your plugin to another plugin\\'s target');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  install() {}\n\n  // eslint-disable-next-line class-methods-use-this\n  uninstall() {}\n\n  /**\n   * Called when plugin is mounted, whether in DOM or into another plugin.\n   * Needed because sometimes plugins are mounted separately/after `install`,\n   * so this.el and this.parent might not be available in `install`.\n   * This is the case with @uppy/react plugins, for example.\n   */\n  render() {\n    throw new Error('Extend the render method to add your plugin to a DOM element');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  update() {}\n\n  // Called after every state update, after everything's mounted. Debounced.\n  // eslint-disable-next-line class-methods-use-this\n  afterUpdate() {}\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { render } from 'preact';\nimport findDOMElement from '@uppy/utils/lib/findDOMElement';\nimport getTextDirection from '@uppy/utils/lib/getTextDirection';\nimport BasePlugin from './BasePlugin.js';\n\n/**\n * Defer a frequent call to the microtask queue.\n *\n * @param {() => T} fn\n * @returns {Promise<T>}\n */\nfunction debounce(fn) {\n  let calling = null;\n  let latestArgs = null;\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    latestArgs = args;\n    if (!calling) {\n      calling = Promise.resolve().then(() => {\n        calling = null;\n        // At this point `args` may be different from the most\n        // recent state, if multiple calls happened since this task\n        // was queued. So we use the `latestArgs`, which definitely\n        // is the most recent call.\n        return fn(...latestArgs);\n      });\n    }\n    return calling;\n  };\n}\n\n/**\n * UIPlugin is the extended version of BasePlugin to incorporate rendering with Preact.\n * Use this for plugins that need a user interface.\n *\n * For plugins without an user interface, see BasePlugin.\n */\nvar _updateUI = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateUI\");\nclass UIPlugin extends BasePlugin {\n  constructor() {\n    super(...arguments);\n    Object.defineProperty(this, _updateUI, {\n      writable: true,\n      value: void 0\n    });\n  }\n  getTargetPlugin(target) {\n    let targetPlugin;\n    if (typeof target === 'object' && target instanceof UIPlugin) {\n      // Targeting a plugin *instance*\n      targetPlugin = target;\n    } else if (typeof target === 'function') {\n      // Targeting a plugin type\n      const Target = target;\n      // Find the target plugin instance.\n      this.uppy.iteratePlugins(p => {\n        if (p instanceof Target) {\n          targetPlugin = p;\n        }\n      });\n    }\n    return targetPlugin;\n  }\n\n  /**\n   * Check if supplied `target` is a DOM element or an `object`.\n   * If it\u2019s an object \u2014 target is a plugin, and we search `plugins`\n   * for a plugin with same name and return its target.\n   */\n  mount(target, plugin) {\n    const callerPluginName = plugin.id;\n    const targetElement = findDOMElement(target);\n    if (targetElement) {\n      this.isTargetDOMEl = true;\n      // When target is <body> with a single <div> element,\n      // Preact thinks it\u2019s the Uppy root element in there when doing a diff,\n      // and destroys it. So we are creating a fragment (could be empty div)\n      const uppyRootElement = document.createElement('div');\n      uppyRootElement.classList.add('uppy-Root');\n\n      // API for plugins that require a synchronous rerender.\n      _classPrivateFieldLooseBase(this, _updateUI)[_updateUI] = debounce(state => {\n        // plugin could be removed, but this.rerender is debounced below,\n        // so it could still be called even after uppy.removePlugin or uppy.close\n        // hence the check\n        if (!this.uppy.getPlugin(this.id)) return;\n        render(this.render(state), uppyRootElement);\n        this.afterUpdate();\n      });\n      this.uppy.log(`Installing ${callerPluginName} to a DOM element '${target}'`);\n      if (this.opts.replaceTargetContent) {\n        // Doing render(h(null), targetElement), which should have been\n        // a better way, since because the component might need to do additional cleanup when it is removed,\n        // stopped working \u2014 Preact just adds null into target, not replacing\n        targetElement.innerHTML = '';\n      }\n      render(this.render(this.uppy.getState()), uppyRootElement);\n      this.el = uppyRootElement;\n      targetElement.appendChild(uppyRootElement);\n\n      // Set the text direction if the page has not defined one.\n      uppyRootElement.dir = this.opts.direction || getTextDirection(uppyRootElement) || 'ltr';\n      this.onMount();\n      return this.el;\n    }\n    const targetPlugin = this.getTargetPlugin(target);\n    if (targetPlugin) {\n      this.uppy.log(`Installing ${callerPluginName} to ${targetPlugin.id}`);\n      this.parent = targetPlugin;\n      this.el = targetPlugin.addTarget(plugin);\n      this.onMount();\n      return this.el;\n    }\n    this.uppy.log(`Not installing ${callerPluginName}`);\n    let message = `Invalid target option given to ${callerPluginName}.`;\n    if (typeof target === 'function') {\n      message += ' The given target is not a Plugin class. ' + 'Please check that you\\'re not specifying a React Component instead of a plugin. ' + 'If you are using @uppy/* packages directly, make sure you have only 1 version of @uppy/core installed: ' + 'run `npm ls @uppy/core` on the command line and verify that all the versions match and are deduped correctly.';\n    } else {\n      message += 'If you meant to target an HTML element, please make sure that the element exists. ' + 'Check that the <script> tag initializing Uppy is right before the closing </body> tag at the end of the page. ' + '(see https://github.com/transloadit/uppy/issues/1042)\\n\\n' + 'If you meant to target a plugin, please confirm that your `import` statements or `require` calls are correct.';\n    }\n    throw new Error(message);\n  }\n  update(state) {\n    if (this.el != null) {\n      var _classPrivateFieldLoo, _classPrivateFieldLoo2;\n      (_classPrivateFieldLoo = (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _updateUI))[_updateUI]) == null ? void 0 : _classPrivateFieldLoo.call(_classPrivateFieldLoo2, state);\n    }\n  }\n  unmount() {\n    if (this.isTargetDOMEl) {\n      var _this$el;\n      (_this$el = this.el) == null ? void 0 : _this$el.remove();\n    }\n    this.onUnmount();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  onMount() {}\n\n  // eslint-disable-next-line class-methods-use-this\n  onUnmount() {}\n}\nexport default UIPlugin;", "/**\n * Low-pass filter using Exponential Moving Averages (aka exponential smoothing)\n * Filters a sequence of values by updating the mixing the previous output value\n * with the new input using the exponential window function\n *\n * @param newValue the n-th value of the sequence\n * @param previousSmoothedValue the exponential average of the first n-1 values\n * @param halfLife value of `dt` to move the smoothed value halfway between `previousFilteredValue` and `newValue`\n * @param dt time elapsed between adding the (n-1)th and the n-th values\n * @returns the exponential average of the first n values\n */\nexport default function emaFilter(newValue, previousSmoothedValue, halfLife, dt) {\n  if (halfLife === 0 || newValue === previousSmoothedValue) return newValue;\n  if (dt === 0) return previousSmoothedValue;\n  return newValue + (previousSmoothedValue - newValue) * 2 ** (-dt / halfLife);\n}", "export default {\n  STATE_ERROR: 'error',\n  STATE_WAITING: 'waiting',\n  STATE_PREPROCESSING: 'preprocessing',\n  STATE_UPLOADING: 'uploading',\n  STATE_POSTPROCESSING: 'postprocessing',\n  STATE_COMPLETE: 'complete'\n};", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport statusBarStates from \"./StatusBarStates.js\";\nimport calculateProcessingProgress from \"./calculateProcessingProgress.js\";\nimport { UploadBtn, RetryBtn, CancelBtn, PauseResumeButton, DoneBtn, ProgressBarProcessing, ProgressBarError, ProgressBarUploading, ProgressBarComplete } from \"./Components.js\";\nconst {\n  STATE_ERROR,\n  STATE_WAITING,\n  STATE_PREPROCESSING,\n  STATE_UPLOADING,\n  STATE_POSTPROCESSING,\n  STATE_COMPLETE\n} = statusBarStates;\n// TODO: rename the function to StatusBarUI on the next major.\nexport default function StatusBar(props) {\n  const {\n    newFiles,\n    allowNewUpload,\n    isUploadInProgress,\n    isAllPaused,\n    resumableUploads,\n    error,\n    hideUploadButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    hideRetryButton,\n    recoveredState,\n    uploadState,\n    totalProgress,\n    files,\n    supportsUploadProgress,\n    hideAfterFinish,\n    isSomeGhost,\n    doneButtonHandler,\n    isUploadStarted,\n    i18n,\n    startUpload,\n    uppy,\n    isAllComplete,\n    showProgressDetails,\n    numUploads,\n    complete,\n    totalSize,\n    totalETA,\n    totalUploadedSize\n  } = props;\n  function getProgressValue() {\n    switch (uploadState) {\n      case STATE_POSTPROCESSING:\n      case STATE_PREPROCESSING:\n        {\n          const progress = calculateProcessingProgress(files);\n          if (progress.mode === 'determinate') {\n            return progress.value * 100;\n          }\n          return totalProgress;\n        }\n      case STATE_ERROR:\n        {\n          return null;\n        }\n      case STATE_UPLOADING:\n        {\n          if (!supportsUploadProgress) {\n            return null;\n          }\n          return totalProgress;\n        }\n      default:\n        return totalProgress;\n    }\n  }\n  function getIsIndeterminate() {\n    switch (uploadState) {\n      case STATE_POSTPROCESSING:\n      case STATE_PREPROCESSING:\n        {\n          const {\n            mode\n          } = calculateProcessingProgress(files);\n          return mode === 'indeterminate';\n        }\n      case STATE_UPLOADING:\n        {\n          if (!supportsUploadProgress) {\n            return true;\n          }\n          return false;\n        }\n      default:\n        return false;\n    }\n  }\n  function getIsHidden() {\n    if (recoveredState) {\n      return false;\n    }\n    switch (uploadState) {\n      case STATE_WAITING:\n        return hideUploadButton || newFiles === 0;\n      case STATE_COMPLETE:\n        return hideAfterFinish;\n      default:\n        return false;\n    }\n  }\n  const progressValue = getProgressValue();\n  const isHidden = getIsHidden();\n  const width = progressValue != null ? progressValue : 100;\n  const showUploadBtn = !error && newFiles && !isUploadInProgress && !isAllPaused && allowNewUpload && !hideUploadButton;\n  const showCancelBtn = !hideCancelButton && uploadState !== STATE_WAITING && uploadState !== STATE_COMPLETE;\n  const showPauseResumeBtn = resumableUploads && !hidePauseResumeButton && uploadState === STATE_UPLOADING;\n  const showRetryBtn = error && !isAllComplete && !hideRetryButton;\n  const showDoneBtn = doneButtonHandler && uploadState === STATE_COMPLETE;\n  const progressClassNames = classNames('uppy-StatusBar-progress', {\n    'is-indeterminate': getIsIndeterminate()\n  });\n  const statusBarClassNames = classNames('uppy-StatusBar', `is-${uploadState}`, {\n    'has-ghosts': isSomeGhost\n  });\n  return h(\"div\", {\n    className: statusBarClassNames,\n    \"aria-hidden\": isHidden\n  }, h(\"div\", {\n    className: progressClassNames,\n    style: {\n      width: `${width}%`\n    },\n    role: \"progressbar\",\n    \"aria-label\": `${width}%`,\n    \"aria-valuetext\": `${width}%`,\n    \"aria-valuemin\": 0,\n    \"aria-valuemax\": 100,\n    \"aria-valuenow\": progressValue\n  }), (() => {\n    switch (uploadState) {\n      case STATE_PREPROCESSING:\n      case STATE_POSTPROCESSING:\n        return h(ProgressBarProcessing, {\n          progress: calculateProcessingProgress(files)\n        });\n      case STATE_COMPLETE:\n        return h(ProgressBarComplete, {\n          i18n: i18n\n        });\n      case STATE_ERROR:\n        return h(ProgressBarError, {\n          error: error,\n          i18n: i18n,\n          numUploads: numUploads,\n          complete: complete\n        });\n      case STATE_UPLOADING:\n        return h(ProgressBarUploading, {\n          i18n: i18n,\n          supportsUploadProgress: supportsUploadProgress,\n          totalProgress: totalProgress,\n          showProgressDetails: showProgressDetails,\n          isUploadStarted: isUploadStarted,\n          isAllComplete: isAllComplete,\n          isAllPaused: isAllPaused,\n          newFiles: newFiles,\n          numUploads: numUploads,\n          complete: complete,\n          totalUploadedSize: totalUploadedSize,\n          totalSize: totalSize,\n          totalETA: totalETA,\n          startUpload: startUpload\n        });\n      default:\n        return null;\n    }\n  })(), h(\"div\", {\n    className: \"uppy-StatusBar-actions\"\n  }, recoveredState || showUploadBtn ? h(UploadBtn, {\n    newFiles: newFiles,\n    isUploadStarted: isUploadStarted,\n    recoveredState: recoveredState,\n    i18n: i18n,\n    isSomeGhost: isSomeGhost,\n    startUpload: startUpload,\n    uploadState: uploadState\n  }) : null, showRetryBtn ? h(RetryBtn, {\n    i18n: i18n,\n    uppy: uppy\n  }) : null, showPauseResumeBtn ? h(PauseResumeButton, {\n    isAllPaused: isAllPaused,\n    i18n: i18n,\n    isAllComplete: isAllComplete,\n    resumableUploads: resumableUploads,\n    uppy: uppy\n  }) : null, showCancelBtn ? h(CancelBtn, {\n    i18n: i18n,\n    uppy: uppy\n  }) : null, showDoneBtn ? h(DoneBtn, {\n    i18n: i18n,\n    doneButtonHandler: doneButtonHandler\n  }) : null));\n}\nStatusBar.defaultProps = {\n  doneButtonHandler: undefined,\n  hideAfterFinish: false,\n  hideCancelButton: false,\n  hidePauseResumeButton: false,\n  hideRetryButton: false,\n  hideUploadButton: undefined,\n  showProgressDetails: undefined\n};", "export default function calculateProcessingProgress(files) {\n  const values = [];\n  let mode = 'indeterminate';\n  let message;\n  for (const {\n    progress\n  } of Object.values(files)) {\n    const {\n      preprocess,\n      postprocess\n    } = progress;\n    // In the future we should probably do this differently. For now we'll take the\n    // mode and message from the first file\u2026\n    if (message == null && (preprocess || postprocess)) {\n      ;\n      ({\n        mode,\n        message\n      } = preprocess || postprocess);\n    }\n    if ((preprocess == null ? void 0 : preprocess.mode) === 'determinate') values.push(preprocess.value);\n    if ((postprocess == null ? void 0 : postprocess.mode) === 'determinate') values.push(postprocess.value);\n  }\n  const value = values.reduce((total, progressValue) => {\n    return total + progressValue / values.length;\n  }, 0);\n  return {\n    mode,\n    message,\n    value\n  };\n}", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport prettyETA from '@uppy/utils/lib/prettyETA';\nimport statusBarStates from \"./StatusBarStates.js\";\nconst DOT = `\\u00B7`;\nconst renderDot = () => ` ${DOT} `;\nfunction UploadBtn(props) {\n  const {\n    newFiles,\n    isUploadStarted,\n    recoveredState,\n    i18n,\n    uploadState,\n    isSomeGhost,\n    startUpload\n  } = props;\n  const uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--upload', {\n    'uppy-c-btn-primary': uploadState === statusBarStates.STATE_WAITING\n  }, {\n    'uppy-StatusBar-actionBtn--disabled': isSomeGhost\n  });\n  const uploadBtnText = newFiles && isUploadStarted && !recoveredState ? i18n('uploadXNewFiles', {\n    smart_count: newFiles\n  }) : i18n('uploadXFiles', {\n    smart_count: newFiles\n  });\n  return h(\"button\", {\n    type: \"button\",\n    className: uploadBtnClassNames,\n    \"aria-label\": i18n('uploadXFiles', {\n      smart_count: newFiles\n    }),\n    onClick: startUpload,\n    disabled: isSomeGhost,\n    \"data-uppy-super-focusable\": true\n  }, uploadBtnText);\n}\nfunction RetryBtn(props) {\n  const {\n    i18n,\n    uppy\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--retry\",\n    \"aria-label\": i18n('retryUpload'),\n    onClick: () => uppy.retryAll().catch(() => {\n      /* Error reported and handled via an event */\n    }),\n    \"data-uppy-super-focusable\": true,\n    \"data-cy\": \"retry\"\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"8\",\n    height: \"10\",\n    viewBox: \"0 0 8 10\"\n  }, h(\"path\", {\n    d: \"M4 2.408a2.75 2.75 0 1 0 2.75 2.75.626.626 0 0 1 1.25.018v.023a4 4 0 1 1-4-4.041V.25a.25.25 0 0 1 .389-.208l2.299 1.533a.25.25 0 0 1 0 .416l-2.3 1.533A.25.25 0 0 1 4 3.316v-.908z\"\n  })), i18n('retry'));\n}\nfunction CancelBtn(props) {\n  const {\n    i18n,\n    uppy\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n    title: i18n('cancel'),\n    \"aria-label\": i18n('cancel'),\n    onClick: () => uppy.cancelAll(),\n    \"data-cy\": \"cancel\",\n    \"data-uppy-super-focusable\": true\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\"\n  }, h(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#888\",\n    cx: \"8\",\n    cy: \"8\",\n    r: \"8\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: \"M9.283 8l2.567 2.567-1.283 1.283L8 9.283 5.433 11.85 4.15 10.567 6.717 8 4.15 5.433 5.433 4.15 8 6.717l2.567-2.567 1.283 1.283z\"\n  }))));\n}\nfunction PauseResumeButton(props) {\n  const {\n    isAllPaused,\n    i18n,\n    isAllComplete,\n    resumableUploads,\n    uppy\n  } = props;\n  const title = isAllPaused ? i18n('resume') : i18n('pause');\n  function togglePauseResume() {\n    if (isAllComplete) return;\n    if (!resumableUploads) {\n      uppy.cancelAll();\n      return;\n    }\n    if (isAllPaused) {\n      uppy.resumeAll();\n      return;\n    }\n    uppy.pauseAll();\n  }\n  return h(\"button\", {\n    title: title,\n    \"aria-label\": title,\n    className: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n    type: \"button\",\n    onClick: togglePauseResume,\n    \"data-cy\": \"togglePauseResume\",\n    \"data-uppy-super-focusable\": true\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\"\n  }, h(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#888\",\n    cx: \"8\",\n    cy: \"8\",\n    r: \"8\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: isAllPaused ? 'M6 4.25L11.5 8 6 11.75z' : 'M5 4.5h2v7H5v-7zm4 0h2v7H9v-7z'\n  }))));\n}\nfunction DoneBtn(props) {\n  const {\n    i18n,\n    doneButtonHandler\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--done\",\n    onClick: doneButtonHandler,\n    \"data-uppy-super-focusable\": true\n  }, i18n('done'));\n}\nfunction LoadingSpinner() {\n  return h(\"svg\", {\n    className: \"uppy-StatusBar-spinner\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"14\",\n    height: \"14\"\n  }, h(\"path\", {\n    d: \"M13.983 6.547c-.12-2.509-1.64-4.893-3.939-5.936-2.48-1.127-5.488-.656-7.556 1.094C.524 3.367-.398 6.048.162 8.562c.556 2.495 2.46 4.52 4.94 5.183 2.932.784 5.61-.602 7.256-3.015-1.493 1.993-3.745 3.309-6.298 2.868-2.514-.434-4.578-2.349-5.153-4.84a6.226 6.226 0 0 1 2.98-6.778C6.34.586 9.74 1.1 11.373 3.493c.407.596.693 1.282.842 1.988.127.598.073 1.197.161 1.794.078.525.543 1.257 1.15.864.525-.341.49-1.05.456-1.592-.007-.15.02.3 0 0\",\n    fillRule: \"evenodd\"\n  }));\n}\nfunction ProgressBarProcessing(props) {\n  const {\n    progress\n  } = props;\n  const {\n    value,\n    mode,\n    message\n  } = progress;\n  const dot = `\\u00B7`;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\"\n  }, h(LoadingSpinner, null), mode === 'determinate' ? `${Math.round(value * 100)}% ${dot} ` : '', message);\n}\nfunction ProgressDetails(props) {\n  const {\n    numUploads,\n    complete,\n    totalUploadedSize,\n    totalSize,\n    totalETA,\n    i18n\n  } = props;\n  const ifShowFilesUploadedOfTotal = numUploads > 1;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, ifShowFilesUploadedOfTotal && i18n('filesUploadedOfTotal', {\n    complete,\n    smart_count: numUploads\n  }), h(\"span\", {\n    className: \"uppy-StatusBar-additionalInfo\"\n  }, ifShowFilesUploadedOfTotal && renderDot(), i18n('dataUploadedOfTotal', {\n    complete: prettierBytes(totalUploadedSize),\n    total: prettierBytes(totalSize)\n  }), renderDot(), i18n('xTimeLeft', {\n    time: prettyETA(totalETA)\n  })));\n}\nfunction FileUploadCount(props) {\n  const {\n    i18n,\n    complete,\n    numUploads\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, i18n('filesUploadedOfTotal', {\n    complete,\n    smart_count: numUploads\n  }));\n}\nfunction UploadNewlyAddedFiles(props) {\n  const {\n    i18n,\n    newFiles,\n    startUpload\n  } = props;\n  const uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--uploadNewlyAdded');\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondaryHint\"\n  }, i18n('xMoreFilesAdded', {\n    smart_count: newFiles\n  })), h(\"button\", {\n    type: \"button\",\n    className: uploadBtnClassNames,\n    \"aria-label\": i18n('uploadXFiles', {\n      smart_count: newFiles\n    }),\n    onClick: startUpload\n  }, i18n('upload')));\n}\nfunction ProgressBarUploading(props) {\n  const {\n    i18n,\n    supportsUploadProgress,\n    totalProgress,\n    showProgressDetails,\n    isUploadStarted,\n    isAllComplete,\n    isAllPaused,\n    newFiles,\n    numUploads,\n    complete,\n    totalUploadedSize,\n    totalSize,\n    totalETA,\n    startUpload\n  } = props;\n  const showUploadNewlyAddedFiles = newFiles && isUploadStarted;\n  if (!isUploadStarted || isAllComplete) {\n    return null;\n  }\n  const title = isAllPaused ? i18n('paused') : i18n('uploading');\n  function renderProgressDetails() {\n    if (!isAllPaused && !showUploadNewlyAddedFiles && showProgressDetails) {\n      if (supportsUploadProgress) {\n        return h(ProgressDetails, {\n          numUploads: numUploads,\n          complete: complete,\n          totalUploadedSize: totalUploadedSize,\n          totalSize: totalSize,\n          totalETA: totalETA,\n          i18n: i18n\n        });\n      }\n      return h(FileUploadCount, {\n        i18n: i18n,\n        complete: complete,\n        numUploads: numUploads\n      });\n    }\n    return null;\n  }\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    \"aria-label\": title,\n    title: title\n  }, !isAllPaused ? h(LoadingSpinner, null) : null, h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, supportsUploadProgress ? `${title}: ${totalProgress}%` : title), renderProgressDetails(), showUploadNewlyAddedFiles ? h(UploadNewlyAddedFiles, {\n    i18n: i18n,\n    newFiles: newFiles,\n    startUpload: startUpload\n  }) : null));\n}\nfunction ProgressBarComplete(props) {\n  const {\n    i18n\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    role: \"status\",\n    title: i18n('complete')\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n    width: \"15\",\n    height: \"11\",\n    viewBox: \"0 0 15 11\"\n  }, h(\"path\", {\n    d: \"M.414 5.843L1.627 4.63l3.472 3.472L13.202 0l1.212 1.213L5.1 10.528z\"\n  })), i18n('complete'))));\n}\nfunction ProgressBarError(props) {\n  const {\n    error,\n    i18n,\n    complete,\n    numUploads\n  } = props;\n  function displayErrorAlert() {\n    const errorMessage = `${i18n('uploadFailed')} \\n\\n ${error}`;\n    // eslint-disable-next-line no-alert\n    alert(errorMessage); // TODO: move to custom alert implementation\n  }\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    title: i18n('uploadFailed')\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n    width: \"11\",\n    height: \"11\",\n    viewBox: \"0 0 11 11\"\n  }, h(\"path\", {\n    d: \"M4.278 5.5L0 1.222 1.222 0 5.5 4.278 9.778 0 11 1.222 6.722 5.5 11 9.778 9.778 11 5.5 6.722 1.222 11 0 9.778z\"\n  })), h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, i18n('uploadFailed'), h(\"button\", {\n    className: \"uppy-u-reset uppy-StatusBar-details\",\n    \"aria-label\": i18n('showErrorDetails'),\n    \"data-microtip-position\": \"top-right\",\n    \"data-microtip-size\": \"medium\",\n    onClick: displayErrorAlert,\n    type: \"button\"\n  }, \"?\")), h(FileUploadCount, {\n    i18n: i18n,\n    complete: complete,\n    numUploads: numUploads\n  })));\n}\nexport { UploadBtn, RetryBtn, CancelBtn, PauseResumeButton, DoneBtn, LoadingSpinner, ProgressDetails, ProgressBarProcessing, ProgressBarError, ProgressBarUploading, ProgressBarComplete };", "export default function secondsToTime(rawSeconds) {\n  const hours = Math.floor(rawSeconds / 3600) % 24;\n  const minutes = Math.floor(rawSeconds / 60) % 60;\n  const seconds = Math.floor(rawSeconds % 60);\n  return {\n    hours,\n    minutes,\n    seconds\n  };\n}", "import secondsToTime from \"./secondsToTime.js\";\nexport default function prettyETA(seconds) {\n  const time = secondsToTime(seconds);\n\n  // Only display hours and minutes if they are greater than 0 but always\n  // display minutes if hours is being displayed\n  // Display a leading zero if the there is a preceding unit: 1m 05s, but 5s\n  const hoursStr = time.hours === 0 ? '' : `${time.hours}h`;\n  const minutesStr = time.minutes === 0 ? '' : `${time.hours === 0 ? time.minutes : ` ${time.minutes.toString(10).padStart(2, '0')}`}m`;\n  const secondsStr = time.hours !== 0 ? '' : `${time.minutes === 0 ? time.seconds : ` ${time.seconds.toString(10).padStart(2, '0')}`}s`;\n  return `${hoursStr}${minutesStr}${secondsStr}`;\n}", "export default {\n  strings: {\n    // Shown in the status bar while files are being uploaded.\n    uploading: 'Uploading',\n    // Shown in the status bar once all files have been uploaded.\n    complete: 'Complete',\n    // Shown in the status bar if an upload failed.\n    uploadFailed: 'Upload failed',\n    // Shown in the status bar while the upload is paused.\n    paused: 'Paused',\n    // Used as the label for the button that retries an upload.\n    retry: 'Retry',\n    // Used as the label for the button that cancels an upload.\n    cancel: 'Cancel',\n    // Used as the label for the button that pauses an upload.\n    pause: 'Pause',\n    // Used as the label for the button that resumes an upload.\n    resume: 'Resume',\n    // Used as the label for the button that resets the upload state after an upload\n    done: 'Done',\n    // When `showProgressDetails` is set, shows the number of files that have been fully uploaded so far.\n    filesUploadedOfTotal: {\n      0: '%{complete} of %{smart_count} file uploaded',\n      1: '%{complete} of %{smart_count} files uploaded'\n    },\n    // When `showProgressDetails` is set, shows the amount of bytes that have been uploaded so far.\n    dataUploadedOfTotal: '%{complete} of %{total}',\n    // When `showProgressDetails` is set, shows an estimation of how long the upload will take to complete.\n    xTimeLeft: '%{time} left',\n    // Used as the label for the button that starts an upload.\n    uploadXFiles: {\n      0: 'Upload %{smart_count} file',\n      1: 'Upload %{smart_count} files'\n    },\n    // Used as the label for the button that starts an upload, if another upload has been started in the past\n    // and new files were added later.\n    uploadXNewFiles: {\n      0: 'Upload +%{smart_count} file',\n      1: 'Upload +%{smart_count} files'\n    },\n    upload: 'Upload',\n    retryUpload: 'Retry upload',\n    xMoreFilesAdded: {\n      0: '%{smart_count} more file added',\n      1: '%{smart_count} more files added'\n    },\n    showErrorDetails: 'Show error details'\n  }\n};", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { UIPlugin } from '@uppy/core';\nimport emaFilter from '@uppy/utils/lib/emaFilter';\nimport getTextDirection from '@uppy/utils/lib/getTextDirection';\nimport statusBarStates from \"./StatusBarStates.js\";\nimport StatusBarUI from \"./StatusBarUI.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.3.3\"\n};\nimport locale from \"./locale.js\";\nconst speedFilterHalfLife = 2000;\nconst ETAFilterHalfLife = 2000;\nfunction getUploadingState(error, isAllComplete, recoveredState, files) {\n  if (error) {\n    return statusBarStates.STATE_ERROR;\n  }\n  if (isAllComplete) {\n    return statusBarStates.STATE_COMPLETE;\n  }\n  if (recoveredState) {\n    return statusBarStates.STATE_WAITING;\n  }\n  let state = statusBarStates.STATE_WAITING;\n  const fileIDs = Object.keys(files);\n  for (let i = 0; i < fileIDs.length; i++) {\n    const {\n      progress\n    } = files[fileIDs[i]];\n    // If ANY files are being uploaded right now, show the uploading state.\n    if (progress.uploadStarted && !progress.uploadComplete) {\n      return statusBarStates.STATE_UPLOADING;\n    }\n    // If files are being preprocessed AND postprocessed at this time, we show the\n    // preprocess state. If any files are being uploaded we show uploading.\n    if (progress.preprocess) {\n      state = statusBarStates.STATE_PREPROCESSING;\n    }\n    // If NO files are being preprocessed or uploaded right now, but some files are\n    // being postprocessed, show the postprocess state.\n    if (progress.postprocess && state !== statusBarStates.STATE_PREPROCESSING) {\n      state = statusBarStates.STATE_POSTPROCESSING;\n    }\n  }\n  return state;\n}\n\n// set default options, must be kept in sync with @uppy/react/src/StatusBar.js\nconst defaultOptions = {\n  target: 'body',\n  hideUploadButton: false,\n  hideRetryButton: false,\n  hidePauseResumeButton: false,\n  hideCancelButton: false,\n  showProgressDetails: false,\n  hideAfterFinish: true,\n  doneButtonHandler: null\n};\n\n/**\n * StatusBar: renders a status bar with upload/pause/resume/cancel/retry buttons,\n * progress percentage and time remaining.\n */\nvar _lastUpdateTime = /*#__PURE__*/_classPrivateFieldLooseKey(\"lastUpdateTime\");\nvar _previousUploadedBytes = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousUploadedBytes\");\nvar _previousSpeed = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousSpeed\");\nvar _previousETA = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousETA\");\nvar _computeSmoothETA = /*#__PURE__*/_classPrivateFieldLooseKey(\"computeSmoothETA\");\nvar _onUploadStart = /*#__PURE__*/_classPrivateFieldLooseKey(\"onUploadStart\");\nexport default class StatusBar extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, {\n      ...defaultOptions,\n      ...opts\n    });\n    Object.defineProperty(this, _computeSmoothETA, {\n      value: _computeSmoothETA2\n    });\n    Object.defineProperty(this, _lastUpdateTime, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousUploadedBytes, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousSpeed, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousETA, {\n      writable: true,\n      value: void 0\n    });\n    this.startUpload = () => {\n      return this.uppy.upload().catch(() => {\n        // Error logged in Core\n      });\n    };\n    Object.defineProperty(this, _onUploadStart, {\n      writable: true,\n      value: () => {\n        const {\n          recoveredState\n        } = this.uppy.getState();\n        _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] = null;\n        _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] = null;\n        if (recoveredState) {\n          _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = Object.values(recoveredState.files).reduce((pv, _ref) => {\n            let {\n              progress\n            } = _ref;\n            return pv + progress.bytesUploaded;\n          }, 0);\n\n          // We don't set `#lastUpdateTime` at this point because the upload won't\n          // actually resume until the user asks for it.\n\n          this.uppy.emit('restore-confirmed');\n          return;\n        }\n        _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n        _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = 0;\n      }\n    });\n    this.id = this.opts.id || 'StatusBar';\n    this.title = 'StatusBar';\n    this.type = 'progressindicator';\n    this.defaultLocale = locale;\n    this.i18nInit();\n    this.render = this.render.bind(this);\n    this.install = this.install.bind(this);\n  }\n  render(state) {\n    const {\n      capabilities,\n      files,\n      allowNewUpload,\n      totalProgress,\n      error,\n      recoveredState\n    } = state;\n    const {\n      newFiles,\n      startedFiles,\n      completeFiles,\n      isUploadStarted,\n      isAllComplete,\n      isAllErrored,\n      isAllPaused,\n      isUploadInProgress,\n      isSomeGhost\n    } = this.uppy.getObjectOfFilesPerState();\n\n    // If some state was recovered, we want to show Upload button/counter\n    // for all the files, because in this case it\u2019s not an Upload button,\n    // but \u201CConfirm Restore Button\u201D\n    const newFilesOrRecovered = recoveredState ? Object.values(files) : newFiles;\n    const resumableUploads = !!capabilities.resumableUploads;\n    const supportsUploadProgress = capabilities.uploadProgress !== false;\n    let totalSize = 0;\n    let totalUploadedSize = 0;\n    startedFiles.forEach(file => {\n      totalSize += file.progress.bytesTotal || 0;\n      totalUploadedSize += file.progress.bytesUploaded || 0;\n    });\n    const totalETA = _classPrivateFieldLooseBase(this, _computeSmoothETA)[_computeSmoothETA]({\n      uploaded: totalUploadedSize,\n      total: totalSize,\n      remaining: totalSize - totalUploadedSize\n    });\n    return StatusBarUI({\n      error,\n      uploadState: getUploadingState(error, isAllComplete, recoveredState, state.files || {}),\n      allowNewUpload,\n      totalProgress,\n      totalSize,\n      totalUploadedSize,\n      isAllComplete: false,\n      isAllPaused,\n      // @ts-expect-error TODO: remove this in 4.x branch\n      isAllErrored,\n      isUploadStarted,\n      isUploadInProgress,\n      isSomeGhost,\n      recoveredState,\n      complete: completeFiles.length,\n      newFiles: newFilesOrRecovered.length,\n      numUploads: startedFiles.length,\n      totalETA,\n      files,\n      i18n: this.i18n,\n      uppy: this.uppy,\n      startUpload: this.startUpload,\n      doneButtonHandler: this.opts.doneButtonHandler,\n      resumableUploads,\n      supportsUploadProgress,\n      showProgressDetails: this.opts.showProgressDetails,\n      hideUploadButton: this.opts.hideUploadButton,\n      hideRetryButton: this.opts.hideRetryButton,\n      hidePauseResumeButton: this.opts.hidePauseResumeButton,\n      hideCancelButton: this.opts.hideCancelButton,\n      hideAfterFinish: this.opts.hideAfterFinish,\n      // ts-expect-error TODO: remove this in 4.x branch\n      isTargetDOMEl: this.isTargetDOMEl\n    });\n  }\n  onMount() {\n    // Set the text direction if the page has not defined one.\n    const element = this.el;\n    const direction = getTextDirection(element);\n    if (!direction) {\n      element.dir = 'ltr';\n    }\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n    this.uppy.on('upload', _classPrivateFieldLooseBase(this, _onUploadStart)[_onUploadStart]);\n\n    // To cover the use case where the status bar is installed while the upload\n    // has started, we set `lastUpdateTime` right away.\n    _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n    _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = this.uppy.getFiles().reduce((pv, file) => pv + file.progress.bytesUploaded, 0);\n  }\n  uninstall() {\n    this.unmount();\n    this.uppy.off('upload', _classPrivateFieldLooseBase(this, _onUploadStart)[_onUploadStart]);\n  }\n}\nfunction _computeSmoothETA2(totalBytes) {\n  var _classPrivateFieldLoo, _classPrivateFieldLoo2;\n  if (totalBytes.total === 0 || totalBytes.remaining === 0) {\n    return 0;\n  }\n\n  // When state is restored, lastUpdateTime is still nullish at this point.\n  (_classPrivateFieldLoo2 = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _lastUpdateTime))[_lastUpdateTime]) != null ? _classPrivateFieldLoo2 : _classPrivateFieldLoo[_lastUpdateTime] = performance.now();\n  const dt = performance.now() - _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime];\n  if (dt === 0) {\n    var _classPrivateFieldLoo3;\n    return Math.round(((_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA]) != null ? _classPrivateFieldLoo3 : 0) / 100) / 10;\n  }\n  const uploadedBytesSinceLastTick = totalBytes.uploaded - _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes];\n  _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = totalBytes.uploaded;\n\n  // uploadedBytesSinceLastTick can be negative in some cases (packet loss?)\n  // in which case, we wait for next tick to update ETA.\n  if (uploadedBytesSinceLastTick <= 0) {\n    var _classPrivateFieldLoo4;\n    return Math.round(((_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA]) != null ? _classPrivateFieldLoo4 : 0) / 100) / 10;\n  }\n  const currentSpeed = uploadedBytesSinceLastTick / dt;\n  const filteredSpeed = _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] == null ? currentSpeed : emaFilter(currentSpeed, _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed], speedFilterHalfLife, dt);\n  _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] = filteredSpeed;\n  const instantETA = totalBytes.remaining / filteredSpeed;\n  const updatedPreviousETA = Math.max(_classPrivateFieldLooseBase(this, _previousETA)[_previousETA] - dt, 0);\n  const filteredETA = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] == null ? instantETA : emaFilter(instantETA, updatedPreviousETA, ETAFilterHalfLife, dt);\n  _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] = filteredETA;\n  _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n  return Math.round(filteredETA / 100) / 10;\n}\nStatusBar.VERSION = packageJson.version;", "import { h, Component, createRef } from 'preact';\nconst TRANSITION_MS = 300;\nexport default class FadeIn extends Component {\n  constructor() {\n    super(...arguments);\n    this.ref = createRef();\n  }\n  componentWillEnter(callback) {\n    this.ref.current.style.opacity = '1';\n    this.ref.current.style.transform = 'none';\n    setTimeout(callback, TRANSITION_MS);\n  }\n  componentWillLeave(callback) {\n    this.ref.current.style.opacity = '0';\n    this.ref.current.style.transform = 'translateY(350%)';\n    setTimeout(callback, TRANSITION_MS);\n  }\n  render() {\n    const {\n      children\n    } = this.props;\n    return h(\"div\", {\n      className: \"uppy-Informer-animated\",\n      ref: this.ref\n    }, children);\n  }\n}", "// INFO: not typing copy pasted libarary code\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/* eslint-disable */\n/**\n * @source https://github.com/developit/preact-transition-group\n */\n\nimport { Component, cloneElement, h, toChildArray } from 'preact';\nfunction assign(obj, props) {\n  return Object.assign(obj, props);\n}\nfunction getKey(vnode, fallback) {\n  var _vnode$key;\n  return (_vnode$key = vnode == null ? void 0 : vnode.key) != null ? _vnode$key : fallback;\n}\nfunction linkRef(component, name) {\n  const cache = component._ptgLinkedRefs || (component._ptgLinkedRefs = {});\n  return cache[name] || (cache[name] = c => {\n    component.refs[name] = c;\n  });\n}\nfunction getChildMapping(children) {\n  const out = {};\n  for (let i = 0; i < children.length; i++) {\n    if (children[i] != null) {\n      const key = getKey(children[i], i.toString(36));\n      out[key] = children[i];\n    }\n  }\n  return out;\n}\nfunction mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n  const getValueForKey = key => next.hasOwnProperty(key) ? next[key] : prev[key];\n\n  // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n  const nextKeysPending = {};\n  let pendingKeys = [];\n  for (const prevKey in prev) {\n    if (next.hasOwnProperty(prevKey)) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n  const childMapping = {};\n  for (const nextKey in next) {\n    if (nextKeysPending.hasOwnProperty(nextKey)) {\n      for (let i = 0; i < nextKeysPending[nextKey].length; i++) {\n        const pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n    childMapping[nextKey] = getValueForKey(nextKey);\n  }\n\n  // Finally, add the keys which didn't appear before any key in `next`\n  for (let i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n  return childMapping;\n}\nconst identity = i => i;\nclass TransitionGroup extends Component {\n  constructor(props, context) {\n    super(props, context);\n    this.refs = {};\n    this.state = {\n      children: getChildMapping(toChildArray(toChildArray(this.props.children)) || [])\n    };\n    this.performAppear = this.performAppear.bind(this);\n    this.performEnter = this.performEnter.bind(this);\n    this.performLeave = this.performLeave.bind(this);\n  }\n  componentWillMount() {\n    this.currentlyTransitioningKeys = {};\n    this.keysToAbortLeave = [];\n    this.keysToEnter = [];\n    this.keysToLeave = [];\n  }\n  componentDidMount() {\n    const initialChildMapping = this.state.children;\n    for (const key in initialChildMapping) {\n      if (initialChildMapping[key]) {\n        // this.performAppear(getKey(initialChildMapping[key], key));\n        this.performAppear(key);\n      }\n    }\n  }\n  componentWillReceiveProps(nextProps) {\n    const nextChildMapping = getChildMapping(toChildArray(nextProps.children) || []);\n    const prevChildMapping = this.state.children;\n    this.setState(prevState => ({\n      children: mergeChildMappings(prevState.children, nextChildMapping)\n    }));\n    let key;\n    for (key in nextChildMapping) {\n      if (nextChildMapping.hasOwnProperty(key)) {\n        const hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);\n        // We should re-enter the component and abort its leave function\n        if (nextChildMapping[key] && hasPrev && this.currentlyTransitioningKeys[key]) {\n          this.keysToEnter.push(key);\n          this.keysToAbortLeave.push(key);\n        } else if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) {\n          this.keysToEnter.push(key);\n        }\n      }\n    }\n    for (key in prevChildMapping) {\n      if (prevChildMapping.hasOwnProperty(key)) {\n        const hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(key);\n        if (prevChildMapping[key] && !hasNext && !this.currentlyTransitioningKeys[key]) {\n          this.keysToLeave.push(key);\n        }\n      }\n    }\n  }\n  componentDidUpdate() {\n    const {\n      keysToEnter\n    } = this;\n    this.keysToEnter = [];\n    keysToEnter.forEach(this.performEnter);\n    const {\n      keysToLeave\n    } = this;\n    this.keysToLeave = [];\n    keysToLeave.forEach(this.performLeave);\n  }\n  _finishAbort(key) {\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      this.keysToAbortLeave.splice(idx, 1);\n    }\n  }\n  performAppear(key) {\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillAppear) {\n      component.componentWillAppear(this._handleDoneAppearing.bind(this, key));\n    } else {\n      this._handleDoneAppearing(key);\n    }\n  }\n  _handleDoneAppearing(key) {\n    const component = this.refs[key];\n    if (component != null && component.componentDidAppear) {\n      component.componentDidAppear();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    this._finishAbort(key);\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n      // This was removed before it had fully appeared. Remove it.\n      this.performLeave(key);\n    }\n  }\n  performEnter(key) {\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillEnter) {\n      component.componentWillEnter(this._handleDoneEntering.bind(this, key));\n    } else {\n      this._handleDoneEntering(key);\n    }\n  }\n  _handleDoneEntering(key) {\n    const component = this.refs[key];\n    if (component != null && component.componentDidEnter) {\n      component.componentDidEnter();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    this._finishAbort(key);\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n      // This was removed before it had fully entered. Remove it.\n      this.performLeave(key);\n    }\n  }\n  performLeave(key) {\n    // If we should immediately abort this leave function,\n    // don't run the leave transition at all.\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      return;\n    }\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillLeave) {\n      component.componentWillLeave(this._handleDoneLeaving.bind(this, key));\n    } else {\n      // Note that this is somewhat dangerous b/c it calls setState()\n      // again, effectively mutating the component before all the work\n      // is done.\n      this._handleDoneLeaving(key);\n    }\n  }\n  _handleDoneLeaving(key) {\n    // If we should immediately abort the leave,\n    // then skip this altogether\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      return;\n    }\n    const component = this.refs[key];\n    if (component != null && component.componentDidLeave) {\n      component.componentDidLeave();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {\n      // This entered again before it fully left. Add it again.\n      this.performEnter(key);\n    } else {\n      const children = assign({}, this.state.children);\n      delete children[key];\n      this.setState({\n        children\n      });\n    }\n  }\n  render(_ref, _ref2) {\n    let {\n      childFactory,\n      transitionLeave,\n      transitionName,\n      transitionAppear,\n      transitionEnter,\n      transitionLeaveTimeout,\n      transitionEnterTimeout,\n      transitionAppearTimeout,\n      component,\n      ...props\n    } = _ref;\n    let {\n      children\n    } = _ref2;\n    // TODO: we could get rid of the need for the wrapper node\n    // by cloning a single child\n    const childrenToRender = Object.entries(children).map(_ref3 => {\n      let [key, child] = _ref3;\n      if (!child) return undefined;\n      const ref = linkRef(this, key);\n      return cloneElement(childFactory(child), {\n        ref,\n        key\n      });\n    }).filter(Boolean);\n    return h(component, props, childrenToRender);\n  }\n}\nTransitionGroup.defaultProps = {\n  component: 'span',\n  childFactory: identity\n};\nexport default TransitionGroup;", "/* eslint-disable jsx-a11y/no-noninteractive-element-interactions  */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { h } from 'preact';\nimport { UIPlugin } from '@uppy/core';\nimport FadeIn from \"./FadeIn.js\";\nimport TransitionGroup from \"./TransitionGroup.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.1.0\"\n};\n/**\n * Informer\n * Shows rad message bubbles\n * used like this: `uppy.info('hello world', 'info', 5000)`\n * or for errors: `uppy.info('Error uploading img.jpg', 'error', 5000)`\n *\n */\nexport default class Informer extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.render = state => {\n      return h(\"div\", {\n        className: \"uppy uppy-Informer\"\n      }, h(TransitionGroup, null, state.info.map(info => h(FadeIn, {\n        key: info.message\n      }, h(\"p\", {\n        role: \"alert\"\n      }, info.message, ' ', info.details && h(\"span\", {\n        \"aria-label\": info.details,\n        \"data-microtip-position\": \"top-left\",\n        \"data-microtip-size\": \"medium\",\n        role: \"tooltip\",\n        onClick: () =>\n        // eslint-disable-next-line no-alert\n        alert(`${info.message} \\n\\n ${info.details}`)\n      }, \"?\"))))));\n    };\n    this.type = 'progressindicator';\n    this.id = this.opts.id || 'Informer';\n    this.title = 'Informer';\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n  }\n}\nInformer.VERSION = packageJson.version;", "const DATA_URL_PATTERN = /^data:([^/]+\\/[^,;]+(?:[^,]*?))(;base64)?,([\\s\\S]*)$/;\nfunction dataURItoBlob(dataURI, opts, toFile) {\n  var _ref, _opts$mimeType;\n  // get the base64 data\n  const dataURIData = DATA_URL_PATTERN.exec(dataURI);\n\n  // user may provide mime type, if not get it from data URI\n  const mimeType = (_ref = (_opts$mimeType = opts.mimeType) != null ? _opts$mimeType : dataURIData == null ? void 0 : dataURIData[1]) != null ? _ref : 'plain/text';\n  let data; // We add `!` to tell TS we're OK with `data` being not defined when the dataURI is invalid.\n  if ((dataURIData == null ? void 0 : dataURIData[2]) != null) {\n    const binary = atob(decodeURIComponent(dataURIData[3]));\n    const bytes = new Uint8Array(binary.length);\n    for (let i = 0; i < binary.length; i++) {\n      bytes[i] = binary.charCodeAt(i);\n    }\n    data = [bytes];\n  } else if ((dataURIData == null ? void 0 : dataURIData[3]) != null) {\n    data = [decodeURIComponent(dataURIData[3])];\n  }\n\n  // Convert to a File?\n  if (toFile) {\n    return new File(data, opts.name || '', {\n      type: mimeType\n    });\n  }\n  return new Blob(data, {\n    type: mimeType\n  });\n}\nexport default dataURItoBlob;", "/**\n * Check if a URL string is an object URL from `URL.createObjectURL`.\n */\nexport default function isObjectURL(url) {\n  return url.startsWith('blob:');\n}", "export default function isPreviewSupported(fileType) {\n  if (!fileType) return false;\n  // list of images that browsers can preview\n  return /^[^/]+\\/(jpe?g|gif|png|svg|svg\\+xml|bmp|webp|avif)$/.test(fileType);\n}", "function e(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}var t=\"undefined\"!=typeof self?self:global;const s=\"undefined\"!=typeof navigator,i=s&&\"undefined\"==typeof HTMLImageElement,n=!(\"undefined\"==typeof global||\"undefined\"==typeof process||!process.versions||!process.versions.node),r=t.Buffer,a=!!r,h=e=>void 0!==e;function f(e){return void 0===e||(e instanceof Map?0===e.size:0===Object.values(e).filter(h).length)}function l(e){let t=new Error(e);throw delete t.stack,t}function o(e){let t=function(e){let t=0;return e.ifd0.enabled&&(t+=1024),e.exif.enabled&&(t+=2048),e.makerNote&&(t+=2048),e.userComment&&(t+=1024),e.gps.enabled&&(t+=512),e.interop.enabled&&(t+=100),e.ifd1.enabled&&(t+=1024),t+2048}(e);return e.jfif.enabled&&(t+=50),e.xmp.enabled&&(t+=2e4),e.iptc.enabled&&(t+=14e3),e.icc.enabled&&(t+=6e3),t}const u=e=>String.fromCharCode.apply(null,e),d=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-8\"):void 0;class c{static from(e,t){return e instanceof this&&e.le===t?e:new c(e,void 0,void 0,t)}constructor(e,t=0,s,i){if(\"boolean\"==typeof i&&(this.le=i),Array.isArray(e)&&(e=new Uint8Array(e)),0===e)this.byteOffset=0,this.byteLength=0;else if(e instanceof ArrayBuffer){void 0===s&&(s=e.byteLength-t);let i=new DataView(e,t,s);this._swapDataView(i)}else if(e instanceof Uint8Array||e instanceof DataView||e instanceof c){void 0===s&&(s=e.byteLength-t),(t+=e.byteOffset)+s>e.byteOffset+e.byteLength&&l(\"Creating view outside of available memory in ArrayBuffer\");let i=new DataView(e.buffer,t,s);this._swapDataView(i)}else if(\"number\"==typeof e){let t=new DataView(new ArrayBuffer(e));this._swapDataView(t)}else l(\"Invalid input argument for BufferView: \"+e)}_swapArrayBuffer(e){this._swapDataView(new DataView(e))}_swapBuffer(e){this._swapDataView(new DataView(e.buffer,e.byteOffset,e.byteLength))}_swapDataView(e){this.dataView=e,this.buffer=e.buffer,this.byteOffset=e.byteOffset,this.byteLength=e.byteLength}_lengthToEnd(e){return this.byteLength-e}set(e,t,s=c){return e instanceof DataView||e instanceof c?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array||l(\"BufferView.set(): Invalid data argument.\"),this.toUint8().set(e,t),new s(this,t,e.byteLength)}subarray(e,t){return t=t||this._lengthToEnd(e),new c(this,e,t)}toUint8(){return new Uint8Array(this.buffer,this.byteOffset,this.byteLength)}getUint8Array(e,t){return new Uint8Array(this.buffer,this.byteOffset+e,t)}getString(e=0,t=this.byteLength){let s=this.getUint8Array(e,t);return i=s,d?d.decode(i):a?Buffer.from(i).toString(\"utf8\"):decodeURIComponent(escape(u(i)));var i}getLatin1String(e=0,t=this.byteLength){let s=this.getUint8Array(e,t);return u(s)}getUnicodeString(e=0,t=this.byteLength){const s=[];for(let i=0;i<t&&e+i<this.byteLength;i+=2)s.push(this.getUint16(e+i));return u(s)}getInt8(e){return this.dataView.getInt8(e)}getUint8(e){return this.dataView.getUint8(e)}getInt16(e,t=this.le){return this.dataView.getInt16(e,t)}getInt32(e,t=this.le){return this.dataView.getInt32(e,t)}getUint16(e,t=this.le){return this.dataView.getUint16(e,t)}getUint32(e,t=this.le){return this.dataView.getUint32(e,t)}getFloat32(e,t=this.le){return this.dataView.getFloat32(e,t)}getFloat64(e,t=this.le){return this.dataView.getFloat64(e,t)}getFloat(e,t=this.le){return this.dataView.getFloat32(e,t)}getDouble(e,t=this.le){return this.dataView.getFloat64(e,t)}getUintBytes(e,t,s){switch(t){case 1:return this.getUint8(e,s);case 2:return this.getUint16(e,s);case 4:return this.getUint32(e,s);case 8:return this.getUint64&&this.getUint64(e,s)}}getUint(e,t,s){switch(t){case 8:return this.getUint8(e,s);case 16:return this.getUint16(e,s);case 32:return this.getUint32(e,s);case 64:return this.getUint64&&this.getUint64(e,s)}}toString(e){return this.dataView.toString(e,this.constructor.name)}ensureChunk(){}}function p(e,t){l(`${e} '${t}' was not loaded, try using full build of exifr.`)}class g extends Map{constructor(e){super(),this.kind=e}get(e,t){return this.has(e)||p(this.kind,e),t&&(e in t||function(e,t){l(`Unknown ${e} '${t}'.`)}(this.kind,e),t[e].enabled||p(this.kind,e)),super.get(e)}keyList(){return Array.from(this.keys())}}var m=new g(\"file parser\"),y=new g(\"segment parser\"),b=new g(\"file reader\");let w=t.fetch;function k(e,t){return(i=e).startsWith(\"data:\")||i.length>1e4?v(e,t,\"base64\"):n&&e.includes(\"://\")?O(e,t,\"url\",S):n?v(e,t,\"fs\"):s?O(e,t,\"url\",S):void l(\"Invalid input argument\");var i}async function O(e,t,s,i){return b.has(s)?v(e,t,s):i?async function(e,t){let s=await t(e);return new c(s)}(e,i):void l(`Parser ${s} is not loaded`)}async function v(e,t,s){let i=new(b.get(s))(e,t);return await i.read(),i}const S=e=>w(e).then((e=>e.arrayBuffer())),A=e=>new Promise(((t,s)=>{let i=new FileReader;i.onloadend=()=>t(i.result||new ArrayBuffer),i.onerror=s,i.readAsArrayBuffer(e)}));class U extends Map{get tagKeys(){return this.allKeys||(this.allKeys=Array.from(this.keys())),this.allKeys}get tagValues(){return this.allValues||(this.allValues=Array.from(this.values())),this.allValues}}function x(e,t,s){let i=new U;for(let[e,t]of s)i.set(e,t);if(Array.isArray(t))for(let s of t)e.set(s,i);else e.set(t,i);return i}function C(e,t,s){let i,n=e.get(t);for(i of s)n.set(i[0],i[1])}const B=new Map,V=new Map,I=new Map,L=[\"chunked\",\"firstChunkSize\",\"firstChunkSizeNode\",\"firstChunkSizeBrowser\",\"chunkSize\",\"chunkLimit\"],T=[\"jfif\",\"xmp\",\"icc\",\"iptc\",\"ihdr\"],z=[\"tiff\",...T],P=[\"ifd0\",\"ifd1\",\"exif\",\"gps\",\"interop\"],F=[...z,...P],j=[\"makerNote\",\"userComment\"],E=[\"translateKeys\",\"translateValues\",\"reviveValues\",\"multiSegment\"],M=[...E,\"sanitize\",\"mergeOutput\",\"silentErrors\"];class _{get translate(){return this.translateKeys||this.translateValues||this.reviveValues}}class D extends _{get needed(){return this.enabled||this.deps.size>0}constructor(t,s,i,n){if(super(),e(this,\"enabled\",!1),e(this,\"skip\",new Set),e(this,\"pick\",new Set),e(this,\"deps\",new Set),e(this,\"translateKeys\",!1),e(this,\"translateValues\",!1),e(this,\"reviveValues\",!1),this.key=t,this.enabled=s,this.parse=this.enabled,this.applyInheritables(n),this.canBeFiltered=P.includes(t),this.canBeFiltered&&(this.dict=B.get(t)),void 0!==i)if(Array.isArray(i))this.parse=this.enabled=!0,this.canBeFiltered&&i.length>0&&this.translateTagSet(i,this.pick);else if(\"object\"==typeof i){if(this.enabled=!0,this.parse=!1!==i.parse,this.canBeFiltered){let{pick:e,skip:t}=i;e&&e.length>0&&this.translateTagSet(e,this.pick),t&&t.length>0&&this.translateTagSet(t,this.skip)}this.applyInheritables(i)}else!0===i||!1===i?this.parse=this.enabled=i:l(`Invalid options argument: ${i}`)}applyInheritables(e){let t,s;for(t of E)s=e[t],void 0!==s&&(this[t]=s)}translateTagSet(e,t){if(this.dict){let s,i,{tagKeys:n,tagValues:r}=this.dict;for(s of e)\"string\"==typeof s?(i=r.indexOf(s),-1===i&&(i=n.indexOf(Number(s))),-1!==i&&t.add(Number(n[i]))):t.add(s)}else for(let s of e)t.add(s)}finalizeFilters(){!this.enabled&&this.deps.size>0?(this.enabled=!0,X(this.pick,this.deps)):this.enabled&&this.pick.size>0&&X(this.pick,this.deps)}}var N={jfif:!1,tiff:!0,xmp:!1,icc:!1,iptc:!1,ifd0:!0,ifd1:!1,exif:!0,gps:!0,interop:!1,ihdr:void 0,makerNote:!1,userComment:!1,multiSegment:!1,skip:[],pick:[],translateKeys:!0,translateValues:!0,reviveValues:!0,sanitize:!0,mergeOutput:!0,silentErrors:!0,chunked:!0,firstChunkSize:void 0,firstChunkSizeNode:512,firstChunkSizeBrowser:65536,chunkSize:65536,chunkLimit:5},$=new Map;class R extends _{static useCached(e){let t=$.get(e);return void 0!==t||(t=new this(e),$.set(e,t)),t}constructor(e){super(),!0===e?this.setupFromTrue():void 0===e?this.setupFromUndefined():Array.isArray(e)?this.setupFromArray(e):\"object\"==typeof e?this.setupFromObject(e):l(`Invalid options argument ${e}`),void 0===this.firstChunkSize&&(this.firstChunkSize=s?this.firstChunkSizeBrowser:this.firstChunkSizeNode),this.mergeOutput&&(this.ifd1.enabled=!1),this.filterNestedSegmentTags(),this.traverseTiffDependencyTree(),this.checkLoadedPlugins()}setupFromUndefined(){let e;for(e of L)this[e]=N[e];for(e of M)this[e]=N[e];for(e of j)this[e]=N[e];for(e of F)this[e]=new D(e,N[e],void 0,this)}setupFromTrue(){let e;for(e of L)this[e]=N[e];for(e of M)this[e]=N[e];for(e of j)this[e]=!0;for(e of F)this[e]=new D(e,!0,void 0,this)}setupFromArray(e){let t;for(t of L)this[t]=N[t];for(t of M)this[t]=N[t];for(t of j)this[t]=N[t];for(t of F)this[t]=new D(t,!1,void 0,this);this.setupGlobalFilters(e,void 0,P)}setupFromObject(e){let t;for(t of(P.ifd0=P.ifd0||P.image,P.ifd1=P.ifd1||P.thumbnail,Object.assign(this,e),L))this[t]=W(e[t],N[t]);for(t of M)this[t]=W(e[t],N[t]);for(t of j)this[t]=W(e[t],N[t]);for(t of z)this[t]=new D(t,N[t],e[t],this);for(t of P)this[t]=new D(t,N[t],e[t],this.tiff);this.setupGlobalFilters(e.pick,e.skip,P,F),!0===e.tiff?this.batchEnableWithBool(P,!0):!1===e.tiff?this.batchEnableWithUserValue(P,e):Array.isArray(e.tiff)?this.setupGlobalFilters(e.tiff,void 0,P):\"object\"==typeof e.tiff&&this.setupGlobalFilters(e.tiff.pick,e.tiff.skip,P)}batchEnableWithBool(e,t){for(let s of e)this[s].enabled=t}batchEnableWithUserValue(e,t){for(let s of e){let e=t[s];this[s].enabled=!1!==e&&void 0!==e}}setupGlobalFilters(e,t,s,i=s){if(e&&e.length){for(let e of i)this[e].enabled=!1;let t=K(e,s);for(let[e,s]of t)X(this[e].pick,s),this[e].enabled=!0}else if(t&&t.length){let e=K(t,s);for(let[t,s]of e)X(this[t].skip,s)}}filterNestedSegmentTags(){let{ifd0:e,exif:t,xmp:s,iptc:i,icc:n}=this;this.makerNote?t.deps.add(37500):t.skip.add(37500),this.userComment?t.deps.add(37510):t.skip.add(37510),s.enabled||e.skip.add(700),i.enabled||e.skip.add(33723),n.enabled||e.skip.add(34675)}traverseTiffDependencyTree(){let{ifd0:e,exif:t,gps:s,interop:i}=this;i.needed&&(t.deps.add(40965),e.deps.add(40965)),t.needed&&e.deps.add(34665),s.needed&&e.deps.add(34853),this.tiff.enabled=P.some((e=>!0===this[e].enabled))||this.makerNote||this.userComment;for(let e of P)this[e].finalizeFilters()}get onlyTiff(){return!T.map((e=>this[e].enabled)).some((e=>!0===e))&&this.tiff.enabled}checkLoadedPlugins(){for(let e of z)this[e].enabled&&!y.has(e)&&p(\"segment parser\",e)}}function K(e,t){let s,i,n,r,a=[];for(n of t){for(r of(s=B.get(n),i=[],s))(e.includes(r[0])||e.includes(r[1]))&&i.push(r[0]);i.length&&a.push([n,i])}return a}function W(e,t){return void 0!==e?e:void 0!==t?t:void 0}function X(e,t){for(let s of t)e.add(s)}e(R,\"default\",N);class H{constructor(t){e(this,\"parsers\",{}),e(this,\"output\",{}),e(this,\"errors\",[]),e(this,\"pushToErrors\",(e=>this.errors.push(e))),this.options=R.useCached(t)}async read(e){this.file=await function(e,t){return\"string\"==typeof e?k(e,t):s&&!i&&e instanceof HTMLImageElement?k(e.src,t):e instanceof Uint8Array||e instanceof ArrayBuffer||e instanceof DataView?new c(e):s&&e instanceof Blob?O(e,t,\"blob\",A):void l(\"Invalid input argument\")}(e,this.options)}setup(){if(this.fileParser)return;let{file:e}=this,t=e.getUint16(0);for(let[s,i]of m)if(i.canHandle(e,t))return this.fileParser=new i(this.options,this.file,this.parsers),e[s]=!0;this.file.close&&this.file.close(),l(\"Unknown file format\")}async parse(){let{output:e,errors:t}=this;return this.setup(),this.options.silentErrors?(await this.executeParsers().catch(this.pushToErrors),t.push(...this.fileParser.errors)):await this.executeParsers(),this.file.close&&this.file.close(),this.options.silentErrors&&t.length>0&&(e.errors=t),f(s=e)?void 0:s;var s}async executeParsers(){let{output:e}=this;await this.fileParser.parse();let t=Object.values(this.parsers).map((async t=>{let s=await t.parse();t.assignToOutput(e,s)}));this.options.silentErrors&&(t=t.map((e=>e.catch(this.pushToErrors)))),await Promise.all(t)}async extractThumbnail(){this.setup();let{options:e,file:t}=this,s=y.get(\"tiff\",e);var i;if(t.tiff?i={start:0,type:\"tiff\"}:t.jpeg&&(i=await this.fileParser.getOrFindSegment(\"tiff\")),void 0===i)return;let n=await this.fileParser.ensureSegmentChunk(i),r=this.parsers.tiff=new s(n,e,t),a=await r.extractThumbnail();return t.close&&t.close(),a}}async function Y(e,t){let s=new H(t);return await s.read(e),s.parse()}var G=Object.freeze({__proto__:null,parse:Y,Exifr:H,fileParsers:m,segmentParsers:y,fileReaders:b,tagKeys:B,tagValues:V,tagRevivers:I,createDictionary:x,extendDictionary:C,fetchUrlAsArrayBuffer:S,readBlobAsArrayBuffer:A,chunkedProps:L,otherSegments:T,segments:z,tiffBlocks:P,segmentsAndBlocks:F,tiffExtractables:j,inheritables:E,allFormatters:M,Options:R});class J{static findPosition(e,t){let s=e.getUint16(t+2)+2,i=\"function\"==typeof this.headerLength?this.headerLength(e,t,s):this.headerLength,n=t+i,r=s-i;return{offset:t,length:s,headerLength:i,start:n,size:r,end:n+r}}static parse(e,t={}){return new this(e,new R({[this.type]:t}),e).parse()}normalizeInput(e){return e instanceof c?e:new c(e)}constructor(t,s={},i){e(this,\"errors\",[]),e(this,\"raw\",new Map),e(this,\"handleError\",(e=>{if(!this.options.silentErrors)throw e;this.errors.push(e.message)})),this.chunk=this.normalizeInput(t),this.file=i,this.type=this.constructor.type,this.globalOptions=this.options=s,this.localOptions=s[this.type],this.canTranslate=this.localOptions&&this.localOptions.translate}translate(){this.canTranslate&&(this.translated=this.translateBlock(this.raw,this.type))}get output(){return this.translated?this.translated:this.raw?Object.fromEntries(this.raw):void 0}translateBlock(e,t){let s=I.get(t),i=V.get(t),n=B.get(t),r=this.options[t],a=r.reviveValues&&!!s,h=r.translateValues&&!!i,f=r.translateKeys&&!!n,l={};for(let[t,r]of e)a&&s.has(t)?r=s.get(t)(r):h&&i.has(t)&&(r=this.translateValue(r,i.get(t))),f&&n.has(t)&&(t=n.get(t)||t),l[t]=r;return l}translateValue(e,t){return t[e]||t.DEFAULT||e}assignToOutput(e,t){this.assignObjectToOutput(e,this.constructor.type,t)}assignObjectToOutput(e,t,s){if(this.globalOptions.mergeOutput)return Object.assign(e,s);e[t]?Object.assign(e[t],s):e[t]=s}}e(J,\"headerLength\",4),e(J,\"type\",void 0),e(J,\"multiSegment\",!1),e(J,\"canHandle\",(()=>!1));function q(e){return 192===e||194===e||196===e||219===e||221===e||218===e||254===e}function Q(e){return e>=224&&e<=239}function Z(e,t,s){for(let[i,n]of y)if(n.canHandle(e,t,s))return i}class ee extends class{constructor(t,s,i){e(this,\"errors\",[]),e(this,\"ensureSegmentChunk\",(async e=>{let t=e.start,s=e.size||65536;if(this.file.chunked)if(this.file.available(t,s))e.chunk=this.file.subarray(t,s);else try{e.chunk=await this.file.readChunk(t,s)}catch(t){l(`Couldn't read segment: ${JSON.stringify(e)}. ${t.message}`)}else this.file.byteLength>t+s?e.chunk=this.file.subarray(t,s):void 0===e.size?e.chunk=this.file.subarray(t):l(\"Segment unreachable: \"+JSON.stringify(e));return e.chunk})),this.extendOptions&&this.extendOptions(t),this.options=t,this.file=s,this.parsers=i}injectSegment(e,t){this.options[e].enabled&&this.createParser(e,t)}createParser(e,t){let s=new(y.get(e))(t,this.options,this.file);return this.parsers[e]=s}createParsers(e){for(let t of e){let{type:e,chunk:s}=t,i=this.options[e];if(i&&i.enabled){let t=this.parsers[e];t&&t.append||t||this.createParser(e,s)}}}async readSegments(e){let t=e.map(this.ensureSegmentChunk);await Promise.all(t)}}{constructor(...t){super(...t),e(this,\"appSegments\",[]),e(this,\"jpegSegments\",[]),e(this,\"unknownSegments\",[])}static canHandle(e,t){return 65496===t}async parse(){await this.findAppSegments(),await this.readSegments(this.appSegments),this.mergeMultiSegments(),this.createParsers(this.mergedAppSegments||this.appSegments)}setupSegmentFinderArgs(e){!0===e?(this.findAll=!0,this.wanted=new Set(y.keyList())):(e=void 0===e?y.keyList().filter((e=>this.options[e].enabled)):e.filter((e=>this.options[e].enabled&&y.has(e))),this.findAll=!1,this.remaining=new Set(e),this.wanted=new Set(e)),this.unfinishedMultiSegment=!1}async findAppSegments(e=0,t){this.setupSegmentFinderArgs(t);let{file:s,findAll:i,wanted:n,remaining:r}=this;if(!i&&this.file.chunked&&(i=Array.from(n).some((e=>{let t=y.get(e),s=this.options[e];return t.multiSegment&&s.multiSegment})),i&&await this.file.readWhole()),e=this.findAppSegmentsInRange(e,s.byteLength),!this.options.onlyTiff&&s.chunked){let t=!1;for(;r.size>0&&!t&&(s.canReadNextChunk||this.unfinishedMultiSegment);){let{nextChunkOffset:i}=s,n=this.appSegments.some((e=>!this.file.available(e.offset||e.start,e.length||e.size)));if(t=e>i&&!n?!await s.readNextChunk(e):!await s.readNextChunk(i),void 0===(e=this.findAppSegmentsInRange(e,s.byteLength)))return}}}findAppSegmentsInRange(e,t){t-=2;let s,i,n,r,a,h,{file:f,findAll:l,wanted:o,remaining:u,options:d}=this;for(;e<t;e++)if(255===f.getUint8(e))if(s=f.getUint8(e+1),Q(s)){if(i=f.getUint16(e+2),n=Z(f,e,i),n&&o.has(n)&&(r=y.get(n),a=r.findPosition(f,e),h=d[n],a.type=n,this.appSegments.push(a),!l&&(r.multiSegment&&h.multiSegment?(this.unfinishedMultiSegment=a.chunkNumber<a.chunkCount,this.unfinishedMultiSegment||u.delete(n)):u.delete(n),0===u.size)))break;d.recordUnknownSegments&&(a=J.findPosition(f,e),a.marker=s,this.unknownSegments.push(a)),e+=i+1}else if(q(s)){if(i=f.getUint16(e+2),218===s&&!1!==d.stopAfterSos)return;d.recordJpegSegments&&this.jpegSegments.push({offset:e,length:i,marker:s}),e+=i+1}return e}mergeMultiSegments(){if(!this.appSegments.some((e=>e.multiSegment)))return;let e=function(e,t){let s,i,n,r=new Map;for(let a=0;a<e.length;a++)s=e[a],i=s[t],r.has(i)?n=r.get(i):r.set(i,n=[]),n.push(s);return Array.from(r)}(this.appSegments,\"type\");this.mergedAppSegments=e.map((([e,t])=>{let s=y.get(e,this.options);if(s.handleMultiSegments){return{type:e,chunk:s.handleMultiSegments(t)}}return t[0]}))}getSegment(e){return this.appSegments.find((t=>t.type===e))}async getOrFindSegment(e){let t=this.getSegment(e);return void 0===t&&(await this.findAppSegments(0,[e]),t=this.getSegment(e)),t}}e(ee,\"type\",\"jpeg\"),m.set(\"jpeg\",ee);const te=[void 0,1,1,2,4,8,1,1,2,4,8,4,8,4];class se extends J{parseHeader(){var e=this.chunk.getUint16();18761===e?this.le=!0:19789===e&&(this.le=!1),this.chunk.le=this.le,this.headerParsed=!0}parseTags(e,t,s=new Map){let{pick:i,skip:n}=this.options[t];i=new Set(i);let r=i.size>0,a=0===n.size,h=this.chunk.getUint16(e);e+=2;for(let f=0;f<h;f++){let h=this.chunk.getUint16(e);if(r){if(i.has(h)&&(s.set(h,this.parseTag(e,h,t)),i.delete(h),0===i.size))break}else!a&&n.has(h)||s.set(h,this.parseTag(e,h,t));e+=12}return s}parseTag(e,t,s){let{chunk:i}=this,n=i.getUint16(e+2),r=i.getUint32(e+4),a=te[n];if(a*r<=4?e+=8:e=i.getUint32(e+8),(n<1||n>13)&&l(`Invalid TIFF value type. block: ${s.toUpperCase()}, tag: ${t.toString(16)}, type: ${n}, offset ${e}`),e>i.byteLength&&l(`Invalid TIFF value offset. block: ${s.toUpperCase()}, tag: ${t.toString(16)}, type: ${n}, offset ${e} is outside of chunk size ${i.byteLength}`),1===n)return i.getUint8Array(e,r);if(2===n)return\"\"===(h=function(e){for(;e.endsWith(\"\\0\");)e=e.slice(0,-1);return e}(h=i.getString(e,r)).trim())?void 0:h;var h;if(7===n)return i.getUint8Array(e,r);if(1===r)return this.parseTagValue(n,e);{let t=new(function(e){switch(e){case 1:return Uint8Array;case 3:return Uint16Array;case 4:return Uint32Array;case 5:return Array;case 6:return Int8Array;case 8:return Int16Array;case 9:return Int32Array;case 10:return Array;case 11:return Float32Array;case 12:return Float64Array;default:return Array}}(n))(r),s=a;for(let i=0;i<r;i++)t[i]=this.parseTagValue(n,e),e+=s;return t}}parseTagValue(e,t){let{chunk:s}=this;switch(e){case 1:return s.getUint8(t);case 3:return s.getUint16(t);case 4:return s.getUint32(t);case 5:return s.getUint32(t)/s.getUint32(t+4);case 6:return s.getInt8(t);case 8:return s.getInt16(t);case 9:return s.getInt32(t);case 10:return s.getInt32(t)/s.getInt32(t+4);case 11:return s.getFloat(t);case 12:return s.getDouble(t);case 13:return s.getUint32(t);default:l(`Invalid tiff type ${e}`)}}}class ie extends se{static canHandle(e,t){return 225===e.getUint8(t+1)&&1165519206===e.getUint32(t+4)&&0===e.getUint16(t+8)}async parse(){this.parseHeader();let{options:e}=this;return e.ifd0.enabled&&await this.parseIfd0Block(),e.exif.enabled&&await this.safeParse(\"parseExifBlock\"),e.gps.enabled&&await this.safeParse(\"parseGpsBlock\"),e.interop.enabled&&await this.safeParse(\"parseInteropBlock\"),e.ifd1.enabled&&await this.safeParse(\"parseThumbnailBlock\"),this.createOutput()}safeParse(e){let t=this[e]();return void 0!==t.catch&&(t=t.catch(this.handleError)),t}findIfd0Offset(){void 0===this.ifd0Offset&&(this.ifd0Offset=this.chunk.getUint32(4))}findIfd1Offset(){if(void 0===this.ifd1Offset){this.findIfd0Offset();let e=this.chunk.getUint16(this.ifd0Offset),t=this.ifd0Offset+2+12*e;this.ifd1Offset=this.chunk.getUint32(t)}}parseBlock(e,t){let s=new Map;return this[t]=s,this.parseTags(e,t,s),s}async parseIfd0Block(){if(this.ifd0)return;let{file:e}=this;this.findIfd0Offset(),this.ifd0Offset<8&&l(\"Malformed EXIF data\"),!e.chunked&&this.ifd0Offset>e.byteLength&&l(`IFD0 offset points to outside of file.\\nthis.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e.byteLength}`),e.tiff&&await e.ensureChunk(this.ifd0Offset,o(this.options));let t=this.parseBlock(this.ifd0Offset,\"ifd0\");return 0!==t.size?(this.exifOffset=t.get(34665),this.interopOffset=t.get(40965),this.gpsOffset=t.get(34853),this.xmp=t.get(700),this.iptc=t.get(33723),this.icc=t.get(34675),this.options.sanitize&&(t.delete(34665),t.delete(40965),t.delete(34853),t.delete(700),t.delete(33723),t.delete(34675)),t):void 0}async parseExifBlock(){if(this.exif)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.exifOffset)return;this.file.tiff&&await this.file.ensureChunk(this.exifOffset,o(this.options));let e=this.parseBlock(this.exifOffset,\"exif\");return this.interopOffset||(this.interopOffset=e.get(40965)),this.makerNote=e.get(37500),this.userComment=e.get(37510),this.options.sanitize&&(e.delete(40965),e.delete(37500),e.delete(37510)),this.unpack(e,41728),this.unpack(e,41729),e}unpack(e,t){let s=e.get(t);s&&1===s.length&&e.set(t,s[0])}async parseGpsBlock(){if(this.gps)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.gpsOffset)return;let e=this.parseBlock(this.gpsOffset,\"gps\");return e&&e.has(2)&&e.has(4)&&(e.set(\"latitude\",ne(...e.get(2),e.get(1))),e.set(\"longitude\",ne(...e.get(4),e.get(3)))),e}async parseInteropBlock(){if(!this.interop&&(this.ifd0||await this.parseIfd0Block(),void 0!==this.interopOffset||this.exif||await this.parseExifBlock(),void 0!==this.interopOffset))return this.parseBlock(this.interopOffset,\"interop\")}async parseThumbnailBlock(e=!1){if(!this.ifd1&&!this.ifd1Parsed&&(!this.options.mergeOutput||e))return this.findIfd1Offset(),this.ifd1Offset>0&&(this.parseBlock(this.ifd1Offset,\"ifd1\"),this.ifd1Parsed=!0),this.ifd1}async extractThumbnail(){if(this.headerParsed||this.parseHeader(),this.ifd1Parsed||await this.parseThumbnailBlock(!0),void 0===this.ifd1)return;let e=this.ifd1.get(513),t=this.ifd1.get(514);return this.chunk.getUint8Array(e,t)}get image(){return this.ifd0}get thumbnail(){return this.ifd1}createOutput(){let e,t,s,i={};for(t of P)if(e=this[t],!f(e))if(s=this.canTranslate?this.translateBlock(e,t):Object.fromEntries(e),this.options.mergeOutput){if(\"ifd1\"===t)continue;Object.assign(i,s)}else i[t]=s;return this.makerNote&&(i.makerNote=this.makerNote),this.userComment&&(i.userComment=this.userComment),i}assignToOutput(e,t){if(this.globalOptions.mergeOutput)Object.assign(e,t);else for(let[s,i]of Object.entries(t))this.assignObjectToOutput(e,s,i)}}function ne(e,t,s,i){var n=e+t/60+s/3600;return\"S\"!==i&&\"W\"!==i||(n*=-1),n}e(ie,\"type\",\"tiff\"),e(ie,\"headerLength\",10),y.set(\"tiff\",ie);var re=Object.freeze({__proto__:null,default:G,Exifr:H,fileParsers:m,segmentParsers:y,fileReaders:b,tagKeys:B,tagValues:V,tagRevivers:I,createDictionary:x,extendDictionary:C,fetchUrlAsArrayBuffer:S,readBlobAsArrayBuffer:A,chunkedProps:L,otherSegments:T,segments:z,tiffBlocks:P,segmentsAndBlocks:F,tiffExtractables:j,inheritables:E,allFormatters:M,Options:R,parse:Y});const ae={ifd0:!1,ifd1:!1,exif:!1,gps:!1,interop:!1,sanitize:!1,reviveValues:!0,translateKeys:!1,translateValues:!1,mergeOutput:!1},he=Object.assign({},ae,{firstChunkSize:4e4,gps:[1,2,3,4]});async function fe(e){let t=new H(he);await t.read(e);let s=await t.parse();if(s&&s.gps){let{latitude:e,longitude:t}=s.gps;return{latitude:e,longitude:t}}}const le=Object.assign({},ae,{tiff:!1,ifd1:!0,mergeOutput:!1});async function oe(e){let t=new H(le);await t.read(e);let s=await t.extractThumbnail();return s&&a?r.from(s):s}async function ue(e){let t=await this.thumbnail(e);if(void 0!==t){let e=new Blob([t]);return URL.createObjectURL(e)}}const de=Object.assign({},ae,{firstChunkSize:4e4,ifd0:[274]});async function ce(e){let t=new H(de);await t.read(e);let s=await t.parse();if(s&&s.ifd0)return s.ifd0[274]}const pe=Object.freeze({1:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:0,rad:0},2:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:0,rad:0},3:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:180,rad:180*Math.PI/180},4:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:180,rad:180*Math.PI/180},5:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:90,rad:90*Math.PI/180},6:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:90,rad:90*Math.PI/180},7:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:270,rad:270*Math.PI/180},8:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:270,rad:270*Math.PI/180}});let ge=!0,me=!0;if(\"object\"==typeof navigator){let e=navigator.userAgent;if(e.includes(\"iPad\")||e.includes(\"iPhone\")){let t=e.match(/OS (\\d+)_(\\d+)/);if(t){let[,e,s]=t,i=Number(e)+.1*Number(s);ge=i<13.4,me=!1}}else if(e.includes(\"OS X 10\")){let[,t]=e.match(/OS X 10[_.](\\d+)/);ge=me=Number(t)<15}if(e.includes(\"Chrome/\")){let[,t]=e.match(/Chrome\\/(\\d+)/);ge=me=Number(t)<81}else if(e.includes(\"Firefox/\")){let[,t]=e.match(/Firefox\\/(\\d+)/);ge=me=Number(t)<77}}async function ye(e){let t=await ce(e);return Object.assign({canvas:ge,css:me},pe[t])}class be extends c{constructor(...t){super(...t),e(this,\"ranges\",new we),0!==this.byteLength&&this.ranges.add(0,this.byteLength)}_tryExtend(e,t,s){if(0===e&&0===this.byteLength&&s){let e=new DataView(s.buffer||s,s.byteOffset,s.byteLength);this._swapDataView(e)}else{let s=e+t;if(s>this.byteLength){let{dataView:e}=this._extend(s);this._swapDataView(e)}}}_extend(e){let t;t=a?r.allocUnsafe(e):new Uint8Array(e);let s=new DataView(t.buffer,t.byteOffset,t.byteLength);return t.set(new Uint8Array(this.buffer,this.byteOffset,this.byteLength),0),{uintView:t,dataView:s}}subarray(e,t,s=!1){return t=t||this._lengthToEnd(e),s&&this._tryExtend(e,t),this.ranges.add(e,t),super.subarray(e,t)}set(e,t,s=!1){s&&this._tryExtend(t,e.byteLength,e);let i=super.set(e,t);return this.ranges.add(t,i.byteLength),i}async ensureChunk(e,t){this.chunked&&(this.ranges.available(e,t)||await this.readChunk(e,t))}available(e,t){return this.ranges.available(e,t)}}class we{constructor(){e(this,\"list\",[])}get length(){return this.list.length}add(e,t,s=0){let i=e+t,n=this.list.filter((t=>ke(e,t.offset,i)||ke(e,t.end,i)));if(n.length>0){e=Math.min(e,...n.map((e=>e.offset))),i=Math.max(i,...n.map((e=>e.end))),t=i-e;let s=n.shift();s.offset=e,s.length=t,s.end=i,this.list=this.list.filter((e=>!n.includes(e)))}else this.list.push({offset:e,length:t,end:i})}available(e,t){let s=e+t;return this.list.some((t=>t.offset<=e&&s<=t.end))}}function ke(e,t,s){return e<=t&&t<=s}class Oe extends be{constructor(t,s){super(0),e(this,\"chunksRead\",0),this.input=t,this.options=s}async readWhole(){this.chunked=!1,await this.readChunk(this.nextChunkOffset)}async readChunked(){this.chunked=!0,await this.readChunk(0,this.options.firstChunkSize)}async readNextChunk(e=this.nextChunkOffset){if(this.fullyRead)return this.chunksRead++,!1;let t=this.options.chunkSize,s=await this.readChunk(e,t);return!!s&&s.byteLength===t}async readChunk(e,t){if(this.chunksRead++,0!==(t=this.safeWrapAddress(e,t)))return this._readChunk(e,t)}safeWrapAddress(e,t){return void 0!==this.size&&e+t>this.size?Math.max(0,this.size-e):t}get nextChunkOffset(){if(0!==this.ranges.list.length)return this.ranges.list[0].length}get canReadNextChunk(){return this.chunksRead<this.options.chunkLimit}get fullyRead(){return void 0!==this.size&&this.nextChunkOffset===this.size}read(){return this.options.chunked?this.readChunked():this.readWhole()}close(){}}b.set(\"blob\",class extends Oe{async readWhole(){this.chunked=!1;let e=await A(this.input);this._swapArrayBuffer(e)}readChunked(){return this.chunked=!0,this.size=this.input.size,super.readChunked()}async _readChunk(e,t){let s=t?e+t:void 0,i=this.input.slice(e,s),n=await A(i);return this.set(n,e,!0)}});export default re;export{H as Exifr,R as Options,M as allFormatters,L as chunkedProps,x as createDictionary,C as extendDictionary,S as fetchUrlAsArrayBuffer,m as fileParsers,b as fileReaders,fe as gps,he as gpsOnlyOptions,E as inheritables,ce as orientation,de as orientationOnlyOptions,T as otherSegments,Y as parse,A as readBlobAsArrayBuffer,ge as rotateCanvas,me as rotateCss,ye as rotation,pe as rotations,y as segmentParsers,z as segments,F as segmentsAndBlocks,B as tagKeys,I as tagRevivers,V as tagValues,oe as thumbnail,le as thumbnailOnlyOptions,ue as thumbnailUrl,P as tiffBlocks,j as tiffExtractables};\n", "export default {\n  strings: {\n    generatingThumbnails: 'Generating thumbnails...'\n  }\n};", "import { UIPlugin } from '@uppy/core';\nimport dataURItoBlob from '@uppy/utils/lib/dataURItoBlob';\nimport isObjectURL from '@uppy/utils/lib/isObjectURL';\nimport isPreviewSupported from '@uppy/utils/lib/isPreviewSupported';\nimport { rotation } from 'exifr/dist/mini.esm.mjs';\nimport locale from './locale.js';\nconst packageJson = {\n  \"version\": \"3.0.8\"\n};\n/**\n * Save a <canvas> element's content to a Blob object.\n *\n * @param {HTMLCanvasElement} canvas\n * @returns {Promise}\n */\nfunction canvasToBlob(canvas, type, quality) {\n  try {\n    canvas.getContext('2d').getImageData(0, 0, 1, 1);\n  } catch (err) {\n    if (err.code === 18) {\n      return Promise.reject(new Error('cannot read image, probably an svg with external resources'));\n    }\n  }\n  if (canvas.toBlob) {\n    return new Promise(resolve => {\n      canvas.toBlob(resolve, type, quality);\n    }).then(blob => {\n      if (blob === null) {\n        throw new Error('cannot read image, probably an svg with external resources');\n      }\n      return blob;\n    });\n  }\n  return Promise.resolve().then(() => {\n    return dataURItoBlob(canvas.toDataURL(type, quality), {});\n  }).then(blob => {\n    if (blob === null) {\n      throw new Error('could not extract blob, probably an old browser');\n    }\n    return blob;\n  });\n}\nfunction rotateImage(image, translate) {\n  let w = image.width;\n  let h = image.height;\n  if (translate.deg === 90 || translate.deg === 270) {\n    w = image.height;\n    h = image.width;\n  }\n  const canvas = document.createElement('canvas');\n  canvas.width = w;\n  canvas.height = h;\n  const context = canvas.getContext('2d');\n  context.translate(w / 2, h / 2);\n  if (translate.canvas) {\n    context.rotate(translate.rad);\n    context.scale(translate.scaleX, translate.scaleY);\n  }\n  context.drawImage(image, -image.width / 2, -image.height / 2, image.width, image.height);\n  return canvas;\n}\n\n/**\n * Make sure the image doesn\u2019t exceed browser/device canvas limits.\n * For ios with 256 RAM and ie\n */\nfunction protect(image) {\n  // https://stackoverflow.com/questions/6081483/maximum-size-of-a-canvas-element\n\n  const ratio = image.width / image.height;\n  const maxSquare = 5000000; // ios max canvas square\n  const maxSize = 4096; // ie max canvas dimensions\n\n  let maxW = Math.floor(Math.sqrt(maxSquare * ratio));\n  let maxH = Math.floor(maxSquare / Math.sqrt(maxSquare * ratio));\n  if (maxW > maxSize) {\n    maxW = maxSize;\n    maxH = Math.round(maxW / ratio);\n  }\n  if (maxH > maxSize) {\n    maxH = maxSize;\n    maxW = Math.round(ratio * maxH);\n  }\n  if (image.width > maxW) {\n    const canvas = document.createElement('canvas');\n    canvas.width = maxW;\n    canvas.height = maxH;\n    canvas.getContext('2d').drawImage(image, 0, 0, maxW, maxH);\n    return canvas;\n  }\n  return image;\n}\n\n/**\n * The Thumbnail Generator plugin\n */\n\nexport default class ThumbnailGenerator extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.onFileAdded = file => {\n      if (!file.preview && file.data && isPreviewSupported(file.type) && !file.isRemote) {\n        this.addToQueue(file.id);\n      }\n    };\n    /**\n     * Cancel a lazy request for a thumbnail if the thumbnail has not yet been generated.\n     */\n    this.onCancelRequest = file => {\n      const index = this.queue.indexOf(file.id);\n      if (index !== -1) {\n        this.queue.splice(index, 1);\n      }\n    };\n    /**\n     * Clean up the thumbnail for a file. Cancel lazy requests and free the thumbnail URL.\n     */\n    this.onFileRemoved = file => {\n      const index = this.queue.indexOf(file.id);\n      if (index !== -1) {\n        this.queue.splice(index, 1);\n      }\n\n      // Clean up object URLs.\n      if (file.preview && isObjectURL(file.preview)) {\n        URL.revokeObjectURL(file.preview);\n      }\n    };\n    this.onRestored = () => {\n      const restoredFiles = this.uppy.getFiles().filter(file => file.isRestored);\n      restoredFiles.forEach(file => {\n        // Only add blob URLs; they are likely invalid after being restored.\n        if (!file.preview || isObjectURL(file.preview)) {\n          this.addToQueue(file.id);\n        }\n      });\n    };\n    this.onAllFilesRemoved = () => {\n      this.queue = [];\n    };\n    this.waitUntilAllProcessed = fileIDs => {\n      fileIDs.forEach(fileID => {\n        const file = this.uppy.getFile(fileID);\n        this.uppy.emit('preprocess-progress', file, {\n          mode: 'indeterminate',\n          message: this.i18n('generatingThumbnails')\n        });\n      });\n      const emitPreprocessCompleteForAll = () => {\n        fileIDs.forEach(fileID => {\n          const file = this.uppy.getFile(fileID);\n          this.uppy.emit('preprocess-complete', file);\n        });\n      };\n      return new Promise(resolve => {\n        if (this.queueProcessing) {\n          this.uppy.once('thumbnail:all-generated', () => {\n            emitPreprocessCompleteForAll();\n            resolve();\n          });\n        } else {\n          emitPreprocessCompleteForAll();\n          resolve();\n        }\n      });\n    };\n    this.type = 'modifier';\n    this.id = this.opts.id || 'ThumbnailGenerator';\n    this.title = 'Thumbnail Generator';\n    this.queue = [];\n    this.queueProcessing = false;\n    this.defaultThumbnailDimension = 200;\n    this.thumbnailType = this.opts.thumbnailType || 'image/jpeg';\n    this.defaultLocale = locale;\n    const defaultOptions = {\n      thumbnailWidth: null,\n      thumbnailHeight: null,\n      waitForThumbnailsBeforeUpload: false,\n      lazy: false\n    };\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.i18nInit();\n    if (this.opts.lazy && this.opts.waitForThumbnailsBeforeUpload) {\n      throw new Error('ThumbnailGenerator: The `lazy` and `waitForThumbnailsBeforeUpload` options are mutually exclusive. Please ensure at most one of them is set to `true`.');\n    }\n  }\n\n  /**\n   * Create a thumbnail for the given Uppy file object.\n   *\n   * @param {{data: Blob}} file\n   * @param {number} targetWidth\n   * @param {number} targetHeight\n   * @returns {Promise}\n   */\n  createThumbnail(file, targetWidth, targetHeight) {\n    const originalUrl = URL.createObjectURL(file.data);\n    const onload = new Promise((resolve, reject) => {\n      const image = new Image();\n      image.src = originalUrl;\n      image.addEventListener('load', () => {\n        URL.revokeObjectURL(originalUrl);\n        resolve(image);\n      });\n      image.addEventListener('error', event => {\n        URL.revokeObjectURL(originalUrl);\n        reject(event.error || new Error('Could not create thumbnail'));\n      });\n    });\n    const orientationPromise = rotation(file.data).catch(() => 1);\n    return Promise.all([onload, orientationPromise]).then(_ref => {\n      let [image, orientation] = _ref;\n      const dimensions = this.getProportionalDimensions(image, targetWidth, targetHeight, orientation.deg);\n      const rotatedImage = rotateImage(image, orientation);\n      const resizedImage = this.resizeImage(rotatedImage, dimensions.width, dimensions.height);\n      return canvasToBlob(resizedImage, this.thumbnailType, 80);\n    }).then(blob => {\n      return URL.createObjectURL(blob);\n    });\n  }\n\n  /**\n   * Get the new calculated dimensions for the given image and a target width\n   * or height. If both width and height are given, only width is taken into\n   * account. If neither width nor height are given, the default dimension\n   * is used.\n   */\n  getProportionalDimensions(img, width, height, rotation) {\n    // eslint-disable-line no-shadow\n    let aspect = img.width / img.height;\n    if (rotation === 90 || rotation === 270) {\n      aspect = img.height / img.width;\n    }\n    if (width != null) {\n      return {\n        width,\n        height: Math.round(width / aspect)\n      };\n    }\n    if (height != null) {\n      return {\n        width: Math.round(height * aspect),\n        height\n      };\n    }\n    return {\n      width: this.defaultThumbnailDimension,\n      height: Math.round(this.defaultThumbnailDimension / aspect)\n    };\n  }\n\n  /**\n   * Resize an image to the target `width` and `height`.\n   *\n   * Returns a Canvas with the resized image on it.\n   */\n  // eslint-disable-next-line class-methods-use-this\n  resizeImage(image, targetWidth, targetHeight) {\n    // Resizing in steps refactored to use a solution from\n    // https://blog.uploadcare.com/image-resize-in-browsers-is-broken-e38eed08df01\n\n    let img = protect(image);\n    let steps = Math.ceil(Math.log2(img.width / targetWidth));\n    if (steps < 1) {\n      steps = 1;\n    }\n    let sW = targetWidth * 2 ** (steps - 1);\n    let sH = targetHeight * 2 ** (steps - 1);\n    const x = 2;\n    while (steps--) {\n      const canvas = document.createElement('canvas');\n      canvas.width = sW;\n      canvas.height = sH;\n      canvas.getContext('2d').drawImage(img, 0, 0, sW, sH);\n      img = canvas;\n      sW = Math.round(sW / x);\n      sH = Math.round(sH / x);\n    }\n    return img;\n  }\n\n  /**\n   * Set the preview URL for a file.\n   */\n  setPreviewURL(fileID, preview) {\n    this.uppy.setFileState(fileID, {\n      preview\n    });\n  }\n  addToQueue(item) {\n    this.queue.push(item);\n    if (this.queueProcessing === false) {\n      this.processQueue();\n    }\n  }\n  processQueue() {\n    this.queueProcessing = true;\n    if (this.queue.length > 0) {\n      const current = this.uppy.getFile(this.queue.shift());\n      if (!current) {\n        this.uppy.log('[ThumbnailGenerator] file was removed before a thumbnail could be generated, but not removed from the queue. This is probably a bug', 'error');\n        return Promise.resolve();\n      }\n      return this.requestThumbnail(current).catch(() => {}) // eslint-disable-line node/handle-callback-err\n      .then(() => this.processQueue());\n    }\n    this.queueProcessing = false;\n    this.uppy.log('[ThumbnailGenerator] Emptied thumbnail queue');\n    this.uppy.emit('thumbnail:all-generated');\n    return Promise.resolve();\n  }\n  requestThumbnail(file) {\n    if (isPreviewSupported(file.type) && !file.isRemote) {\n      return this.createThumbnail(file, this.opts.thumbnailWidth, this.opts.thumbnailHeight).then(preview => {\n        this.setPreviewURL(file.id, preview);\n        this.uppy.log(`[ThumbnailGenerator] Generated thumbnail for ${file.id}`);\n        this.uppy.emit('thumbnail:generated', this.uppy.getFile(file.id), preview);\n      }).catch(err => {\n        this.uppy.log(`[ThumbnailGenerator] Failed thumbnail for ${file.id}:`, 'warning');\n        this.uppy.log(err, 'warning');\n        this.uppy.emit('thumbnail:error', this.uppy.getFile(file.id), err);\n      });\n    }\n    return Promise.resolve();\n  }\n  install() {\n    this.uppy.on('file-removed', this.onFileRemoved);\n    this.uppy.on('cancel-all', this.onAllFilesRemoved);\n    if (this.opts.lazy) {\n      this.uppy.on('thumbnail:request', this.onFileAdded);\n      this.uppy.on('thumbnail:cancel', this.onCancelRequest);\n    } else {\n      this.uppy.on('thumbnail:request', this.onFileAdded);\n      this.uppy.on('file-added', this.onFileAdded);\n      this.uppy.on('restored', this.onRestored);\n    }\n    if (this.opts.waitForThumbnailsBeforeUpload) {\n      this.uppy.addPreProcessor(this.waitUntilAllProcessed);\n    }\n  }\n  uninstall() {\n    this.uppy.off('file-removed', this.onFileRemoved);\n    this.uppy.off('cancel-all', this.onAllFilesRemoved);\n    if (this.opts.lazy) {\n      this.uppy.off('thumbnail:request', this.onFileAdded);\n      this.uppy.off('thumbnail:cancel', this.onCancelRequest);\n    } else {\n      this.uppy.off('thumbnail:request', this.onFileAdded);\n      this.uppy.off('file-added', this.onFileAdded);\n      this.uppy.off('restored', this.onRestored);\n    }\n    if (this.opts.waitForThumbnailsBeforeUpload) {\n      this.uppy.removePreProcessor(this.waitUntilAllProcessed);\n    }\n  }\n}\nThumbnailGenerator.VERSION = packageJson.version;", "import isDOMElement from \"./isDOMElement.js\";\n/**\n * Find one or more DOM elements.\n */\nfunction findAllDOMElements(element) {\n  if (typeof element === 'string') {\n    const elements = document.querySelectorAll(element);\n    return elements.length === 0 ? null : Array.from(elements);\n  }\n  if (typeof element === 'object' && isDOMElement(element)) {\n    return [element];\n  }\n  return null;\n}\nexport default findAllDOMElements;", "/**\n * Converts list into array\n */\nexport default Array.from;", "/**\n * Recursive function, calls the original callback() when the directory is entirely parsed.\n */\nexport default function getFilesAndDirectoriesFromDirectory(directoryReader, oldEntries, logDropError, _ref) {\n  let {\n    onSuccess\n  } = _ref;\n  directoryReader.readEntries(entries => {\n    const newEntries = [...oldEntries, ...entries];\n    // According to the FileSystem API spec, getFilesAndDirectoriesFromDirectory()\n    // must be called until it calls the onSuccess with an empty array.\n    if (entries.length) {\n      queueMicrotask(() => {\n        getFilesAndDirectoriesFromDirectory(directoryReader, newEntries, logDropError, {\n          onSuccess\n        });\n      });\n      // Done iterating this particular directory\n    } else {\n      onSuccess(newEntries);\n    }\n  },\n  // Make sure we resolve on error anyway, it's fine if only one directory couldn't be parsed!\n  error => {\n    logDropError(error);\n    onSuccess(oldEntries);\n  });\n}", "import getFilesAndDirectoriesFromDirectory from \"./getFilesAndDirectoriesFromDirectory.js\";\n/**\n * Polyfill for the new (experimental) getAsFileSystemHandle API (using the popular webkitGetAsEntry behind the scenes)\n * so that we can switch to the getAsFileSystemHandle API once it (hopefully) becomes standard\n */\nfunction getAsFileSystemHandleFromEntry(entry, logDropError) {\n  if (entry == null) return entry;\n  return {\n    kind:\n    // eslint-disable-next-line no-nested-ternary\n    entry.isFile ? 'file' : entry.isDirectory ? 'directory' : undefined,\n    name: entry.name,\n    getFile() {\n      return new Promise((resolve, reject) => entry.file(resolve, reject));\n    },\n    async *values() {\n      // If the file is a directory.\n      const directoryReader = entry.createReader();\n      const entries = await new Promise(resolve => {\n        getFilesAndDirectoriesFromDirectory(directoryReader, [], logDropError, {\n          onSuccess: dirEntries => resolve(dirEntries.map(file => getAsFileSystemHandleFromEntry(file, logDropError)))\n        });\n      });\n      yield* entries;\n    },\n    isSameEntry: undefined\n  };\n}\nfunction createPromiseToAddFileOrParseDirectory(entry, relativePath, lastResortFile) {\n  try {\n    if (lastResortFile === void 0) {\n      lastResortFile = undefined;\n    }\n    return async function* () {\n      const getNextRelativePath = () => `${relativePath}/${entry.name}`;\n\n      // For each dropped item, - make sure it's a file/directory, and start deepening in!\n      if (entry.kind === 'file') {\n        const file = await entry.getFile();\n        if (file != null) {\n          ;\n          file.relativePath = relativePath ? getNextRelativePath() : null;\n          yield file;\n        } else if (lastResortFile != null) yield lastResortFile;\n      } else if (entry.kind === 'directory') {\n        for await (const handle of entry.values()) {\n          // Recurse on the directory, appending the dir name to the relative path\n          yield* createPromiseToAddFileOrParseDirectory(handle, relativePath ? getNextRelativePath() : entry.name);\n        }\n      } else if (lastResortFile != null) yield lastResortFile;\n    }();\n  } catch (e) {\n    return Promise.reject(e);\n  }\n}\n\n/**\n * Load all files from data transfer, and recursively read any directories.\n * Note that IE is not supported for drag-drop, because IE doesn't support Data Transfers\n *\n * @param {DataTransfer} dataTransfer\n * @param {*} logDropError on error\n */\nexport default async function* getFilesFromDataTransfer(dataTransfer, logDropError) {\n  // Retrieving the dropped items must happen synchronously\n  // otherwise only the first item gets treated and the other ones are garbage collected.\n  // https://github.com/transloadit/uppy/pull/3998\n  const fileSystemHandles = await Promise.all(Array.from(dataTransfer.items, async item => {\n    var _fileSystemHandle;\n    let fileSystemHandle;\n\n    // TODO enable getAsFileSystemHandle API once we can get it working with subdirectories\n    // IMPORTANT: Need to check isSecureContext *before* calling getAsFileSystemHandle\n    // or else Chrome will crash when running in HTTP: https://github.com/transloadit/uppy/issues/4133\n    // if (window.isSecureContext && item.getAsFileSystemHandle != null)\n    // fileSystemHandle = await item.getAsFileSystemHandle()\n\n    // `webkitGetAsEntry` exists in all popular browsers (including non-WebKit browsers),\n    // however it may be renamed to getAsEntry() in the future, so you should code defensively, looking for both.\n    // from https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/webkitGetAsEntry\n    const getAsEntry = () => typeof item.getAsEntry === 'function' ? item.getAsEntry() : item.webkitGetAsEntry();\n    // eslint-disable-next-line prefer-const\n    (_fileSystemHandle = fileSystemHandle) != null ? _fileSystemHandle : fileSystemHandle = getAsFileSystemHandleFromEntry(getAsEntry(), logDropError);\n    return {\n      fileSystemHandle,\n      lastResortFile: item.getAsFile() // can be used as a fallback in case other methods fail\n    };\n  }));\n  for (const {\n    lastResortFile,\n    fileSystemHandle\n  } of fileSystemHandles) {\n    // fileSystemHandle and lastResortFile can be null when we drop an url.\n    if (fileSystemHandle != null) {\n      try {\n        yield* createPromiseToAddFileOrParseDirectory(fileSystemHandle, '', lastResortFile);\n      } catch (err) {\n        // Example: If dropping a symbolic link, Chromium will throw:\n        // \"DOMException: A requested file or directory could not be found at the time an operation was processed.\",\n        // So we will use lastResortFile instead. See https://github.com/transloadit/uppy/issues/3505.\n        if (lastResortFile != null) {\n          yield lastResortFile;\n        } else {\n          logDropError(err);\n        }\n      }\n    } else if (lastResortFile != null) yield lastResortFile;\n  }\n}", "import toArray from \"../../toArray.js\";\n\n// .files fallback, should be implemented in any browser\nexport default function fallbackApi(dataTransfer) {\n  const files = toArray(dataTransfer.files);\n  return Promise.resolve(files);\n}", "import webkitGetAsEntryApi from \"./utils/webkitGetAsEntryApi/index.js\";\nimport fallbackApi from \"./utils/fallbackApi.js\";\n\n/**\n * Returns a promise that resolves to the array of dropped files (if a folder is\n * dropped, and browser supports folder parsing - promise resolves to the flat\n * array of all files in all directories).\n * Each file has .relativePath prop appended to it (e.g. \"/docs/Prague/ticket_from_prague_to_ufa.pdf\")\n * if browser supports it. Otherwise it's undefined.\n *\n * @param dataTransfer\n * @param options\n * @param options.logDropError - a function that's called every time some\n * folder or some file error out (e.g. because of the folder name being too long\n * on Windows). Notice that resulting promise will always be resolved anyway.\n *\n * @returns {Promise} - Array<File>\n */\nexport default async function getDroppedFiles(dataTransfer, options) {\n  var _options$logDropError;\n  // Get all files from all subdirs. Works (at least) in Chrome, Mozilla, and Safari\n  const logDropError = (_options$logDropError = options == null ? void 0 : options.logDropError) != null ? _options$logDropError : Function.prototype;\n  try {\n    const accumulator = [];\n    for await (const file of webkitGetAsEntryApi(dataTransfer, logDropError)) {\n      accumulator.push(file);\n    }\n    return accumulator;\n    // Otherwise just return all first-order files\n  } catch {\n    return fallbackApi(dataTransfer);\n  }\n}", "import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n", "export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined ?\n\tnew AbortError(errorMessage) :\n\tnew DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined ?\n\t\tgetDOMException('This operation was aborted.') :\n\t\tsignal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, milliseconds, fallback, options) {\n\tlet timer;\n\n\tconst cancelablePromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tresolve(promise);\n\t\t\treturn;\n\t\t}\n\n\t\toptions = {\n\t\t\tcustomTimers: {setTimeout, clearTimeout},\n\t\t\t...options\n\t\t};\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\ttimer = options.customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (typeof fallback === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst message = typeof fallback === 'string' ? fallback : `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\tconst timeoutError = fallback instanceof Error ? fallback : new TimeoutError(message);\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\treject(timeoutError);\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t} finally {\n\t\t\t\toptions.customTimers.clearTimeout.call(undefined, timer);\n\t\t\t}\n\t\t})();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tclearTimeout(timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n", "// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n    let first = 0;\n    let count = array.length;\n    while (count > 0) {\n        const step = Math.trunc(count / 2);\n        let it = first + step;\n        if (comparator(array[it], value) <= 0) {\n            first = ++it;\n            count -= step + 1;\n        }\n        else {\n            count = step;\n        }\n    }\n    return first;\n}\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PriorityQueue_queue;\nimport lowerBound from './lower-bound.js';\nclass PriorityQueue {\n    constructor() {\n        _PriorityQueue_queue.set(this, []);\n    }\n    enqueue(run, options) {\n        options = {\n            priority: 0,\n            ...options,\n        };\n        const element = {\n            priority: options.priority,\n            run,\n        };\n        if (this.size && __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\")[this.size - 1].priority >= options.priority) {\n            __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").push(element);\n            return;\n        }\n        const index = lowerBound(__classPrivateFieldGet(this, _PriorityQueue_queue, \"f\"), element, (a, b) => b.priority - a.priority);\n        __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").splice(index, 0, element);\n    }\n    dequeue() {\n        const item = __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").shift();\n        return item === null || item === void 0 ? void 0 : item.run;\n    }\n    filter(options) {\n        return __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").filter((element) => element.priority === options.priority).map((element) => element.run);\n    }\n    get size() {\n        return __classPrivateFieldGet(this, _PriorityQueue_queue, \"f\").length;\n    }\n}\n_PriorityQueue_queue = new WeakMap();\nexport default PriorityQueue;\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PQueue_instances, _PQueue_carryoverConcurrencyCount, _PQueue_isIntervalIgnored, _PQueue_intervalCount, _PQueue_intervalCap, _PQueue_interval, _PQueue_intervalEnd, _PQueue_intervalId, _PQueue_timeoutId, _PQueue_queue, _PQueue_queueClass, _PQueue_pending, _PQueue_concurrency, _PQueue_isPaused, _PQueue_throwOnTimeout, _PQueue_doesIntervalAllowAnother_get, _PQueue_doesConcurrentAllowAnother_get, _PQueue_next, _PQueue_onResumeInterval, _PQueue_isIntervalPaused_get, _PQueue_tryToStartAnother, _PQueue_initializeIntervalIfNeeded, _PQueue_onInterval, _PQueue_processQueue, _PQueue_throwOnAbort, _PQueue_onEvent;\nimport { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nThe error thrown by `queue.add()` when a job is aborted before it is run. See `signal`.\n*/\nexport class AbortError extends Error {\n}\n/**\nPromise queue with concurrency control.\n*/\nclass PQueue extends EventEmitter {\n    // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n    constructor(options) {\n        var _a, _b, _c, _d;\n        super();\n        _PQueue_instances.add(this);\n        _PQueue_carryoverConcurrencyCount.set(this, void 0);\n        _PQueue_isIntervalIgnored.set(this, void 0);\n        _PQueue_intervalCount.set(this, 0);\n        _PQueue_intervalCap.set(this, void 0);\n        _PQueue_interval.set(this, void 0);\n        _PQueue_intervalEnd.set(this, 0);\n        _PQueue_intervalId.set(this, void 0);\n        _PQueue_timeoutId.set(this, void 0);\n        _PQueue_queue.set(this, void 0);\n        _PQueue_queueClass.set(this, void 0);\n        _PQueue_pending.set(this, 0);\n        // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n        _PQueue_concurrency.set(this, void 0);\n        _PQueue_isPaused.set(this, void 0);\n        _PQueue_throwOnTimeout.set(this, void 0);\n        /**\n        Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n    \n        Applies to each future operation.\n        */\n        Object.defineProperty(this, \"timeout\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n        options = {\n            carryoverConcurrencyCount: false,\n            intervalCap: Number.POSITIVE_INFINITY,\n            interval: 0,\n            concurrency: Number.POSITIVE_INFINITY,\n            autoStart: true,\n            queueClass: PriorityQueue,\n            ...options,\n        };\n        if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n            throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${(_b = (_a = options.intervalCap) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''}\\` (${typeof options.intervalCap})`);\n        }\n        if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n            throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${(_d = (_c = options.interval) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : ''}\\` (${typeof options.interval})`);\n        }\n        __classPrivateFieldSet(this, _PQueue_carryoverConcurrencyCount, options.carryoverConcurrencyCount, \"f\");\n        __classPrivateFieldSet(this, _PQueue_isIntervalIgnored, options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0, \"f\");\n        __classPrivateFieldSet(this, _PQueue_intervalCap, options.intervalCap, \"f\");\n        __classPrivateFieldSet(this, _PQueue_interval, options.interval, \"f\");\n        __classPrivateFieldSet(this, _PQueue_queue, new options.queueClass(), \"f\");\n        __classPrivateFieldSet(this, _PQueue_queueClass, options.queueClass, \"f\");\n        this.concurrency = options.concurrency;\n        this.timeout = options.timeout;\n        __classPrivateFieldSet(this, _PQueue_throwOnTimeout, options.throwOnTimeout === true, \"f\");\n        __classPrivateFieldSet(this, _PQueue_isPaused, options.autoStart === false, \"f\");\n    }\n    get concurrency() {\n        return __classPrivateFieldGet(this, _PQueue_concurrency, \"f\");\n    }\n    set concurrency(newConcurrency) {\n        if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n            throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n        }\n        __classPrivateFieldSet(this, _PQueue_concurrency, newConcurrency, \"f\");\n        __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n    }\n    async add(function_, options = {}) {\n        options = {\n            timeout: this.timeout,\n            throwOnTimeout: __classPrivateFieldGet(this, _PQueue_throwOnTimeout, \"f\"),\n            ...options,\n        };\n        return new Promise((resolve, reject) => {\n            __classPrivateFieldGet(this, _PQueue_queue, \"f\").enqueue(async () => {\n                var _a;\n                var _b, _c;\n                __classPrivateFieldSet(this, _PQueue_pending, (_b = __classPrivateFieldGet(this, _PQueue_pending, \"f\"), _b++, _b), \"f\");\n                __classPrivateFieldSet(this, _PQueue_intervalCount, (_c = __classPrivateFieldGet(this, _PQueue_intervalCount, \"f\"), _c++, _c), \"f\");\n                try {\n                    // TODO: Use options.signal?.throwIfAborted() when targeting Node.js 18\n                    if ((_a = options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {\n                        // TODO: Use ABORT_ERR code when targeting Node.js 16 (https://nodejs.org/docs/latest-v16.x/api/errors.html#abort_err)\n                        throw new AbortError('The task was aborted.');\n                    }\n                    let operation = function_({ signal: options.signal });\n                    if (options.timeout) {\n                        operation = pTimeout(Promise.resolve(operation), options.timeout);\n                    }\n                    if (options.signal) {\n                        operation = Promise.race([operation, __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_throwOnAbort).call(this, options.signal)]);\n                    }\n                    const result = await operation;\n                    resolve(result);\n                    this.emit('completed', result);\n                }\n                catch (error) {\n                    if (error instanceof TimeoutError && !options.throwOnTimeout) {\n                        resolve();\n                        return;\n                    }\n                    reject(error);\n                    this.emit('error', error);\n                }\n                finally {\n                    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_next).call(this);\n                }\n            }, options);\n            this.emit('add');\n            __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this);\n        });\n    }\n    async addAll(functions, options) {\n        return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n    }\n    /**\n    Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n    */\n    start() {\n        if (!__classPrivateFieldGet(this, _PQueue_isPaused, \"f\")) {\n            return this;\n        }\n        __classPrivateFieldSet(this, _PQueue_isPaused, false, \"f\");\n        __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n        return this;\n    }\n    /**\n    Put queue execution on hold.\n    */\n    pause() {\n        __classPrivateFieldSet(this, _PQueue_isPaused, true, \"f\");\n    }\n    /**\n    Clear the queue.\n    */\n    clear() {\n        __classPrivateFieldSet(this, _PQueue_queue, new (__classPrivateFieldGet(this, _PQueue_queueClass, \"f\"))(), \"f\");\n    }\n    /**\n    Can be called multiple times. Useful if you for example add additional items at a later time.\n\n    @returns A promise that settles when the queue becomes empty.\n    */\n    async onEmpty() {\n        // Instantly resolve if the queue is empty\n        if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n            return;\n        }\n        await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'empty');\n    }\n    /**\n    @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n    If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n    Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n    */\n    async onSizeLessThan(limit) {\n        // Instantly resolve if the queue is empty.\n        if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size < limit) {\n            return;\n        }\n        await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'next', () => __classPrivateFieldGet(this, _PQueue_queue, \"f\").size < limit);\n    }\n    /**\n    The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n    @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n    */\n    async onIdle() {\n        // Instantly resolve if none pending and if nothing else is queued\n        if (__classPrivateFieldGet(this, _PQueue_pending, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n            return;\n        }\n        await __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onEvent).call(this, 'idle');\n    }\n    /**\n    Size of the queue, the number of queued items waiting to run.\n    */\n    get size() {\n        return __classPrivateFieldGet(this, _PQueue_queue, \"f\").size;\n    }\n    /**\n    Size of the queue, filtered by the given options.\n\n    For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n    */\n    sizeBy(options) {\n        // eslint-disable-next-line unicorn/no-array-callback-reference\n        return __classPrivateFieldGet(this, _PQueue_queue, \"f\").filter(options).length;\n    }\n    /**\n    Number of running items (no longer in the queue).\n    */\n    get pending() {\n        return __classPrivateFieldGet(this, _PQueue_pending, \"f\");\n    }\n    /**\n    Whether the queue is currently paused.\n    */\n    get isPaused() {\n        return __classPrivateFieldGet(this, _PQueue_isPaused, \"f\");\n    }\n}\n_PQueue_carryoverConcurrencyCount = new WeakMap(), _PQueue_isIntervalIgnored = new WeakMap(), _PQueue_intervalCount = new WeakMap(), _PQueue_intervalCap = new WeakMap(), _PQueue_interval = new WeakMap(), _PQueue_intervalEnd = new WeakMap(), _PQueue_intervalId = new WeakMap(), _PQueue_timeoutId = new WeakMap(), _PQueue_queue = new WeakMap(), _PQueue_queueClass = new WeakMap(), _PQueue_pending = new WeakMap(), _PQueue_concurrency = new WeakMap(), _PQueue_isPaused = new WeakMap(), _PQueue_throwOnTimeout = new WeakMap(), _PQueue_instances = new WeakSet(), _PQueue_doesIntervalAllowAnother_get = function _PQueue_doesIntervalAllowAnother_get() {\n    return __classPrivateFieldGet(this, _PQueue_isIntervalIgnored, \"f\") || __classPrivateFieldGet(this, _PQueue_intervalCount, \"f\") < __classPrivateFieldGet(this, _PQueue_intervalCap, \"f\");\n}, _PQueue_doesConcurrentAllowAnother_get = function _PQueue_doesConcurrentAllowAnother_get() {\n    return __classPrivateFieldGet(this, _PQueue_pending, \"f\") < __classPrivateFieldGet(this, _PQueue_concurrency, \"f\");\n}, _PQueue_next = function _PQueue_next() {\n    var _a;\n    __classPrivateFieldSet(this, _PQueue_pending, (_a = __classPrivateFieldGet(this, _PQueue_pending, \"f\"), _a--, _a), \"f\");\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this);\n    this.emit('next');\n}, _PQueue_onResumeInterval = function _PQueue_onResumeInterval() {\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onInterval).call(this);\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_initializeIntervalIfNeeded).call(this);\n    __classPrivateFieldSet(this, _PQueue_timeoutId, undefined, \"f\");\n}, _PQueue_isIntervalPaused_get = function _PQueue_isIntervalPaused_get() {\n    const now = Date.now();\n    if (__classPrivateFieldGet(this, _PQueue_intervalId, \"f\") === undefined) {\n        const delay = __classPrivateFieldGet(this, _PQueue_intervalEnd, \"f\") - now;\n        if (delay < 0) {\n            // Act as the interval was done\n            // We don't need to resume it here because it will be resumed on line 160\n            __classPrivateFieldSet(this, _PQueue_intervalCount, (__classPrivateFieldGet(this, _PQueue_carryoverConcurrencyCount, \"f\")) ? __classPrivateFieldGet(this, _PQueue_pending, \"f\") : 0, \"f\");\n        }\n        else {\n            // Act as the interval is pending\n            if (__classPrivateFieldGet(this, _PQueue_timeoutId, \"f\") === undefined) {\n                __classPrivateFieldSet(this, _PQueue_timeoutId, setTimeout(() => {\n                    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onResumeInterval).call(this);\n                }, delay), \"f\");\n            }\n            return true;\n        }\n    }\n    return false;\n}, _PQueue_tryToStartAnother = function _PQueue_tryToStartAnother() {\n    if (__classPrivateFieldGet(this, _PQueue_queue, \"f\").size === 0) {\n        // We can clear the interval (\"pause\")\n        // Because we can redo it later (\"resume\")\n        if (__classPrivateFieldGet(this, _PQueue_intervalId, \"f\")) {\n            clearInterval(__classPrivateFieldGet(this, _PQueue_intervalId, \"f\"));\n        }\n        __classPrivateFieldSet(this, _PQueue_intervalId, undefined, \"f\");\n        this.emit('empty');\n        if (__classPrivateFieldGet(this, _PQueue_pending, \"f\") === 0) {\n            this.emit('idle');\n        }\n        return false;\n    }\n    if (!__classPrivateFieldGet(this, _PQueue_isPaused, \"f\")) {\n        const canInitializeInterval = !__classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_isIntervalPaused_get);\n        if (__classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_doesIntervalAllowAnother_get) && __classPrivateFieldGet(this, _PQueue_instances, \"a\", _PQueue_doesConcurrentAllowAnother_get)) {\n            const job = __classPrivateFieldGet(this, _PQueue_queue, \"f\").dequeue();\n            if (!job) {\n                return false;\n            }\n            this.emit('active');\n            job();\n            if (canInitializeInterval) {\n                __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_initializeIntervalIfNeeded).call(this);\n            }\n            return true;\n        }\n    }\n    return false;\n}, _PQueue_initializeIntervalIfNeeded = function _PQueue_initializeIntervalIfNeeded() {\n    if (__classPrivateFieldGet(this, _PQueue_isIntervalIgnored, \"f\") || __classPrivateFieldGet(this, _PQueue_intervalId, \"f\") !== undefined) {\n        return;\n    }\n    __classPrivateFieldSet(this, _PQueue_intervalId, setInterval(() => {\n        __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_onInterval).call(this);\n    }, __classPrivateFieldGet(this, _PQueue_interval, \"f\")), \"f\");\n    __classPrivateFieldSet(this, _PQueue_intervalEnd, Date.now() + __classPrivateFieldGet(this, _PQueue_interval, \"f\"), \"f\");\n}, _PQueue_onInterval = function _PQueue_onInterval() {\n    if (__classPrivateFieldGet(this, _PQueue_intervalCount, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_pending, \"f\") === 0 && __classPrivateFieldGet(this, _PQueue_intervalId, \"f\")) {\n        clearInterval(__classPrivateFieldGet(this, _PQueue_intervalId, \"f\"));\n        __classPrivateFieldSet(this, _PQueue_intervalId, undefined, \"f\");\n    }\n    __classPrivateFieldSet(this, _PQueue_intervalCount, __classPrivateFieldGet(this, _PQueue_carryoverConcurrencyCount, \"f\") ? __classPrivateFieldGet(this, _PQueue_pending, \"f\") : 0, \"f\");\n    __classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_processQueue).call(this);\n}, _PQueue_processQueue = function _PQueue_processQueue() {\n    // eslint-disable-next-line no-empty\n    while (__classPrivateFieldGet(this, _PQueue_instances, \"m\", _PQueue_tryToStartAnother).call(this)) { }\n}, _PQueue_throwOnAbort = async function _PQueue_throwOnAbort(signal) {\n    return new Promise((_resolve, reject) => {\n        signal.addEventListener('abort', () => {\n            // TODO: Reject with signal.throwIfAborted() when targeting Node.js 18\n            // TODO: Use ABORT_ERR code when targeting Node.js 16 (https://nodejs.org/docs/latest-v16.x/api/errors.html#abort_err)\n            reject(new AbortError('The task was aborted.'));\n        }, { once: true });\n    });\n}, _PQueue_onEvent = async function _PQueue_onEvent(event, filter) {\n    return new Promise(resolve => {\n        const listener = () => {\n            if (filter && !filter()) {\n                return;\n            }\n            this.off(event, listener);\n            resolve();\n        };\n        this.on(event, listener);\n    });\n};\nexport default PQueue;\n", "import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentIndex = 0;\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tlet prevScu = currentComponent.shouldComponentUpdate;\n\t\t\tconst prevCWU = currentComponent.componentWillUpdate;\n\n\t\t\t// If we're dealing with a forced update `shouldComponentUpdate` will\n\t\t\t// not be called. But we use that to update the hook values, so we\n\t\t\t// need to call it.\n\t\t\tcurrentComponent.componentWillUpdate = function (p, s, c) {\n\t\t\t\tif (this._force) {\n\t\t\t\t\tlet tmp = prevScu;\n\t\t\t\t\t// Clear to avoid other sCU hooks from being called\n\t\t\t\t\tprevScu = undefined;\n\t\t\t\t\tupdateHookState(p, s, c);\n\t\t\t\t\tprevScu = tmp;\n\t\t\t\t}\n\n\t\t\t\tif (prevCWU) prevCWU.call(this, p, s, c);\n\t\t\t};\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\t/**\n\t\t\t *\n\t\t\t * @type {import('./internal').Component[\"shouldComponentUpdate\"]}\n\t\t\t */\n\t\t\t// @ts-ignore - We don't use TS to downtranspile\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction updateHookState(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\tcurrentComponent.shouldComponentUpdate = updateHookState;\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport { useCallback } from 'preact/hooks';\nfunction GoogleIcon() {\n  return h(\"svg\", {\n    width: \"26\",\n    height: \"26\",\n    viewBox: \"0 0 26 26\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, h(\"g\", {\n    fill: \"none\",\n    \"fill-rule\": \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#FFF\",\n    cx: \"13\",\n    cy: \"13\",\n    r: \"13\"\n  }), h(\"path\", {\n    d: \"M21.64 13.205c0-.639-.057-1.252-.164-1.841H13v3.481h4.844a4.14 4.14 0 01-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615z\",\n    fill: \"#4285F4\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M13 22c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H4.957v2.332A8.997 8.997 0 0013 22z\",\n    fill: \"#34A853\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M7.964 14.71A5.41 5.41 0 017.682 13c0-.593.102-1.17.282-1.71V8.958H4.957A8.996 8.996 0 004 13c0 1.452.348 2.827.957 4.042l3.007-2.332z\",\n    fill: \"#FBBC05\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M13 7.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C17.463 4.891 15.426 4 13 4a8.997 8.997 0 00-8.043 4.958l3.007 2.332C8.672 9.163 10.656 7.58 13 7.58z\",\n    fill: \"#EA4335\",\n    \"fill-rule\": \"nonzero\"\n  }), h(\"path\", {\n    d: \"M4 4h18v18H4z\"\n  })));\n}\nfunction DefaultForm(_ref) {\n  let {\n    pluginName,\n    i18n,\n    onAuth\n  } = _ref;\n  // In order to comply with Google's brand we need to create a different button\n  // for the Google Drive plugin\n  const isGoogleDrive = pluginName === 'Google Drive';\n  const onSubmit = useCallback(e => {\n    e.preventDefault();\n    onAuth();\n  }, [onAuth]);\n  return h(\"form\", {\n    onSubmit: onSubmit\n  }, isGoogleDrive ? h(\"button\", {\n    type: \"submit\",\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Provider-authBtn uppy-Provider-btn-google\",\n    \"data-uppy-super-focusable\": true\n  }, h(GoogleIcon, null), i18n('signInWithGoogle')) : h(\"button\", {\n    type: \"submit\",\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Provider-authBtn\",\n    \"data-uppy-super-focusable\": true\n  }, i18n('authenticateWith', {\n    pluginName\n  })));\n}\nconst defaultRenderForm = _ref2 => {\n  let {\n    pluginName,\n    i18n,\n    onAuth\n  } = _ref2;\n  return h(DefaultForm, {\n    pluginName: pluginName,\n    i18n: i18n,\n    onAuth: onAuth\n  });\n};\nexport default function AuthView(props) {\n  const {\n    loading,\n    pluginName,\n    pluginIcon,\n    i18n,\n    handleAuth,\n    renderForm = defaultRenderForm\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Provider-auth\"\n  }, h(\"div\", {\n    className: \"uppy-Provider-authIcon\"\n  }, pluginIcon()), h(\"div\", {\n    className: \"uppy-Provider-authTitle\"\n  }, i18n('authenticateWithTitle', {\n    pluginName\n  })), h(\"div\", {\n    className: \"uppy-Provider-authForm\"\n  }, renderForm({\n    pluginName,\n    i18n,\n    loading,\n    onAuth: handleAuth\n  })));\n}", "import { h, Fragment } from 'preact';\nexport default function User(_ref) {\n  let {\n    i18n,\n    logout,\n    username\n  } = _ref;\n  return h(Fragment, null, h(\"span\", {\n    className: \"uppy-ProviderBrowser-user\",\n    key: \"username\"\n  }, username), h(\"button\", {\n    type: \"button\",\n    onClick: logout,\n    className: \"uppy-u-reset uppy-c-btn uppy-ProviderBrowser-userLogout\",\n    key: \"logout\"\n  }, i18n('logOut')));\n}", "import { h, Fragment } from 'preact';\nconst Breadcrumb = props => {\n  const {\n    getFolder,\n    title,\n    isLast\n  } = props;\n  return h(Fragment, null, h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn\",\n    onClick: getFolder\n  }, title), !isLast ? ' / ' : '');\n};\nexport default function Breadcrumbs(props) {\n  const {\n    getFolder,\n    title,\n    breadcrumbsIcon,\n    breadcrumbs\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Provider-breadcrumbs\"\n  }, h(\"div\", {\n    className: \"uppy-Provider-breadcrumbsIcon\"\n  }, breadcrumbsIcon), breadcrumbs.map((directory, i) => h(Breadcrumb, {\n    key: directory.id,\n    getFolder: () => getFolder(directory.requestPath, directory.name),\n    title: i === 0 ? title : directory.name,\n    isLast: i + 1 === breadcrumbs.length\n  })));\n}", "/* eslint-disable react/destructuring-assignment */\nimport { h, Fragment } from 'preact';\nimport User from \"./User.js\";\nimport Breadcrumbs from \"../Breadcrumbs.js\";\nexport default function Header(props) {\n  return h(Fragment, null, props.showBreadcrumbs && h(Breadcrumbs, {\n    getFolder: props.getFolder,\n    breadcrumbs: props.breadcrumbs,\n    breadcrumbsIcon: props.pluginIcon && props.pluginIcon(),\n    title: props.title\n  }), h(User, {\n    logout: props.logout,\n    username: props.username,\n    i18n: props.i18n\n  }));\n}", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport remoteFileObjToLocal from '@uppy/utils/lib/remoteFileObjToLocal';\nimport { useMemo } from 'preact/hooks';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport VirtualList from '@uppy/utils/lib/VirtualList';\nimport SearchFilterInput from \"./SearchFilterInput.js\";\nimport FooterActions from \"./FooterActions.js\";\nimport Item from \"./Item/index.js\";\nconst VIRTUAL_SHARED_DIR = 'shared-with-me';\nfunction ListItem(props) {\n  const {\n    currentSelection,\n    uppyFiles,\n    viewType,\n    isChecked,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    showTitles,\n    i18n,\n    validateRestrictions,\n    getNextFolder,\n    f\n  } = props;\n  if (f.isFolder) {\n    return Item({\n      showTitles,\n      viewType,\n      i18n,\n      id: f.id,\n      title: f.name,\n      getItemIcon: () => f.icon,\n      isChecked: isChecked(f),\n      toggleCheckbox: event => toggleCheckbox(event, f),\n      recordShiftKeyPress,\n      type: 'folder',\n      // TODO: when was this supposed to be true?\n      isDisabled: false,\n      isCheckboxDisabled: f.id === VIRTUAL_SHARED_DIR,\n      // getNextFolder always exists when f.isFolder is true\n      handleFolderClick: () => getNextFolder(f)\n    });\n  }\n  const restrictionError = validateRestrictions(remoteFileObjToLocal(f), [...uppyFiles, ...currentSelection]);\n  return Item({\n    id: f.id,\n    title: f.name,\n    author: f.author,\n    getItemIcon: () => f.icon,\n    isChecked: isChecked(f),\n    toggleCheckbox: event => toggleCheckbox(event, f),\n    isCheckboxDisabled: false,\n    recordShiftKeyPress,\n    showTitles,\n    viewType,\n    i18n,\n    type: 'file',\n    isDisabled: Boolean(restrictionError) && !isChecked(f),\n    restrictionError\n  });\n}\nfunction Browser(props) {\n  const {\n    currentSelection,\n    folders,\n    files,\n    uppyFiles,\n    viewType,\n    headerComponent,\n    showBreadcrumbs,\n    isChecked,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    handleScroll,\n    showTitles,\n    i18n,\n    validateRestrictions,\n    isLoading,\n    showSearchFilter,\n    search,\n    searchTerm,\n    clearSearch,\n    searchOnInput,\n    searchInputLabel,\n    clearSearchLabel,\n    getNextFolder,\n    cancel,\n    done,\n    noResultsLabel,\n    loadAllFiles\n  } = props;\n  const selected = currentSelection.length;\n  const rows = useMemo(() => [...folders, ...files], [folders, files]);\n  return h(\"div\", {\n    className: classNames('uppy-ProviderBrowser', `uppy-ProviderBrowser-viewType--${viewType}`)\n  }, headerComponent && h(\"div\", {\n    className: \"uppy-ProviderBrowser-header\"\n  }, h(\"div\", {\n    className: classNames('uppy-ProviderBrowser-headerBar', !showBreadcrumbs && 'uppy-ProviderBrowser-headerBar--simple')\n  }, headerComponent)), showSearchFilter && h(\"div\", {\n    class: \"uppy-ProviderBrowser-searchFilter\"\n  }, h(SearchFilterInput, {\n    search: search,\n    searchTerm: searchTerm,\n    clearSearch: clearSearch,\n    inputLabel: searchInputLabel,\n    clearSearchLabel: clearSearchLabel,\n    inputClassName: \"uppy-ProviderBrowser-searchFilterInput\",\n    searchOnInput: searchOnInput\n  })), (() => {\n    if (isLoading) {\n      return h(\"div\", {\n        className: \"uppy-Provider-loading\"\n      }, h(\"span\", null, i18n('loading')));\n    }\n    if (!folders.length && !files.length) {\n      return h(\"div\", {\n        className: \"uppy-Provider-empty\"\n      }, noResultsLabel);\n    }\n    if (loadAllFiles) {\n      return h(\"div\", {\n        className: \"uppy-ProviderBrowser-body\"\n      }, h(\"ul\", {\n        className: \"uppy-ProviderBrowser-list\"\n      }, h(VirtualList, {\n        data: rows,\n        renderRow: f => h(ListItem, {\n          currentSelection: currentSelection,\n          uppyFiles: uppyFiles,\n          viewType: viewType,\n          isChecked: isChecked,\n          toggleCheckbox: toggleCheckbox,\n          recordShiftKeyPress: recordShiftKeyPress,\n          showTitles: showTitles,\n          i18n: i18n,\n          validateRestrictions: validateRestrictions,\n          getNextFolder: getNextFolder,\n          f: f\n        }),\n        rowHeight: 31\n      })));\n    }\n    return h(\"div\", {\n      className: \"uppy-ProviderBrowser-body\"\n    }, h(\"ul\", {\n      className: \"uppy-ProviderBrowser-list\",\n      onScroll: handleScroll,\n      role: \"listbox\"\n      // making <ul> not focusable for firefox\n      ,\n      tabIndex: -1\n    }, rows.map(f => h(ListItem, {\n      currentSelection: currentSelection,\n      uppyFiles: uppyFiles,\n      viewType: viewType,\n      isChecked: isChecked,\n      toggleCheckbox: toggleCheckbox,\n      recordShiftKeyPress: recordShiftKeyPress,\n      showTitles: showTitles,\n      i18n: i18n,\n      validateRestrictions: validateRestrictions,\n      getNextFolder: getNextFolder,\n      f: f\n    }))));\n  })(), selected > 0 && h(FooterActions, {\n    selected: selected,\n    done: done,\n    cancel: cancel,\n    i18n: i18n\n  }));\n}\nexport default Browser;", "import getFileNameAndExtension from \"./getFileNameAndExtension.js\";\nexport default function remoteFileObjToLocal(file) {\n  return {\n    ...file,\n    type: file.mimeType,\n    extension: file.name ? getFileNameAndExtension(file.name).extension : null\n  };\n}", "function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * Adapted from preact-virtual-list: https://github.com/developit/preact-virtual-list\n *\n * \u00A9 2016 Jason Miller\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * Adaptations:\n * - Added role=presentation to helper elements\n * - Tweaked styles for Uppy's Dashboard use case\n */\n\nimport { h, Component } from 'preact';\nconst STYLE_INNER = {\n  position: 'relative',\n  // Disabled for our use case: the wrapper elements around FileList already deal with overflow,\n  // and this additional property would hide things that we want to show.\n  //\n  // overflow: 'hidden',\n  width: '100%',\n  minHeight: '100%'\n};\nconst STYLE_CONTENT = {\n  position: 'absolute',\n  top: 0,\n  left: 0,\n  // Because the `top` value gets set to some offset, this `height` being 100% would make the scrollbar\n  // stretch far beyond the content. For our use case, the content div actually can get its height from\n  // the elements inside it, so we don't need to specify a `height` property at all.\n  //\n  // height: '100%',\n  width: '100%',\n  overflow: 'visible'\n};\nclass VirtualList extends Component {\n  constructor(props) {\n    super(props);\n\n    // The currently focused node, used to retain focus when the visible rows change.\n    // To avoid update loops, this should not cause state updates, so it's kept as a plain property.\n    this.handleScroll = () => {\n      this.setState({\n        offset: this.base.scrollTop\n      });\n    };\n    this.handleResize = () => {\n      this.resize();\n    };\n    this.focusElement = null;\n    this.state = {\n      offset: 0,\n      height: 0\n    };\n  }\n  componentDidMount() {\n    this.resize();\n    window.addEventListener('resize', this.handleResize);\n  }\n\n  // TODO: refactor to stable lifecycle method\n  // eslint-disable-next-line\n  componentWillUpdate() {\n    if (this.base.contains(document.activeElement)) {\n      this.focusElement = document.activeElement;\n    }\n  }\n  componentDidUpdate() {\n    // Maintain focus when rows are added and removed.\n    if (this.focusElement && this.focusElement.parentNode && document.activeElement !== this.focusElement) {\n      this.focusElement.focus();\n    }\n    this.focusElement = null;\n    this.resize();\n  }\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.handleResize);\n  }\n  resize() {\n    const {\n      height\n    } = this.state;\n    if (height !== this.base.offsetHeight) {\n      this.setState({\n        height: this.base.offsetHeight\n      });\n    }\n  }\n  render(_ref) {\n    let {\n      data,\n      rowHeight,\n      renderRow,\n      overscanCount = 10,\n      ...props\n    } = _ref;\n    const {\n      offset,\n      height\n    } = this.state;\n    // first visible row index\n    let start = Math.floor(offset / rowHeight);\n\n    // actual number of visible rows (without overscan)\n    let visibleRowCount = Math.floor(height / rowHeight);\n\n    // Overscan: render blocks of rows modulo an overscan row count\n    // This dramatically reduces DOM writes during scrolling\n    if (overscanCount) {\n      start = Math.max(0, start - start % overscanCount);\n      visibleRowCount += overscanCount;\n    }\n\n    // last visible + overscan row index + padding to allow keyboard focus to travel past the visible area\n    const end = start + visibleRowCount + 4;\n\n    // data slice currently in viewport plus overscan items\n    const selection = data.slice(start, end);\n    const styleInner = {\n      ...STYLE_INNER,\n      height: data.length * rowHeight\n    };\n    const styleContent = {\n      ...STYLE_CONTENT,\n      top: start * rowHeight\n    };\n\n    // The `role=\"presentation\"` attributes ensure that these wrapper elements are not treated as list\n    // items by accessibility and outline tools.\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(\"div\", _extends({\n        onScroll: this.handleScroll\n      }, props), h(\"div\", {\n        role: \"presentation\",\n        style: styleInner\n      }, h(\"div\", {\n        role: \"presentation\",\n        style: styleContent\n      }, selection.map(renderRow))))\n    );\n  }\n}\nexport default VirtualList;", "/* eslint-disable react/require-default-props */\nimport { h, Fragment } from 'preact';\nimport { useEffect, useState, useCallback } from 'preact/hooks';\nimport { nanoid } from 'nanoid/non-secure';\nexport default function SearchFilterInput(props) {\n  const {\n    search,\n    searchOnInput,\n    searchTerm,\n    showButton,\n    inputLabel,\n    clearSearchLabel,\n    buttonLabel,\n    clearSearch,\n    inputClassName,\n    buttonCSSClassName\n  } = props;\n  const [searchText, setSearchText] = useState(searchTerm != null ? searchTerm : '');\n  // const debouncedSearch = debounce((q) => search(q), 1000)\n\n  const validateAndSearch = useCallback(ev => {\n    ev.preventDefault();\n    search(searchText);\n  }, [search, searchText]);\n  const handleInput = useCallback(ev => {\n    const inputValue = ev.target.value;\n    setSearchText(inputValue);\n    if (searchOnInput) search(inputValue);\n  }, [setSearchText, searchOnInput, search]);\n  const handleReset = () => {\n    setSearchText('');\n    if (clearSearch) clearSearch();\n  };\n  const [form] = useState(() => {\n    const formEl = document.createElement('form');\n    formEl.setAttribute('tabindex', '-1');\n    formEl.id = nanoid();\n    return formEl;\n  });\n  useEffect(() => {\n    document.body.appendChild(form);\n    form.addEventListener('submit', validateAndSearch);\n    return () => {\n      form.removeEventListener('submit', validateAndSearch);\n      document.body.removeChild(form);\n    };\n  }, [form, validateAndSearch]);\n  return h(Fragment, null, h(\"input\", {\n    className: `uppy-u-reset ${inputClassName}`,\n    type: \"search\",\n    \"aria-label\": inputLabel,\n    placeholder: inputLabel,\n    value: searchText,\n    onInput: handleInput,\n    form: form.id,\n    \"data-uppy-super-focusable\": true\n  }), !showButton && h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon uppy-ProviderBrowser-searchFilterIcon\",\n    width: \"12\",\n    height: \"12\",\n    viewBox: \"0 0 12 12\"\n  }, h(\"path\", {\n    d: \"M8.638 7.99l3.172 3.172a.492.492 0 1 1-.697.697L7.91 8.656a4.977 4.977 0 0 1-2.983.983C2.206 9.639 0 7.481 0 4.819 0 2.158 2.206 0 4.927 0c2.721 0 4.927 2.158 4.927 4.82a4.74 4.74 0 0 1-1.216 3.17zm-3.71.685c2.176 0 3.94-1.726 3.94-3.856 0-2.129-1.764-3.855-3.94-3.855C2.75.964.984 2.69.984 4.819c0 2.13 1.765 3.856 3.942 3.856z\"\n  })), !showButton && searchText && h(\"button\", {\n    className: \"uppy-u-reset uppy-ProviderBrowser-searchFilterReset\",\n    type: \"button\",\n    \"aria-label\": clearSearchLabel,\n    title: clearSearchLabel,\n    onClick: handleReset\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    viewBox: \"0 0 19 19\"\n  }, h(\"path\", {\n    d: \"M17.318 17.232L9.94 9.854 9.586 9.5l-.354.354-7.378 7.378h.707l-.62-.62v.706L9.318 9.94l.354-.354-.354-.354L1.94 1.854v.707l.62-.62h-.706l7.378 7.378.354.354.354-.354 7.378-7.378h-.707l.622.62v-.706L9.854 9.232l-.354.354.354.354 7.378 7.378.708-.707-7.38-7.378v.708l7.38-7.38.353-.353-.353-.353-.622-.622-.353-.353-.354.352-7.378 7.38h.708L2.56 1.23 2.208.88l-.353.353-.622.62-.353.355.352.353 7.38 7.38v-.708l-7.38 7.38-.353.353.352.353.622.622.353.353.354-.353 7.38-7.38h-.708l7.38 7.38z\"\n  }))), showButton && h(\"button\", {\n    className: `uppy-u-reset uppy-c-btn uppy-c-btn-primary ${buttonCSSClassName}`,\n    type: \"submit\",\n    form: form.id\n  }, buttonLabel));\n}", "import { h } from 'preact';\nexport default function FooterActions(_ref) {\n  let {\n    cancel,\n    done,\n    i18n,\n    selected\n  } = _ref;\n  return h(\"div\", {\n    className: \"uppy-ProviderBrowser-footer\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary\",\n    onClick: done,\n    type: \"button\"\n  }, i18n('selectX', {\n    smart_count: selected\n  })), h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-link\",\n    onClick: cancel,\n    type: \"button\"\n  }, i18n('cancel')));\n}", "function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport ItemIcon from \"./components/ItemIcon.js\";\nimport GridListItem from \"./components/GridLi.js\";\nimport ListItem from \"./components/ListLi.js\";\nexport default function Item(props) {\n  const {\n    author,\n    getItemIcon,\n    isChecked,\n    isDisabled,\n    viewType\n  } = props;\n  const itemIconString = getItemIcon();\n  const className = classNames('uppy-ProviderBrowserItem', {\n    'uppy-ProviderBrowserItem--selected': isChecked\n  }, {\n    'uppy-ProviderBrowserItem--disabled': isDisabled\n  }, {\n    'uppy-ProviderBrowserItem--noPreview': itemIconString === 'video'\n  });\n  const itemIconEl = h(ItemIcon, {\n    itemIconString: itemIconString\n  });\n  switch (viewType) {\n    case 'grid':\n      return h(GridListItem, _extends({}, props, {\n        className: className,\n        itemIconEl: itemIconEl\n      }));\n    case 'list':\n      return h(ListItem, _extends({}, props, {\n        className: className,\n        itemIconEl: itemIconEl\n      }));\n    case 'unsplash':\n      return h(GridListItem, _extends({}, props, {\n        className: className,\n        itemIconEl: itemIconEl\n      }), h(\"a\", {\n        href: `${author.url}?utm_source=Companion&utm_medium=referral`,\n        target: \"_blank\",\n        rel: \"noopener noreferrer\",\n        className: \"uppy-ProviderBrowserItem-author\",\n        tabIndex: -1\n      }, author.name));\n    default:\n      throw new Error(`There is no such type ${viewType}`);\n  }\n}", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nfunction FileIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: 11,\n    height: 14.5,\n    viewBox: \"0 0 44 58\"\n  }, h(\"path\", {\n    d: \"M27.437.517a1 1 0 0 0-.094.03H4.25C2.037.548.217 2.368.217 4.58v48.405c0 2.212 1.82 4.03 4.03 4.03H39.03c2.21 0 4.03-1.818 4.03-4.03V15.61a1 1 0 0 0-.03-.28 1 1 0 0 0 0-.093 1 1 0 0 0-.03-.032 1 1 0 0 0 0-.03 1 1 0 0 0-.032-.063 1 1 0 0 0-.03-.063 1 1 0 0 0-.032 0 1 1 0 0 0-.03-.063 1 1 0 0 0-.032-.03 1 1 0 0 0-.03-.063 1 1 0 0 0-.063-.062l-14.593-14a1 1 0 0 0-.062-.062A1 1 0 0 0 28 .708a1 1 0 0 0-.374-.157 1 1 0 0 0-.156 0 1 1 0 0 0-.03-.03l-.003-.003zM4.25 2.547h22.218v9.97c0 2.21 1.82 4.03 4.03 4.03h10.564v36.438a2.02 2.02 0 0 1-2.032 2.032H4.25c-1.13 0-2.032-.9-2.032-2.032V4.58c0-1.13.902-2.032 2.03-2.032zm24.218 1.345l10.375 9.937.75.718H30.5c-1.13 0-2.032-.9-2.032-2.03V3.89z\"\n  }));\n}\nfunction FolderIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    style: {\n      minWidth: 16,\n      marginRight: 3\n    },\n    viewBox: \"0 0 276.157 276.157\"\n  }, h(\"path\", {\n    d: \"M273.08 101.378c-3.3-4.65-8.86-7.32-15.254-7.32h-24.34V67.59c0-10.2-8.3-18.5-18.5-18.5h-85.322c-3.63 0-9.295-2.875-11.436-5.805l-6.386-8.735c-4.982-6.814-15.104-11.954-23.546-11.954H58.73c-9.292 0-18.638 6.608-21.737 15.372l-2.033 5.752c-.958 2.71-4.72 5.37-7.596 5.37H18.5C8.3 49.09 0 57.39 0 67.59v167.07c0 .886.16 1.73.443 2.52.152 3.306 1.18 6.424 3.053 9.064 3.3 4.652 8.86 7.32 15.255 7.32h188.487c11.395 0 23.27-8.425 27.035-19.18l40.677-116.188c2.11-6.035 1.43-12.164-1.87-16.816zM18.5 64.088h8.864c9.295 0 18.64-6.607 21.738-15.37l2.032-5.75c.96-2.712 4.722-5.373 7.597-5.373h29.565c3.63 0 9.295 2.876 11.437 5.806l6.386 8.735c4.982 6.815 15.104 11.954 23.546 11.954h85.322c1.898 0 3.5 1.602 3.5 3.5v26.47H69.34c-11.395 0-23.27 8.423-27.035 19.178L15 191.23V67.59c0-1.898 1.603-3.5 3.5-3.5zm242.29 49.15l-40.676 116.188c-1.674 4.78-7.812 9.135-12.877 9.135H18.75c-1.447 0-2.576-.372-3.02-.997-.442-.625-.422-1.814.057-3.18l40.677-116.19c1.674-4.78 7.812-9.134 12.877-9.134h188.487c1.448 0 2.577.372 3.02.997.443.625.423 1.814-.056 3.18z\"\n  }));\n}\nfunction VideoIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    style: {\n      width: 16,\n      marginRight: 4\n    },\n    viewBox: \"0 0 58 58\"\n  }, h(\"path\", {\n    d: \"M36.537 28.156l-11-7a1.005 1.005 0 0 0-1.02-.033C24.2 21.3 24 21.635 24 22v14a1 1 0 0 0 1.537.844l11-7a1.002 1.002 0 0 0 0-1.688zM26 34.18V23.82L34.137 29 26 34.18z\"\n  }), h(\"path\", {\n    d: \"M57 6H1a1 1 0 0 0-1 1v44a1 1 0 0 0 1 1h56a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1zM10 28H2v-9h8v9zm-8 2h8v9H2v-9zm10 10V8h34v42H12V40zm44-12h-8v-9h8v9zm-8 2h8v9h-8v-9zm8-22v9h-8V8h8zM2 8h8v9H2V8zm0 42v-9h8v9H2zm54 0h-8v-9h8v9z\"\n  }));\n}\nexport default function ItemIcon(props) {\n  const {\n    itemIconString\n  } = props;\n  if (itemIconString === null) return null;\n  switch (itemIconString) {\n    case 'file':\n      return h(FileIcon, null);\n    case 'folder':\n      return h(FolderIcon, null);\n    case 'video':\n      return h(VideoIcon, null);\n    default:\n      {\n        const {\n          alt\n        } = props;\n        return h(\"img\", {\n          src: itemIconString,\n          alt: alt\n          // @ts-expect-error TS does not understand but attribute exists here.\n          ,\n          referrerPolicy: \"no-referrer\",\n          loading: \"lazy\",\n          width: 16,\n          height: 16\n        });\n      }\n  }\n}", "/* eslint-disable react/require-default-props */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nfunction GridListItem(props) {\n  const {\n    className,\n    isDisabled,\n    restrictionError,\n    isChecked,\n    title,\n    itemIconEl,\n    showTitles,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    id,\n    children\n  } = props;\n  const checkBoxClassName = classNames('uppy-u-reset', 'uppy-ProviderBrowserItem-checkbox', 'uppy-ProviderBrowserItem-checkbox--grid', {\n    'uppy-ProviderBrowserItem-checkbox--is-checked': isChecked\n  });\n  return h(\"li\", {\n    className: className,\n    title: isDisabled ? restrictionError == null ? void 0 : restrictionError.message : undefined\n  }, h(\"input\", {\n    type: \"checkbox\",\n    className: checkBoxClassName,\n    onChange: toggleCheckbox,\n    onKeyDown: recordShiftKeyPress\n    // @ts-expect-error this is fine onMouseDown too\n    ,\n    onMouseDown: recordShiftKeyPress,\n    name: \"listitem\",\n    id: id,\n    checked: isChecked,\n    disabled: isDisabled,\n    \"data-uppy-super-focusable\": true\n  }), h(\"label\", {\n    htmlFor: id,\n    \"aria-label\": title,\n    className: \"uppy-u-reset uppy-ProviderBrowserItem-inner\"\n  }, itemIconEl, showTitles && title, children));\n}\nexport default GridListItem;", "/* eslint-disable react/require-default-props */\n\nimport { h } from 'preact';\n\n// if folder:\n//   + checkbox (selects all files from folder)\n//   + folder name (opens folder)\n// if file:\n//   + checkbox (selects file)\n//   + file name (selects file)\n\nexport default function ListItem(props) {\n  const {\n    className,\n    isDisabled,\n    restrictionError,\n    isCheckboxDisabled,\n    isChecked,\n    toggleCheckbox,\n    recordShiftKeyPress,\n    type,\n    id,\n    itemIconEl,\n    title,\n    handleFolderClick,\n    showTitles,\n    i18n\n  } = props;\n  return h(\"li\", {\n    className: className,\n    title: isDisabled ? restrictionError == null ? void 0 : restrictionError.message : undefined\n  }, !isCheckboxDisabled ? h(\"input\", {\n    type: \"checkbox\",\n    className: `uppy-u-reset uppy-ProviderBrowserItem-checkbox ${isChecked ? 'uppy-ProviderBrowserItem-checkbox--is-checked' : ''}`,\n    onChange: toggleCheckbox,\n    onKeyDown: recordShiftKeyPress,\n    onMouseDown: recordShiftKeyPress\n    // for the <label/>\n    ,\n    name: \"listitem\",\n    id: id,\n    checked: isChecked,\n    \"aria-label\": type === 'file' ? null : i18n('allFilesFromFolderNamed', {\n      name: title\n    }),\n    disabled: isDisabled,\n    \"data-uppy-super-focusable\": true\n  }) : null, type === 'file' ?\n  // label for a checkbox\n  h(\"label\", {\n    htmlFor: id,\n    className: \"uppy-u-reset uppy-ProviderBrowserItem-inner\"\n  }, h(\"div\", {\n    className: \"uppy-ProviderBrowserItem-iconWrap\"\n  }, itemIconEl), showTitles && title)\n  // button to open a folder\n  : h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-ProviderBrowserItem-inner\",\n    onClick: handleFolderClick,\n    \"aria-label\": i18n('openFolderNamed', {\n      name: title\n    })\n  }, h(\"div\", {\n    className: \"uppy-ProviderBrowserItem-iconWrap\"\n  }, itemIconEl), showTitles && h(\"span\", null, title)));\n}", "import { Component, toChildArray } from 'preact';\nexport default class CloseWrapper extends Component {\n  componentWillUnmount() {\n    const {\n      onUnmount\n    } = this.props;\n    onUnmount();\n  }\n  render() {\n    const {\n      children\n    } = this.props;\n    return toChildArray(children)[0];\n  }\n}", "import getFileType from '@uppy/utils/lib/getFileType';\nimport isPreviewSupported from '@uppy/utils/lib/isPreviewSupported';\nimport remoteFileObjToLocal from '@uppy/utils/lib/remoteFileObjToLocal';\n\n// Conditional type for selecting the plugin\n\n// Conditional type for selecting the provider from the selected plugin\n\nexport default class View {\n  constructor(plugin, opts) {\n    this.filterItems = items => {\n      const state = this.plugin.getPluginState();\n      if (!state.filterInput || state.filterInput === '') {\n        return items;\n      }\n      return items.filter(folder => {\n        return folder.name.toLowerCase().indexOf(state.filterInput.toLowerCase()) !== -1;\n      });\n    };\n    this.recordShiftKeyPress = e => {\n      this.isShiftKeyPressed = e.shiftKey;\n    };\n    /**\n     * Toggles file/folder checkbox to on/off state while updating files list.\n     *\n     * Note that some extra complexity comes from supporting shift+click to\n     * toggle multiple checkboxes at once, which is done by getting all files\n     * in between last checked file and current one.\n     */\n    this.toggleCheckbox = (e, file) => {\n      e.stopPropagation();\n      e.preventDefault();\n      e.currentTarget.focus();\n      const {\n        folders,\n        files\n      } = this.plugin.getPluginState();\n      const items = this.filterItems(folders.concat(files));\n      // Shift-clicking selects a single consecutive list of items\n      // starting at the previous click.\n      if (this.lastCheckbox && this.isShiftKeyPressed) {\n        const {\n          currentSelection\n        } = this.plugin.getPluginState();\n        const prevIndex = items.indexOf(this.lastCheckbox);\n        const currentIndex = items.indexOf(file);\n        const newSelection = prevIndex < currentIndex ? items.slice(prevIndex, currentIndex + 1) : items.slice(currentIndex, prevIndex + 1);\n        const reducedNewSelection = [];\n\n        // Check restrictions on each file in currentSelection,\n        // reduce it to only contain files that pass restrictions\n        for (const item of newSelection) {\n          const {\n            uppy\n          } = this.plugin;\n          const restrictionError = uppy.validateRestrictions(remoteFileObjToLocal(item), [...uppy.getFiles(), ...reducedNewSelection]);\n          if (!restrictionError) {\n            reducedNewSelection.push(item);\n          } else {\n            uppy.info({\n              message: restrictionError.message\n            }, 'error', uppy.opts.infoTimeout);\n          }\n        }\n        this.plugin.setPluginState({\n          currentSelection: [...new Set([...currentSelection, ...reducedNewSelection])]\n        });\n        return;\n      }\n      this.lastCheckbox = file;\n      const {\n        currentSelection\n      } = this.plugin.getPluginState();\n      if (this.isChecked(file)) {\n        this.plugin.setPluginState({\n          currentSelection: currentSelection.filter(item => item.id !== file.id)\n        });\n      } else {\n        this.plugin.setPluginState({\n          currentSelection: currentSelection.concat([file])\n        });\n      }\n    };\n    this.isChecked = file => {\n      const {\n        currentSelection\n      } = this.plugin.getPluginState();\n      // comparing id instead of the file object, because the reference to the object\n      // changes when we switch folders, and the file list is updated\n      return currentSelection.some(item => item.id === file.id);\n    };\n    this.plugin = plugin;\n    this.provider = opts.provider;\n    this.opts = opts;\n    this.isHandlingScroll = false;\n    this.preFirstRender = this.preFirstRender.bind(this);\n    this.handleError = this.handleError.bind(this);\n    this.clearSelection = this.clearSelection.bind(this);\n    this.cancelPicking = this.cancelPicking.bind(this);\n  }\n  preFirstRender() {\n    this.plugin.setPluginState({\n      didFirstRender: true\n    });\n    this.plugin.onFirstRender();\n  }\n  shouldHandleScroll(event) {\n    const {\n      scrollHeight,\n      scrollTop,\n      offsetHeight\n    } = event.target;\n    const scrollPosition = scrollHeight - (scrollTop + offsetHeight);\n    return scrollPosition < 50 && !this.isHandlingScroll;\n  }\n  clearSelection() {\n    this.plugin.setPluginState({\n      currentSelection: [],\n      filterInput: ''\n    });\n  }\n  cancelPicking() {\n    this.clearSelection();\n    const dashboard = this.plugin.uppy.getPlugin('Dashboard');\n    if (dashboard) {\n      // @ts-expect-error impossible to type this correctly without adding dashboard\n      // as a dependency to this package.\n      dashboard.hideAllPanels();\n    }\n  }\n  handleError(error) {\n    var _error$cause;\n    const {\n      uppy\n    } = this.plugin;\n    const message = uppy.i18n('companionError');\n    uppy.log(error.toString());\n    if (error.isAuthError || ((_error$cause = error.cause) == null ? void 0 : _error$cause.name) === 'AbortError') {\n      // authError just means we're not authenticated, don't show to user\n      // AbortError means the user has clicked \"cancel\" on an operation\n      return;\n    }\n    uppy.info({\n      message,\n      details: error.toString()\n    }, 'error', 5000);\n  }\n  registerRequestClient() {\n    this.requestClientId = this.provider.provider;\n    this.plugin.uppy.registerRequestClient(this.requestClientId, this.provider);\n  }\n\n  // TODO: document what is a \"tagFile\" or get rid of this concept\n  getTagFile(file) {\n    const tagFile = {\n      id: file.id,\n      source: this.plugin.id,\n      name: file.name || file.id,\n      type: file.mimeType,\n      isRemote: true,\n      // @ts-expect-error meta is filled conditionally below\n      data: file,\n      // @ts-expect-error meta is filled conditionally below\n      meta: {},\n      body: {\n        fileId: file.id\n      },\n      remote: {\n        companionUrl: this.plugin.opts.companionUrl,\n        // @ts-expect-error untyped for now\n        url: `${this.provider.fileUrl(file.requestPath)}`,\n        body: {\n          fileId: file.id\n        },\n        providerName: this.provider.name,\n        provider: this.provider.provider,\n        requestClientId: this.requestClientId\n      }\n    };\n    const fileType = getFileType(tagFile);\n\n    // TODO Should we just always use the thumbnail URL if it exists?\n    if (fileType && isPreviewSupported(fileType)) {\n      tagFile.preview = file.thumbnail;\n    }\n    if (file.author) {\n      if (file.author.name != null) tagFile.meta.authorName = String(file.author.name);\n      if (file.author.url) tagFile.meta.authorUrl = file.author.url;\n    }\n\n    // add relativePath similar to non-remote files: https://github.com/transloadit/uppy/pull/4486#issuecomment-1579203717\n    if (file.relDirPath != null) tagFile.meta.relativePath = file.relDirPath ? `${file.relDirPath}/${tagFile.name}` : null;\n    // and absolutePath (with leading slash) https://github.com/transloadit/uppy/pull/4537#issuecomment-1614236655\n    if (file.absDirPath != null) tagFile.meta.absolutePath = file.absDirPath ? `/${file.absDirPath}/${tagFile.name}` : `/${tagFile.name}`;\n    return tagFile;\n  }\n  setLoading(loading) {\n    this.plugin.setPluginState({\n      loading\n    });\n  }\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { h } from 'preact';\nimport PQueue from 'p-queue';\nimport { getSafeFileId } from '@uppy/utils/lib/generateFileID';\nimport AuthView from \"./AuthView.js\";\nimport Header from \"./Header.js\";\nimport Browser from \"../Browser.js\";\nimport CloseWrapper from \"../CloseWrapper.js\";\nimport View from \"../View.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.10.0\"\n};\nfunction formatBreadcrumbs(breadcrumbs) {\n  return breadcrumbs.slice(1).map(directory => directory.name).join('/');\n}\nfunction prependPath(path, component) {\n  if (!path) return component;\n  return `${path}/${component}`;\n}\nexport function defaultPickerIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"30\",\n    height: \"30\",\n    viewBox: \"0 0 30 30\"\n  }, h(\"path\", {\n    d: \"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15zm4.258-12.676v6.846h-8.426v-6.846H5.204l9.82-12.364 9.82 12.364H19.26z\"\n  }));\n}\nconst defaultOptions = {\n  viewType: 'list',\n  showTitles: true,\n  showFilter: true,\n  showBreadcrumbs: true,\n  loadAllFiles: false\n};\nvar _abortController = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortController\");\nvar _withAbort = /*#__PURE__*/_classPrivateFieldLooseKey(\"withAbort\");\nvar _list = /*#__PURE__*/_classPrivateFieldLooseKey(\"list\");\nvar _listFilesAndFolders = /*#__PURE__*/_classPrivateFieldLooseKey(\"listFilesAndFolders\");\nvar _recursivelyListAllFiles = /*#__PURE__*/_classPrivateFieldLooseKey(\"recursivelyListAllFiles\");\n/**\n * Class to easily generate generic views for Provider plugins\n */\nexport default class ProviderView extends View {\n  constructor(plugin, opts) {\n    super(plugin, {\n      ...defaultOptions,\n      ...opts\n    });\n\n    // Logic\n    Object.defineProperty(this, _recursivelyListAllFiles, {\n      value: _recursivelyListAllFiles2\n    });\n    Object.defineProperty(this, _listFilesAndFolders, {\n      value: _listFilesAndFolders2\n    });\n    Object.defineProperty(this, _list, {\n      value: _list2\n    });\n    Object.defineProperty(this, _withAbort, {\n      value: _withAbort2\n    });\n    Object.defineProperty(this, _abortController, {\n      writable: true,\n      value: void 0\n    });\n    this.filterQuery = this.filterQuery.bind(this);\n    this.clearFilter = this.clearFilter.bind(this);\n    this.getFolder = this.getFolder.bind(this);\n    this.getNextFolder = this.getNextFolder.bind(this);\n    this.logout = this.logout.bind(this);\n    this.handleAuth = this.handleAuth.bind(this);\n    this.handleScroll = this.handleScroll.bind(this);\n    this.donePicking = this.donePicking.bind(this);\n\n    // Visual\n    this.render = this.render.bind(this);\n\n    // Set default state for the plugin\n    this.plugin.setPluginState({\n      authenticated: undefined,\n      // we don't know yet\n      files: [],\n      folders: [],\n      breadcrumbs: [],\n      filterInput: '',\n      isSearchVisible: false,\n      currentSelection: []\n    });\n    this.registerRequestClient();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  tearDown() {\n    // Nothing.\n  }\n  /**\n   * Select a folder based on its id: fetches the folder and then updates state with its contents\n   * TODO rename to something better like selectFolder or navigateToFolder (breaking change?)\n   *\n   */\n  async getFolder(requestPath, name) {\n    this.setLoading(true);\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        this.lastCheckbox = undefined;\n        let {\n          breadcrumbs\n        } = this.plugin.getPluginState();\n        const index = breadcrumbs.findIndex(dir => requestPath === dir.requestPath);\n        if (index !== -1) {\n          // means we navigated back to a known directory (already in the stack), so cut the stack off there\n          breadcrumbs = breadcrumbs.slice(0, index + 1);\n        } else {\n          // we have navigated into a new (unknown) folder, add it to the stack\n          breadcrumbs = [...breadcrumbs, {\n            requestPath,\n            name\n          }];\n        }\n        this.nextPagePath = requestPath;\n        let files = [];\n        let folders = [];\n        do {\n          const {\n            files: newFiles,\n            folders: newFolders\n          } = await _classPrivateFieldLooseBase(this, _listFilesAndFolders)[_listFilesAndFolders]({\n            breadcrumbs,\n            signal\n          });\n          files = files.concat(newFiles);\n          folders = folders.concat(newFolders);\n          this.setLoading(this.plugin.uppy.i18n('loadedXFiles', {\n            numFiles: files.length + folders.length\n          }));\n        } while (this.opts.loadAllFiles && this.nextPagePath);\n        this.plugin.setPluginState({\n          folders,\n          files,\n          breadcrumbs,\n          filterInput: ''\n        });\n      });\n    } catch (err) {\n      // This is the first call that happens when the provider view loads, after auth, so it's probably nice to show any\n      // error occurring here to the user.\n      if ((err == null ? void 0 : err.name) === 'UserFacingApiError') {\n        this.plugin.uppy.info({\n          message: this.plugin.uppy.i18n(err.message)\n        }, 'warning', 5000);\n        return;\n      }\n      this.handleError(err);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n\n  /**\n   * Fetches new folder\n   */\n  getNextFolder(folder) {\n    this.getFolder(folder.requestPath, folder.name);\n    this.lastCheckbox = undefined;\n  }\n\n  /**\n   * Removes session token on client side.\n   */\n  async logout() {\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        const res = await this.provider.logout({\n          signal\n        });\n        // res.ok is from the JSON body, not to be confused with Response.ok\n        if (res.ok) {\n          if (!res.revoked) {\n            const message = this.plugin.uppy.i18n('companionUnauthorizeHint', {\n              provider: this.plugin.title,\n              url: res.manual_revoke_url\n            });\n            this.plugin.uppy.info(message, 'info', 7000);\n          }\n          const newState = {\n            authenticated: false,\n            files: [],\n            folders: [],\n            breadcrumbs: [],\n            filterInput: ''\n          };\n          this.plugin.setPluginState(newState);\n        }\n      });\n    } catch (err) {\n      this.handleError(err);\n    }\n  }\n  filterQuery(input) {\n    this.plugin.setPluginState({\n      filterInput: input\n    });\n  }\n  clearFilter() {\n    this.plugin.setPluginState({\n      filterInput: ''\n    });\n  }\n  async handleAuth(authFormData) {\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        this.setLoading(true);\n        await this.provider.login({\n          authFormData,\n          signal\n        });\n        this.plugin.setPluginState({\n          authenticated: true\n        });\n        this.preFirstRender();\n      });\n    } catch (err) {\n      if (err.name === 'UserFacingApiError') {\n        this.plugin.uppy.info({\n          message: this.plugin.uppy.i18n(err.message)\n        }, 'warning', 5000);\n        return;\n      }\n      this.plugin.uppy.log(`login failed: ${err.message}`);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n  async handleScroll(event) {\n    if (this.shouldHandleScroll(event) && this.nextPagePath) {\n      this.isHandlingScroll = true;\n      try {\n        await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n          const {\n            files,\n            folders,\n            breadcrumbs\n          } = this.plugin.getPluginState();\n          const {\n            files: newFiles,\n            folders: newFolders\n          } = await _classPrivateFieldLooseBase(this, _listFilesAndFolders)[_listFilesAndFolders]({\n            breadcrumbs,\n            signal\n          });\n          const combinedFiles = files.concat(newFiles);\n          const combinedFolders = folders.concat(newFolders);\n          this.plugin.setPluginState({\n            folders: combinedFolders,\n            files: combinedFiles\n          });\n        });\n      } catch (error) {\n        this.handleError(error);\n      } finally {\n        this.isHandlingScroll = false;\n      }\n    }\n  }\n  async donePicking() {\n    this.setLoading(true);\n    try {\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        const {\n          currentSelection\n        } = this.plugin.getPluginState();\n        const messages = [];\n        const newFiles = [];\n        for (const selectedItem of currentSelection) {\n          const {\n            requestPath\n          } = selectedItem;\n          const withRelDirPath = newItem => ({\n            ...newItem,\n            // calculate the file's path relative to the user's selected item's path\n            // see https://github.com/transloadit/uppy/pull/4537#issuecomment-1614236655\n            relDirPath: newItem.absDirPath.replace(selectedItem.absDirPath, '').replace(/^\\//, '')\n          });\n          if (selectedItem.isFolder) {\n            let isEmpty = true;\n            let numNewFiles = 0;\n            const queue = new PQueue({\n              concurrency: 6\n            });\n            const onFiles = files => {\n              for (const newFile of files) {\n                const tagFile = this.getTagFile(newFile);\n                const id = getSafeFileId(tagFile);\n                // If the same folder is added again, we don't want to send\n                // X amount of duplicate file notifications, we want to say\n                // the folder was already added. This checks if all files are duplicate,\n                // if that's the case, we don't add the files.\n                if (!this.plugin.uppy.checkIfFileAlreadyExists(id)) {\n                  newFiles.push(withRelDirPath(newFile));\n                  numNewFiles++;\n                  this.setLoading(this.plugin.uppy.i18n('addedNumFiles', {\n                    numFiles: numNewFiles\n                  }));\n                }\n                isEmpty = false;\n              }\n            };\n            await _classPrivateFieldLooseBase(this, _recursivelyListAllFiles)[_recursivelyListAllFiles]({\n              requestPath,\n              absDirPath: prependPath(selectedItem.absDirPath, selectedItem.name),\n              relDirPath: selectedItem.name,\n              queue,\n              onFiles,\n              signal\n            });\n            await queue.onIdle();\n            let message;\n            if (isEmpty) {\n              message = this.plugin.uppy.i18n('emptyFolderAdded');\n            } else if (numNewFiles === 0) {\n              message = this.plugin.uppy.i18n('folderAlreadyAdded', {\n                folder: selectedItem.name\n              });\n            } else {\n              // TODO we don't really know at this point whether any files were actually added\n              // (only later after addFiles has been called) so we should probably rewrite this.\n              // Example: If all files fail to add due to restriction error, it will still say \"Added 100 files from folder\"\n              message = this.plugin.uppy.i18n('folderAdded', {\n                smart_count: numNewFiles,\n                folder: selectedItem.name\n              });\n            }\n            messages.push(message);\n          } else {\n            newFiles.push(withRelDirPath(selectedItem));\n          }\n        }\n\n        // Note: this.plugin.uppy.addFiles must be only run once we are done fetching all files,\n        // because it will cause the loading screen to disappear,\n        // and that will allow the user to start the upload, so we need to make sure we have\n        // finished all async operations before we add any file\n        // see https://github.com/transloadit/uppy/pull/4384\n        this.plugin.uppy.log('Adding files from a remote provider');\n        this.plugin.uppy.addFiles(\n        // @ts-expect-error `addFiles` expects `body` to be `File` or `Blob`,\n        // but as the todo comment in `View.ts` indicates, we strangly pass `CompanionFile` as `body`.\n        // For now it's better to ignore than to have a potential breaking change.\n        newFiles.map(file => this.getTagFile(file, this.requestClientId)));\n        this.plugin.setPluginState({\n          filterInput: ''\n        });\n        messages.forEach(message => this.plugin.uppy.info(message));\n        this.clearSelection();\n      });\n    } catch (err) {\n      this.handleError(err);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n  render(state, viewOptions) {\n    var _this = this;\n    if (viewOptions === void 0) {\n      viewOptions = {};\n    }\n    const {\n      authenticated,\n      didFirstRender\n    } = this.plugin.getPluginState();\n    const {\n      i18n\n    } = this.plugin.uppy;\n    if (!didFirstRender) {\n      this.preFirstRender();\n    }\n    const targetViewOptions = {\n      ...this.opts,\n      ...viewOptions\n    };\n    const {\n      files,\n      folders,\n      filterInput,\n      loading,\n      currentSelection\n    } = this.plugin.getPluginState();\n    const {\n      isChecked,\n      toggleCheckbox,\n      recordShiftKeyPress,\n      filterItems\n    } = this;\n    const hasInput = filterInput !== '';\n    const pluginIcon = this.plugin.icon || defaultPickerIcon;\n    const headerProps = {\n      showBreadcrumbs: targetViewOptions.showBreadcrumbs,\n      getFolder: this.getFolder,\n      breadcrumbs: this.plugin.getPluginState().breadcrumbs,\n      pluginIcon,\n      title: this.plugin.title,\n      logout: this.logout,\n      username: this.username,\n      i18n\n    };\n    const browserProps = {\n      isChecked,\n      toggleCheckbox,\n      recordShiftKeyPress,\n      currentSelection,\n      files: hasInput ? filterItems(files) : files,\n      folders: hasInput ? filterItems(folders) : folders,\n      getNextFolder: this.getNextFolder,\n      getFolder: this.getFolder,\n      loadAllFiles: this.opts.loadAllFiles,\n      // For SearchFilterInput component\n      showSearchFilter: targetViewOptions.showFilter,\n      search: this.filterQuery,\n      clearSearch: this.clearFilter,\n      searchTerm: filterInput,\n      searchOnInput: true,\n      searchInputLabel: i18n('filter'),\n      clearSearchLabel: i18n('resetFilter'),\n      noResultsLabel: i18n('noFilesFound'),\n      logout: this.logout,\n      handleScroll: this.handleScroll,\n      done: this.donePicking,\n      cancel: this.cancelPicking,\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      headerComponent: h(Header, headerProps),\n      title: this.plugin.title,\n      viewType: targetViewOptions.viewType,\n      showTitles: targetViewOptions.showTitles,\n      showBreadcrumbs: targetViewOptions.showBreadcrumbs,\n      pluginIcon,\n      i18n: this.plugin.uppy.i18n,\n      uppyFiles: this.plugin.uppy.getFiles(),\n      validateRestrictions: function () {\n        return _this.plugin.uppy.validateRestrictions(...arguments);\n      },\n      isLoading: loading\n    };\n    if (authenticated === false) {\n      return h(CloseWrapper, {\n        onUnmount: this.clearSelection\n      }, h(AuthView, {\n        pluginName: this.plugin.title,\n        pluginIcon: pluginIcon,\n        handleAuth: this.handleAuth,\n        i18n: this.plugin.uppy.i18nArray,\n        renderForm: this.opts.renderAuthForm,\n        loading: loading\n      }));\n    }\n    return h(CloseWrapper, {\n      onUnmount: this.clearSelection\n    }, h(Browser, browserProps));\n  }\n}\nasync function _withAbort2(op) {\n  var _classPrivateFieldLoo;\n  // prevent multiple requests in parallel from causing race conditions\n  (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _abortController)[_abortController]) == null || _classPrivateFieldLoo.abort();\n  const abortController = new AbortController();\n  _classPrivateFieldLooseBase(this, _abortController)[_abortController] = abortController;\n  const cancelRequest = () => {\n    abortController.abort();\n    this.clearSelection();\n  };\n  try {\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    // Even then I don't think we can make this work without adding dashboard\n    // as a dependency to provider-views.\n    this.plugin.uppy.on('dashboard:close-panel', cancelRequest);\n    this.plugin.uppy.on('cancel-all', cancelRequest);\n    await op(abortController.signal);\n  } finally {\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    // Even then I don't think we can make this work without adding dashboard\n    // as a dependency to provider-views.\n    this.plugin.uppy.off('dashboard:close-panel', cancelRequest);\n    this.plugin.uppy.off('cancel-all', cancelRequest);\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController] = undefined;\n  }\n}\nasync function _list2(_ref) {\n  let {\n    requestPath,\n    absDirPath,\n    signal\n  } = _ref;\n  const {\n    username,\n    nextPagePath,\n    items\n  } = await this.provider.list(requestPath, {\n    signal\n  });\n  this.username = username || this.username;\n  return {\n    items: items.map(item => ({\n      ...item,\n      absDirPath\n    })),\n    nextPagePath\n  };\n}\nasync function _listFilesAndFolders2(_ref2) {\n  let {\n    breadcrumbs,\n    signal\n  } = _ref2;\n  const absDirPath = formatBreadcrumbs(breadcrumbs);\n  const {\n    items,\n    nextPagePath\n  } = await _classPrivateFieldLooseBase(this, _list)[_list]({\n    requestPath: this.nextPagePath,\n    absDirPath,\n    signal\n  });\n  this.nextPagePath = nextPagePath;\n  const files = [];\n  const folders = [];\n  items.forEach(item => {\n    if (item.isFolder) {\n      folders.push(item);\n    } else {\n      files.push(item);\n    }\n  });\n  return {\n    files,\n    folders\n  };\n}\nasync function _recursivelyListAllFiles2(_ref3) {\n  let {\n    requestPath,\n    absDirPath,\n    relDirPath,\n    queue,\n    onFiles,\n    signal\n  } = _ref3;\n  let curPath = requestPath;\n  while (curPath) {\n    const res = await _classPrivateFieldLooseBase(this, _list)[_list]({\n      requestPath: curPath,\n      absDirPath,\n      signal\n    });\n    curPath = res.nextPagePath;\n    const files = res.items.filter(item => !item.isFolder);\n    const folders = res.items.filter(item => item.isFolder);\n    onFiles(files);\n\n    // recursively queue call to self for each folder\n    const promises = folders.map(async folder => queue.add(async () => _classPrivateFieldLooseBase(this, _recursivelyListAllFiles)[_recursivelyListAllFiles]({\n      requestPath: folder.requestPath,\n      absDirPath: prependPath(absDirPath, folder.name),\n      relDirPath: prependPath(relDirPath, folder.name),\n      queue,\n      onFiles,\n      signal\n    })));\n    await Promise.all(promises); // in case we get an error\n  }\n}\nProviderView.VERSION = packageJson.version;", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { h } from 'preact';\nimport SearchFilterInput from \"../SearchFilterInput.js\";\nimport Browser from \"../Browser.js\";\nimport CloseWrapper from \"../CloseWrapper.js\";\nimport View from \"../View.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.10.0\"\n};\nconst defaultState = {\n  isInputMode: true,\n  files: [],\n  folders: [],\n  breadcrumbs: [],\n  filterInput: '',\n  currentSelection: [],\n  searchTerm: null\n};\nconst defaultOptions = {\n  viewType: 'grid',\n  showTitles: true,\n  showFilter: true,\n  showBreadcrumbs: true\n};\nvar _updateFilesAndInputMode = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateFilesAndInputMode\");\n/**\n * SearchProviderView, used for Unsplash and future image search providers.\n * Extends generic View, shared with regular providers like Google Drive and Instagram.\n */\nexport default class SearchProviderView extends View {\n  constructor(plugin, opts) {\n    super(plugin, {\n      ...defaultOptions,\n      ...opts\n    });\n    Object.defineProperty(this, _updateFilesAndInputMode, {\n      value: _updateFilesAndInputMode2\n    });\n    this.nextPageQuery = null;\n    this.search = this.search.bind(this);\n    this.clearSearch = this.clearSearch.bind(this);\n    this.resetPluginState = this.resetPluginState.bind(this);\n    this.handleScroll = this.handleScroll.bind(this);\n    this.donePicking = this.donePicking.bind(this);\n    this.render = this.render.bind(this);\n    this.plugin.setPluginState(defaultState);\n    this.registerRequestClient();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  tearDown() {\n    // Nothing.\n  }\n  resetPluginState() {\n    this.plugin.setPluginState(defaultState);\n  }\n  async search(query) {\n    const {\n      searchTerm\n    } = this.plugin.getPluginState();\n    if (query && query === searchTerm) {\n      // no need to search again as this is the same as the previous search\n      return;\n    }\n    this.setLoading(true);\n    try {\n      const res = await this.provider.search(query);\n      _classPrivateFieldLooseBase(this, _updateFilesAndInputMode)[_updateFilesAndInputMode](res, []);\n    } catch (err) {\n      this.handleError(err);\n    } finally {\n      this.setLoading(false);\n    }\n  }\n  clearSearch() {\n    this.plugin.setPluginState({\n      currentSelection: [],\n      files: [],\n      searchTerm: null\n    });\n  }\n  async handleScroll(event) {\n    const query = this.nextPageQuery || null;\n    if (this.shouldHandleScroll(event) && query) {\n      this.isHandlingScroll = true;\n      try {\n        const {\n          files,\n          searchTerm\n        } = this.plugin.getPluginState();\n        const response = await this.provider.search(searchTerm, query);\n        _classPrivateFieldLooseBase(this, _updateFilesAndInputMode)[_updateFilesAndInputMode](response, files);\n      } catch (error) {\n        this.handleError(error);\n      } finally {\n        this.isHandlingScroll = false;\n      }\n    }\n  }\n  donePicking() {\n    const {\n      currentSelection\n    } = this.plugin.getPluginState();\n    this.plugin.uppy.log('Adding remote search provider files');\n    this.plugin.uppy.addFiles(currentSelection.map(file => this.getTagFile(file)));\n    this.resetPluginState();\n  }\n  render(state, viewOptions) {\n    var _this = this;\n    if (viewOptions === void 0) {\n      viewOptions = {};\n    }\n    const {\n      didFirstRender,\n      isInputMode,\n      searchTerm\n    } = this.plugin.getPluginState();\n    const {\n      i18n\n    } = this.plugin.uppy;\n    if (!didFirstRender) {\n      this.preFirstRender();\n    }\n    const targetViewOptions = {\n      ...this.opts,\n      ...viewOptions\n    };\n    const {\n      files,\n      folders,\n      filterInput,\n      loading,\n      currentSelection\n    } = this.plugin.getPluginState();\n    const {\n      isChecked,\n      toggleCheckbox,\n      filterItems,\n      recordShiftKeyPress\n    } = this;\n    const hasInput = filterInput !== '';\n    const browserProps = {\n      isChecked,\n      toggleCheckbox,\n      recordShiftKeyPress,\n      currentSelection,\n      files: hasInput ? filterItems(files) : files,\n      folders: hasInput ? filterItems(folders) : folders,\n      handleScroll: this.handleScroll,\n      done: this.donePicking,\n      cancel: this.cancelPicking,\n      // For SearchFilterInput component\n      showSearchFilter: targetViewOptions.showFilter,\n      search: this.search,\n      clearSearch: this.clearSearch,\n      searchTerm,\n      searchOnInput: false,\n      searchInputLabel: i18n('search'),\n      clearSearchLabel: i18n('resetSearch'),\n      noResultsLabel: i18n('noSearchResults'),\n      title: this.plugin.title,\n      viewType: targetViewOptions.viewType,\n      showTitles: targetViewOptions.showTitles,\n      showFilter: targetViewOptions.showFilter,\n      isLoading: loading,\n      showBreadcrumbs: targetViewOptions.showBreadcrumbs,\n      pluginIcon: this.plugin.icon,\n      i18n,\n      uppyFiles: this.plugin.uppy.getFiles(),\n      validateRestrictions: function () {\n        return _this.plugin.uppy.validateRestrictions(...arguments);\n      }\n    };\n    if (isInputMode) {\n      return h(CloseWrapper, {\n        onUnmount: this.resetPluginState\n      }, h(\"div\", {\n        className: \"uppy-SearchProvider\"\n      }, h(SearchFilterInput, {\n        search: this.search,\n        inputLabel: i18n('enterTextToSearch'),\n        buttonLabel: i18n('searchImages'),\n        inputClassName: \"uppy-c-textInput uppy-SearchProvider-input\",\n        buttonCSSClassName: \"uppy-SearchProvider-searchButton\",\n        showButton: true\n      })));\n    }\n    return h(CloseWrapper, {\n      onUnmount: this.resetPluginState\n    }, h(Browser, browserProps));\n  }\n}\nfunction _updateFilesAndInputMode2(res, files) {\n  this.nextPageQuery = res.nextPageQuery;\n  res.items.forEach(item => {\n    files.push(item);\n  });\n  this.plugin.setPluginState({\n    currentSelection: [],\n    isInputMode: false,\n    files,\n    searchTerm: res.searchedFor\n  });\n}\nSearchProviderView.VERSION = packageJson.version;", "var safeIsNaN = Number.isNaN ||\n    function ponyfill(value) {\n        return typeof value === 'number' && value !== value;\n    };\nfunction isEqual(first, second) {\n    if (first === second) {\n        return true;\n    }\n    if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n    }\n    return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n    if (newInputs.length !== lastInputs.length) {\n        return false;\n    }\n    for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n    if (isEqual === void 0) { isEqual = areInputsEqual; }\n    var cache = null;\n    function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newArgs[_i] = arguments[_i];\n        }\n        if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n            return cache.lastResult;\n        }\n        var lastResult = resultFn.apply(this, newArgs);\n        cache = {\n            lastResult: lastResult,\n            lastArgs: newArgs,\n            lastThis: this,\n        };\n        return lastResult;\n    }\n    memoized.clear = function clear() {\n        cache = null;\n    };\n    return memoized;\n}\n\nexport { memoizeOne as default };\n", "export default ['a[href]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'area[href]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'input:not([disabled]):not([inert]):not([aria-hidden])', 'select:not([disabled]):not([inert]):not([aria-hidden])', 'textarea:not([disabled]):not([inert]):not([aria-hidden])', 'button:not([disabled]):not([inert]):not([aria-hidden])', 'iframe:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'object:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'embed:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', '[contenteditable]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', '[tabindex]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])'];", "/**\n * @returns {HTMLElement} - either dashboard element, or the overlay that's most on top\n */\nexport default function getActiveOverlayEl(dashboardEl, activeOverlayType) {\n  if (activeOverlayType) {\n    const overlayEl = dashboardEl.querySelector(`[data-uppy-paneltype=\"${activeOverlayType}\"]`);\n    // if an overlay is already mounted\n    if (overlayEl) return overlayEl;\n  }\n  return dashboardEl;\n}", "import toArray from '@uppy/utils/lib/toArray';\nimport FOCUSABLE_ELEMENTS from '@uppy/utils/lib/FOCUSABLE_ELEMENTS';\nimport getActiveOverlayEl from './getActiveOverlayEl.js';\nfunction focusOnFirstNode(event, nodes) {\n  const node = nodes[0];\n  if (node) {\n    node.focus();\n    event.preventDefault();\n  }\n}\nfunction focusOnLastNode(event, nodes) {\n  const node = nodes[nodes.length - 1];\n  if (node) {\n    node.focus();\n    event.preventDefault();\n  }\n}\n\n// ___Why not just use (focusedItemIndex === -1)?\n//    Firefox thinks <ul> is focusable, but we don't have <ul>s in our FOCUSABLE_ELEMENTS. Which means that if we tab into\n//    the <ul>, code will think that we are not in the active overlay, and we should focusOnFirstNode() of the currently\n//    active overlay!\n//    [Practical check] if we use (focusedItemIndex === -1), instagram provider in firefox will never get focus on its pics\n//    in the <ul>.\nfunction isFocusInOverlay(activeOverlayEl) {\n  return activeOverlayEl.contains(document.activeElement);\n}\nfunction trapFocus(event, activeOverlayType, dashboardEl) {\n  const activeOverlayEl = getActiveOverlayEl(dashboardEl, activeOverlayType);\n  const focusableNodes = toArray(activeOverlayEl.querySelectorAll(FOCUSABLE_ELEMENTS));\n  const focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n  // If we pressed tab, and focus is not yet within the current overlay - focus on\n  // the first element within the current overlay.\n  // This is a safety measure (for when user returns from another tab e.g.), most\n  // plugins will try to focus on some important element as it loads.\n  if (!isFocusInOverlay(activeOverlayEl)) {\n    focusOnFirstNode(event, focusableNodes);\n    // If we pressed shift + tab, and we're on the first element of a modal\n  } else if (event.shiftKey && focusedItemIndex === 0) {\n    focusOnLastNode(event, focusableNodes);\n    // If we pressed tab, and we're on the last element of the modal\n  } else if (!event.shiftKey && focusedItemIndex === focusableNodes.length - 1) {\n    focusOnFirstNode(event, focusableNodes);\n  }\n}\n\n// Traps focus inside of the currently open overlay (e.g. Dashboard, or e.g. Instagram),\n// never lets focus disappear from the modal.\nexport { trapFocus as forModal };\n\n// Traps focus inside of the currently open overlay, unless overlay is null - then let the user tab away.\nexport function forInline(event, activeOverlayType, dashboardEl) {\n  // ___When we're in the bare 'Drop files here, paste, browse or import from' screen\n  if (activeOverlayType === null) {\n    // Do nothing and let the browser handle it, user can tab away from Uppy to other elements on the page\n    // ___When there is some overlay with 'Done' button\n  } else {\n    // Trap the focus inside this overlay!\n    // User can close the overlay (click 'Done') if they want to travel away from Uppy.\n    trapFocus(event, activeOverlayType, dashboardEl);\n  }\n}", "import debounce from 'lodash/debounce.js';\nimport FOCUSABLE_ELEMENTS from '@uppy/utils/lib/FOCUSABLE_ELEMENTS';\nimport getActiveOverlayEl from './getActiveOverlayEl.js';\n\n/*\n  Focuses on some element in the currently topmost overlay.\n\n  1. If there are some [data-uppy-super-focusable] elements rendered already - focuses\n     on the first superfocusable element, and leaves focus up to the control of\n     a user (until currently focused element disappears from the screen [which\n     can happen when overlay changes, or, e.g., when we click on a folder in googledrive]).\n  2. If there are no [data-uppy-super-focusable] elements yet (or ever) - focuses\n     on the first focusable element, but switches focus if superfocusable elements appear on next render.\n*/\nexport default function createSuperFocus() {\n  let lastFocusWasOnSuperFocusableEl = false;\n  const superFocus = (dashboardEl, activeOverlayType) => {\n    const overlayEl = getActiveOverlayEl(dashboardEl, activeOverlayType);\n    const isFocusInOverlay = overlayEl.contains(document.activeElement);\n    // If focus is already in the topmost overlay, AND on last update we focused on the superfocusable\n    // element - then leave focus up to the user.\n    // [Practical check] without this line, typing in the search input in googledrive overlay won't work.\n    if (isFocusInOverlay && lastFocusWasOnSuperFocusableEl) return;\n    const superFocusableEl = overlayEl.querySelector('[data-uppy-super-focusable]');\n    // If we are already in the topmost overlay, AND there are no super focusable elements yet, - leave focus up to the user.\n    // [Practical check] without this line, if you are in an empty folder in google drive, and something's uploading in the\n    // bg, - focus will be jumping to Done all the time.\n    if (isFocusInOverlay && !superFocusableEl) return;\n    if (superFocusableEl) {\n      superFocusableEl.focus({\n        preventScroll: true\n      });\n      lastFocusWasOnSuperFocusableEl = true;\n    } else {\n      const firstEl = overlayEl.querySelector(FOCUSABLE_ELEMENTS);\n      firstEl == null || firstEl.focus({\n        preventScroll: true\n      });\n      lastFocusWasOnSuperFocusableEl = false;\n    }\n  };\n\n  // ___Why do we need to debounce?\n  //    1. To deal with animations: overlay changes via animations, which results in the DOM updating AFTER plugin.update()\n  //       already executed.\n  //    [Practical check] without debounce, if we open the Url overlay, and click 'Done', Dashboard won't get focused again.\n  //    [Practical check] if we delay 250ms instead of 260ms - IE11 won't get focused in same situation.\n  //    2. Performance: there can be many state update()s in a second, and this function is called every time.\n  return debounce(superFocus, 260);\n}", "function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport isDragDropSupported from '@uppy/utils/lib/isDragDropSupported';\nimport FileList from \"./FileList.js\";\nimport AddFiles from \"./AddFiles.js\";\nimport AddFilesPanel from \"./AddFilesPanel.js\";\nimport PickerPanelContent from \"./PickerPanelContent.js\";\nimport EditorPanel from \"./EditorPanel.js\";\nimport PanelTopBar from \"./PickerPanelTopBar.js\";\nimport FileCard from \"./FileCard/index.js\";\nimport Slide from \"./Slide.js\";\n\n// http://dev.edenspiekermann.com/2016/02/11/introducing-accessible-modal-dialog\n// https://github.com/ghosh/micromodal\n\nconst WIDTH_XL = 900;\nconst WIDTH_LG = 700;\nconst WIDTH_MD = 576;\nconst HEIGHT_MD = 330;\n// We might want to enable this in the future\n// const HEIGHT_LG = 400\n// const HEIGHT_XL = 460\n\nexport default function Dashboard(props) {\n  const isNoFiles = props.totalFileCount === 0;\n  const isSingleFile = props.totalFileCount === 1;\n  const isSizeMD = props.containerWidth > WIDTH_MD;\n  const isSizeHeightMD = props.containerHeight > HEIGHT_MD;\n  const dashboardClassName = classNames({\n    'uppy-Dashboard': true,\n    'uppy-Dashboard--isDisabled': props.disabled,\n    'uppy-Dashboard--animateOpenClose': props.animateOpenClose,\n    'uppy-Dashboard--isClosing': props.isClosing,\n    'uppy-Dashboard--isDraggingOver': props.isDraggingOver,\n    'uppy-Dashboard--modal': !props.inline,\n    'uppy-size--md': props.containerWidth > WIDTH_MD,\n    'uppy-size--lg': props.containerWidth > WIDTH_LG,\n    'uppy-size--xl': props.containerWidth > WIDTH_XL,\n    'uppy-size--height-md': props.containerHeight > HEIGHT_MD,\n    // We might want to enable this in the future\n    // 'uppy-size--height-lg': props.containerHeight > HEIGHT_LG,\n    // 'uppy-size--height-xl': props.containerHeight > HEIGHT_XL,\n    'uppy-Dashboard--isAddFilesPanelVisible': props.showAddFilesPanel,\n    'uppy-Dashboard--isInnerWrapVisible': props.areInsidesReadyToBeVisible,\n    // Only enable \u201Ccentered single file\u201D mode when Dashboard is tall enough\n    'uppy-Dashboard--singleFile': props.singleFileFullScreen && isSingleFile && isSizeHeightMD\n  });\n\n  // Important: keep these in sync with the percent width values in `src/components/FileItem/index.scss`.\n  let itemsPerRow = 1; // mobile\n  if (props.containerWidth > WIDTH_XL) {\n    itemsPerRow = 5;\n  } else if (props.containerWidth > WIDTH_LG) {\n    itemsPerRow = 4;\n  } else if (props.containerWidth > WIDTH_MD) {\n    itemsPerRow = 3;\n  }\n  const showFileList = props.showSelectedFiles && !isNoFiles;\n  const numberOfFilesForRecovery = props.recoveredState ? Object.keys(props.recoveredState.files).length : null;\n  const numberOfGhosts = props.files ? Object.keys(props.files).filter(fileID => props.files[fileID].isGhost).length : null;\n  const renderRestoredText = () => {\n    if (numberOfGhosts > 0) {\n      return props.i18n('recoveredXFiles', {\n        smart_count: numberOfGhosts\n      });\n    }\n    return props.i18n('recoveredAllFiles');\n  };\n  const dashboard = h(\"div\", {\n    className: dashboardClassName,\n    \"data-uppy-theme\": props.theme,\n    \"data-uppy-num-acquirers\": props.acquirers.length,\n    \"data-uppy-drag-drop-supported\": !props.disableLocalFiles && isDragDropSupported(),\n    \"aria-hidden\": props.inline ? 'false' : props.isHidden,\n    \"aria-disabled\": props.disabled,\n    \"aria-label\": !props.inline ? props.i18n('dashboardWindowTitle') : props.i18n('dashboardTitle'),\n    onPaste: props.handlePaste,\n    onDragOver: props.handleDragOver,\n    onDragLeave: props.handleDragLeave,\n    onDrop: props.handleDrop\n  }, h(\"div\", {\n    \"aria-hidden\": \"true\",\n    className: \"uppy-Dashboard-overlay\",\n    tabIndex: -1,\n    onClick: props.handleClickOutside\n  }), h(\"div\", {\n    className: \"uppy-Dashboard-inner\",\n    \"aria-modal\": !props.inline && 'true',\n    role: !props.inline && 'dialog',\n    style: {\n      width: props.inline && props.width ? props.width : '',\n      height: props.inline && props.height ? props.height : ''\n    }\n  }, !props.inline ? h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-close\",\n    type: \"button\",\n    \"aria-label\": props.i18n('closeModal'),\n    title: props.i18n('closeModal'),\n    onClick: props.closeModal\n  }, h(\"span\", {\n    \"aria-hidden\": \"true\"\n  }, \"\\xD7\")) : null, h(\"div\", {\n    className: \"uppy-Dashboard-innerWrap\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-dropFilesHereHint\"\n  }, props.i18n('dropHint')), showFileList && h(PanelTopBar, props), numberOfFilesForRecovery && h(\"div\", {\n    className: \"uppy-Dashboard-serviceMsg\"\n  }, h(\"svg\", {\n    className: \"uppy-Dashboard-serviceMsg-icon\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"21\",\n    height: \"16\",\n    viewBox: \"0 0 24 19\"\n  }, h(\"g\", {\n    transform: \"translate(0 -1)\",\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"path\", {\n    d: \"M12.857 1.43l10.234 17.056A1 1 0 0122.234 20H1.766a1 1 0 01-.857-1.514L11.143 1.429a1 1 0 011.714 0z\",\n    fill: \"#FFD300\"\n  }), h(\"path\", {\n    fill: \"#000\",\n    d: \"M11 6h2l-.3 8h-1.4z\"\n  }), h(\"circle\", {\n    fill: \"#000\",\n    cx: \"12\",\n    cy: \"17\",\n    r: \"1\"\n  }))), h(\"strong\", {\n    className: \"uppy-Dashboard-serviceMsg-title\"\n  }, props.i18n('sessionRestored')), h(\"div\", {\n    className: \"uppy-Dashboard-serviceMsg-text\"\n  }, renderRestoredText())), showFileList ? h(FileList, {\n    id: props.id,\n    error: props.error,\n    i18n: props.i18n,\n    uppy: props.uppy,\n    files: props.files,\n    acquirers: props.acquirers,\n    resumableUploads: props.resumableUploads,\n    hideRetryButton: props.hideRetryButton,\n    hidePauseResumeButton: props.hidePauseResumeButton,\n    hideCancelButton: props.hideCancelButton,\n    showLinkToFileUploadResult: props.showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete: props.showRemoveButtonAfterComplete,\n    isWide: props.isWide,\n    metaFields: props.metaFields,\n    toggleFileCard: props.toggleFileCard,\n    handleRequestThumbnail: props.handleRequestThumbnail,\n    handleCancelThumbnail: props.handleCancelThumbnail,\n    recoveredState: props.recoveredState,\n    individualCancellation: props.individualCancellation,\n    openFileEditor: props.openFileEditor,\n    canEditFile: props.canEditFile,\n    toggleAddFilesPanel: props.toggleAddFilesPanel,\n    isSingleFile: isSingleFile,\n    itemsPerRow: itemsPerRow\n  }) :\n  // eslint-disable-next-line react/jsx-props-no-spreading\n  h(AddFiles, _extends({}, props, {\n    isSizeMD: isSizeMD\n  })), h(Slide, null, props.showAddFilesPanel ? h(AddFilesPanel, _extends({\n    key: \"AddFiles\"\n  }, props, {\n    isSizeMD: isSizeMD\n  })) : null), h(Slide, null, props.fileCardFor ? h(FileCard, _extends({\n    key: \"FileCard\"\n  }, props)) : null), h(Slide, null, props.activePickerPanel ? h(PickerPanelContent, _extends({\n    key: \"Picker\"\n  }, props)) : null), h(Slide, null, props.showFileEditor ? h(EditorPanel, _extends({\n    key: \"Editor\"\n  }, props)) : null), h(\"div\", {\n    className: \"uppy-Dashboard-progressindicators\"\n  }, props.progressindicators.map(target => {\n    return props.uppy.getPlugin(target.id).render(props.state);\n  })))));\n  return dashboard;\n}", "/**\n * Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).\n */\nexport default function isDragDropSupported() {\n  const div = document.body;\n  if (!('draggable' in div) || !('ondragstart' in div && 'ondrop' in div)) {\n    return false;\n  }\n  if (!('FormData' in window)) {\n    return false;\n  }\n  if (!('FileReader' in window)) {\n    return false;\n  }\n  return true;\n}", "import { h, Component } from 'preact';\nimport classNames from 'classnames';\nimport shallowEqual from 'is-shallow-equal';\nimport FilePreviewAndLink from \"./FilePreviewAndLink/index.js\";\nimport FileProgress from \"./FileProgress/index.js\";\nimport FileInfo from \"./FileInfo/index.js\";\nimport Buttons from \"./Buttons/index.js\";\nexport default class FileItem extends Component {\n  componentDidMount() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleRequestThumbnail(file);\n    }\n  }\n  shouldComponentUpdate(nextProps) {\n    return !shallowEqual(this.props, nextProps);\n  }\n\n  // VirtualList mounts FileItems again and they emit `thumbnail:request`\n  // Otherwise thumbnails are broken or missing after Golden Retriever restores files\n  componentDidUpdate() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleRequestThumbnail(file);\n    }\n  }\n  componentWillUnmount() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleCancelThumbnail(file);\n    }\n  }\n  render() {\n    const {\n      file\n    } = this.props;\n    const isProcessing = file.progress.preprocess || file.progress.postprocess;\n    const isUploaded = file.progress.uploadComplete && !isProcessing && !file.error;\n    const uploadInProgressOrComplete = file.progress.uploadStarted || isProcessing;\n    const uploadInProgress = file.progress.uploadStarted && !file.progress.uploadComplete || isProcessing;\n    const error = file.error || false;\n\n    // File that Golden Retriever was able to partly restore (only meta, not blob),\n    // users still need to re-add it, so it\u2019s a ghost\n    const {\n      isGhost\n    } = file;\n    let showRemoveButton = this.props.individualCancellation ? !isUploaded : !uploadInProgress && !isUploaded;\n    if (isUploaded && this.props.showRemoveButtonAfterComplete) {\n      showRemoveButton = true;\n    }\n    const dashboardItemClass = classNames({\n      'uppy-Dashboard-Item': true,\n      'is-inprogress': uploadInProgress && !this.props.recoveredState,\n      'is-processing': isProcessing,\n      'is-complete': isUploaded,\n      'is-error': !!error,\n      'is-resumable': this.props.resumableUploads,\n      'is-noIndividualCancellation': !this.props.individualCancellation,\n      'is-ghost': isGhost\n    });\n    return h(\"div\", {\n      className: dashboardItemClass,\n      id: `uppy_${file.id}`,\n      role: this.props.role\n    }, h(\"div\", {\n      className: \"uppy-Dashboard-Item-preview\"\n    }, h(FilePreviewAndLink, {\n      file: file,\n      showLinkToFileUploadResult: this.props.showLinkToFileUploadResult,\n      i18n: this.props.i18n,\n      toggleFileCard: this.props.toggleFileCard,\n      metaFields: this.props.metaFields\n    }), h(FileProgress, {\n      uppy: this.props.uppy,\n      file: file,\n      error: error,\n      isUploaded: isUploaded,\n      hideRetryButton: this.props.hideRetryButton,\n      hideCancelButton: this.props.hideCancelButton,\n      hidePauseResumeButton: this.props.hidePauseResumeButton,\n      recoveredState: this.props.recoveredState,\n      showRemoveButtonAfterComplete: this.props.showRemoveButtonAfterComplete,\n      resumableUploads: this.props.resumableUploads,\n      individualCancellation: this.props.individualCancellation,\n      i18n: this.props.i18n\n    })), h(\"div\", {\n      className: \"uppy-Dashboard-Item-fileInfoAndButtons\"\n    }, h(FileInfo, {\n      file: file,\n      id: this.props.id,\n      acquirers: this.props.acquirers,\n      containerWidth: this.props.containerWidth,\n      containerHeight: this.props.containerHeight,\n      i18n: this.props.i18n,\n      toggleAddFilesPanel: this.props.toggleAddFilesPanel,\n      toggleFileCard: this.props.toggleFileCard,\n      metaFields: this.props.metaFields,\n      isSingleFile: this.props.isSingleFile\n    }), h(Buttons, {\n      file: file,\n      metaFields: this.props.metaFields,\n      showLinkToFileUploadResult: this.props.showLinkToFileUploadResult,\n      showRemoveButton: showRemoveButton,\n      canEditFile: this.props.canEditFile,\n      uploadInProgressOrComplete: uploadInProgressOrComplete,\n      toggleFileCard: this.props.toggleFileCard,\n      openFileEditor: this.props.openFileEditor,\n      uppy: this.props.uppy,\n      i18n: this.props.i18n\n    })));\n  }\n}", "import { h } from 'preact';\nfunction iconImage() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"g\", {\n    fill: \"#686DE0\",\n    fillRule: \"evenodd\"\n  }, h(\"path\", {\n    d: \"M5 7v10h15V7H5zm0-1h15a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z\",\n    fillRule: \"nonzero\"\n  }), h(\"path\", {\n    d: \"M6.35 17.172l4.994-5.026a.5.5 0 0 1 .707 0l2.16 2.16 3.505-3.505a.5.5 0 0 1 .707 0l2.336 2.31-.707.72-1.983-1.97-3.505 3.505a.5.5 0 0 1-.707 0l-2.16-2.159-3.938 3.939-1.409.026z\",\n    fillRule: \"nonzero\"\n  }), h(\"circle\", {\n    cx: \"7.5\",\n    cy: \"9.5\",\n    r: \"1.5\"\n  })));\n}\nfunction iconAudio() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M9.5 18.64c0 1.14-1.145 2-2.5 2s-2.5-.86-2.5-2c0-1.14 1.145-2 2.5-2 .557 0 1.079.145 1.5.396V7.25a.5.5 0 0 1 .379-.485l9-2.25A.5.5 0 0 1 18.5 5v11.64c0 1.14-1.145 2-2.5 2s-2.5-.86-2.5-2c0-1.14 1.145-2 2.5-2 .557 0 1.079.145 1.5.396V8.67l-8 2v7.97zm8-11v-2l-8 2v2l8-2zM7 19.64c.855 0 1.5-.484 1.5-1s-.645-1-1.5-1-1.5.484-1.5 1 .645 1 1.5 1zm9-2c.855 0 1.5-.484 1.5-1s-.645-1-1.5-1-1.5.484-1.5 1 .645 1 1.5 1z\",\n    fill: \"#049BCF\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconVideo() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M16 11.834l4.486-2.691A1 1 0 0 1 22 10v6a1 1 0 0 1-1.514.857L16 14.167V17a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v2.834zM15 9H5v8h10V9zm1 4l5 3v-6l-5 3z\",\n    fill: \"#19AF67\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconPDF() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M9.766 8.295c-.691-1.843-.539-3.401.747-3.726 1.643-.414 2.505.938 2.39 3.299-.039.79-.194 1.662-.537 3.148.324.49.66.967 1.055 1.51.17.231.382.488.629.757 1.866-.128 3.653.114 4.918.655 1.487.635 2.192 1.685 1.614 2.84-.566 1.133-1.839 1.084-3.416.249-1.141-.604-2.457-1.634-3.51-2.707a13.467 13.467 0 0 0-2.238.426c-1.392 4.051-4.534 6.453-5.707 4.572-.986-1.58 1.38-4.206 4.914-5.375.097-.322.185-.656.264-1.001.08-.353.306-1.31.407-1.737-.678-1.059-1.2-2.031-1.53-2.91zm2.098 4.87c-.033.144-.068.287-.104.427l.033-.01-.012.038a14.065 14.065 0 0 1 1.02-.197l-.032-.033.052-.004a7.902 7.902 0 0 1-.208-.271c-.197-.27-.38-.526-.555-.775l-.006.028-.002-.003c-.076.323-.148.632-.186.8zm5.77 2.978c1.143.605 1.832.632 2.054.187.26-.519-.087-1.034-1.113-1.473-.911-.39-2.175-.608-3.55-.608.845.766 1.787 1.459 2.609 1.894zM6.559 18.789c.14.223.693.16 1.425-.413.827-.648 1.61-1.747 2.208-3.206-2.563 1.064-4.102 2.867-3.633 3.62zm5.345-10.97c.088-1.793-.351-2.48-1.146-2.28-.473.119-.564 1.05-.056 2.405.213.566.52 1.188.908 1.859.18-.858.268-1.453.294-1.984z\",\n    fill: \"#E2514A\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconArchive() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M10.45 2.05h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5V2.55a.5.5 0 0 1 .5-.5zm2.05 1.024h1.05a.5.5 0 0 1 .5.5V3.6a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5v-.001zM10.45 0h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-2.05 3.074h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-2.05 1.024h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm-2.05 1.025h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-1.656 3.074l-.82 5.946c.52.302 1.174.458 1.976.458.803 0 1.455-.156 1.975-.458l-.82-5.946h-2.311zm0-1.025h2.312c.512 0 .946.378 1.015.885l.82 5.946c.056.412-.142.817-.501 1.026-.686.398-1.515.597-2.49.597-.974 0-1.804-.199-2.49-.597a1.025 1.025 0 0 1-.5-1.026l.819-5.946c.07-.507.503-.885 1.015-.885zm.545 6.6a.5.5 0 0 1-.397-.561l.143-.999a.5.5 0 0 1 .495-.429h.74a.5.5 0 0 1 .495.43l.143.998a.5.5 0 0 1-.397.561c-.404.08-.819.08-1.222 0z\",\n    fill: \"#00C469\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconFile() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"g\", {\n    fill: \"#A7AFB7\",\n    fillRule: \"nonzero\"\n  }, h(\"path\", {\n    d: \"M5.5 22a.5.5 0 0 1-.5-.5v-18a.5.5 0 0 1 .5-.5h10.719a.5.5 0 0 1 .367.16l3.281 3.556a.5.5 0 0 1 .133.339V21.5a.5.5 0 0 1-.5.5h-14zm.5-1h13V7.25L16 4H6v17z\"\n  }), h(\"path\", {\n    d: \"M15 4v3a1 1 0 0 0 1 1h3V7h-3V4h-1z\"\n  })));\n}\nfunction iconText() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M4.5 7h13a.5.5 0 1 1 0 1h-13a.5.5 0 0 1 0-1zm0 3h15a.5.5 0 1 1 0 1h-15a.5.5 0 1 1 0-1zm0 3h15a.5.5 0 1 1 0 1h-15a.5.5 0 1 1 0-1zm0 3h10a.5.5 0 1 1 0 1h-10a.5.5 0 1 1 0-1z\",\n    fill: \"#5A5E69\",\n    fillRule: \"nonzero\"\n  }));\n}\nexport default function getIconByMime(fileType) {\n  const defaultChoice = {\n    color: '#838999',\n    icon: iconFile()\n  };\n  if (!fileType) return defaultChoice;\n  const fileTypeGeneral = fileType.split('/')[0];\n  const fileTypeSpecific = fileType.split('/')[1];\n\n  // Text\n  if (fileTypeGeneral === 'text') {\n    return {\n      color: '#5a5e69',\n      icon: iconText()\n    };\n  }\n\n  // Image\n  if (fileTypeGeneral === 'image') {\n    return {\n      color: '#686de0',\n      icon: iconImage()\n    };\n  }\n\n  // Audio\n  if (fileTypeGeneral === 'audio') {\n    return {\n      color: '#068dbb',\n      icon: iconAudio()\n    };\n  }\n\n  // Video\n  if (fileTypeGeneral === 'video') {\n    return {\n      color: '#19af67',\n      icon: iconVideo()\n    };\n  }\n\n  // PDF\n  if (fileTypeGeneral === 'application' && fileTypeSpecific === 'pdf') {\n    return {\n      color: '#e25149',\n      icon: iconPDF()\n    };\n  }\n\n  // Archive\n  const archiveTypes = ['zip', 'x-7z-compressed', 'x-rar-compressed', 'x-tar', 'x-gzip', 'x-apple-diskimage'];\n  if (fileTypeGeneral === 'application' && archiveTypes.indexOf(fileTypeSpecific) !== -1) {\n    return {\n      color: '#00C469',\n      icon: iconArchive()\n    };\n  }\n  return defaultChoice;\n}", "import { h } from 'preact';\nimport getFileTypeIcon from \"../utils/getFileTypeIcon.js\";\nexport default function FilePreview(props) {\n  const {\n    file\n  } = props;\n  if (file.preview) {\n    return h(\"img\", {\n      className: \"uppy-Dashboard-Item-previewImg\",\n      alt: file.name,\n      src: file.preview\n    });\n  }\n  const {\n    color,\n    icon\n  } = getFileTypeIcon(file.type);\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-previewIconWrap\"\n  }, h(\"span\", {\n    className: \"uppy-Dashboard-Item-previewIcon\",\n    style: {\n      color\n    }\n  }, icon), h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-Dashboard-Item-previewIconBg\",\n    width: \"58\",\n    height: \"76\",\n    viewBox: \"0 0 58 76\"\n  }, h(\"rect\", {\n    fill: \"#FFF\",\n    width: \"58\",\n    height: \"76\",\n    rx: \"3\",\n    fillRule: \"evenodd\"\n  })));\n}", "import { h } from 'preact';\nconst metaFieldIdToName = (metaFieldId, metaFields) => {\n  const fields = typeof metaFields === 'function' ? metaFields() : metaFields;\n  const field = fields.filter(f => f.id === metaFieldId);\n  return field[0].name;\n};\nexport default function renderMissingMetaFieldsError(props) {\n  const {\n    file,\n    toggleFileCard,\n    i18n,\n    metaFields\n  } = props;\n  const {\n    missingRequiredMetaFields\n  } = file;\n  if (!(missingRequiredMetaFields != null && missingRequiredMetaFields.length)) {\n    return null;\n  }\n  const metaFieldsString = missingRequiredMetaFields.map(missingMetaField => metaFieldIdToName(missingMetaField, metaFields)).join(', ');\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-errorMessage\"\n  }, i18n('missingRequiredMetaFields', {\n    smart_count: missingRequiredMetaFields.length,\n    fields: metaFieldsString\n  }), ' ', h(\"button\", {\n    type: \"button\",\n    class: \"uppy-u-reset uppy-Dashboard-Item-errorMessageBtn\",\n    onClick: () => toggleFileCard(true, file.id)\n  }, i18n('editFile')));\n}", "import { h } from 'preact';\nimport FilePreview from \"../../FilePreview.js\";\nimport MetaErrorMessage from \"../MetaErrorMessage.js\";\nimport getFileTypeIcon from \"../../../utils/getFileTypeIcon.js\";\nexport default function FilePreviewAndLink(props) {\n  const {\n    file,\n    i18n,\n    toggleFileCard,\n    metaFields,\n    showLinkToFileUploadResult\n  } = props;\n  const white = 'rgba(255, 255, 255, 0.5)';\n  const previewBackgroundColor = file.preview ? white : getFileTypeIcon(props.file.type).color;\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-previewInnerWrap\",\n    style: {\n      backgroundColor: previewBackgroundColor\n    }\n  }, showLinkToFileUploadResult && file.uploadURL && h(\"a\", {\n    className: \"uppy-Dashboard-Item-previewLink\",\n    href: file.uploadURL,\n    rel: \"noreferrer noopener\",\n    target: \"_blank\",\n    \"aria-label\": file.meta.name\n  }, h(\"span\", {\n    hidden: true\n  }, file.meta.name)), h(FilePreview, {\n    file: file\n  }), h(MetaErrorMessage, {\n    file: file,\n    i18n: i18n,\n    toggleFileCard: toggleFileCard,\n    metaFields: metaFields\n  }));\n}", "import { h } from 'preact';\nfunction onPauseResumeCancelRetry(props) {\n  if (props.isUploaded) return;\n  if (props.error && !props.hideRetryButton) {\n    props.uppy.retryUpload(props.file.id);\n    return;\n  }\n  if (props.resumableUploads && !props.hidePauseResumeButton) {\n    props.uppy.pauseResume(props.file.id);\n  } else if (props.individualCancellation && !props.hideCancelButton) {\n    props.uppy.removeFile(props.file.id);\n  }\n}\nfunction progressIndicatorTitle(props) {\n  if (props.isUploaded) {\n    return props.i18n('uploadComplete');\n  }\n  if (props.error) {\n    return props.i18n('retryUpload');\n  }\n  if (props.resumableUploads) {\n    if (props.file.isPaused) {\n      return props.i18n('resumeUpload');\n    }\n    return props.i18n('pauseUpload');\n  }\n  if (props.individualCancellation) {\n    return props.i18n('cancelUpload');\n  }\n  return '';\n}\nfunction ProgressIndicatorButton(props) {\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-progress\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-progressIndicator\",\n    type: \"button\",\n    \"aria-label\": progressIndicatorTitle(props),\n    title: progressIndicatorTitle(props),\n    onClick: () => onPauseResumeCancelRetry(props)\n  }, props.children));\n}\nfunction ProgressCircleContainer(_ref) {\n  let {\n    children\n  } = _ref;\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"70\",\n    height: \"70\",\n    viewBox: \"0 0 36 36\",\n    className: \"uppy-c-icon uppy-Dashboard-Item-progressIcon--circle\"\n  }, children);\n}\nfunction ProgressCircle(_ref2) {\n  let {\n    progress\n  } = _ref2;\n  // circle length equals 2 * PI * R\n  const circleLength = 2 * Math.PI * 15;\n  return h(\"g\", null, h(\"circle\", {\n    className: \"uppy-Dashboard-Item-progressIcon--bg\",\n    r: \"15\",\n    cx: \"18\",\n    cy: \"18\",\n    \"stroke-width\": \"2\",\n    fill: \"none\"\n  }), h(\"circle\", {\n    className: \"uppy-Dashboard-Item-progressIcon--progress\",\n    r: \"15\",\n    cx: \"18\",\n    cy: \"18\",\n    transform: \"rotate(-90, 18, 18)\",\n    fill: \"none\",\n    \"stroke-width\": \"2\",\n    \"stroke-dasharray\": circleLength,\n    \"stroke-dashoffset\": circleLength - circleLength / 100 * progress\n  }));\n}\nexport default function FileProgress(props) {\n  // Nothing if upload has not started\n  if (!props.file.progress.uploadStarted) {\n    return null;\n  }\n\n  // Green checkmark when complete\n  if (props.isUploaded) {\n    return h(\"div\", {\n      className: \"uppy-Dashboard-Item-progress\"\n    }, h(\"div\", {\n      className: \"uppy-Dashboard-Item-progressIndicator\"\n    }, h(ProgressCircleContainer, null, h(\"circle\", {\n      r: \"15\",\n      cx: \"18\",\n      cy: \"18\",\n      fill: \"#1bb240\"\n    }), h(\"polygon\", {\n      className: \"uppy-Dashboard-Item-progressIcon--check\",\n      transform: \"translate(2, 3)\",\n      points: \"14 22.5 7 15.2457065 8.99985857 13.1732815 14 18.3547104 22.9729883 9 25 11.1005634\"\n    }))));\n  }\n  if (props.recoveredState) {\n    return undefined;\n  }\n\n  // Retry button for error\n  if (props.error && !props.hideRetryButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        className: \"uppy-c-icon uppy-Dashboard-Item-progressIcon--retry\",\n        width: \"28\",\n        height: \"31\",\n        viewBox: \"0 0 16 19\"\n      }, h(\"path\", {\n        d: \"M16 11a8 8 0 1 1-8-8v2a6 6 0 1 0 6 6h2z\"\n      }), h(\"path\", {\n        d: \"M7.9 3H10v2H7.9z\"\n      }), h(\"path\", {\n        d: \"M8.536.5l3.535 3.536-1.414 1.414L7.12 1.914z\"\n      }), h(\"path\", {\n        d: \"M10.657 2.621l1.414 1.415L8.536 7.57 7.12 6.157z\"\n      })))\n    );\n  }\n\n  // Pause/resume button for resumable uploads\n  if (props.resumableUploads && !props.hidePauseResumeButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(ProgressCircleContainer, null, h(ProgressCircle, {\n        progress: props.file.progress.percentage\n      }), props.file.isPaused ? h(\"polygon\", {\n        className: \"uppy-Dashboard-Item-progressIcon--play\",\n        transform: \"translate(3, 3)\",\n        points: \"12 20 12 10 20 15\"\n      }) : h(\"g\", {\n        className: \"uppy-Dashboard-Item-progressIcon--pause\",\n        transform: \"translate(14.5, 13)\"\n      }, h(\"rect\", {\n        x: \"0\",\n        y: \"0\",\n        width: \"2\",\n        height: \"10\",\n        rx: \"0\"\n      }), h(\"rect\", {\n        x: \"5\",\n        y: \"0\",\n        width: \"2\",\n        height: \"10\",\n        rx: \"0\"\n      }))))\n    );\n  }\n\n  // Cancel button for non-resumable uploads if individualCancellation is supported (not bundled)\n  if (!props.resumableUploads && props.individualCancellation && !props.hideCancelButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(ProgressCircleContainer, null, h(ProgressCircle, {\n        progress: props.file.progress.percentage\n      }), h(\"polygon\", {\n        className: \"cancel\",\n        transform: \"translate(2, 2)\",\n        points: \"19.8856516 11.0625 16 14.9481516 12.1019737 11.0625 11.0625 12.1143484 14.9481516 16 11.0625 19.8980263 12.1019737 20.9375 16 17.0518484 19.8856516 20.9375 20.9375 19.8980263 17.0518484 16 20.9375 12\"\n      })))\n    );\n  }\n\n  // Just progress when buttons are disabled\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-progress\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-Item-progressIndicator\"\n  }, h(ProgressCircleContainer, null, h(ProgressCircle, {\n    progress: props.file.progress.percentage\n  }))));\n}", "import { h, Fragment } from 'preact';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport truncateString from '@uppy/utils/lib/truncateString';\nimport MetaErrorMessage from \"../MetaErrorMessage.js\";\nconst renderFileName = props => {\n  const {\n    author,\n    name\n  } = props.file.meta;\n  function getMaxNameLength() {\n    if (props.isSingleFile && props.containerHeight >= 350) {\n      return 90;\n    }\n    if (props.containerWidth <= 352) {\n      return 35;\n    }\n    if (props.containerWidth <= 576) {\n      return 60;\n    }\n    // When `author` is present, we want to make sure\n    // the file name fits on one line so we can place\n    // the author on the second line.\n    return author ? 20 : 30;\n  }\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-name\",\n    title: name\n  }, truncateString(name, getMaxNameLength()));\n};\nconst renderAuthor = props => {\n  var _props$file$remote;\n  const {\n    author\n  } = props.file.meta;\n  const providerName = (_props$file$remote = props.file.remote) == null ? void 0 : _props$file$remote.providerName;\n  const dot = `\\u00B7`;\n  if (!author) {\n    return null;\n  }\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-author\"\n  }, h(\"a\", {\n    href: `${author.url}?utm_source=Companion&utm_medium=referral`,\n    target: \"_blank\",\n    rel: \"noopener noreferrer\"\n  }, truncateString(author.name, 13)), providerName ? h(Fragment, null, ` ${dot} `, providerName, ` ${dot} `) : null);\n};\nconst renderFileSize = props => props.file.size && h(\"div\", {\n  className: \"uppy-Dashboard-Item-statusSize\"\n}, prettierBytes(props.file.size));\nconst ReSelectButton = props => props.file.isGhost && h(\"span\", null, ' \\u2022 ', h(\"button\", {\n  className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-reSelect\",\n  type: \"button\",\n  onClick: props.toggleAddFilesPanel\n}, props.i18n('reSelect')));\nconst ErrorButton = _ref => {\n  let {\n    file,\n    onClick\n  } = _ref;\n  if (file.error) {\n    return h(\"button\", {\n      className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-errorDetails\",\n      \"aria-label\": file.error,\n      \"data-microtip-position\": \"bottom\",\n      \"data-microtip-size\": \"medium\",\n      onClick: onClick,\n      type: \"button\"\n    }, \"?\");\n  }\n  return null;\n};\nexport default function FileInfo(props) {\n  const {\n    file\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-fileInfo\",\n    \"data-uppy-file-source\": file.source\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-Item-fileName\"\n  }, renderFileName(props), h(ErrorButton, {\n    file: props.file\n    // eslint-disable-next-line no-alert\n    ,\n    onClick: () => alert(props.file.error) // TODO: move to a custom alert implementation\n  })), h(\"div\", {\n    className: \"uppy-Dashboard-Item-status\"\n  }, renderAuthor(props), renderFileSize(props), ReSelectButton(props)), h(MetaErrorMessage, {\n    file: props.file,\n    i18n: props.i18n,\n    toggleFileCard: props.toggleFileCard,\n    metaFields: props.metaFields\n  }));\n}", "/**\n * Truncates a string to the given number of chars (maxLength) by inserting '...' in the middle of that string.\n * Partially taken from https://stackoverflow.com/a/5723274/3192470.\n */\nconst separator = '...';\nexport default function truncateString(string, maxLength) {\n  // Return the empty string if maxLength is zero\n  if (maxLength === 0) return '';\n  // Return original string if it's already shorter than maxLength\n  if (string.length <= maxLength) return string;\n  // Return truncated substring appended of the ellipsis char if string can't be meaningfully truncated\n  if (maxLength <= separator.length + 1) return `${string.slice(0, maxLength - 1)}\u2026`;\n  const charsToShow = maxLength - separator.length;\n  const frontChars = Math.ceil(charsToShow / 2);\n  const backChars = Math.floor(charsToShow / 2);\n  return string.slice(0, frontChars) + separator + string.slice(-backChars);\n}", "/**\n * Copies text to clipboard by creating an almost invisible textarea,\n * adding text there, then running execCommand('copy').\n * Falls back to prompt() when the easy way fails (hello, Safari!)\n * From http://stackoverflow.com/a/30810322\n *\n * @param {string} textToCopy\n * @param {string} fallbackString\n * @returns {Promise}\n */\nexport default function copyToClipboard(textToCopy, fallbackString) {\n  if (fallbackString === void 0) {\n    fallbackString = 'Copy the URL below';\n  }\n  return new Promise(resolve => {\n    const textArea = document.createElement('textarea');\n    textArea.setAttribute('style', {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      width: '2em',\n      height: '2em',\n      padding: 0,\n      border: 'none',\n      outline: 'none',\n      boxShadow: 'none',\n      background: 'transparent'\n    });\n    textArea.value = textToCopy;\n    document.body.appendChild(textArea);\n    textArea.select();\n    const magicCopyFailed = () => {\n      document.body.removeChild(textArea);\n      // eslint-disable-next-line no-alert\n      window.prompt(fallbackString, textToCopy);\n      resolve();\n    };\n    try {\n      const successful = document.execCommand('copy');\n      if (!successful) {\n        return magicCopyFailed('copy command unavailable');\n      }\n      document.body.removeChild(textArea);\n      return resolve();\n    } catch (err) {\n      document.body.removeChild(textArea);\n      return magicCopyFailed(err);\n    }\n  });\n}", "import { h } from 'preact';\nimport copyToClipboard from '../../../utils/copyToClipboard.js';\nfunction EditButton(_ref) {\n  let {\n    file,\n    uploadInProgressOrComplete,\n    metaFields,\n    canEditFile,\n    i18n,\n    onClick\n  } = _ref;\n  if (!uploadInProgressOrComplete && metaFields && metaFields.length > 0 || !uploadInProgressOrComplete && canEditFile(file)) {\n    return h(\"button\", {\n      className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-action uppy-Dashboard-Item-action--edit\",\n      type: \"button\",\n      \"aria-label\": i18n('editFileWithFilename', {\n        file: file.meta.name\n      }),\n      title: i18n('editFileWithFilename', {\n        file: file.meta.name\n      }),\n      onClick: () => onClick()\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      focusable: \"false\",\n      className: \"uppy-c-icon\",\n      width: \"14\",\n      height: \"14\",\n      viewBox: \"0 0 14 14\"\n    }, h(\"g\", {\n      fillRule: \"evenodd\"\n    }, h(\"path\", {\n      d: \"M1.5 10.793h2.793A1 1 0 0 0 5 10.5L11.5 4a1 1 0 0 0 0-1.414L9.707.793a1 1 0 0 0-1.414 0l-6.5 6.5A1 1 0 0 0 1.5 8v2.793zm1-1V8L9 1.5l1.793 1.793-6.5 6.5H2.5z\",\n      fillRule: \"nonzero\"\n    }), h(\"rect\", {\n      x: \"1\",\n      y: \"12.293\",\n      width: \"11\",\n      height: \"1\",\n      rx: \".5\"\n    }), h(\"path\", {\n      fillRule: \"nonzero\",\n      d: \"M6.793 2.5L9.5 5.207l.707-.707L7.5 1.793z\"\n    }))));\n  }\n  return null;\n}\nfunction RemoveButton(_ref2) {\n  let {\n    i18n,\n    onClick,\n    file\n  } = _ref2;\n  return h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--remove\",\n    type: \"button\",\n    \"aria-label\": i18n('removeFile', {\n      file: file.meta.name\n    }),\n    title: i18n('removeFile', {\n      file: file.meta.name\n    }),\n    onClick: () => onClick()\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"18\",\n    height: \"18\",\n    viewBox: \"0 0 18 18\"\n  }, h(\"path\", {\n    d: \"M9 0C4.034 0 0 4.034 0 9s4.034 9 9 9 9-4.034 9-9-4.034-9-9-9z\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: \"M13 12.222l-.778.778L9 9.778 5.778 13 5 12.222 8.222 9 5 5.778 5.778 5 9 8.222 12.222 5l.778.778L9.778 9z\"\n  })));\n}\nconst copyLinkToClipboard = (event, props) => {\n  copyToClipboard(props.file.uploadURL, props.i18n('copyLinkToClipboardFallback')).then(() => {\n    props.uppy.log('Link copied to clipboard.');\n    props.uppy.info(props.i18n('copyLinkToClipboardSuccess'), 'info', 3000);\n  }).catch(props.uppy.log)\n  // avoid losing focus\n  .then(() => event.target.focus({\n    preventScroll: true\n  }));\n};\nfunction CopyLinkButton(props) {\n  const {\n    i18n\n  } = props;\n  return h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--copyLink\",\n    type: \"button\",\n    \"aria-label\": i18n('copyLink'),\n    title: i18n('copyLink'),\n    onClick: event => copyLinkToClipboard(event, props)\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 12\"\n  }, h(\"path\", {\n    d: \"M7.94 7.703a2.613 2.613 0 0 1-.626 2.681l-.852.851a2.597 2.597 0 0 1-1.849.766A2.616 2.616 0 0 1 2.764 7.54l.852-.852a2.596 2.596 0 0 1 2.69-.625L5.267 7.099a1.44 1.44 0 0 0-.833.407l-.852.851a1.458 1.458 0 0 0 1.03 2.486c.39 0 .755-.152 1.03-.426l.852-.852c.231-.231.363-.522.406-.824l1.04-1.038zm4.295-5.937A2.596 2.596 0 0 0 10.387 1c-.698 0-1.355.272-1.849.766l-.852.851a2.614 2.614 0 0 0-.624 2.688l1.036-1.036c.041-.304.173-.6.407-.833l.852-.852c.275-.275.64-.426 1.03-.426a1.458 1.458 0 0 1 1.03 2.486l-.852.851a1.442 1.442 0 0 1-.824.406l-1.04 1.04a2.596 2.596 0 0 0 2.683-.628l.851-.85a2.616 2.616 0 0 0 0-3.697zm-6.88 6.883a.577.577 0 0 0 .82 0l3.474-3.474a.579.579 0 1 0-.819-.82L5.355 7.83a.579.579 0 0 0 0 .819z\"\n  })));\n}\nexport default function Buttons(props) {\n  const {\n    uppy,\n    file,\n    uploadInProgressOrComplete,\n    canEditFile,\n    metaFields,\n    showLinkToFileUploadResult,\n    showRemoveButton,\n    i18n,\n    toggleFileCard,\n    openFileEditor\n  } = props;\n  const editAction = () => {\n    if (metaFields && metaFields.length > 0) {\n      toggleFileCard(true, file.id);\n    } else {\n      openFileEditor(file);\n    }\n  };\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-actionWrapper\"\n  }, h(EditButton, {\n    i18n: i18n,\n    file: file,\n    uploadInProgressOrComplete: uploadInProgressOrComplete,\n    canEditFile: canEditFile,\n    metaFields: metaFields,\n    onClick: editAction\n  }), showLinkToFileUploadResult && file.uploadURL ? h(CopyLinkButton, {\n    file: file,\n    uppy: uppy,\n    i18n: i18n\n  }) : null, showRemoveButton ? h(RemoveButton, {\n    i18n: i18n,\n    file: file,\n    uppy: uppy,\n    onClick: () => props.uppy.removeFile(file.id, 'removed-by-user')\n  }) : null);\n}", "import { h } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport VirtualList from '@uppy/utils/lib/VirtualList';\nimport FileItem from \"./FileItem/index.js\";\nfunction chunks(list, size) {\n  const chunked = [];\n  let currentChunk = [];\n  list.forEach(item => {\n    if (currentChunk.length < size) {\n      currentChunk.push(item);\n    } else {\n      chunked.push(currentChunk);\n      currentChunk = [item];\n    }\n  });\n  if (currentChunk.length) chunked.push(currentChunk);\n  return chunked;\n}\nexport default (_ref => {\n  let {\n    id,\n    error,\n    i18n,\n    uppy,\n    files,\n    acquirers,\n    resumableUploads,\n    hideRetryButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete,\n    isWide,\n    metaFields,\n    isSingleFile,\n    toggleFileCard,\n    handleRequestThumbnail,\n    handleCancelThumbnail,\n    recoveredState,\n    individualCancellation,\n    itemsPerRow,\n    openFileEditor,\n    canEditFile,\n    toggleAddFilesPanel,\n    containerWidth,\n    containerHeight\n  } = _ref;\n  // It's not great that this is hardcoded!\n  // It's ESPECIALLY not great that this is checking against `itemsPerRow`!\n  const rowHeight = itemsPerRow === 1\n  // Mobile\n  ? 71\n  // 190px height + 2 * 5px margin\n  : 200;\n\n  // Sort files by file.isGhost, ghost files first, only if recoveredState is present\n  const rows = useMemo(() => {\n    const sortByGhostComesFirst = (file1, file2) => files[file2].isGhost - files[file1].isGhost;\n    const fileIds = Object.keys(files);\n    if (recoveredState) fileIds.sort(sortByGhostComesFirst);\n    return chunks(fileIds, itemsPerRow);\n  }, [files, itemsPerRow, recoveredState]);\n  const renderRow = row =>\n  // The `role=\"presentation` attribute ensures that the list items are properly\n  // associated with the `VirtualList` element.\n  // We use the first file ID as the key\u2014this should not change across scroll rerenders\n  h(\"div\", {\n    class: \"uppy-Dashboard-filesInner\",\n    role: \"presentation\",\n    key: row[0]\n  }, row.map(fileID => h(FileItem, {\n    key: fileID,\n    uppy: uppy\n    // FIXME This is confusing, it's actually the Dashboard's plugin ID\n    ,\n    id: id,\n    error: error\n    // TODO move this to context\n    ,\n    i18n: i18n\n    // features\n    ,\n    acquirers: acquirers,\n    resumableUploads: resumableUploads,\n    individualCancellation: individualCancellation\n    // visual options\n    ,\n    hideRetryButton: hideRetryButton,\n    hidePauseResumeButton: hidePauseResumeButton,\n    hideCancelButton: hideCancelButton,\n    showLinkToFileUploadResult: showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete: showRemoveButtonAfterComplete,\n    isWide: isWide,\n    metaFields: metaFields,\n    recoveredState: recoveredState,\n    isSingleFile: isSingleFile,\n    containerWidth: containerWidth,\n    containerHeight: containerHeight\n    // callbacks\n    ,\n    toggleFileCard: toggleFileCard,\n    handleRequestThumbnail: handleRequestThumbnail,\n    handleCancelThumbnail: handleCancelThumbnail,\n    role: \"listitem\",\n    openFileEditor: openFileEditor,\n    canEditFile: canEditFile,\n    toggleAddFilesPanel: toggleAddFilesPanel,\n    file: files[fileID]\n  })));\n  if (isSingleFile) {\n    return h(\"div\", {\n      class: \"uppy-Dashboard-files\"\n    }, renderRow(rows[0]));\n  }\n  return h(VirtualList, {\n    class: \"uppy-Dashboard-files\",\n    role: \"list\",\n    data: rows,\n    renderRow: renderRow,\n    rowHeight: rowHeight\n  });\n});", "let _Symbol$for;\nimport { h, Component, Fragment } from 'preact';\n_Symbol$for = Symbol.for('uppy test: disable unused locale key warning');\nclass AddFiles extends Component {\n  constructor() {\n    super(...arguments);\n    this.triggerFileInputClick = () => {\n      this.fileInput.click();\n    };\n    this.triggerFolderInputClick = () => {\n      this.folderInput.click();\n    };\n    this.triggerVideoCameraInputClick = () => {\n      this.mobileVideoFileInput.click();\n    };\n    this.triggerPhotoCameraInputClick = () => {\n      this.mobilePhotoFileInput.click();\n    };\n    this.onFileInputChange = event => {\n      this.props.handleInputChange(event);\n\n      // We clear the input after a file is selected, because otherwise\n      // change event is not fired in Chrome and Safari when a file\n      // with the same name is selected.\n      // ___Why not use value=\"\" on <input/> instead?\n      //    Because if we use that method of clearing the input,\n      //    Chrome will not trigger change if we drop the same file twice (Issue #768).\n      event.target.value = null; // eslint-disable-line no-param-reassign\n    };\n    this.renderHiddenInput = (isFolder, refCallback) => {\n      return h(\"input\", {\n        className: \"uppy-Dashboard-input\",\n        hidden: true,\n        \"aria-hidden\": \"true\",\n        tabIndex: -1,\n        webkitdirectory: isFolder,\n        type: \"file\",\n        name: \"files[]\",\n        multiple: this.props.maxNumberOfFiles !== 1,\n        onChange: this.onFileInputChange,\n        accept: this.props.allowedFileTypes,\n        ref: refCallback\n      });\n    };\n    this.renderHiddenCameraInput = (type, nativeCameraFacingMode, refCallback) => {\n      const typeToAccept = {\n        photo: 'image/*',\n        video: 'video/*'\n      };\n      const accept = typeToAccept[type];\n      return h(\"input\", {\n        className: \"uppy-Dashboard-input\",\n        hidden: true,\n        \"aria-hidden\": \"true\",\n        tabIndex: -1,\n        type: \"file\",\n        name: `camera-${type}`,\n        onChange: this.onFileInputChange,\n        capture: nativeCameraFacingMode,\n        accept: accept,\n        ref: refCallback\n      });\n    };\n    this.renderMyDeviceAcquirer = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MyDevice\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerFileInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        className: \"uppy-DashboardTab-iconMyDevice\",\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        d: \"M8.45 22.087l-1.305-6.674h17.678l-1.572 6.674H8.45zm4.975-12.412l1.083 1.765a.823.823 0 00.715.386h7.951V13.5H8.587V9.675h4.838zM26.043 13.5h-1.195v-2.598c0-.463-.336-.75-.798-.75h-8.356l-1.082-1.766A.823.823 0 0013.897 8H7.728c-.462 0-.815.256-.815.718V13.5h-.956a.97.97 0 00-.746.37.972.972 0 00-.19.81l1.724 8.565c.095.44.484.755.933.755H24c.44 0 .824-.3.929-.727l2.043-8.568a.972.972 0 00-.176-.825.967.967 0 00-.753-.38z\",\n        fill: \"currentcolor\",\n        \"fill-rule\": \"evenodd\"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('myDevice'))));\n    };\n    this.renderPhotoCamera = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MobilePhotoCamera\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerPhotoCameraInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        d: \"M23.5 9.5c1.417 0 2.5 1.083 2.5 2.5v9.167c0 1.416-1.083 2.5-2.5 2.5h-15c-1.417 0-2.5-1.084-2.5-2.5V12c0-1.417 1.083-2.5 2.5-2.5h2.917l1.416-2.167C13 7.167 13.25 7 13.5 7h5c.25 0 .5.167.667.333L20.583 9.5H23.5zM16 11.417a4.706 4.706 0 00-4.75 4.75 4.704 4.704 0 004.75 4.75 4.703 4.703 0 004.75-4.75c0-2.663-2.09-4.75-4.75-4.75zm0 7.825c-1.744 0-3.076-1.332-3.076-3.074 0-1.745 1.333-3.077 3.076-3.077 1.744 0 3.074 1.333 3.074 3.076s-1.33 3.075-3.074 3.075z\",\n        fill: \"#02B383\",\n        \"fill-rule\": \"nonzero\"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('takePictureBtn'))));\n    };\n    this.renderVideoCamera = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MobileVideoCamera\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerVideoCameraInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        fill: \"#FF675E\",\n        fillRule: \"nonzero\",\n        d: \"m21.254 14.277 2.941-2.588c.797-.313 1.243.818 1.09 1.554-.01 2.094.02 4.189-.017 6.282-.126.915-1.145 1.08-1.58.34l-2.434-2.142c-.192.287-.504 1.305-.738.468-.104-1.293-.028-2.596-.05-3.894.047-.312.381.823.426 1.069.063-.384.206-.744.362-1.09zm-12.939-3.73c3.858.013 7.717-.025 11.574.02.912.129 1.492 1.237 1.351 2.217-.019 2.412.04 4.83-.03 7.239-.17 1.025-1.166 1.59-2.029 1.429-3.705-.012-7.41.025-11.114-.019-.913-.129-1.492-1.237-1.352-2.217.018-2.404-.036-4.813.029-7.214.136-.82.83-1.473 1.571-1.454z \"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('recordVideoBtn'))));\n    };\n    this.renderBrowseButton = (text, onClickFn) => {\n      const numberOfAcquirers = this.props.acquirers.length;\n      return h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-browse\",\n        onClick: onClickFn,\n        \"data-uppy-super-focusable\": numberOfAcquirers === 0\n      }, text);\n    };\n    this.renderDropPasteBrowseTagline = numberOfAcquirers => {\n      const browseFiles = this.renderBrowseButton(this.props.i18n('browseFiles'), this.triggerFileInputClick);\n      const browseFolders = this.renderBrowseButton(this.props.i18n('browseFolders'), this.triggerFolderInputClick);\n\n      // in order to keep the i18n CamelCase and options lower (as are defaults) we will want to transform a lower\n      // to Camel\n      const lowerFMSelectionType = this.props.fileManagerSelectionType;\n      const camelFMSelectionType = lowerFMSelectionType.charAt(0).toUpperCase() + lowerFMSelectionType.slice(1);\n      return h(\"div\", {\n        class: \"uppy-Dashboard-AddFiles-title\"\n      },\n      // eslint-disable-next-line no-nested-ternary\n      this.props.disableLocalFiles ? this.props.i18n('importFiles') : numberOfAcquirers > 0 ? this.props.i18nArray(`dropPasteImport${camelFMSelectionType}`, {\n        browseFiles,\n        browseFolders,\n        browse: browseFiles\n      }) : this.props.i18nArray(`dropPaste${camelFMSelectionType}`, {\n        browseFiles,\n        browseFolders,\n        browse: browseFiles\n      }));\n    };\n    this.renderAcquirer = acquirer => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": acquirer.id\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-cy\": acquirer.id,\n        \"aria-controls\": `uppy-DashboardContent-panel--${acquirer.id}`,\n        \"aria-selected\": this.props.activePickerPanel.id === acquirer.id,\n        \"data-uppy-super-focusable\": true,\n        onClick: () => this.props.showPanel(acquirer.id)\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, acquirer.icon()), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, acquirer.name)));\n    };\n    this.renderAcquirers = acquirers => {\n      // Group last two buttons, so we don\u2019t end up with\n      // just one button on a new line\n      const acquirersWithoutLastTwo = [...acquirers];\n      const lastTwoAcquirers = acquirersWithoutLastTwo.splice(acquirers.length - 2, acquirers.length);\n      return h(Fragment, null, acquirersWithoutLastTwo.map(acquirer => this.renderAcquirer(acquirer)), h(\"span\", {\n        role: \"presentation\",\n        style: {\n          'white-space': 'nowrap'\n        }\n      }, lastTwoAcquirers.map(acquirer => this.renderAcquirer(acquirer))));\n    };\n    this.renderSourcesList = (acquirers, disableLocalFiles) => {\n      const {\n        showNativePhotoCameraButton,\n        showNativeVideoCameraButton\n      } = this.props;\n      let list = [];\n      const myDeviceKey = 'myDevice';\n      if (!disableLocalFiles) list.push({\n        key: myDeviceKey,\n        elements: this.renderMyDeviceAcquirer()\n      });\n      if (showNativePhotoCameraButton) list.push({\n        key: 'nativePhotoCameraButton',\n        elements: this.renderPhotoCamera()\n      });\n      if (showNativeVideoCameraButton) list.push({\n        key: 'nativePhotoCameraButton',\n        elements: this.renderVideoCamera()\n      });\n      list.push(...acquirers.map(acquirer => ({\n        key: acquirer.id,\n        elements: this.renderAcquirer(acquirer)\n      })));\n\n      // doesn't make sense to show only a lonely \"My Device\"\n      const hasOnlyMyDevice = list.length === 1 && list[0].key === myDeviceKey;\n      if (hasOnlyMyDevice) list = [];\n\n      // Group last two buttons, so we don\u2019t end up with\n      // just one button on a new line\n      const listWithoutLastTwo = [...list];\n      const lastTwo = listWithoutLastTwo.splice(list.length - 2, list.length);\n      const renderList = l => l.map(_ref => {\n        let {\n          key,\n          elements\n        } = _ref;\n        return h(Fragment, {\n          key: key\n        }, elements);\n      });\n      return h(Fragment, null, this.renderDropPasteBrowseTagline(list.length), h(\"div\", {\n        className: \"uppy-Dashboard-AddFiles-list\",\n        role: \"tablist\"\n      }, renderList(listWithoutLastTwo), h(\"span\", {\n        role: \"presentation\",\n        style: {\n          'white-space': 'nowrap'\n        }\n      }, renderList(lastTwo))));\n    };\n  }\n  [_Symbol$for]() {\n    // Those are actually used in `renderDropPasteBrowseTagline` method.\n    this.props.i18nArray('dropPasteBoth');\n    this.props.i18nArray('dropPasteFiles');\n    this.props.i18nArray('dropPasteFolders');\n    this.props.i18nArray('dropPasteImportBoth');\n    this.props.i18nArray('dropPasteImportFiles');\n    this.props.i18nArray('dropPasteImportFolders');\n  }\n  renderPoweredByUppy() {\n    const {\n      i18nArray\n    } = this.props;\n    const uppyBranding = h(\"span\", null, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      focusable: \"false\",\n      className: \"uppy-c-icon uppy-Dashboard-poweredByIcon\",\n      width: \"11\",\n      height: \"11\",\n      viewBox: \"0 0 11 11\"\n    }, h(\"path\", {\n      d: \"M7.365 10.5l-.01-4.045h2.612L5.5.806l-4.467 5.65h2.604l.01 4.044h3.718z\",\n      fillRule: \"evenodd\"\n    })), h(\"span\", {\n      className: \"uppy-Dashboard-poweredByUppy\"\n    }, \"Uppy\"));\n    const linkText = i18nArray('poweredBy', {\n      uppy: uppyBranding\n    });\n    return h(\"a\", {\n      tabIndex: \"-1\",\n      href: \"https://uppy.io\",\n      rel: \"noreferrer noopener\",\n      target: \"_blank\",\n      className: \"uppy-Dashboard-poweredBy\"\n    }, linkText);\n  }\n  render() {\n    const {\n      showNativePhotoCameraButton,\n      showNativeVideoCameraButton,\n      nativeCameraFacingMode\n    } = this.props;\n    return h(\"div\", {\n      className: \"uppy-Dashboard-AddFiles\"\n    }, this.renderHiddenInput(false, ref => {\n      this.fileInput = ref;\n    }), this.renderHiddenInput(true, ref => {\n      this.folderInput = ref;\n    }), showNativePhotoCameraButton && this.renderHiddenCameraInput('photo', nativeCameraFacingMode, ref => {\n      this.mobilePhotoFileInput = ref;\n    }), showNativeVideoCameraButton && this.renderHiddenCameraInput('video', nativeCameraFacingMode, ref => {\n      this.mobileVideoFileInput = ref;\n    }), this.renderSourcesList(this.props.acquirers, this.props.disableLocalFiles), h(\"div\", {\n      className: \"uppy-Dashboard-AddFiles-info\"\n    }, this.props.note && h(\"div\", {\n      className: \"uppy-Dashboard-note\"\n    }, this.props.note), this.props.proudlyDisplayPoweredByUppy && this.renderPoweredByUppy(this.props)));\n  }\n}\nexport default AddFiles;", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport AddFiles from \"./AddFiles.js\";\nconst AddFilesPanel = props => {\n  return h(\"div\", {\n    className: classNames('uppy-Dashboard-AddFilesPanel', props.className),\n    \"data-uppy-panelType\": \"AddFiles\",\n    \"aria-hidden\": !props.showAddFilesPanel\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, props.i18n('addingMoreFiles')), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: () => props.toggleAddFilesPanel(false)\n  }, props.i18n('back'))), h(AddFiles, props));\n};\nexport default AddFilesPanel;", "import { h } from 'preact';\nimport classNames from 'classnames';\nimport ignoreEvent from '../utils/ignoreEvent.js';\nfunction PickerPanelContent(_ref) {\n  let {\n    activePickerPanel,\n    className,\n    hideAllPanels,\n    i18n,\n    state,\n    uppy\n  } = _ref;\n  return h(\"div\", {\n    className: classNames('uppy-DashboardContent-panel', className),\n    role: \"tabpanel\",\n    \"data-uppy-panelType\": \"PickerPanel\",\n    id: `uppy-DashboardContent-panel--${activePickerPanel.id}`,\n    onDragOver: ignoreEvent,\n    onDragLeave: ignoreEvent,\n    onDrop: ignoreEvent,\n    onPaste: ignoreEvent\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, i18n('importFrom', {\n    name: activePickerPanel.name\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: hideAllPanels\n  }, i18n('cancel'))), h(\"div\", {\n    className: \"uppy-DashboardContent-panelBody\"\n  }, uppy.getPlugin(activePickerPanel.id).render(state)));\n}\nexport default PickerPanelContent;", "// ignore drop/paste events if they are not in input or textarea \u2014\n// otherwise when Url plugin adds drop/paste listeners to this.el,\n// draging UI elements or pasting anything into any field triggers those events \u2014\n// Url treats them as URLs that need to be imported\n\nfunction ignoreEvent(ev) {\n  const {\n    tagName\n  } = ev.target;\n  if (tagName === 'INPUT' || tagName === 'TEXTAREA') {\n    ev.stopPropagation();\n    return;\n  }\n  ev.preventDefault();\n  ev.stopPropagation();\n}\nexport default ignoreEvent;", "import { h } from 'preact';\nimport classNames from 'classnames';\nfunction EditorPanel(props) {\n  const file = props.files[props.fileCardFor];\n  const handleCancel = () => {\n    props.uppy.emit('file-editor:cancel', file);\n    props.closeFileEditor();\n  };\n  return h(\"div\", {\n    className: classNames('uppy-DashboardContent-panel', props.className),\n    role: \"tabpanel\",\n    \"data-uppy-panelType\": \"FileEditor\",\n    id: \"uppy-DashboardContent-panel--editor\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, props.i18nArray('editing', {\n    file: h(\"span\", {\n      className: \"uppy-DashboardContent-titleFile\"\n    }, file.meta ? file.meta.name : file.name)\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: handleCancel\n  }, props.i18n('cancel')), h(\"button\", {\n    className: \"uppy-DashboardContent-save\",\n    type: \"button\",\n    onClick: props.saveFileEditor\n  }, props.i18n('save'))), h(\"div\", {\n    className: \"uppy-DashboardContent-panelBody\"\n  }, props.editors.map(target => {\n    return props.uppy.getPlugin(target.id).render(props.state);\n  })));\n}\nexport default EditorPanel;", "import { h } from 'preact';\nconst uploadStates = {\n  STATE_ERROR: 'error',\n  STATE_WAITING: 'waiting',\n  STATE_PREPROCESSING: 'preprocessing',\n  STATE_UPLOADING: 'uploading',\n  STATE_POSTPROCESSING: 'postprocessing',\n  STATE_COMPLETE: 'complete',\n  STATE_PAUSED: 'paused'\n};\nfunction getUploadingState(isAllErrored, isAllComplete, isAllPaused, files) {\n  if (files === void 0) {\n    files = {};\n  }\n  if (isAllErrored) {\n    return uploadStates.STATE_ERROR;\n  }\n  if (isAllComplete) {\n    return uploadStates.STATE_COMPLETE;\n  }\n  if (isAllPaused) {\n    return uploadStates.STATE_PAUSED;\n  }\n  let state = uploadStates.STATE_WAITING;\n  const fileIDs = Object.keys(files);\n  for (let i = 0; i < fileIDs.length; i++) {\n    const {\n      progress\n    } = files[fileIDs[i]];\n    // If ANY files are being uploaded right now, show the uploading state.\n    if (progress.uploadStarted && !progress.uploadComplete) {\n      return uploadStates.STATE_UPLOADING;\n    }\n    // If files are being preprocessed AND postprocessed at this time, we show the\n    // preprocess state. If any files are being uploaded we show uploading.\n    if (progress.preprocess && state !== uploadStates.STATE_UPLOADING) {\n      state = uploadStates.STATE_PREPROCESSING;\n    }\n    // If NO files are being preprocessed or uploaded right now, but some files are\n    // being postprocessed, show the postprocess state.\n    if (progress.postprocess && state !== uploadStates.STATE_UPLOADING && state !== uploadStates.STATE_PREPROCESSING) {\n      state = uploadStates.STATE_POSTPROCESSING;\n    }\n  }\n  return state;\n}\nfunction UploadStatus(_ref) {\n  let {\n    files,\n    i18n,\n    isAllComplete,\n    isAllErrored,\n    isAllPaused,\n    inProgressNotPausedFiles,\n    newFiles,\n    processingFiles\n  } = _ref;\n  const uploadingState = getUploadingState(isAllErrored, isAllComplete, isAllPaused, files);\n  switch (uploadingState) {\n    case 'uploading':\n      return i18n('uploadingXFiles', {\n        smart_count: inProgressNotPausedFiles.length\n      });\n    case 'preprocessing':\n    case 'postprocessing':\n      return i18n('processingXFiles', {\n        smart_count: processingFiles.length\n      });\n    case 'paused':\n      return i18n('uploadPaused');\n    case 'waiting':\n      return i18n('xFilesSelected', {\n        smart_count: newFiles.length\n      });\n    case 'complete':\n      return i18n('uploadComplete');\n    case 'error':\n      return i18n('error');\n    default:\n  }\n}\nfunction PanelTopBar(props) {\n  const {\n    i18n,\n    isAllComplete,\n    hideCancelButton,\n    maxNumberOfFiles,\n    toggleAddFilesPanel,\n    uppy\n  } = props;\n  let {\n    allowNewUpload\n  } = props;\n  // TODO maybe this should be done in ../Dashboard.jsx, then just pass that down as `allowNewUpload`\n  if (allowNewUpload && maxNumberOfFiles) {\n    // eslint-disable-next-line react/destructuring-assignment\n    allowNewUpload = props.totalFileCount < props.maxNumberOfFiles;\n  }\n  return h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, !isAllComplete && !hideCancelButton ? h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: () => uppy.cancelAll()\n  }, i18n('cancel')) : h(\"div\", null), h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, h(UploadStatus, props)), allowNewUpload ? h(\"button\", {\n    className: \"uppy-DashboardContent-addMore\",\n    type: \"button\",\n    \"aria-label\": i18n('addMoreFiles'),\n    title: i18n('addMoreFiles'),\n    onClick: () => toggleAddFilesPanel(true)\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"15\",\n    height: \"15\",\n    viewBox: \"0 0 15 15\"\n  }, h(\"path\", {\n    d: \"M8 6.5h6a.5.5 0 0 1 .5.5v.5a.5.5 0 0 1-.5.5H8v6a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V8h-6a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5h6v-6A.5.5 0 0 1 7 0h.5a.5.5 0 0 1 .5.5v6z\"\n  })), h(\"span\", {\n    className: \"uppy-DashboardContent-addMoreCaption\"\n  }, i18n('addMore'))) : h(\"div\", null));\n}\nexport default PanelTopBar;", "import { h } from 'preact';\nimport { useEffect, useState, useCallback } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { nanoid } from 'nanoid/non-secure';\nimport getFileTypeIcon from \"../../utils/getFileTypeIcon.js\";\nimport ignoreEvent from '../../utils/ignoreEvent.js';\nimport FilePreview from \"../FilePreview.js\";\nimport RenderMetaFields from \"./RenderMetaFields.js\";\nexport default function FileCard(props) {\n  var _getMetaFields;\n  const {\n    files,\n    fileCardFor,\n    toggleFileCard,\n    saveFileCard,\n    metaFields,\n    requiredMetaFields,\n    openFileEditor,\n    i18n,\n    i18nArray,\n    className,\n    canEditFile\n  } = props;\n  const getMetaFields = () => {\n    return typeof metaFields === 'function' ? metaFields(files[fileCardFor]) : metaFields;\n  };\n  const file = files[fileCardFor];\n  const computedMetaFields = (_getMetaFields = getMetaFields()) != null ? _getMetaFields : [];\n  const showEditButton = canEditFile(file);\n  const storedMetaData = {};\n  computedMetaFields.forEach(field => {\n    var _file$meta$field$id;\n    storedMetaData[field.id] = (_file$meta$field$id = file.meta[field.id]) != null ? _file$meta$field$id : '';\n  });\n  const [formState, setFormState] = useState(storedMetaData);\n  const handleSave = useCallback(ev => {\n    ev.preventDefault();\n    saveFileCard(formState, fileCardFor);\n  }, [saveFileCard, formState, fileCardFor]);\n  const updateMeta = (newVal, name) => {\n    setFormState({\n      ...formState,\n      [name]: newVal\n    });\n  };\n  const handleCancel = () => {\n    toggleFileCard(false);\n  };\n  const [form] = useState(() => {\n    const formEl = document.createElement('form');\n    formEl.setAttribute('tabindex', '-1');\n    formEl.id = nanoid();\n    return formEl;\n  });\n  useEffect(() => {\n    document.body.appendChild(form);\n    form.addEventListener('submit', handleSave);\n    return () => {\n      form.removeEventListener('submit', handleSave);\n      document.body.removeChild(form);\n    };\n  }, [form, handleSave]);\n  return h(\"div\", {\n    className: classNames('uppy-Dashboard-FileCard', className),\n    \"data-uppy-panelType\": \"FileCard\",\n    onDragOver: ignoreEvent,\n    onDragLeave: ignoreEvent,\n    onDrop: ignoreEvent,\n    onPaste: ignoreEvent\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, i18nArray('editing', {\n    file: h(\"span\", {\n      className: \"uppy-DashboardContent-titleFile\"\n    }, file.meta ? file.meta.name : file.name)\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    form: form.id,\n    title: i18n('finishEditingFile'),\n    onClick: handleCancel\n  }, i18n('cancel'))), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-inner\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-preview\",\n    style: {\n      backgroundColor: getFileTypeIcon(file.type).color\n    }\n  }, h(FilePreview, {\n    file: file\n  }), showEditButton && h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-FileCard-edit\",\n    onClick: event => {\n      // When opening the image editor we want to save any meta fields changes.\n      // Otherwise it's confusing for the user to click save in the editor,\n      // but the changes here are discarded. This bypasses validation,\n      // but we are okay with that.\n      handleSave(event);\n      openFileEditor(file);\n    }\n  }, i18n('editImage'))), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-info\"\n  }, h(RenderMetaFields, {\n    computedMetaFields: computedMetaFields,\n    requiredMetaFields: requiredMetaFields,\n    updateMeta: updateMeta,\n    form: form,\n    formState: formState\n  })), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-actions\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Dashboard-FileCard-actionsBtn\"\n    // If `form` attribute is supported, we want a submit button to trigger the form validation.\n    // Otherwise, fallback to a classic button with a onClick event handler.\n    ,\n    type: \"submit\",\n    form: form.id\n  }, i18n('saveChanges')), h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-link uppy-Dashboard-FileCard-actionsBtn\",\n    type: \"button\",\n    onClick: handleCancel,\n    form: form.id\n  }, i18n('cancel')))));\n}", "import { h } from 'preact';\nexport default function RenderMetaFields(props) {\n  const {\n    computedMetaFields,\n    requiredMetaFields,\n    updateMeta,\n    form,\n    formState\n  } = props;\n  const fieldCSSClasses = {\n    text: 'uppy-u-reset uppy-c-textInput uppy-Dashboard-FileCard-input'\n  };\n  return computedMetaFields.map(field => {\n    const id = `uppy-Dashboard-FileCard-input-${field.id}`;\n    const required = requiredMetaFields.includes(field.id);\n    return h(\"fieldset\", {\n      key: field.id,\n      className: \"uppy-Dashboard-FileCard-fieldset\"\n    }, h(\"label\", {\n      className: \"uppy-Dashboard-FileCard-label\",\n      htmlFor: id\n    }, field.name), field.render !== undefined ? field.render({\n      value: formState[field.id],\n      onChange: newVal => updateMeta(newVal, field.id),\n      fieldCSSClasses,\n      required,\n      form: form.id\n    }, h) : h(\"input\", {\n      className: fieldCSSClasses.text,\n      id: id,\n      form: form.id,\n      type: field.type || 'text',\n      required: required,\n      value: formState[field.id],\n      placeholder: field.placeholder,\n      onInput: ev => updateMeta(ev.target.value, field.id),\n      \"data-uppy-super-focusable\": true\n    }));\n  });\n}", "import { cloneElement, Component, toChildArray } from 'preact';\nimport classNames from 'classnames';\nconst transitionName = 'uppy-transition-slideDownUp';\nconst duration = 250;\n\n/**\n * Vertical slide transition.\n *\n * This can take a _single_ child component, which _must_ accept a `className` prop.\n *\n * Currently this is specific to the `uppy-transition-slideDownUp` transition,\n * but it should be simple to extend this for any type of single-element\n * transition by setting the CSS name and duration as props.\n */\nclass Slide extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      cachedChildren: null,\n      className: ''\n    };\n  }\n\n  // TODO: refactor to stable lifecycle method\n  // eslint-disable-next-line\n  componentWillUpdate(nextProps) {\n    const {\n      cachedChildren\n    } = this.state;\n    const child = toChildArray(nextProps.children)[0];\n    if (cachedChildren === child) return null;\n    const patch = {\n      cachedChildren: child\n    };\n\n    // Enter transition\n    if (child && !cachedChildren) {\n      patch.className = `${transitionName}-enter`;\n      cancelAnimationFrame(this.animationFrame);\n      clearTimeout(this.leaveTimeout);\n      this.leaveTimeout = undefined;\n      this.animationFrame = requestAnimationFrame(() => {\n        // Force it to render before we add the active class\n        // this.base.getBoundingClientRect()\n\n        this.setState({\n          className: `${transitionName}-enter ${transitionName}-enter-active`\n        });\n        this.enterTimeout = setTimeout(() => {\n          this.setState({\n            className: ''\n          });\n        }, duration);\n      });\n    }\n\n    // Leave transition\n    if (cachedChildren && !child && this.leaveTimeout === undefined) {\n      patch.cachedChildren = cachedChildren;\n      patch.className = `${transitionName}-leave`;\n      cancelAnimationFrame(this.animationFrame);\n      clearTimeout(this.enterTimeout);\n      this.enterTimeout = undefined;\n      this.animationFrame = requestAnimationFrame(() => {\n        this.setState({\n          className: `${transitionName}-leave ${transitionName}-leave-active`\n        });\n        this.leaveTimeout = setTimeout(() => {\n          this.setState({\n            cachedChildren: null,\n            className: ''\n          });\n        }, duration);\n      });\n    }\n\n    // eslint-disable-next-line\n    this.setState(patch);\n  }\n  render() {\n    const {\n      cachedChildren,\n      className\n    } = this.state;\n    if (!cachedChildren) {\n      return null;\n    }\n    return cloneElement(cachedChildren, {\n      className: classNames(className, cachedChildren.props.className)\n    });\n  }\n}\nexport default Slide;", "export default {\n  strings: {\n    // When `inline: false`, used as the screen reader label for the button that closes the modal.\n    closeModal: 'Close Modal',\n    // Used as the screen reader label for the plus (+) button that shows the \u201CAdd more files\u201D screen\n    addMoreFiles: 'Add more files',\n    addingMoreFiles: 'Adding more files',\n    // Used as the header for import panels, e.g., \u201CImport from Google Drive\u201D.\n    importFrom: 'Import from %{name}',\n    // When `inline: false`, used as the screen reader label for the dashboard modal.\n    dashboardWindowTitle: 'Uppy Dashboard Window (Press escape to close)',\n    // When `inline: true`, used as the screen reader label for the dashboard area.\n    dashboardTitle: 'Uppy Dashboard',\n    // Shown in the Informer when a link to a file was copied to the clipboard.\n    copyLinkToClipboardSuccess: 'Link copied to clipboard.',\n    // Used when a link cannot be copied automatically \u2014 the user has to select the text from the\n    // input element below this string.\n    copyLinkToClipboardFallback: 'Copy the URL below',\n    // Used as the hover title and screen reader label for buttons that copy a file link.\n    copyLink: 'Copy link',\n    back: 'Back',\n    // Used as the screen reader label for buttons that remove a file.\n    removeFile: 'Remove file',\n    // Used as the screen reader label for buttons that open the metadata editor panel for a file.\n    editFile: 'Edit file',\n    editImage: 'Edit image',\n    // Shown in the panel header for the metadata editor. Rendered as \u201CEditing image.png\u201D.\n    editing: 'Editing %{file}',\n    // Shown on the main upload screen when an upload error occurs\n    error: 'Error',\n    // Used as the screen reader label for the button that saves metadata edits and returns to the\n    // file list view.\n    finishEditingFile: 'Finish editing file',\n    saveChanges: 'Save changes',\n    // Used as the label for the tab button that opens the system file selection dialog.\n    myDevice: 'My Device',\n    dropHint: 'Drop your files here',\n    // Used as the hover text and screen reader label for file progress indicators when\n    // they have been fully uploaded.\n    uploadComplete: 'Upload complete',\n    uploadPaused: 'Upload paused',\n    // Used as the hover text and screen reader label for the buttons to resume paused uploads.\n    resumeUpload: 'Resume upload',\n    // Used as the hover text and screen reader label for the buttons to pause uploads.\n    pauseUpload: 'Pause upload',\n    // Used as the hover text and screen reader label for the buttons to retry failed uploads.\n    retryUpload: 'Retry upload',\n    // Used as the hover text and screen reader label for the buttons to cancel uploads.\n    cancelUpload: 'Cancel upload',\n    // Used in a title, how many files are currently selected\n    xFilesSelected: {\n      0: '%{smart_count} file selected',\n      1: '%{smart_count} files selected'\n    },\n    uploadingXFiles: {\n      0: 'Uploading %{smart_count} file',\n      1: 'Uploading %{smart_count} files'\n    },\n    processingXFiles: {\n      0: 'Processing %{smart_count} file',\n      1: 'Processing %{smart_count} files'\n    },\n    // The \"powered by Uppy\" link at the bottom of the Dashboard.\n    poweredBy: 'Powered by %{uppy}',\n    addMore: 'Add more',\n    editFileWithFilename: 'Edit file %{file}',\n    save: 'Save',\n    cancel: 'Cancel',\n    dropPasteFiles: 'Drop files here or %{browseFiles}',\n    dropPasteFolders: 'Drop files here or %{browseFolders}',\n    dropPasteBoth: 'Drop files here, %{browseFiles} or %{browseFolders}',\n    dropPasteImportFiles: 'Drop files here, %{browseFiles} or import from:',\n    dropPasteImportFolders: 'Drop files here, %{browseFolders} or import from:',\n    dropPasteImportBoth: 'Drop files here, %{browseFiles}, %{browseFolders} or import from:',\n    importFiles: 'Import files from:',\n    browseFiles: 'browse files',\n    browseFolders: 'browse folders',\n    recoveredXFiles: {\n      0: 'We could not fully recover 1 file. Please re-select it and resume the upload.',\n      1: 'We could not fully recover %{smart_count} files. Please re-select them and resume the upload.'\n    },\n    recoveredAllFiles: 'We restored all files. You can now resume the upload.',\n    sessionRestored: 'Session restored',\n    reSelect: 'Re-select',\n    missingRequiredMetaFields: {\n      0: 'Missing required meta field: %{fields}.',\n      1: 'Missing required meta fields: %{fields}.'\n    },\n    // Used for native device camera buttons on mobile\n    takePictureBtn: 'Take Picture',\n    recordVideoBtn: 'Record Video'\n  }\n};", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { UIPlugin } from '@uppy/core';\nimport StatusBar from '@uppy/status-bar';\nimport Informer from '@uppy/informer';\nimport ThumbnailGenerator from '@uppy/thumbnail-generator';\nimport findAllDOMElements from '@uppy/utils/lib/findAllDOMElements';\nimport toArray from '@uppy/utils/lib/toArray';\nimport getDroppedFiles from '@uppy/utils/lib/getDroppedFiles';\nimport { defaultPickerIcon } from '@uppy/provider-views';\nimport { nanoid } from 'nanoid/non-secure';\nimport memoizeOne from 'memoize-one';\nimport * as trapFocus from './utils/trapFocus.js';\nimport createSuperFocus from './utils/createSuperFocus.js';\nimport DashboardUI from \"./components/Dashboard.js\";\nconst packageJson = {\n  \"version\": \"3.7.5\"\n};\nimport locale from './locale.js';\nconst memoize = memoizeOne.default || memoizeOne;\nconst TAB_KEY = 9;\nconst ESC_KEY = 27;\nfunction createPromise() {\n  const o = {};\n  o.promise = new Promise((resolve, reject) => {\n    o.resolve = resolve;\n    o.reject = reject;\n  });\n  return o;\n}\n\n/**\n * Dashboard UI with previews, metadata editing, tabs for various services and more\n */\nvar _disabledNodes = /*#__PURE__*/_classPrivateFieldLooseKey(\"disabledNodes\");\nvar _generateLargeThumbnailIfSingleFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"generateLargeThumbnailIfSingleFile\");\nvar _openFileEditorWhenFilesAdded = /*#__PURE__*/_classPrivateFieldLooseKey(\"openFileEditorWhenFilesAdded\");\nvar _attachRenderFunctionToTarget = /*#__PURE__*/_classPrivateFieldLooseKey(\"attachRenderFunctionToTarget\");\nvar _isTargetSupported = /*#__PURE__*/_classPrivateFieldLooseKey(\"isTargetSupported\");\nvar _getAcquirers = /*#__PURE__*/_classPrivateFieldLooseKey(\"getAcquirers\");\nvar _getProgressIndicators = /*#__PURE__*/_classPrivateFieldLooseKey(\"getProgressIndicators\");\nvar _getEditors = /*#__PURE__*/_classPrivateFieldLooseKey(\"getEditors\");\nvar _addSpecifiedPluginsFromOptions = /*#__PURE__*/_classPrivateFieldLooseKey(\"addSpecifiedPluginsFromOptions\");\nvar _autoDiscoverPlugins = /*#__PURE__*/_classPrivateFieldLooseKey(\"autoDiscoverPlugins\");\nvar _addSupportedPluginIfNoTarget = /*#__PURE__*/_classPrivateFieldLooseKey(\"addSupportedPluginIfNoTarget\");\nexport default class Dashboard extends UIPlugin {\n  constructor(uppy, _opts) {\n    var _this;\n    super(uppy, _opts);\n    _this = this;\n    Object.defineProperty(this, _disabledNodes, {\n      writable: true,\n      value: null\n    });\n    this.removeTarget = plugin => {\n      const pluginState = this.getPluginState();\n      // filter out the one we want to remove\n      const newTargets = pluginState.targets.filter(target => target.id !== plugin.id);\n      this.setPluginState({\n        targets: newTargets\n      });\n    };\n    this.addTarget = plugin => {\n      const callerPluginId = plugin.id || plugin.constructor.name;\n      const callerPluginName = plugin.title || callerPluginId;\n      const callerPluginType = plugin.type;\n      if (callerPluginType !== 'acquirer' && callerPluginType !== 'progressindicator' && callerPluginType !== 'editor') {\n        const msg = 'Dashboard: can only be targeted by plugins of types: acquirer, progressindicator, editor';\n        this.uppy.log(msg, 'error');\n        return undefined;\n      }\n      const target = {\n        id: callerPluginId,\n        name: callerPluginName,\n        type: callerPluginType\n      };\n      const state = this.getPluginState();\n      const newTargets = state.targets.slice();\n      newTargets.push(target);\n      this.setPluginState({\n        targets: newTargets\n      });\n      return this.el;\n    };\n    this.hideAllPanels = () => {\n      const state = this.getPluginState();\n      const update = {\n        activePickerPanel: false,\n        showAddFilesPanel: false,\n        activeOverlayType: null,\n        fileCardFor: null,\n        showFileEditor: false\n      };\n      if (state.activePickerPanel === update.activePickerPanel && state.showAddFilesPanel === update.showAddFilesPanel && state.showFileEditor === update.showFileEditor && state.activeOverlayType === update.activeOverlayType) {\n        // avoid doing a state update if nothing changed\n        return;\n      }\n      this.setPluginState(update);\n      this.uppy.emit('dashboard:close-panel', state.activePickerPanel.id);\n    };\n    this.showPanel = id => {\n      const {\n        targets\n      } = this.getPluginState();\n      const activePickerPanel = targets.filter(target => {\n        return target.type === 'acquirer' && target.id === id;\n      })[0];\n      this.setPluginState({\n        activePickerPanel,\n        activeOverlayType: 'PickerPanel'\n      });\n      this.uppy.emit('dashboard:show-panel', id);\n    };\n    this.canEditFile = file => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      return editors.some(target => this.uppy.getPlugin(target.id).canEditFile(file));\n    };\n    this.openFileEditor = file => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      this.setPluginState({\n        showFileEditor: true,\n        fileCardFor: file.id || null,\n        activeOverlayType: 'FileEditor'\n      });\n      editors.forEach(editor => {\n        this.uppy.getPlugin(editor.id).selectFile(file);\n      });\n    };\n    this.closeFileEditor = () => {\n      const {\n        metaFields\n      } = this.getPluginState();\n      const isMetaEditorEnabled = metaFields && metaFields.length > 0;\n      if (isMetaEditorEnabled) {\n        this.setPluginState({\n          showFileEditor: false,\n          activeOverlayType: 'FileCard'\n        });\n      } else {\n        this.setPluginState({\n          showFileEditor: false,\n          fileCardFor: null,\n          activeOverlayType: 'AddFiles'\n        });\n      }\n    };\n    this.saveFileEditor = () => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      editors.forEach(editor => {\n        this.uppy.getPlugin(editor.id).save();\n      });\n      this.closeFileEditor();\n    };\n    this.openModal = () => {\n      const {\n        promise,\n        resolve\n      } = createPromise();\n      // save scroll position\n      this.savedScrollPosition = window.pageYOffset;\n      // save active element, so we can restore focus when modal is closed\n      this.savedActiveElement = document.activeElement;\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.add('uppy-Dashboard-isFixed');\n      }\n      if (this.opts.animateOpenClose && this.getPluginState().isClosing) {\n        const handler = () => {\n          this.setPluginState({\n            isHidden: false\n          });\n          this.el.removeEventListener('animationend', handler, false);\n          resolve();\n        };\n        this.el.addEventListener('animationend', handler, false);\n      } else {\n        this.setPluginState({\n          isHidden: false\n        });\n        resolve();\n      }\n      if (this.opts.browserBackButtonClose) {\n        this.updateBrowserHistory();\n      }\n\n      // handle ESC and TAB keys in modal dialog\n      document.addEventListener('keydown', this.handleKeyDownInModal);\n      this.uppy.emit('dashboard:modal-open');\n      return promise;\n    };\n    this.closeModal = function (opts) {\n      if (opts === void 0) {\n        opts = {};\n      }\n      const {\n        // Whether the modal is being closed by the user (`true`) or by other means (e.g. browser back button)\n        manualClose = true\n      } = opts;\n      const {\n        isHidden,\n        isClosing\n      } = _this.getPluginState();\n      if (isHidden || isClosing) {\n        // short-circuit if animation is ongoing\n        return undefined;\n      }\n      const {\n        promise,\n        resolve\n      } = createPromise();\n      if (_this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.remove('uppy-Dashboard-isFixed');\n      }\n      if (_this.opts.animateOpenClose) {\n        _this.setPluginState({\n          isClosing: true\n        });\n        const handler = () => {\n          _this.setPluginState({\n            isHidden: true,\n            isClosing: false\n          });\n          _this.superFocus.cancel();\n          _this.savedActiveElement.focus();\n          _this.el.removeEventListener('animationend', handler, false);\n          resolve();\n        };\n        _this.el.addEventListener('animationend', handler, false);\n      } else {\n        _this.setPluginState({\n          isHidden: true\n        });\n        _this.superFocus.cancel();\n        _this.savedActiveElement.focus();\n        resolve();\n      }\n\n      // handle ESC and TAB keys in modal dialog\n      document.removeEventListener('keydown', _this.handleKeyDownInModal);\n      if (manualClose) {\n        if (_this.opts.browserBackButtonClose) {\n          var _history$state;\n          // Make sure that the latest entry in the history state is our modal name\n          // eslint-disable-next-line no-restricted-globals\n          if ((_history$state = history.state) != null && _history$state[_this.modalName]) {\n            // Go back in history to clear out the entry we created (ultimately closing the modal)\n            // eslint-disable-next-line no-restricted-globals\n            history.back();\n          }\n        }\n      }\n      _this.uppy.emit('dashboard:modal-closed');\n      return promise;\n    };\n    this.isModalOpen = () => {\n      return !this.getPluginState().isHidden || false;\n    };\n    this.requestCloseModal = () => {\n      if (this.opts.onRequestCloseModal) {\n        return this.opts.onRequestCloseModal();\n      }\n      return this.closeModal();\n    };\n    this.setDarkModeCapability = isDarkModeOn => {\n      const {\n        capabilities\n      } = this.uppy.getState();\n      this.uppy.setState({\n        capabilities: {\n          ...capabilities,\n          darkMode: isDarkModeOn\n        }\n      });\n    };\n    this.handleSystemDarkModeChange = event => {\n      const isDarkModeOnNow = event.matches;\n      this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnNow ? 'on' : 'off'}`);\n      this.setDarkModeCapability(isDarkModeOnNow);\n    };\n    this.toggleFileCard = (show, fileID) => {\n      const file = this.uppy.getFile(fileID);\n      if (show) {\n        this.uppy.emit('dashboard:file-edit-start', file);\n      } else {\n        this.uppy.emit('dashboard:file-edit-complete', file);\n      }\n      this.setPluginState({\n        fileCardFor: show ? fileID : null,\n        activeOverlayType: show ? 'FileCard' : null\n      });\n    };\n    this.toggleAddFilesPanel = show => {\n      this.setPluginState({\n        showAddFilesPanel: show,\n        activeOverlayType: show ? 'AddFiles' : null\n      });\n    };\n    this.addFiles = files => {\n      const descriptors = files.map(file => ({\n        source: this.id,\n        name: file.name,\n        type: file.type,\n        data: file,\n        meta: {\n          // path of the file relative to the ancestor directory the user selected.\n          // e.g. 'docs/Old Prague/airbnb.pdf'\n          relativePath: file.relativePath || file.webkitRelativePath || null\n        }\n      }));\n      try {\n        this.uppy.addFiles(descriptors);\n      } catch (err) {\n        this.uppy.log(err);\n      }\n    };\n    // ___Why make insides of Dashboard invisible until first ResizeObserver event is emitted?\n    //    ResizeOberserver doesn't emit the first resize event fast enough, users can see the jump from one .uppy-size-- to\n    //    another (e.g. in Safari)\n    // ___Why not apply visibility property to .uppy-Dashboard-inner?\n    //    Because ideally, acc to specs, ResizeObserver should see invisible elements as of width 0. So even though applying\n    //    invisibility to .uppy-Dashboard-inner works now, it may not work in the future.\n    this.startListeningToResize = () => {\n      // Watch for Dashboard container (`.uppy-Dashboard-inner`) resize\n      // and update containerWidth/containerHeight in plugin state accordingly.\n      // Emits first event on initialization.\n      this.resizeObserver = new ResizeObserver(entries => {\n        const uppyDashboardInnerEl = entries[0];\n        const {\n          width,\n          height\n        } = uppyDashboardInnerEl.contentRect;\n        this.setPluginState({\n          containerWidth: width,\n          containerHeight: height,\n          areInsidesReadyToBeVisible: true\n        });\n      });\n      this.resizeObserver.observe(this.el.querySelector('.uppy-Dashboard-inner'));\n\n      // If ResizeObserver fails to emit an event telling us what size to use - default to the mobile view\n      this.makeDashboardInsidesVisibleAnywayTimeout = setTimeout(() => {\n        const pluginState = this.getPluginState();\n        const isModalAndClosed = !this.opts.inline && pluginState.isHidden;\n        if (\n        // We might want to enable this in the future\n\n        // if ResizeObserver hasn't yet fired,\n        !pluginState.areInsidesReadyToBeVisible\n        // and it's not due to the modal being closed\n        && !isModalAndClosed) {\n          this.uppy.log('[Dashboard] resize event didn\u2019t fire on time: defaulted to mobile layout', 'warning');\n          this.setPluginState({\n            areInsidesReadyToBeVisible: true\n          });\n        }\n      }, 1000);\n    };\n    this.stopListeningToResize = () => {\n      this.resizeObserver.disconnect();\n      clearTimeout(this.makeDashboardInsidesVisibleAnywayTimeout);\n    };\n    // Records whether we have been interacting with uppy right now,\n    // which is then used to determine whether state updates should trigger a refocusing.\n    this.recordIfFocusedOnUppyRecently = event => {\n      if (this.el.contains(event.target)) {\n        this.ifFocusedOnUppyRecently = true;\n      } else {\n        this.ifFocusedOnUppyRecently = false;\n        // ___Why run this.superFocus.cancel here when it already runs in superFocusOnEachUpdate?\n        //    Because superFocus is debounced, when we move from Uppy to some other element on the page,\n        //    previously run superFocus sometimes hits and moves focus back to Uppy.\n        this.superFocus.cancel();\n      }\n    };\n    this.disableInteractiveElements = disable => {\n      var _classPrivateFieldLoo;\n      const NODES_TO_DISABLE = ['a[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', '[role=\"button\"]:not([disabled])'];\n      const nodesToDisable = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes]) != null ? _classPrivateFieldLoo : toArray(this.el.querySelectorAll(NODES_TO_DISABLE)).filter(node => !node.classList.contains('uppy-Dashboard-close'));\n      for (const node of nodesToDisable) {\n        // Links can\u2019t have `disabled` attr, so we use `aria-disabled` for a11y\n        if (node.tagName === 'A') {\n          node.setAttribute('aria-disabled', disable);\n        } else {\n          node.disabled = disable;\n        }\n      }\n      if (disable) {\n        _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes] = nodesToDisable;\n      } else {\n        _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes] = null;\n      }\n      this.dashboardIsDisabled = disable;\n    };\n    this.updateBrowserHistory = () => {\n      var _history$state2;\n      // Ensure history state does not already contain our modal name to avoid double-pushing\n      // eslint-disable-next-line no-restricted-globals\n      if (!((_history$state2 = history.state) != null && _history$state2[this.modalName])) {\n        // Push to history so that the page is not lost on browser back button press\n        // eslint-disable-next-line no-restricted-globals\n        history.pushState({\n          // eslint-disable-next-line no-restricted-globals\n          ...history.state,\n          [this.modalName]: true\n        }, '');\n      }\n\n      // Listen for back button presses\n      window.addEventListener('popstate', this.handlePopState, false);\n    };\n    this.handlePopState = event => {\n      var _event$state;\n      // Close the modal if the history state no longer contains our modal name\n      if (this.isModalOpen() && (!event.state || !event.state[this.modalName])) {\n        this.closeModal({\n          manualClose: false\n        });\n      }\n\n      // When the browser back button is pressed and uppy is now the latest entry\n      // in the history but the modal is closed, fix the history by removing the\n      // uppy history entry.\n      // This occurs when another entry is added into the history state while the\n      // modal is open, and then the modal gets manually closed.\n      // Solves PR #575 (https://github.com/transloadit/uppy/pull/575)\n      if (!this.isModalOpen() && (_event$state = event.state) != null && _event$state[this.modalName]) {\n        // eslint-disable-next-line no-restricted-globals\n        history.back();\n      }\n    };\n    this.handleKeyDownInModal = event => {\n      // close modal on esc key press\n      if (event.keyCode === ESC_KEY) this.requestCloseModal(event);\n      // trap focus on tab key press\n      if (event.keyCode === TAB_KEY) trapFocus.forModal(event, this.getPluginState().activeOverlayType, this.el);\n    };\n    this.handleClickOutside = () => {\n      if (this.opts.closeModalOnClickOutside) this.requestCloseModal();\n    };\n    this.handlePaste = event => {\n      // Let any acquirer plugin (Url/Webcam/etc.) handle pastes to the root\n      this.uppy.iteratePlugins(plugin => {\n        if (plugin.type === 'acquirer') {\n          // Every Plugin with .type acquirer can define handleRootPaste(event)\n          plugin.handleRootPaste == null || plugin.handleRootPaste(event);\n        }\n      });\n\n      // Add all dropped files\n      const files = toArray(event.clipboardData.files);\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files pasted');\n        this.addFiles(files);\n      }\n    };\n    this.handleInputChange = event => {\n      event.preventDefault();\n      const files = toArray(event.target.files);\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files selected through input');\n        this.addFiles(files);\n      }\n    };\n    this.handleDragOver = event => {\n      var _this$opts$onDragOver, _this$opts;\n      event.preventDefault();\n      event.stopPropagation();\n\n      // Check if some plugin can handle the datatransfer without files \u2014\n      // for instance, the Url plugin can import a url\n      const canSomePluginHandleRootDrop = () => {\n        let somePluginCanHandleRootDrop = true;\n        this.uppy.iteratePlugins(plugin => {\n          if (plugin.canHandleRootDrop != null && plugin.canHandleRootDrop(event)) {\n            somePluginCanHandleRootDrop = true;\n          }\n        });\n        return somePluginCanHandleRootDrop;\n      };\n\n      // Check if the \"type\" of the datatransfer object includes files\n      const doesEventHaveFiles = () => {\n        const {\n          types\n        } = event.dataTransfer;\n        return types.some(type => type === 'Files');\n      };\n\n      // Deny drop, if no plugins can handle datatransfer, there are no files,\n      // or when opts.disabled is set, or new uploads are not allowed\n      const somePluginCanHandleRootDrop = canSomePluginHandleRootDrop(event);\n      const hasFiles = doesEventHaveFiles(event);\n      if (!somePluginCanHandleRootDrop && !hasFiles || this.opts.disabled\n      // opts.disableLocalFiles should only be taken into account if no plugins\n      // can handle the datatransfer\n      || this.opts.disableLocalFiles && (hasFiles || !somePluginCanHandleRootDrop) || !this.uppy.getState().allowNewUpload) {\n        event.dataTransfer.dropEffect = 'none'; // eslint-disable-line no-param-reassign\n        clearTimeout(this.removeDragOverClassTimeout);\n        return;\n      }\n\n      // Add a small (+) icon on drop\n      // (and prevent browsers from interpreting this as files being _moved_ into the\n      // browser, https://github.com/transloadit/uppy/issues/1978).\n      event.dataTransfer.dropEffect = 'copy'; // eslint-disable-line no-param-reassign\n\n      clearTimeout(this.removeDragOverClassTimeout);\n      this.setPluginState({\n        isDraggingOver: true\n      });\n      (_this$opts$onDragOver = (_this$opts = this.opts).onDragOver) == null || _this$opts$onDragOver.call(_this$opts, event);\n    };\n    this.handleDragLeave = event => {\n      var _this$opts$onDragLeav, _this$opts2;\n      event.preventDefault();\n      event.stopPropagation();\n      clearTimeout(this.removeDragOverClassTimeout);\n      // Timeout against flickering, this solution is taken from drag-drop library.\n      // Solution with 'pointer-events: none' didn't work across browsers.\n      this.removeDragOverClassTimeout = setTimeout(() => {\n        this.setPluginState({\n          isDraggingOver: false\n        });\n      }, 50);\n      (_this$opts$onDragLeav = (_this$opts2 = this.opts).onDragLeave) == null || _this$opts$onDragLeav.call(_this$opts2, event);\n    };\n    this.handleDrop = async event => {\n      var _this$opts$onDrop, _this$opts3;\n      event.preventDefault();\n      event.stopPropagation();\n      clearTimeout(this.removeDragOverClassTimeout);\n      this.setPluginState({\n        isDraggingOver: false\n      });\n\n      // Let any acquirer plugin (Url/Webcam/etc.) handle drops to the root\n      this.uppy.iteratePlugins(plugin => {\n        if (plugin.type === 'acquirer') {\n          // Every Plugin with .type acquirer can define handleRootDrop(event)\n          plugin.handleRootDrop == null || plugin.handleRootDrop(event);\n        }\n      });\n\n      // Add all dropped files\n      let executedDropErrorOnce = false;\n      const logDropError = error => {\n        this.uppy.log(error, 'error');\n\n        // In practice all drop errors are most likely the same,\n        // so let's just show one to avoid overwhelming the user\n        if (!executedDropErrorOnce) {\n          this.uppy.info(error.message, 'error');\n          executedDropErrorOnce = true;\n        }\n      };\n      this.uppy.log('[Dashboard] Processing dropped files');\n\n      // Add all dropped files\n      const files = await getDroppedFiles(event.dataTransfer, {\n        logDropError\n      });\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files dropped');\n        this.addFiles(files);\n      }\n      (_this$opts$onDrop = (_this$opts3 = this.opts).onDrop) == null || _this$opts$onDrop.call(_this$opts3, event);\n    };\n    this.handleRequestThumbnail = file => {\n      if (!this.opts.waitForThumbnailsBeforeUpload) {\n        this.uppy.emit('thumbnail:request', file);\n      }\n    };\n    /**\n     * We cancel thumbnail requests when a file item component unmounts to avoid\n     * clogging up the queue when the user scrolls past many elements.\n     */\n    this.handleCancelThumbnail = file => {\n      if (!this.opts.waitForThumbnailsBeforeUpload) {\n        this.uppy.emit('thumbnail:cancel', file);\n      }\n    };\n    this.handleKeyDownInInline = event => {\n      // Trap focus on tab key press.\n      if (event.keyCode === TAB_KEY) trapFocus.forInline(event, this.getPluginState().activeOverlayType, this.el);\n    };\n    // ___Why do we listen to the 'paste' event on a document instead of onPaste={props.handlePaste} prop,\n    //    or this.el.addEventListener('paste')?\n    //    Because (at least) Chrome doesn't handle paste if focus is on some button, e.g. 'My Device'.\n    //    => Therefore, the best option is to listen to all 'paste' events, and only react to them when we are focused on our\n    //       particular Uppy instance.\n    // ___Why do we still need onPaste={props.handlePaste} for the DashboardUi?\n    //    Because if we click on the 'Drop files here' caption e.g., `document.activeElement` will be 'body'. Which means our\n    //    standard determination of whether we're pasting into our Uppy instance won't work.\n    //    => Therefore, we need a traditional onPaste={props.handlePaste} handler too.\n    this.handlePasteOnBody = event => {\n      const isFocusInOverlay = this.el.contains(document.activeElement);\n      if (isFocusInOverlay) {\n        this.handlePaste(event);\n      }\n    };\n    this.handleComplete = _ref => {\n      let {\n        failed\n      } = _ref;\n      if (this.opts.closeAfterFinish && failed.length === 0) {\n        // All uploads are done\n        this.requestCloseModal();\n      }\n    };\n    this.handleCancelRestore = () => {\n      this.uppy.emit('restore-canceled');\n    };\n    Object.defineProperty(this, _generateLargeThumbnailIfSingleFile, {\n      writable: true,\n      value: () => {\n        if (this.opts.disableThumbnailGenerator) {\n          return;\n        }\n        const LARGE_THUMBNAIL = 600;\n        const files = this.uppy.getFiles();\n        if (files.length === 1) {\n          const thumbnailGenerator = this.uppy.getPlugin(`${this.id}:ThumbnailGenerator`);\n          thumbnailGenerator == null || thumbnailGenerator.setOptions({\n            thumbnailWidth: LARGE_THUMBNAIL\n          });\n          const fileForThumbnail = {\n            ...files[0],\n            preview: undefined\n          };\n          thumbnailGenerator.requestThumbnail(fileForThumbnail).then(() => {\n            thumbnailGenerator == null || thumbnailGenerator.setOptions({\n              thumbnailWidth: this.opts.thumbnailWidth\n            });\n          });\n        }\n      }\n    });\n    Object.defineProperty(this, _openFileEditorWhenFilesAdded, {\n      writable: true,\n      value: files => {\n        const firstFile = files[0];\n        const {\n          metaFields\n        } = this.getPluginState();\n        const isMetaEditorEnabled = metaFields && metaFields.length > 0;\n        const isFileEditorEnabled = this.canEditFile(firstFile);\n        if (isMetaEditorEnabled) {\n          this.toggleFileCard(true, firstFile.id);\n        } else if (isFileEditorEnabled) {\n          this.openFileEditor(firstFile);\n        }\n      }\n    });\n    this.initEvents = () => {\n      // Modal open button\n      if (this.opts.trigger && !this.opts.inline) {\n        const showModalTrigger = findAllDOMElements(this.opts.trigger);\n        if (showModalTrigger) {\n          showModalTrigger.forEach(trigger => trigger.addEventListener('click', this.openModal));\n        } else {\n          this.uppy.log('Dashboard modal trigger not found. Make sure `trigger` is set in Dashboard options, unless you are planning to call `dashboard.openModal()` method yourself', 'warning');\n        }\n      }\n      this.startListeningToResize();\n      document.addEventListener('paste', this.handlePasteOnBody);\n      this.uppy.on('plugin-added', _classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      this.uppy.on('plugin-remove', this.removeTarget);\n      this.uppy.on('file-added', this.hideAllPanels);\n      this.uppy.on('dashboard:modal-closed', this.hideAllPanels);\n      this.uppy.on('complete', this.handleComplete);\n      this.uppy.on('files-added', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      this.uppy.on('file-removed', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n\n      // ___Why fire on capture?\n      //    Because this.ifFocusedOnUppyRecently needs to change before onUpdate() fires.\n      document.addEventListener('focus', this.recordIfFocusedOnUppyRecently, true);\n      document.addEventListener('click', this.recordIfFocusedOnUppyRecently, true);\n      if (this.opts.inline) {\n        this.el.addEventListener('keydown', this.handleKeyDownInInline);\n      }\n      if (this.opts.autoOpenFileEditor) {\n        this.uppy.on('files-added', _classPrivateFieldLooseBase(this, _openFileEditorWhenFilesAdded)[_openFileEditorWhenFilesAdded]);\n      }\n    };\n    this.removeEvents = () => {\n      const showModalTrigger = findAllDOMElements(this.opts.trigger);\n      if (!this.opts.inline && showModalTrigger) {\n        showModalTrigger.forEach(trigger => trigger.removeEventListener('click', this.openModal));\n      }\n      this.stopListeningToResize();\n      document.removeEventListener('paste', this.handlePasteOnBody);\n      window.removeEventListener('popstate', this.handlePopState, false);\n      this.uppy.off('plugin-added', _classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      this.uppy.off('plugin-remove', this.removeTarget);\n      this.uppy.off('file-added', this.hideAllPanels);\n      this.uppy.off('dashboard:modal-closed', this.hideAllPanels);\n      this.uppy.off('complete', this.handleComplete);\n      this.uppy.off('files-added', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      this.uppy.off('file-removed', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      document.removeEventListener('focus', this.recordIfFocusedOnUppyRecently);\n      document.removeEventListener('click', this.recordIfFocusedOnUppyRecently);\n      if (this.opts.inline) {\n        this.el.removeEventListener('keydown', this.handleKeyDownInInline);\n      }\n      if (this.opts.autoOpenFileEditor) {\n        this.uppy.off('files-added', _classPrivateFieldLooseBase(this, _openFileEditorWhenFilesAdded)[_openFileEditorWhenFilesAdded]);\n      }\n    };\n    this.superFocusOnEachUpdate = () => {\n      const isFocusInUppy = this.el.contains(document.activeElement);\n      // When focus is lost on the page (== focus is on body for most browsers, or focus is null for IE11)\n      const isFocusNowhere = document.activeElement === document.body || document.activeElement === null;\n      const isInformerHidden = this.uppy.getState().info.length === 0;\n      const isModal = !this.opts.inline;\n      if (\n      // If update is connected to showing the Informer - let the screen reader calmly read it.\n      isInformerHidden && (\n      // If we are in a modal - always superfocus without concern for other elements\n      // on the page (user is unlikely to want to interact with the rest of the page)\n      isModal\n      // If we are already inside of Uppy, or\n      || isFocusInUppy\n      // If we are not focused on anything BUT we have already, at least once, focused on uppy\n      //   1. We focus when isFocusNowhere, because when the element we were focused\n      //      on disappears (e.g. an overlay), - focus gets lost. If user is typing\n      //      something somewhere else on the page, - focus won't be 'nowhere'.\n      //   2. We only focus when focus is nowhere AND this.ifFocusedOnUppyRecently,\n      //      to avoid focus jumps if we do something else on the page.\n      //   [Practical check] Without '&& this.ifFocusedOnUppyRecently', in Safari, in inline mode,\n      //                     when file is uploading, - navigate via tab to the checkbox,\n      //                     try to press space multiple times. Focus will jump to Uppy.\n      || isFocusNowhere && this.ifFocusedOnUppyRecently)) {\n        this.superFocus(this.el, this.getPluginState().activeOverlayType);\n      } else {\n        this.superFocus.cancel();\n      }\n    };\n    this.afterUpdate = () => {\n      if (this.opts.disabled && !this.dashboardIsDisabled) {\n        this.disableInteractiveElements(true);\n        return;\n      }\n      if (!this.opts.disabled && this.dashboardIsDisabled) {\n        this.disableInteractiveElements(false);\n      }\n      this.superFocusOnEachUpdate();\n    };\n    this.saveFileCard = (meta, fileID) => {\n      this.uppy.setFileMeta(fileID, meta);\n      this.toggleFileCard(false, fileID);\n    };\n    Object.defineProperty(this, _attachRenderFunctionToTarget, {\n      writable: true,\n      value: target => {\n        const plugin = this.uppy.getPlugin(target.id);\n        return {\n          ...target,\n          icon: plugin.icon || this.opts.defaultPickerIcon,\n          render: plugin.render\n        };\n      }\n    });\n    Object.defineProperty(this, _isTargetSupported, {\n      writable: true,\n      value: target => {\n        const plugin = this.uppy.getPlugin(target.id);\n        // If the plugin does not provide a `supported` check, assume the plugin works everywhere.\n        if (typeof plugin.isSupported !== 'function') {\n          return true;\n        }\n        return plugin.isSupported();\n      }\n    });\n    Object.defineProperty(this, _getAcquirers, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'acquirer' && _classPrivateFieldLooseBase(this, _isTargetSupported)[_isTargetSupported](target)).map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    Object.defineProperty(this, _getProgressIndicators, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'progressindicator').map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    Object.defineProperty(this, _getEditors, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'editor').map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    this.render = state => {\n      const pluginState = this.getPluginState();\n      const {\n        files,\n        capabilities,\n        allowNewUpload\n      } = state;\n      const {\n        newFiles,\n        uploadStartedFiles,\n        completeFiles,\n        erroredFiles,\n        inProgressFiles,\n        inProgressNotPausedFiles,\n        processingFiles,\n        isUploadStarted,\n        isAllComplete,\n        isAllErrored,\n        isAllPaused\n      } = this.uppy.getObjectOfFilesPerState();\n      const acquirers = _classPrivateFieldLooseBase(this, _getAcquirers)[_getAcquirers](pluginState.targets);\n      const progressindicators = _classPrivateFieldLooseBase(this, _getProgressIndicators)[_getProgressIndicators](pluginState.targets);\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](pluginState.targets);\n      let theme;\n      if (this.opts.theme === 'auto') {\n        theme = capabilities.darkMode ? 'dark' : 'light';\n      } else {\n        theme = this.opts.theme;\n      }\n      if (['files', 'folders', 'both'].indexOf(this.opts.fileManagerSelectionType) < 0) {\n        this.opts.fileManagerSelectionType = 'files';\n        // eslint-disable-next-line no-console\n        console.warn(`Unsupported option for \"fileManagerSelectionType\". Using default of \"${this.opts.fileManagerSelectionType}\".`);\n      }\n      return DashboardUI({\n        state,\n        isHidden: pluginState.isHidden,\n        files,\n        newFiles,\n        uploadStartedFiles,\n        completeFiles,\n        erroredFiles,\n        inProgressFiles,\n        inProgressNotPausedFiles,\n        processingFiles,\n        isUploadStarted,\n        isAllComplete,\n        isAllErrored,\n        isAllPaused,\n        totalFileCount: Object.keys(files).length,\n        totalProgress: state.totalProgress,\n        allowNewUpload,\n        acquirers,\n        theme,\n        disabled: this.opts.disabled,\n        disableLocalFiles: this.opts.disableLocalFiles,\n        direction: this.opts.direction,\n        activePickerPanel: pluginState.activePickerPanel,\n        showFileEditor: pluginState.showFileEditor,\n        saveFileEditor: this.saveFileEditor,\n        closeFileEditor: this.closeFileEditor,\n        disableInteractiveElements: this.disableInteractiveElements,\n        animateOpenClose: this.opts.animateOpenClose,\n        isClosing: pluginState.isClosing,\n        progressindicators,\n        editors,\n        autoProceed: this.uppy.opts.autoProceed,\n        id: this.id,\n        closeModal: this.requestCloseModal,\n        handleClickOutside: this.handleClickOutside,\n        handleInputChange: this.handleInputChange,\n        handlePaste: this.handlePaste,\n        inline: this.opts.inline,\n        showPanel: this.showPanel,\n        hideAllPanels: this.hideAllPanels,\n        i18n: this.i18n,\n        i18nArray: this.i18nArray,\n        uppy: this.uppy,\n        note: this.opts.note,\n        recoveredState: state.recoveredState,\n        metaFields: pluginState.metaFields,\n        resumableUploads: capabilities.resumableUploads || false,\n        individualCancellation: capabilities.individualCancellation,\n        isMobileDevice: capabilities.isMobileDevice,\n        fileCardFor: pluginState.fileCardFor,\n        toggleFileCard: this.toggleFileCard,\n        toggleAddFilesPanel: this.toggleAddFilesPanel,\n        showAddFilesPanel: pluginState.showAddFilesPanel,\n        saveFileCard: this.saveFileCard,\n        openFileEditor: this.openFileEditor,\n        canEditFile: this.canEditFile,\n        width: this.opts.width,\n        height: this.opts.height,\n        showLinkToFileUploadResult: this.opts.showLinkToFileUploadResult,\n        fileManagerSelectionType: this.opts.fileManagerSelectionType,\n        proudlyDisplayPoweredByUppy: this.opts.proudlyDisplayPoweredByUppy,\n        hideCancelButton: this.opts.hideCancelButton,\n        hideRetryButton: this.opts.hideRetryButton,\n        hidePauseResumeButton: this.opts.hidePauseResumeButton,\n        showRemoveButtonAfterComplete: this.opts.showRemoveButtonAfterComplete,\n        containerWidth: pluginState.containerWidth,\n        containerHeight: pluginState.containerHeight,\n        areInsidesReadyToBeVisible: pluginState.areInsidesReadyToBeVisible,\n        isTargetDOMEl: this.isTargetDOMEl,\n        parentElement: this.el,\n        allowedFileTypes: this.uppy.opts.restrictions.allowedFileTypes,\n        maxNumberOfFiles: this.uppy.opts.restrictions.maxNumberOfFiles,\n        requiredMetaFields: this.uppy.opts.restrictions.requiredMetaFields,\n        showSelectedFiles: this.opts.showSelectedFiles,\n        showNativePhotoCameraButton: this.opts.showNativePhotoCameraButton,\n        showNativeVideoCameraButton: this.opts.showNativeVideoCameraButton,\n        nativeCameraFacingMode: this.opts.nativeCameraFacingMode,\n        singleFileFullScreen: this.opts.singleFileFullScreen,\n        handleCancelRestore: this.handleCancelRestore,\n        handleRequestThumbnail: this.handleRequestThumbnail,\n        handleCancelThumbnail: this.handleCancelThumbnail,\n        // drag props\n        isDraggingOver: pluginState.isDraggingOver,\n        handleDragOver: this.handleDragOver,\n        handleDragLeave: this.handleDragLeave,\n        handleDrop: this.handleDrop\n      });\n    };\n    Object.defineProperty(this, _addSpecifiedPluginsFromOptions, {\n      writable: true,\n      value: () => {\n        const plugins = this.opts.plugins || [];\n        plugins.forEach(pluginID => {\n          const plugin = this.uppy.getPlugin(pluginID);\n          if (plugin) {\n            plugin.mount(this, plugin);\n          } else {\n            this.uppy.log(`[Uppy] Dashboard could not find plugin '${pluginID}', make sure to uppy.use() the plugins you are specifying`, 'warning');\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _autoDiscoverPlugins, {\n      writable: true,\n      value: () => {\n        this.uppy.iteratePlugins(_classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      }\n    });\n    Object.defineProperty(this, _addSupportedPluginIfNoTarget, {\n      writable: true,\n      value: plugin => {\n        var _plugin$opts;\n        // Only these types belong on the Dashboard,\n        // we wouldn\u2019t want to try and mount Compressor or Tus, for example.\n        const typesAllowed = ['acquirer', 'editor'];\n        if (plugin && !((_plugin$opts = plugin.opts) != null && _plugin$opts.target) && typesAllowed.includes(plugin.type)) {\n          const pluginAlreadyAdded = this.getPluginState().targets.some(installedPlugin => plugin.id === installedPlugin.id);\n          if (!pluginAlreadyAdded) {\n            plugin.mount(this, plugin);\n          }\n        }\n      }\n    });\n    this.install = () => {\n      // Set default state for Dashboard\n      this.setPluginState({\n        isHidden: true,\n        fileCardFor: null,\n        activeOverlayType: null,\n        showAddFilesPanel: false,\n        activePickerPanel: false,\n        showFileEditor: false,\n        metaFields: this.opts.metaFields,\n        targets: [],\n        // We'll make them visible once .containerWidth is determined\n        areInsidesReadyToBeVisible: false,\n        isDraggingOver: false\n      });\n      const {\n        inline,\n        closeAfterFinish\n      } = this.opts;\n      if (inline && closeAfterFinish) {\n        throw new Error('[Dashboard] `closeAfterFinish: true` cannot be used on an inline Dashboard, because an inline Dashboard cannot be closed at all. Either set `inline: false`, or disable the `closeAfterFinish` option.');\n      }\n      const {\n        allowMultipleUploads,\n        allowMultipleUploadBatches\n      } = this.uppy.opts;\n      if ((allowMultipleUploads || allowMultipleUploadBatches) && closeAfterFinish) {\n        this.uppy.log('[Dashboard] When using `closeAfterFinish`, we recommended setting the `allowMultipleUploadBatches` option to `false` in the Uppy constructor. See https://uppy.io/docs/uppy/#allowMultipleUploads-true', 'warning');\n      }\n      const {\n        target\n      } = this.opts;\n      if (target) {\n        this.mount(target, this);\n      }\n      if (!this.opts.disableStatusBar) {\n        this.uppy.use(StatusBar, {\n          id: `${this.id}:StatusBar`,\n          target: this,\n          hideUploadButton: this.opts.hideUploadButton,\n          hideRetryButton: this.opts.hideRetryButton,\n          hidePauseResumeButton: this.opts.hidePauseResumeButton,\n          hideCancelButton: this.opts.hideCancelButton,\n          showProgressDetails: this.opts.showProgressDetails,\n          hideAfterFinish: this.opts.hideProgressAfterFinish,\n          locale: this.opts.locale,\n          doneButtonHandler: this.opts.doneButtonHandler\n        });\n      }\n      if (!this.opts.disableInformer) {\n        this.uppy.use(Informer, {\n          id: `${this.id}:Informer`,\n          target: this\n        });\n      }\n      if (!this.opts.disableThumbnailGenerator) {\n        this.uppy.use(ThumbnailGenerator, {\n          id: `${this.id}:ThumbnailGenerator`,\n          thumbnailWidth: this.opts.thumbnailWidth,\n          thumbnailHeight: this.opts.thumbnailHeight,\n          thumbnailType: this.opts.thumbnailType,\n          waitForThumbnailsBeforeUpload: this.opts.waitForThumbnailsBeforeUpload,\n          // If we don't block on thumbnails, we can lazily generate them\n          lazy: !this.opts.waitForThumbnailsBeforeUpload\n        });\n      }\n\n      // Dark Mode / theme\n      this.darkModeMediaQuery = typeof window !== 'undefined' && window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n      const isDarkModeOnFromTheStart = this.darkModeMediaQuery ? this.darkModeMediaQuery.matches : false;\n      this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnFromTheStart ? 'on' : 'off'}`);\n      this.setDarkModeCapability(isDarkModeOnFromTheStart);\n      if (this.opts.theme === 'auto') {\n        this.darkModeMediaQuery.addListener(this.handleSystemDarkModeChange);\n      }\n      _classPrivateFieldLooseBase(this, _addSpecifiedPluginsFromOptions)[_addSpecifiedPluginsFromOptions]();\n      _classPrivateFieldLooseBase(this, _autoDiscoverPlugins)[_autoDiscoverPlugins]();\n      this.initEvents();\n    };\n    this.uninstall = () => {\n      if (!this.opts.disableInformer) {\n        const informer = this.uppy.getPlugin(`${this.id}:Informer`);\n        // Checking if this plugin exists, in case it was removed by uppy-core\n        // before the Dashboard was.\n        if (informer) this.uppy.removePlugin(informer);\n      }\n      if (!this.opts.disableStatusBar) {\n        const statusBar = this.uppy.getPlugin(`${this.id}:StatusBar`);\n        if (statusBar) this.uppy.removePlugin(statusBar);\n      }\n      if (!this.opts.disableThumbnailGenerator) {\n        const thumbnail = this.uppy.getPlugin(`${this.id}:ThumbnailGenerator`);\n        if (thumbnail) this.uppy.removePlugin(thumbnail);\n      }\n      const plugins = this.opts.plugins || [];\n      plugins.forEach(pluginID => {\n        const plugin = this.uppy.getPlugin(pluginID);\n        if (plugin) plugin.unmount();\n      });\n      if (this.opts.theme === 'auto') {\n        this.darkModeMediaQuery.removeListener(this.handleSystemDarkModeChange);\n      }\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.remove('uppy-Dashboard-isFixed');\n      }\n      this.unmount();\n      this.removeEvents();\n    };\n    this.id = this.opts.id || 'Dashboard';\n    this.title = 'Dashboard';\n    this.type = 'orchestrator';\n    this.modalName = `uppy-Dashboard-${nanoid()}`;\n    this.defaultLocale = locale;\n\n    // set default options, must be kept in sync with packages/@uppy/react/src/DashboardModal.js\n    const defaultOptions = {\n      target: 'body',\n      metaFields: [],\n      trigger: null,\n      inline: false,\n      width: 750,\n      height: 550,\n      thumbnailWidth: 280,\n      thumbnailType: 'image/jpeg',\n      waitForThumbnailsBeforeUpload: false,\n      defaultPickerIcon,\n      showLinkToFileUploadResult: false,\n      showProgressDetails: false,\n      hideUploadButton: false,\n      hideCancelButton: false,\n      hideRetryButton: false,\n      hidePauseResumeButton: false,\n      hideProgressAfterFinish: false,\n      doneButtonHandler: () => {\n        this.uppy.clearUploadedFiles();\n        this.requestCloseModal();\n      },\n      note: null,\n      closeModalOnClickOutside: false,\n      closeAfterFinish: false,\n      singleFileFullScreen: true,\n      disableStatusBar: false,\n      disableInformer: false,\n      disableThumbnailGenerator: false,\n      disablePageScrollWhenModalOpen: true,\n      animateOpenClose: true,\n      fileManagerSelectionType: 'files',\n      proudlyDisplayPoweredByUppy: true,\n      onRequestCloseModal: () => this.closeModal(),\n      showSelectedFiles: true,\n      showRemoveButtonAfterComplete: false,\n      browserBackButtonClose: false,\n      showNativePhotoCameraButton: false,\n      showNativeVideoCameraButton: false,\n      theme: 'light',\n      autoOpenFileEditor: false,\n      disabled: false,\n      disableLocalFiles: false\n    };\n\n    // merge default options with the ones set by user\n    this.opts = {\n      ...defaultOptions,\n      ..._opts\n    };\n    this.i18nInit();\n    this.superFocus = createSuperFocus();\n    this.ifFocusedOnUppyRecently = false;\n\n    // Timeouts\n    this.makeDashboardInsidesVisibleAnywayTimeout = null;\n    this.removeDragOverClassTimeout = null;\n  }\n}\nDashboard.VERSION = packageJson.version;", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar NODE_LIST_CLASSES = {\n  '[object HTMLCollection]': true,\n  '[object NodeList]': true,\n  '[object RadioNodeList]': true\n}; // .type values for elements which can appear in .elements and should be ignored\n\nvar IGNORED_ELEMENT_TYPES = {\n  'button': true,\n  'fieldset': true,\n  'reset': true,\n  'submit': true\n};\nvar CHECKED_INPUT_TYPES = {\n  'checkbox': true,\n  'radio': true\n};\nvar TRIM_RE = /^\\s+|\\s+$/g;\nvar slice = Array.prototype.slice;\nvar toString = Object.prototype.toString;\n/**\n * @param {HTMLFormElement} form\n * @param {Object} [options]\n * @return {Object.<string,boolean|string|string[]>} an object containing\n *   submittable value(s) held in the form's .elements collection, with\n *   properties named as per element names or ids.\n */\n\nexport default function getFormData(form, options) {\n  if (!form) {\n    throw new Error(\"A form is required by getFormData, was given form=\" + form);\n  }\n\n  options = _extends({\n    includeDisabled: false,\n    trim: false\n  }, options);\n  var data = {};\n  var elementName;\n  var elementNames = [];\n  var elementNameLookup = {}; // Get unique submittable element names for the form\n\n  for (var i = 0, l = form.elements.length; i < l; i++) {\n    var element = form.elements[i];\n\n    if (IGNORED_ELEMENT_TYPES[element.type] || element.disabled && !options.includeDisabled) {\n      continue;\n    }\n\n    elementName = element.name || element.id;\n\n    if (elementName && !elementNameLookup[elementName]) {\n      elementNames.push(elementName);\n      elementNameLookup[elementName] = true;\n    }\n  } // Extract element data name-by-name for consistent handling of special cases\n  // around elements which contain multiple inputs.\n\n\n  for (var _i = 0, _l = elementNames.length; _i < _l; _i++) {\n    elementName = elementNames[_i];\n    var value = getFieldData(form, elementName, options);\n\n    if (value != null) {\n      data[elementName] = value;\n    }\n  }\n\n  return data;\n}\n/**\n * @param {HTMLFormElement} form\n * @param {string} fieldName\n * @param {Object} [options]\n * @return {?(boolean|string|string[]|File|File[])} submittable value(s) in the\n *   form for a  named element from its .elements collection, or null if there\n *   was no element with that name, or the element had no submittable value(s).\n */\n\nexport function getFieldData(form, fieldName, options) {\n  if (!form) {\n    throw new Error(\"A form is required by getFieldData, was given form=\" + form);\n  }\n\n  if (!fieldName && toString.call(fieldName) !== '[object String]') {\n    throw new Error(\"A field name is required by getFieldData, was given fieldName=\" + fieldName);\n  }\n\n  options = _extends({\n    includeDisabled: false,\n    trim: false\n  }, options);\n  var element = form.elements[fieldName];\n\n  if (!element || element.disabled && !options.includeDisabled) {\n    return null;\n  }\n\n  if (!NODE_LIST_CLASSES[toString.call(element)]) {\n    return getFormElementValue(element, options.trim);\n  } // Deal with multiple form controls which have the same name\n\n\n  var data = [];\n  var allRadios = true;\n\n  for (var i = 0, l = element.length; i < l; i++) {\n    if (element[i].disabled && !options.includeDisabled) {\n      continue;\n    }\n\n    if (allRadios && element[i].type !== 'radio') {\n      allRadios = false;\n    }\n\n    var value = getFormElementValue(element[i], options.trim);\n\n    if (value != null) {\n      data = data.concat(value);\n    }\n  } // Special case for an element with multiple same-named inputs which were all\n  // radio buttons: if there was a selected value, only return the value.\n\n\n  if (allRadios && data.length === 1) {\n    return data[0];\n  }\n\n  return data.length > 0 ? data : null;\n}\n/**\n * @param {HTMLElement} element a form element.\n * @param {boolean} [trim] should values for text entry inputs be trimmed?\n * @return {?(boolean|string|string[]|File|File[])} the element's submittable\n *   value(s), or null if it had none.\n */\n\nfunction getFormElementValue(element, trim) {\n  var value = null;\n  var type = element.type;\n\n  if (type === 'select-one') {\n    if (element.options.length) {\n      value = element.options[element.selectedIndex].value;\n    }\n\n    return value;\n  }\n\n  if (type === 'select-multiple') {\n    value = [];\n\n    for (var i = 0, l = element.options.length; i < l; i++) {\n      if (element.options[i].selected) {\n        value.push(element.options[i].value);\n      }\n    }\n\n    if (value.length === 0) {\n      value = null;\n    }\n\n    return value;\n  } // If a file input doesn't have a files attribute, fall through to using its\n  // value attribute.\n\n\n  if (type === 'file' && 'files' in element) {\n    if (element.multiple) {\n      value = slice.call(element.files);\n\n      if (value.length === 0) {\n        value = null;\n      }\n    } else {\n      // Should be null if not present, according to the spec\n      value = element.files[0];\n    }\n\n    return value;\n  }\n\n  if (!CHECKED_INPUT_TYPES[type]) {\n    value = trim ? element.value.replace(TRIM_RE, '') : element.value;\n  } else if (element.checked) {\n    if (type === 'checkbox' && !element.hasAttribute('value')) {\n      value = true;\n    } else {\n      value = element.value;\n    }\n  }\n\n  return value;\n} // For UMD build access to getFieldData\n\n\ngetFormData.getFieldData = getFieldData;", "import BasePlugin from '@uppy/core/lib/BasePlugin.js';\nimport findDOMElement from '@uppy/utils/lib/findDOMElement';\nimport toArray from '@uppy/utils/lib/toArray';\nimport getFormData from 'get-form-data';\nconst packageJson = {\n  \"version\": \"3.0.3\"\n};\n/**\n * Form\n */\nexport default class Form extends BasePlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.type = 'acquirer';\n    this.id = this.opts.id || 'Form';\n    this.title = 'Form';\n\n    // set default options\n    const defaultOptions = {\n      target: null,\n      resultName: 'uppyResult',\n      getMetaFromForm: true,\n      addResultToForm: true,\n      submitOnSuccess: false,\n      triggerUploadOnSubmit: false\n    };\n\n    // merge default options with the ones set by user\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.handleFormSubmit = this.handleFormSubmit.bind(this);\n    this.handleUploadStart = this.handleUploadStart.bind(this);\n    this.handleSuccess = this.handleSuccess.bind(this);\n    this.addResultToForm = this.addResultToForm.bind(this);\n    this.getMetaFromForm = this.getMetaFromForm.bind(this);\n  }\n  handleUploadStart() {\n    if (this.opts.getMetaFromForm) {\n      this.getMetaFromForm();\n    }\n  }\n  handleSuccess(result) {\n    if (this.opts.addResultToForm) {\n      this.addResultToForm(result);\n    }\n    if (this.opts.submitOnSuccess) {\n      this.form.submit();\n    }\n  }\n  handleFormSubmit(ev) {\n    if (this.opts.triggerUploadOnSubmit) {\n      ev.preventDefault();\n      const elements = toArray(ev.target.elements);\n      const disabledByUppy = [];\n      elements.forEach(el => {\n        const isButton = el.tagName === 'BUTTON' || el.tagName === 'INPUT' && el.type === 'submit';\n        if (isButton && !el.disabled) {\n          el.disabled = true; // eslint-disable-line no-param-reassign\n          disabledByUppy.push(el);\n        }\n      });\n      this.uppy.upload().then(() => {\n        disabledByUppy.forEach(button => {\n          button.disabled = false; // eslint-disable-line no-param-reassign\n        });\n      }, err => {\n        disabledByUppy.forEach(button => {\n          button.disabled = false; // eslint-disable-line no-param-reassign\n        });\n\n        return Promise.reject(err);\n      }).catch(err => {\n        this.uppy.log(err.stack || err.message || err);\n      });\n    }\n  }\n  addResultToForm(result) {\n    this.uppy.log('[Form] Adding result to the original form:');\n    this.uppy.log(result);\n    let resultInput = this.form.querySelector(`[name=\"${this.opts.resultName}\"]`);\n    if (resultInput) {\n      // Append new result to the previous result array.\n      // If the previous result is empty, or not an array,\n      // set it to an empty array.\n      let updatedResult;\n      try {\n        updatedResult = JSON.parse(resultInput.value);\n      } catch (err) {\n        // Nothing, since we check for array below anyway\n      }\n      if (!Array.isArray(updatedResult)) {\n        updatedResult = [];\n      }\n      updatedResult.push(result);\n      resultInput.value = JSON.stringify(updatedResult);\n      return;\n    }\n    resultInput = document.createElement('input');\n    resultInput.name = this.opts.resultName;\n    resultInput.type = 'hidden';\n    resultInput.value = JSON.stringify([result]);\n    this.form.appendChild(resultInput);\n  }\n  getMetaFromForm() {\n    const formMeta = getFormData(this.form);\n    // We want to exclude meta the the Form plugin itself has added\n    // See https://github.com/transloadit/uppy/issues/1637\n    delete formMeta[this.opts.resultName];\n    this.uppy.setMeta(formMeta);\n  }\n  install() {\n    this.form = findDOMElement(this.opts.target);\n    if (!this.form || this.form.nodeName !== 'FORM') {\n      this.uppy.log('Form plugin requires a <form> target element passed in options to operate, none was found', 'error');\n      return;\n    }\n    this.form.addEventListener('submit', this.handleFormSubmit);\n    this.uppy.on('upload', this.handleUploadStart);\n    this.uppy.on('complete', this.handleSuccess);\n  }\n  uninstall() {\n    this.form.removeEventListener('submit', this.handleFormSubmit);\n    this.uppy.off('upload', this.handleUploadStart);\n    this.uppy.off('complete', this.handleSuccess);\n  }\n}\nForm.VERSION = packageJson.version;", "export default {\n  strings: {\n    chooseFiles: 'Choose files'\n  }\n};", "import { UIPlugin } from '@uppy/core';\nimport toArray from '@uppy/utils/lib/toArray';\nimport { h } from 'preact';\nconst packageJson = {\n  \"version\": \"3.0.4\"\n};\nimport locale from './locale.js';\nexport default class FileInput extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.id = this.opts.id || 'FileInput';\n    this.title = 'File Input';\n    this.type = 'acquirer';\n    this.defaultLocale = locale;\n\n    // Default options, must be kept in sync with @uppy/react/src/FileInput.js.\n    const defaultOptions = {\n      target: null,\n      pretty: true,\n      inputName: 'files[]'\n    };\n\n    // Merge default options with the ones set by user\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.i18nInit();\n    this.render = this.render.bind(this);\n    this.handleInputChange = this.handleInputChange.bind(this);\n    this.handleClick = this.handleClick.bind(this);\n  }\n  addFiles(files) {\n    const descriptors = files.map(file => ({\n      source: this.id,\n      name: file.name,\n      type: file.type,\n      data: file\n    }));\n    try {\n      this.uppy.addFiles(descriptors);\n    } catch (err) {\n      this.uppy.log(err);\n    }\n  }\n  handleInputChange(event) {\n    this.uppy.log('[FileInput] Something selected through input...');\n    const files = toArray(event.target.files);\n    this.addFiles(files);\n\n    // We clear the input after a file is selected, because otherwise\n    // change event is not fired in Chrome and Safari when a file\n    // with the same name is selected.\n    // ___Why not use value=\"\" on <input/> instead?\n    //    Because if we use that method of clearing the input,\n    //    Chrome will not trigger change if we drop the same file twice (Issue #768).\n    event.target.value = null; // eslint-disable-line no-param-reassign\n  }\n\n  handleClick() {\n    this.input.click();\n  }\n  render() {\n    /* http://tympanus.net/codrops/2015/09/15/styling-customizing-file-inputs-smart-way/ */\n    const hiddenInputStyle = {\n      width: '0.1px',\n      height: '0.1px',\n      opacity: 0,\n      overflow: 'hidden',\n      position: 'absolute',\n      zIndex: -1\n    };\n    const {\n      restrictions\n    } = this.uppy.opts;\n    const accept = restrictions.allowedFileTypes ? restrictions.allowedFileTypes.join(',') : null;\n    return h(\"div\", {\n      className: \"uppy-FileInput-container\"\n    }, h(\"input\", {\n      className: \"uppy-FileInput-input\",\n      style: this.opts.pretty && hiddenInputStyle,\n      type: \"file\",\n      name: this.opts.inputName,\n      onChange: this.handleInputChange,\n      multiple: restrictions.maxNumberOfFiles !== 1,\n      accept: accept,\n      ref: input => {\n        this.input = input;\n      }\n    }), this.opts.pretty && h(\"button\", {\n      className: \"uppy-FileInput-btn\",\n      type: \"button\",\n      onClick: this.handleClick\n    }, this.i18n('chooseFiles')));\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n  }\n  uninstall() {\n    this.unmount();\n  }\n}\nFileInput.VERSION = packageJson.version;", "class UserFacingApiError extends Error {\n  constructor() {\n    super(...arguments);\n    this.name = 'UserFacingApiError';\n  }\n}\nexport default UserFacingApiError;", "import retry from 'retry';\nimport isNetworkError from 'is-network-error';\n\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\n\t\tif (message instanceof Error) {\n\t\t\tthis.originalError = message;\n\t\t\t({message} = message);\n\t\t} else {\n\t\t\tthis.originalError = new Error(message);\n\t\t\tthis.originalError.stack = this.stack;\n\t\t}\n\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\nconst decorateErrorWithCounts = (error, attemptNumber, options) => {\n\t// Minus 1 from attemptNumber because the first attempt does not count as a retry\n\tconst retriesLeft = options.retries - (attemptNumber - 1);\n\n\terror.attemptNumber = attemptNumber;\n\terror.retriesLeft = retriesLeft;\n\treturn error;\n};\n\nexport default async function pRetry(input, options) {\n\treturn new Promise((resolve, reject) => {\n\t\toptions = {\n\t\t\tonFailedAttempt() {},\n\t\t\tretries: 10,\n\t\t\tshouldRetry: () => true,\n\t\t\t...options,\n\t\t};\n\n\t\tconst operation = retry.operation(options);\n\n\t\tconst abortHandler = () => {\n\t\t\toperation.stop();\n\t\t\treject(options.signal?.reason);\n\t\t};\n\n\t\tif (options.signal && !options.signal.aborted) {\n\t\t\toptions.signal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tconst cleanUp = () => {\n\t\t\toptions.signal?.removeEventListener('abort', abortHandler);\n\t\t\toperation.stop();\n\t\t};\n\n\t\toperation.attempt(async attemptNumber => {\n\t\t\ttry {\n\t\t\t\tconst result = await input(attemptNumber);\n\t\t\t\tcleanUp();\n\t\t\t\tresolve(result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\t\tthrow new TypeError(`Non-error was thrown: \"${error}\". You should only throw errors.`);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof AbortError) {\n\t\t\t\t\t\tthrow error.originalError;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error instanceof TypeError && !isNetworkError(error)) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\n\t\t\t\t\tdecorateErrorWithCounts(error, attemptNumber, options);\n\n\t\t\t\t\tif (!(await options.shouldRetry(error))) {\n\t\t\t\t\t\toperation.stop();\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait options.onFailedAttempt(error);\n\n\t\t\t\t\tif (!operation.retry(error)) {\n\t\t\t\t\t\tthrow operation.mainError();\n\t\t\t\t\t}\n\t\t\t\t} catch (finalError) {\n\t\t\t\t\tdecorateErrorWithCounts(finalError, attemptNumber, options);\n\t\t\t\t\tcleanUp();\n\t\t\t\t\treject(finalError);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n", "const objectToString = Object.prototype.toString;\n\nconst isError = value => objectToString.call(value) === '[object Error]';\n\nconst errorMessages = new Set([\n\t'network error', // Chrome\n\t'Failed to fetch', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari 16\n\t'Load failed', // Safari 17+\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n]);\n\nexport default function isNetworkError(error) {\n\tconst isValid = error\n\t\t&& isError(error)\n\t\t&& error.name === 'TypeError'\n\t\t&& typeof error.message === 'string';\n\n\tif (!isValid) {\n\t\treturn false;\n\t}\n\n\t// We do an extra check for Safari 17+ as it has a very generic error message.\n\t// Network errors in Safari have no stack.\n\tif (error.message === 'Load failed') {\n\t\treturn error.stack === undefined;\n\t}\n\n\treturn errorMessages.has(error.message);\n}\n", "class NetworkError extends Error {\n  constructor(error, xhr) {\n    if (xhr === void 0) {\n      xhr = null;\n    }\n    super(`This looks like a network error, the endpoint might be blocked by an internet provider or a firewall.`);\n    this.cause = error;\n    this.isNetworkError = true;\n    this.request = xhr;\n  }\n}\nexport default NetworkError;", "import NetworkError from \"./NetworkError.js\";\n\n/**\n * Wrapper around window.fetch that throws a NetworkError when appropriate\n */\nexport default function fetchWithNetworkError() {\n  return fetch(...arguments).catch(err => {\n    if (err.name === 'AbortError') {\n      throw err;\n    } else {\n      throw new NetworkError(err);\n    }\n  });\n}", "export default function has(object, key) {\n  return Object.prototype.hasOwnProperty.call(object, key);\n}", "import hasProperty from \"./hasProperty.js\";\nclass ErrorWithCause extends Error {\n  constructor(message, options) {\n    super(message);\n    this.cause = options == null ? void 0 : options.cause;\n    if (this.cause && hasProperty(this.cause, 'isNetworkError')) {\n      this.isNetworkError = this.cause.isNetworkError;\n    } else {\n      this.isNetworkError = false;\n    }\n  }\n}\nexport default ErrorWithCause;", "import throttle from 'lodash/throttle.js';\nfunction emitSocketProgress(uploader, progressData, file) {\n  const {\n    progress,\n    bytesUploaded,\n    bytesTotal\n  } = progressData;\n  if (progress) {\n    uploader.uppy.log(`Upload progress: ${progress}`);\n    uploader.uppy.emit('upload-progress', file, {\n      // @ts-expect-error todo remove in next major\n      uploader,\n      bytesUploaded,\n      bytesTotal\n    });\n  }\n}\nexport default throttle(emitSocketProgress, 300, {\n  leading: true,\n  trailing: true\n});", "export default function getSocketHost(url) {\n  var _regex$exec;\n  // get the host domain\n  const regex = /^(?:https?:\\/\\/|\\/\\/)?(?:[^@\\n]+@)?(?:www\\.)?([^\\n]+)/i;\n  const host = (_regex$exec = regex.exec(url)) == null ? void 0 : _regex$exec[1];\n  const socketProtocol = /^http:\\/\\//i.test(url) ? 'ws' : 'wss';\n  return `${socketProtocol}://${host}`;\n}", "'use strict';\n\nclass AuthError extends Error {\n  constructor() {\n    super('Authorization required');\n    this.name = 'AuthError';\n\n    // we use a property because of instanceof is unsafe:\n    // https://github.com/transloadit/uppy/pull/4619#discussion_r1406225982\n    this.isAuthError = true;\n  }\n}\nexport default AuthError;", "let _Symbol$for;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport UserFacingApiError from '@uppy/utils/lib/UserFacingApiError';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport pRetry, { AbortError } from 'p-retry';\nimport fetchWithNetworkError from '@uppy/utils/lib/fetchWithNetworkError';\nimport ErrorWithCause from '@uppy/utils/lib/ErrorWithCause';\nimport emitSocketProgress from '@uppy/utils/lib/emitSocketProgress';\nimport getSocketHost from '@uppy/utils/lib/getSocketHost';\nimport AuthError from \"./AuthError.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.7.3\"\n};\n// Remove the trailing slash so we can always safely append /xyz.\nfunction stripSlash(url) {\n  return url.replace(/\\/$/, '');\n}\nconst retryCount = 10; // set to a low number, like 2 to test manual user retries\nconst socketActivityTimeoutMs = 5 * 60 * 1000; // set to a low number like 10000 to test this\n\nexport const authErrorStatusCode = 401;\nclass HttpError extends Error {\n  constructor(_ref) {\n    let {\n      statusCode,\n      message\n    } = _ref;\n    super(message);\n    this.name = 'HttpError';\n    this.statusCode = statusCode;\n  }\n}\nasync function handleJSONResponse(res) {\n  if (res.status === authErrorStatusCode) {\n    throw new AuthError();\n  }\n  if (res.ok) {\n    return res.json();\n  }\n  let errMsg = `Failed request with status: ${res.status}. ${res.statusText}`;\n  let errData;\n  try {\n    errData = await res.json();\n    if (errData.message) errMsg = `${errMsg} message: ${errData.message}`;\n    if (errData.requestId) errMsg = `${errMsg} request-Id: ${errData.requestId}`;\n  } catch (cause) {\n    // if the response contains invalid JSON, let's ignore the error data\n    throw new Error(errMsg, {\n      cause\n    });\n  }\n  if (res.status >= 400 && res.status <= 499 && errData.message) {\n    throw new UserFacingApiError(errData.message);\n  }\n  throw new HttpError({\n    statusCode: res.status,\n    message: errMsg\n  });\n}\nvar _companionHeaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"companionHeaders\");\nvar _getUrl = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUrl\");\nvar _requestSocketToken = /*#__PURE__*/_classPrivateFieldLooseKey(\"requestSocketToken\");\nvar _awaitRemoteFileUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"awaitRemoteFileUpload\");\n_Symbol$for = Symbol.for('uppy test: getCompanionHeaders');\nexport default class RequestClient {\n  constructor(uppy, opts) {\n    /**\n     * This method will ensure a websocket for the specified file and returns a promise that resolves\n     * when the file has finished downloading, or rejects if it fails.\n     * It will retry if the websocket gets disconnected\n     */\n    Object.defineProperty(this, _awaitRemoteFileUpload, {\n      value: _awaitRemoteFileUpload2\n    });\n    Object.defineProperty(this, _getUrl, {\n      value: _getUrl2\n    });\n    Object.defineProperty(this, _companionHeaders, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _requestSocketToken, {\n      writable: true,\n      value: async _ref2 => {\n        var _file$remote;\n        let {\n          file,\n          postBody,\n          signal\n        } = _ref2;\n        if (((_file$remote = file.remote) == null ? void 0 : _file$remote.url) == null) {\n          throw new Error('Cannot connect to an undefined URL');\n        }\n        const res = await this.post(file.remote.url, {\n          ...file.remote.body,\n          ...postBody\n        }, {\n          signal\n        });\n        return res.token;\n      }\n    });\n    this.uppy = uppy;\n    this.opts = opts;\n    this.onReceiveResponse = this.onReceiveResponse.bind(this);\n    // TODO: Remove optional chaining\n    _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders] = opts == null ? void 0 : opts.companionHeaders;\n  }\n  setCompanionHeaders(headers) {\n    _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders] = headers;\n  }\n  [_Symbol$for]() {\n    return _classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders];\n  }\n  get hostname() {\n    const {\n      companion\n    } = this.uppy.getState();\n    const host = this.opts.companionUrl;\n    return stripSlash(companion && companion[host] ? companion[host] : host);\n  }\n  async headers(emptyBody) {\n    if (emptyBody === void 0) {\n      emptyBody = false;\n    }\n    const defaultHeaders = {\n      Accept: 'application/json',\n      ...(emptyBody ? undefined : {\n        // Passing those headers on requests with no data forces browsers to first make a preflight request.\n        'Content-Type': 'application/json'\n      })\n    };\n    return {\n      ...defaultHeaders,\n      ..._classPrivateFieldLooseBase(this, _companionHeaders)[_companionHeaders]\n    };\n  }\n  onReceiveResponse(res) {\n    const {\n      headers\n    } = res;\n    const state = this.uppy.getState();\n    const companion = state.companion || {};\n    const host = this.opts.companionUrl;\n\n    // Store the self-identified domain name for the Companion instance we just hit.\n    if (headers.has('i-am') && headers.get('i-am') !== companion[host]) {\n      this.uppy.setState({\n        companion: {\n          ...companion,\n          [host]: headers.get('i-am')\n        }\n      });\n    }\n  }\n  async request(_ref3) {\n    let {\n      path,\n      method = 'GET',\n      data,\n      skipPostResponse,\n      signal\n    } = _ref3;\n    try {\n      const headers = await this.headers(!data);\n      const response = await fetchWithNetworkError(_classPrivateFieldLooseBase(this, _getUrl)[_getUrl](path), {\n        method,\n        signal,\n        headers,\n        credentials: this.opts.companionCookiesRule || 'same-origin',\n        body: data ? JSON.stringify(data) : null\n      });\n      if (!skipPostResponse) this.onReceiveResponse(response);\n      return await handleJSONResponse(response);\n    } catch (err) {\n      // pass these through\n      if (err.isAuthError || err.name === 'UserFacingApiError' || err.name === 'AbortError') throw err;\n      throw new ErrorWithCause(`Could not ${method} ${_classPrivateFieldLooseBase(this, _getUrl)[_getUrl](path)}`, {\n        cause: err\n      });\n    }\n  }\n  async get(path, options) {\n    // TODO: remove boolean support for options that was added for backward compatibility.\n    // eslint-disable-next-line no-param-reassign\n    if (typeof options === 'boolean') options = {\n      skipPostResponse: options\n    };\n    return this.request({\n      ...options,\n      path\n    });\n  }\n  async post(path, data, options) {\n    // TODO: remove boolean support for options that was added for backward compatibility.\n    // eslint-disable-next-line no-param-reassign\n    if (typeof options === 'boolean') options = {\n      skipPostResponse: options\n    };\n    return this.request({\n      ...options,\n      path,\n      method: 'POST',\n      data\n    });\n  }\n  async delete(path, data, options) {\n    // TODO: remove boolean support for options that was added for backward compatibility.\n    // eslint-disable-next-line no-param-reassign\n    if (typeof options === 'boolean') options = {\n      skipPostResponse: options\n    };\n    return this.request({\n      ...options,\n      path,\n      method: 'DELETE',\n      data\n    });\n  }\n\n  /**\n   * Remote uploading consists of two steps:\n   * 1. #requestSocketToken which starts the download/upload in companion and returns a unique token for the upload.\n   * Then companion will halt the upload until:\n   * 2. #awaitRemoteFileUpload is called, which will open/ensure a websocket connection towards companion, with the\n   * previously generated token provided. It returns a promise that will resolve/reject once the file has finished\n   * uploading or is otherwise done (failed, canceled)\n   */\n  async uploadRemoteFile(file, reqBody, options) {\n    var _this = this;\n    try {\n      const {\n        signal,\n        getQueue\n      } = options || {};\n      return await pRetry(async () => {\n        var _this$uppy$getFile;\n        // if we already have a serverToken, assume that we are resuming the existing server upload id\n        const existingServerToken = (_this$uppy$getFile = this.uppy.getFile(file.id)) == null ? void 0 : _this$uppy$getFile.serverToken;\n        if (existingServerToken != null) {\n          this.uppy.log(`Connecting to exiting websocket ${existingServerToken}`);\n          return _classPrivateFieldLooseBase(this, _awaitRemoteFileUpload)[_awaitRemoteFileUpload]({\n            file,\n            queue: getQueue(),\n            signal\n          });\n        }\n        const queueRequestSocketToken = getQueue().wrapPromiseFunction(async function () {\n          try {\n            return await _classPrivateFieldLooseBase(_this, _requestSocketToken)[_requestSocketToken](...arguments);\n          } catch (outerErr) {\n            // throwing AbortError will cause p-retry to stop retrying\n            if (outerErr.isAuthError) throw new AbortError(outerErr);\n            if (outerErr.cause == null) throw outerErr;\n            const err = outerErr.cause;\n            const isRetryableHttpError = () => [408, 409, 429, 418, 423].includes(err.statusCode) || err.statusCode >= 500 && err.statusCode <= 599 && ![501, 505].includes(err.statusCode);\n            if (err.name === 'HttpError' && !isRetryableHttpError()) throw new AbortError(err);\n\n            // p-retry will retry most other errors,\n            // but it will not retry TypeError (except network error TypeErrors)\n            throw err;\n          }\n        }, {\n          priority: -1\n        });\n        const serverToken = await queueRequestSocketToken({\n          file,\n          postBody: reqBody,\n          signal\n        }).abortOn(signal);\n        if (!this.uppy.getFile(file.id)) return undefined; // has file since been removed?\n\n        this.uppy.setFileState(file.id, {\n          serverToken\n        });\n        return _classPrivateFieldLooseBase(this, _awaitRemoteFileUpload)[_awaitRemoteFileUpload]({\n          file: this.uppy.getFile(file.id),\n          // re-fetching file because it might have changed in the meantime\n          queue: getQueue(),\n          signal\n        });\n      }, {\n        retries: retryCount,\n        signal,\n        onFailedAttempt: err => this.uppy.log(`Retrying upload due to: ${err.message}`, 'warning')\n      });\n    } catch (err) {\n      // this is a bit confusing, but note that an error with the `name` prop set to 'AbortError' (from AbortController)\n      // is not the same as `p-retry` `AbortError`\n      if (err.name === 'AbortError') {\n        // The file upload was aborted, it\u2019s not an error\n        return undefined;\n      }\n      this.uppy.emit('upload-error', file, err);\n      throw err;\n    }\n  }\n}\nfunction _getUrl2(url) {\n  if (/^(https?:|)\\/\\//.test(url)) {\n    return url;\n  }\n  return `${this.hostname}/${url}`;\n}\nasync function _awaitRemoteFileUpload2(_ref4) {\n  let {\n    file,\n    queue,\n    signal\n  } = _ref4;\n  let removeEventHandlers;\n  const {\n    capabilities\n  } = this.uppy.getState();\n  try {\n    return await new Promise((resolve, reject) => {\n      const token = file.serverToken;\n      const host = getSocketHost(file.remote.companionUrl);\n      let socket;\n      let socketAbortController;\n      let activityTimeout;\n      let {\n        isPaused\n      } = file;\n      const socketSend = (action, payload) => {\n        if (socket == null || socket.readyState !== socket.OPEN) {\n          var _socket;\n          this.uppy.log(`Cannot send \"${action}\" to socket ${file.id} because the socket state was ${String((_socket = socket) == null ? void 0 : _socket.readyState)}`, 'warning');\n          return;\n        }\n        socket.send(JSON.stringify({\n          action,\n          payload: payload != null ? payload : {}\n        }));\n      };\n      function sendState() {\n        if (!capabilities.resumableUploads) return;\n        if (isPaused) socketSend('pause');else socketSend('resume');\n      }\n      const createWebsocket = async () => {\n        if (socketAbortController) socketAbortController.abort();\n        socketAbortController = new AbortController();\n        const onFatalError = err => {\n          var _socketAbortControlle;\n          // Remove the serverToken so that a new one will be created for the retry.\n          this.uppy.setFileState(file.id, {\n            serverToken: null\n          });\n          (_socketAbortControlle = socketAbortController) == null || _socketAbortControlle.abort == null || _socketAbortControlle.abort();\n          reject(err);\n        };\n\n        // todo instead implement the ability for users to cancel / retry *currently uploading files* in the UI\n        function resetActivityTimeout() {\n          clearTimeout(activityTimeout);\n          if (isPaused) return;\n          activityTimeout = setTimeout(() => onFatalError(new Error('Timeout waiting for message from Companion socket')), socketActivityTimeoutMs);\n        }\n        try {\n          await queue.wrapPromiseFunction(async () => {\n            const reconnectWebsocket = async () =>\n            // eslint-disable-next-line promise/param-names\n            new Promise((_, rejectSocket) => {\n              socket = new WebSocket(`${host}/api/${token}`);\n              resetActivityTimeout();\n              socket.addEventListener('close', () => {\n                socket = undefined;\n                rejectSocket(new Error('Socket closed unexpectedly'));\n              });\n              socket.addEventListener('error', error => {\n                var _socket2;\n                this.uppy.log(`Companion socket error ${JSON.stringify(error)}, closing socket`, 'warning');\n                (_socket2 = socket) == null || _socket2.close(); // will 'close' event to be emitted\n              });\n              socket.addEventListener('open', () => {\n                sendState();\n              });\n              socket.addEventListener('message', e => {\n                resetActivityTimeout();\n                try {\n                  const {\n                    action,\n                    payload\n                  } = JSON.parse(e.data);\n                  switch (action) {\n                    case 'progress':\n                      {\n                        emitSocketProgress(this, payload, this.uppy.getFile(file.id));\n                        break;\n                      }\n                    case 'success':\n                      {\n                        var _payload$response, _payload$response$sta, _payload$response2, _socketAbortControlle2;\n                        // payload.response exists for xhr-upload but not for tus/transloadit\n                        const text = (_payload$response = payload.response) == null ? void 0 : _payload$response.responseText;\n                        this.uppy.emit('upload-success', this.uppy.getFile(file.id), {\n                          uploadURL: payload.url,\n                          status: (_payload$response$sta = (_payload$response2 = payload.response) == null ? void 0 : _payload$response2.status) != null ? _payload$response$sta : 200,\n                          body: text ? JSON.parse(text) : undefined\n                        });\n                        (_socketAbortControlle2 = socketAbortController) == null || _socketAbortControlle2.abort == null || _socketAbortControlle2.abort();\n                        resolve();\n                        break;\n                      }\n                    case 'error':\n                      {\n                        const {\n                          message\n                        } = payload.error;\n                        throw Object.assign(new Error(message), {\n                          cause: payload.error\n                        });\n                      }\n                    default:\n                      this.uppy.log(`Companion socket unknown action ${action}`, 'warning');\n                  }\n                } catch (err) {\n                  onFatalError(err);\n                }\n              });\n              const closeSocket = () => {\n                this.uppy.log(`Closing socket ${file.id}`, 'info');\n                clearTimeout(activityTimeout);\n                if (socket) socket.close();\n                socket = undefined;\n              };\n              socketAbortController.signal.addEventListener('abort', () => {\n                closeSocket();\n              });\n            });\n            await pRetry(reconnectWebsocket, {\n              retries: retryCount,\n              signal: socketAbortController.signal,\n              onFailedAttempt: () => {\n                if (socketAbortController.signal.aborted) return; // don't log in this case\n                this.uppy.log(`Retrying websocket ${file.id}`, 'info');\n              }\n            });\n          })().abortOn(socketAbortController.signal);\n        } catch (err) {\n          if (socketAbortController.signal.aborted) return;\n          onFatalError(err);\n        }\n      };\n      const pause = newPausedState => {\n        if (!capabilities.resumableUploads) return;\n        isPaused = newPausedState;\n        if (socket) sendState();\n        if (newPausedState) {\n          var _socketAbortControlle3;\n          // Remove this file from the queue so another file can start in its place.\n          (_socketAbortControlle3 = socketAbortController) == null || _socketAbortControlle3.abort == null || _socketAbortControlle3.abort(); // close socket to free up the request for other uploads\n        } else {\n          // Resuming an upload should be queued, else you could pause and then\n          // resume a queued upload to make it skip the queue.\n          createWebsocket();\n        }\n      };\n      const onFileRemove = targetFile => {\n        var _socketAbortControlle4;\n        if (!capabilities.individualCancellation) return;\n        if (targetFile.id !== file.id) return;\n        socketSend('cancel');\n        (_socketAbortControlle4 = socketAbortController) == null || _socketAbortControlle4.abort == null || _socketAbortControlle4.abort();\n        this.uppy.log(`upload ${file.id} was removed`, 'info');\n        resolve();\n      };\n      const onCancelAll = _ref5 => {\n        var _socketAbortControlle5;\n        let {\n          reason\n        } = _ref5;\n        if (reason === 'user') {\n          socketSend('cancel');\n        }\n        (_socketAbortControlle5 = socketAbortController) == null || _socketAbortControlle5.abort == null || _socketAbortControlle5.abort();\n        this.uppy.log(`upload ${file.id} was canceled`, 'info');\n        resolve();\n      };\n      const onFilePausedChange = (targetFileId, newPausedState) => {\n        if (targetFileId !== file.id) return;\n        pause(newPausedState);\n      };\n      const onPauseAll = () => pause(true);\n      const onResumeAll = () => pause(false);\n      this.uppy.on('file-removed', onFileRemove);\n      this.uppy.on('cancel-all', onCancelAll);\n      this.uppy.on('upload-pause', onFilePausedChange);\n      this.uppy.on('pause-all', onPauseAll);\n      this.uppy.on('resume-all', onResumeAll);\n      removeEventHandlers = () => {\n        this.uppy.off('file-removed', onFileRemove);\n        this.uppy.off('cancel-all', onCancelAll);\n        this.uppy.off('upload-pause', onFilePausedChange);\n        this.uppy.off('pause-all', onPauseAll);\n        this.uppy.off('resume-all', onResumeAll);\n      };\n      signal.addEventListener('abort', () => {\n        var _socketAbortControlle6;\n        (_socketAbortControlle6 = socketAbortController) == null || _socketAbortControlle6.abort();\n      });\n      createWebsocket();\n    });\n  } finally {\n    // @ts-expect-error used before defined\n    removeEventHandlers == null || removeEventHandlers();\n  }\n}\nRequestClient.VERSION = packageJson.version;", "let _Symbol$for, _Symbol$for2;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore no types\nimport ee from 'namespace-emitter';\nvar _queued = /*#__PURE__*/_classPrivateFieldLooseKey(\"queued\");\nvar _emitter = /*#__PURE__*/_classPrivateFieldLooseKey(\"emitter\");\nvar _isOpen = /*#__PURE__*/_classPrivateFieldLooseKey(\"isOpen\");\nvar _socket = /*#__PURE__*/_classPrivateFieldLooseKey(\"socket\");\nvar _handleMessage = /*#__PURE__*/_classPrivateFieldLooseKey(\"handleMessage\");\n_Symbol$for = Symbol.for('uppy test: getSocket');\n_Symbol$for2 = Symbol.for('uppy test: getQueued');\nexport default class UppySocket {\n  constructor(opts) {\n    Object.defineProperty(this, _queued, {\n      writable: true,\n      value: []\n    });\n    Object.defineProperty(this, _emitter, {\n      writable: true,\n      value: ee()\n    });\n    Object.defineProperty(this, _isOpen, {\n      writable: true,\n      value: false\n    });\n    Object.defineProperty(this, _socket, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _handleMessage, {\n      writable: true,\n      value: e => {\n        try {\n          const message = JSON.parse(e.data);\n          this.emit(message.action, message.payload);\n        } catch (err) {\n          // TODO: use a more robust error handler.\n          console.log(err); // eslint-disable-line no-console\n        }\n      }\n    });\n    this.opts = opts;\n    if (!opts || opts.autoOpen !== false) {\n      this.open();\n    }\n  }\n  get isOpen() {\n    return _classPrivateFieldLooseBase(this, _isOpen)[_isOpen];\n  }\n  [_Symbol$for]() {\n    return _classPrivateFieldLooseBase(this, _socket)[_socket];\n  }\n  [_Symbol$for2]() {\n    return _classPrivateFieldLooseBase(this, _queued)[_queued];\n  }\n  open() {\n    if (_classPrivateFieldLooseBase(this, _socket)[_socket] != null) return;\n    _classPrivateFieldLooseBase(this, _socket)[_socket] = new WebSocket(this.opts.target);\n    _classPrivateFieldLooseBase(this, _socket)[_socket].onopen = () => {\n      _classPrivateFieldLooseBase(this, _isOpen)[_isOpen] = true;\n      while (_classPrivateFieldLooseBase(this, _queued)[_queued].length > 0 && _classPrivateFieldLooseBase(this, _isOpen)[_isOpen]) {\n        const first = _classPrivateFieldLooseBase(this, _queued)[_queued].shift();\n        this.send(first.action, first.payload);\n      }\n    };\n    _classPrivateFieldLooseBase(this, _socket)[_socket].onclose = () => {\n      _classPrivateFieldLooseBase(this, _isOpen)[_isOpen] = false;\n      _classPrivateFieldLooseBase(this, _socket)[_socket] = null;\n    };\n    _classPrivateFieldLooseBase(this, _socket)[_socket].onmessage = _classPrivateFieldLooseBase(this, _handleMessage)[_handleMessage];\n  }\n  close() {\n    var _classPrivateFieldLoo;\n    (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _socket)[_socket]) == null || _classPrivateFieldLoo.close();\n  }\n  send(action, payload) {\n    // attach uuid\n\n    if (!_classPrivateFieldLooseBase(this, _isOpen)[_isOpen]) {\n      _classPrivateFieldLooseBase(this, _queued)[_queued].push({\n        action,\n        payload\n      });\n      return;\n    }\n    _classPrivateFieldLooseBase(this, _socket)[_socket].send(JSON.stringify({\n      action,\n      payload\n    }));\n  }\n  on(action, handler) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(action, handler);\n  }\n  emit(action, payload) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].emit(action, payload);\n  }\n  once(action, handler) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].once(action, handler);\n  }\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nvar _uppy = /*#__PURE__*/_classPrivateFieldLooseKey(\"uppy\");\nvar _events = /*#__PURE__*/_classPrivateFieldLooseKey(\"events\");\n/**\n * Create a wrapper around an event emitter with a `remove` method to remove\n * all events that were added using the wrapped emitter.\n */\nexport default class EventManager {\n  constructor(uppy) {\n    Object.defineProperty(this, _uppy, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _events, {\n      writable: true,\n      value: []\n    });\n    _classPrivateFieldLooseBase(this, _uppy)[_uppy] = uppy;\n  }\n  on(event, fn) {\n    _classPrivateFieldLooseBase(this, _events)[_events].push([event, fn]);\n    return _classPrivateFieldLooseBase(this, _uppy)[_uppy].on(event, fn);\n  }\n  remove() {\n    for (const [event, fn] of _classPrivateFieldLooseBase(this, _events)[_events].splice(0)) {\n      _classPrivateFieldLooseBase(this, _uppy)[_uppy].off(event, fn);\n    }\n  }\n  onFilePause(fileID, cb) {\n    this.on('upload-pause', (targetFileID, isPaused) => {\n      if (fileID === targetFileID) {\n        cb(isPaused);\n      }\n    });\n  }\n  onFileRemove(fileID, cb) {\n    this.on('file-removed', file => {\n      if (fileID === file.id) cb(file.id);\n    });\n  }\n  onPause(fileID, cb) {\n    this.on('upload-pause', (targetFileID, isPaused) => {\n      if (fileID === targetFileID) {\n        // const isPaused = this.#uppy.pauseResume(fileID)\n        cb(isPaused);\n      }\n    });\n  }\n  onRetry(fileID, cb) {\n    this.on('upload-retry', targetFileID => {\n      if (fileID === targetFileID) {\n        cb();\n      }\n    });\n  }\n  onRetryAll(fileID, cb) {\n    this.on('retry-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n  onPauseAll(fileID, cb) {\n    this.on('pause-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n  onCancelAll(fileID, eventHandler) {\n    var _this = this;\n    this.on('cancel-all', function () {\n      if (!_classPrivateFieldLooseBase(_this, _uppy)[_uppy].getFile(fileID)) return;\n      eventHandler(...arguments);\n    });\n  }\n  onResumeAll(fileID, cb) {\n    this.on('resume-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n}", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nfunction createCancelError(cause) {\n  return new Error('Cancelled', {\n    cause\n  });\n}\nfunction abortOn(signal) {\n  if (signal != null) {\n    var _this$then;\n    const abortPromise = () => this.abort(signal.reason);\n    signal.addEventListener('abort', abortPromise, {\n      once: true\n    });\n    const removeAbortListener = () => {\n      signal.removeEventListener('abort', abortPromise);\n    };\n    (_this$then = this.then) == null || _this$then.call(this, removeAbortListener, removeAbortListener);\n  }\n  return this;\n}\nvar _activeRequests = /*#__PURE__*/_classPrivateFieldLooseKey(\"activeRequests\");\nvar _queuedHandlers = /*#__PURE__*/_classPrivateFieldLooseKey(\"queuedHandlers\");\nvar _paused = /*#__PURE__*/_classPrivateFieldLooseKey(\"paused\");\nvar _pauseTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"pauseTimer\");\nvar _downLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"downLimit\");\nvar _upperLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"upperLimit\");\nvar _rateLimitingTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"rateLimitingTimer\");\nvar _call = /*#__PURE__*/_classPrivateFieldLooseKey(\"call\");\nvar _queueNext = /*#__PURE__*/_classPrivateFieldLooseKey(\"queueNext\");\nvar _next = /*#__PURE__*/_classPrivateFieldLooseKey(\"next\");\nvar _queue = /*#__PURE__*/_classPrivateFieldLooseKey(\"queue\");\nvar _dequeue = /*#__PURE__*/_classPrivateFieldLooseKey(\"dequeue\");\nvar _resume = /*#__PURE__*/_classPrivateFieldLooseKey(\"resume\");\nvar _increaseLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"increaseLimit\");\nexport class RateLimitedQueue {\n  constructor(limit) {\n    Object.defineProperty(this, _dequeue, {\n      value: _dequeue2\n    });\n    Object.defineProperty(this, _queue, {\n      value: _queue2\n    });\n    Object.defineProperty(this, _next, {\n      value: _next2\n    });\n    Object.defineProperty(this, _queueNext, {\n      value: _queueNext2\n    });\n    Object.defineProperty(this, _call, {\n      value: _call2\n    });\n    Object.defineProperty(this, _activeRequests, {\n      writable: true,\n      value: 0\n    });\n    Object.defineProperty(this, _queuedHandlers, {\n      writable: true,\n      value: []\n    });\n    Object.defineProperty(this, _paused, {\n      writable: true,\n      value: false\n    });\n    Object.defineProperty(this, _pauseTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _downLimit, {\n      writable: true,\n      value: 1\n    });\n    Object.defineProperty(this, _upperLimit, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _rateLimitingTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _resume, {\n      writable: true,\n      value: () => this.resume()\n    });\n    Object.defineProperty(this, _increaseLimit, {\n      writable: true,\n      value: () => {\n        if (_classPrivateFieldLooseBase(this, _paused)[_paused]) {\n          _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], 0);\n          return;\n        }\n        _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] = this.limit;\n        this.limit = Math.ceil((_classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] + _classPrivateFieldLooseBase(this, _downLimit)[_downLimit]) / 2);\n        for (let i = _classPrivateFieldLooseBase(this, _downLimit)[_downLimit]; i <= this.limit; i++) {\n          _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n        }\n        if (_classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] - _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] > 3) {\n          _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], 2000);\n        } else {\n          _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] = Math.floor(_classPrivateFieldLooseBase(this, _downLimit)[_downLimit] / 2);\n        }\n      }\n    });\n    if (typeof limit !== 'number' || limit === 0) {\n      this.limit = Infinity;\n    } else {\n      this.limit = limit;\n    }\n  }\n  run(fn, queueOptions) {\n    if (!_classPrivateFieldLooseBase(this, _paused)[_paused] && _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] < this.limit) {\n      return _classPrivateFieldLooseBase(this, _call)[_call](fn);\n    }\n    return _classPrivateFieldLooseBase(this, _queue)[_queue](fn, queueOptions);\n  }\n  wrapSyncFunction(fn, queueOptions) {\n    var _this = this;\n    return function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      const queuedRequest = _this.run(() => {\n        fn(...args);\n        queueMicrotask(() => queuedRequest.done());\n        return () => {};\n      }, queueOptions);\n      return {\n        abortOn,\n        abort() {\n          queuedRequest.abort();\n        }\n      };\n    };\n  }\n  wrapPromiseFunction(fn, queueOptions) {\n    var _this2 = this;\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      let queuedRequest;\n      const outerPromise = new Promise((resolve, reject) => {\n        queuedRequest = _this2.run(() => {\n          let cancelError;\n          let innerPromise;\n          try {\n            innerPromise = Promise.resolve(fn(...args));\n          } catch (err) {\n            innerPromise = Promise.reject(err);\n          }\n          innerPromise.then(result => {\n            if (cancelError) {\n              reject(cancelError);\n            } else {\n              queuedRequest.done();\n              resolve(result);\n            }\n          }, err => {\n            if (cancelError) {\n              reject(cancelError);\n            } else {\n              queuedRequest.done();\n              reject(err);\n            }\n          });\n          return cause => {\n            cancelError = createCancelError(cause);\n          };\n        }, queueOptions);\n      });\n      outerPromise.abort = cause => {\n        queuedRequest.abort(cause);\n      };\n      outerPromise.abortOn = abortOn;\n      return outerPromise;\n    };\n  }\n  resume() {\n    _classPrivateFieldLooseBase(this, _paused)[_paused] = false;\n    clearTimeout(_classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer]);\n    for (let i = 0; i < this.limit; i++) {\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    }\n  }\n  /**\n   * Freezes the queue for a while or indefinitely.\n   *\n   * @param {number | null } [duration] Duration for the pause to happen, in milliseconds.\n   *                                    If omitted, the queue won't resume automatically.\n   */\n  pause(duration) {\n    if (duration === void 0) {\n      duration = null;\n    }\n    _classPrivateFieldLooseBase(this, _paused)[_paused] = true;\n    clearTimeout(_classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer]);\n    if (duration != null) {\n      _classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer] = setTimeout(_classPrivateFieldLooseBase(this, _resume)[_resume], duration);\n    }\n  }\n\n  /**\n   * Pauses the queue for a duration, and lower the limit of concurrent requests\n   * when the queue resumes. When the queue resumes, it tries to progressively\n   * increase the limit in `this.#increaseLimit` until another call is made to\n   * `this.rateLimit`.\n   * Call this function when using the RateLimitedQueue for network requests and\n   * the remote server responds with 429 HTTP code.\n   *\n   * @param {number} duration in milliseconds.\n   */\n  rateLimit(duration) {\n    clearTimeout(_classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer]);\n    this.pause(duration);\n    if (this.limit > 1 && Number.isFinite(this.limit)) {\n      _classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] = this.limit - 1;\n      this.limit = _classPrivateFieldLooseBase(this, _downLimit)[_downLimit];\n      _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], duration);\n    }\n  }\n  get isPaused() {\n    return _classPrivateFieldLooseBase(this, _paused)[_paused];\n  }\n}\nfunction _call2(fn) {\n  _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] += 1;\n  let done = false;\n  let cancelActive;\n  try {\n    cancelActive = fn();\n  } catch (err) {\n    _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n    throw err;\n  }\n  return {\n    abort: cause => {\n      if (done) return;\n      done = true;\n      _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n      cancelActive == null || cancelActive(cause);\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    },\n    done: () => {\n      if (done) return;\n      done = true;\n      _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    }\n  };\n}\nfunction _queueNext2() {\n  // Do it soon but not immediately, this allows clearing out the entire queue synchronously\n  // one by one without continuously _advancing_ it (and starting new tasks before immediately\n  // aborting them)\n  queueMicrotask(() => _classPrivateFieldLooseBase(this, _next)[_next]());\n}\nfunction _next2() {\n  if (_classPrivateFieldLooseBase(this, _paused)[_paused] || _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] >= this.limit) {\n    return;\n  }\n  if (_classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].length === 0) {\n    return;\n  }\n\n  // Dispatch the next request, and update the abort/done handlers\n  // so that cancelling it does the Right Thing (and doesn't just try\n  // to dequeue an already-running request).\n  const next = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].shift();\n  if (next == null) {\n    throw new Error('Invariant violation: next is null');\n  }\n  const handler = _classPrivateFieldLooseBase(this, _call)[_call](next.fn);\n  next.abort = handler.abort;\n  next.done = handler.done;\n}\nfunction _queue2(fn, options) {\n  const handler = {\n    fn,\n    priority: (options == null ? void 0 : options.priority) || 0,\n    abort: () => {\n      _classPrivateFieldLooseBase(this, _dequeue)[_dequeue](handler);\n    },\n    done: () => {\n      throw new Error('Cannot mark a queued request as done: this indicates a bug');\n    }\n  };\n  const index = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].findIndex(other => {\n    return handler.priority > other.priority;\n  });\n  if (index === -1) {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].push(handler);\n  } else {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].splice(index, 0, handler);\n  }\n  return handler;\n}\nfunction _dequeue2(handler) {\n  const index = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].indexOf(handler);\n  if (index !== -1) {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].splice(index, 1);\n  }\n}\nexport const internalRateLimitedQueue = Symbol('__queue');", "export function filterNonFailedFiles(files) {\n  const hasError = file => 'error' in file && !!file.error;\n  return files.filter(file => !hasError(file));\n}\n\n// Don't double-emit upload-started for Golden Retriever-restored files that were already started\nexport function filterFilesToEmitUploadStarted(files) {\n  return files.filter(file => {\n    var _file$progress;\n    return !((_file$progress = file.progress) != null && _file$progress.uploadStarted) || !file.isRestored;\n  });\n}", "import hasOwnProperty from \"./hasProperty.js\";\n/**\n * Little AbortController proxy module so we can swap out the implementation easily later.\n */\nexport const {\n  AbortController\n} = globalThis;\nexport const {\n  AbortSignal\n} = globalThis;\nexport const createAbortError = function (message, options) {\n  if (message === void 0) {\n    message = 'Aborted';\n  }\n  const err = new DOMException(message, 'AbortError');\n  if (options != null && hasOwnProperty(options, 'cause')) {\n    Object.defineProperty(err, 'cause', {\n      // @ts-expect-error TS is drunk\n      __proto__: null,\n      configurable: true,\n      writable: true,\n      value: options.cause\n    });\n  }\n  return err;\n};", "function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport { AbortController } from '@uppy/utils/lib/AbortController';\nconst MB = 1024 * 1024;\nconst defaultOptions = {\n  getChunkSize(file) {\n    return Math.ceil(file.size / 10000);\n  },\n  onProgress() {},\n  onPartComplete() {},\n  onSuccess() {},\n  onError(err) {\n    throw err;\n  }\n};\nfunction ensureInt(value) {\n  if (typeof value === 'string') {\n    return parseInt(value, 10);\n  }\n  if (typeof value === 'number') {\n    return value;\n  }\n  throw new TypeError('Expected a number');\n}\nexport const pausingUploadReason = Symbol('pausing upload, not an actual error');\n\n/**\n * A MultipartUploader instance is used per file upload to determine whether a\n * upload should be done as multipart or as a regular S3 upload\n * (based on the user-provided `shouldUseMultipart` option value) and to manage\n * the chunk splitting.\n */\nvar _abortController = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortController\");\nvar _chunks = /*#__PURE__*/_classPrivateFieldLooseKey(\"chunks\");\nvar _chunkState = /*#__PURE__*/_classPrivateFieldLooseKey(\"chunkState\");\nvar _data = /*#__PURE__*/_classPrivateFieldLooseKey(\"data\");\nvar _file = /*#__PURE__*/_classPrivateFieldLooseKey(\"file\");\nvar _uploadHasStarted = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploadHasStarted\");\nvar _onError = /*#__PURE__*/_classPrivateFieldLooseKey(\"onError\");\nvar _onSuccess = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSuccess\");\nvar _shouldUseMultipart = /*#__PURE__*/_classPrivateFieldLooseKey(\"shouldUseMultipart\");\nvar _isRestoring = /*#__PURE__*/_classPrivateFieldLooseKey(\"isRestoring\");\nvar _onReject = /*#__PURE__*/_classPrivateFieldLooseKey(\"onReject\");\nvar _maxMultipartParts = /*#__PURE__*/_classPrivateFieldLooseKey(\"maxMultipartParts\");\nvar _minPartSize = /*#__PURE__*/_classPrivateFieldLooseKey(\"minPartSize\");\nvar _initChunks = /*#__PURE__*/_classPrivateFieldLooseKey(\"initChunks\");\nvar _createUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createUpload\");\nvar _resumeUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"resumeUpload\");\nvar _onPartProgress = /*#__PURE__*/_classPrivateFieldLooseKey(\"onPartProgress\");\nvar _onPartComplete = /*#__PURE__*/_classPrivateFieldLooseKey(\"onPartComplete\");\nvar _abortUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortUpload\");\nclass MultipartUploader {\n  constructor(data, options) {\n    var _this$options, _this$options$getChun;\n    Object.defineProperty(this, _abortUpload, {\n      value: _abortUpload2\n    });\n    Object.defineProperty(this, _resumeUpload, {\n      value: _resumeUpload2\n    });\n    Object.defineProperty(this, _createUpload, {\n      value: _createUpload2\n    });\n    // initChunks checks the user preference for using multipart uploads (opts.shouldUseMultipart)\n    // and calculates the optimal part size. When using multipart part uploads every part except for the last has\n    // to be at least 5 MB and there can be no more than 10K parts.\n    // This means we sometimes need to change the preferred part size from the user in order to meet these requirements.\n    Object.defineProperty(this, _initChunks, {\n      value: _initChunks2\n    });\n    Object.defineProperty(this, _abortController, {\n      writable: true,\n      value: new AbortController()\n    });\n    /** @type {import(\"../types/chunk\").Chunk[]} */\n    Object.defineProperty(this, _chunks, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {{ uploaded: number, etag?: string, done?: boolean }[]} */\n    Object.defineProperty(this, _chunkState, {\n      writable: true,\n      value: void 0\n    });\n    /**\n     * The (un-chunked) data to upload.\n     *\n     * @type {Blob}\n     */\n    Object.defineProperty(this, _data, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {import(\"@uppy/core\").UppyFile} */\n    Object.defineProperty(this, _file, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {boolean} */\n    Object.defineProperty(this, _uploadHasStarted, {\n      writable: true,\n      value: false\n    });\n    /** @type {(err?: Error | any) => void} */\n    Object.defineProperty(this, _onError, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {() => void} */\n    Object.defineProperty(this, _onSuccess, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {import('../types/index').AwsS3MultipartOptions[\"shouldUseMultipart\"]} */\n    Object.defineProperty(this, _shouldUseMultipart, {\n      writable: true,\n      value: void 0\n    });\n    /** @type {boolean} */\n    Object.defineProperty(this, _isRestoring, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _onReject, {\n      writable: true,\n      value: err => (err == null ? void 0 : err.cause) === pausingUploadReason ? null : _classPrivateFieldLooseBase(this, _onError)[_onError](err)\n    });\n    Object.defineProperty(this, _maxMultipartParts, {\n      writable: true,\n      value: 10000\n    });\n    Object.defineProperty(this, _minPartSize, {\n      writable: true,\n      value: 5 * MB\n    });\n    Object.defineProperty(this, _onPartProgress, {\n      writable: true,\n      value: index => ev => {\n        if (!ev.lengthComputable) return;\n        _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][index].uploaded = ensureInt(ev.loaded);\n        const totalUploaded = _classPrivateFieldLooseBase(this, _chunkState)[_chunkState].reduce((n, c) => n + c.uploaded, 0);\n        this.options.onProgress(totalUploaded, _classPrivateFieldLooseBase(this, _data)[_data].size);\n      }\n    });\n    Object.defineProperty(this, _onPartComplete, {\n      writable: true,\n      value: index => etag => {\n        // This avoids the net::ERR_OUT_OF_MEMORY in Chromium Browsers.\n        _classPrivateFieldLooseBase(this, _chunks)[_chunks][index] = null;\n        _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][index].etag = etag;\n        _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][index].done = true;\n        const part = {\n          PartNumber: index + 1,\n          ETag: etag\n        };\n        this.options.onPartComplete(part);\n      }\n    });\n    this.options = {\n      ...defaultOptions,\n      ...options\n    };\n    // Use default `getChunkSize` if it was null or something\n    (_this$options$getChun = (_this$options = this.options).getChunkSize) != null ? _this$options$getChun : _this$options.getChunkSize = defaultOptions.getChunkSize;\n    _classPrivateFieldLooseBase(this, _data)[_data] = data;\n    _classPrivateFieldLooseBase(this, _file)[_file] = options.file;\n    _classPrivateFieldLooseBase(this, _onSuccess)[_onSuccess] = this.options.onSuccess;\n    _classPrivateFieldLooseBase(this, _onError)[_onError] = this.options.onError;\n    _classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart] = this.options.shouldUseMultipart;\n\n    // When we are restoring an upload, we already have an UploadId and a Key. Otherwise\n    // we need to call `createMultipartUpload` to get an `uploadId` and a `key`.\n    // Non-multipart uploads are not restorable.\n    _classPrivateFieldLooseBase(this, _isRestoring)[_isRestoring] = options.uploadId && options.key;\n    _classPrivateFieldLooseBase(this, _initChunks)[_initChunks]();\n  }\n  start() {\n    if (_classPrivateFieldLooseBase(this, _uploadHasStarted)[_uploadHasStarted]) {\n      if (!_classPrivateFieldLooseBase(this, _abortController)[_abortController].signal.aborted) _classPrivateFieldLooseBase(this, _abortController)[_abortController].abort(pausingUploadReason);\n      _classPrivateFieldLooseBase(this, _abortController)[_abortController] = new AbortController();\n      _classPrivateFieldLooseBase(this, _resumeUpload)[_resumeUpload]();\n    } else if (_classPrivateFieldLooseBase(this, _isRestoring)[_isRestoring]) {\n      this.options.companionComm.restoreUploadFile(_classPrivateFieldLooseBase(this, _file)[_file], {\n        uploadId: this.options.uploadId,\n        key: this.options.key\n      });\n      _classPrivateFieldLooseBase(this, _resumeUpload)[_resumeUpload]();\n    } else {\n      _classPrivateFieldLooseBase(this, _createUpload)[_createUpload]();\n    }\n  }\n  pause() {\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController].abort(pausingUploadReason);\n    // Swap it out for a new controller, because this instance may be resumed later.\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController] = new AbortController();\n  }\n  abort(opts) {\n    var _opts;\n    if (opts === void 0) {\n      opts = undefined;\n    }\n    if ((_opts = opts) != null && _opts.really) _classPrivateFieldLooseBase(this, _abortUpload)[_abortUpload]();else this.pause();\n  }\n\n  // TODO: remove this in the next major\n  get chunkState() {\n    return _classPrivateFieldLooseBase(this, _chunkState)[_chunkState];\n  }\n}\nfunction _initChunks2() {\n  const fileSize = _classPrivateFieldLooseBase(this, _data)[_data].size;\n  const shouldUseMultipart = typeof _classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart] === 'function' ? _classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart](_classPrivateFieldLooseBase(this, _file)[_file]) : Boolean(_classPrivateFieldLooseBase(this, _shouldUseMultipart)[_shouldUseMultipart]);\n  if (shouldUseMultipart && fileSize > _classPrivateFieldLooseBase(this, _minPartSize)[_minPartSize]) {\n    // At least 5MB per request:\n    let chunkSize = Math.max(this.options.getChunkSize(_classPrivateFieldLooseBase(this, _data)[_data]), _classPrivateFieldLooseBase(this, _minPartSize)[_minPartSize]);\n    let arraySize = Math.floor(fileSize / chunkSize);\n\n    // At most 10k requests per file:\n    if (arraySize > _classPrivateFieldLooseBase(this, _maxMultipartParts)[_maxMultipartParts]) {\n      arraySize = _classPrivateFieldLooseBase(this, _maxMultipartParts)[_maxMultipartParts];\n      chunkSize = fileSize / _classPrivateFieldLooseBase(this, _maxMultipartParts)[_maxMultipartParts];\n    }\n    _classPrivateFieldLooseBase(this, _chunks)[_chunks] = Array(arraySize);\n    for (let offset = 0, j = 0; offset < fileSize; offset += chunkSize, j++) {\n      const end = Math.min(fileSize, offset + chunkSize);\n\n      // Defer data fetching/slicing until we actually need the data, because it's slow if we have a lot of files\n      const getData = () => {\n        const i2 = offset;\n        return _classPrivateFieldLooseBase(this, _data)[_data].slice(i2, end);\n      };\n      _classPrivateFieldLooseBase(this, _chunks)[_chunks][j] = {\n        getData,\n        onProgress: _classPrivateFieldLooseBase(this, _onPartProgress)[_onPartProgress](j),\n        onComplete: _classPrivateFieldLooseBase(this, _onPartComplete)[_onPartComplete](j),\n        shouldUseMultipart\n      };\n      if (_classPrivateFieldLooseBase(this, _isRestoring)[_isRestoring]) {\n        const size = offset + chunkSize > fileSize ? fileSize - offset : chunkSize;\n        // setAsUploaded is called by listPart, to keep up-to-date the\n        // quantity of data that is left to actually upload.\n        _classPrivateFieldLooseBase(this, _chunks)[_chunks][j].setAsUploaded = () => {\n          _classPrivateFieldLooseBase(this, _chunks)[_chunks][j] = null;\n          _classPrivateFieldLooseBase(this, _chunkState)[_chunkState][j].uploaded = size;\n        };\n      }\n    }\n  } else {\n    _classPrivateFieldLooseBase(this, _chunks)[_chunks] = [{\n      getData: () => _classPrivateFieldLooseBase(this, _data)[_data],\n      onProgress: _classPrivateFieldLooseBase(this, _onPartProgress)[_onPartProgress](0),\n      onComplete: _classPrivateFieldLooseBase(this, _onPartComplete)[_onPartComplete](0),\n      shouldUseMultipart\n    }];\n  }\n  _classPrivateFieldLooseBase(this, _chunkState)[_chunkState] = _classPrivateFieldLooseBase(this, _chunks)[_chunks].map(() => ({\n    uploaded: 0\n  }));\n}\nfunction _createUpload2() {\n  this.options.companionComm.uploadFile(_classPrivateFieldLooseBase(this, _file)[_file], _classPrivateFieldLooseBase(this, _chunks)[_chunks], _classPrivateFieldLooseBase(this, _abortController)[_abortController].signal).then(_classPrivateFieldLooseBase(this, _onSuccess)[_onSuccess], _classPrivateFieldLooseBase(this, _onReject)[_onReject]);\n  _classPrivateFieldLooseBase(this, _uploadHasStarted)[_uploadHasStarted] = true;\n}\nfunction _resumeUpload2() {\n  this.options.companionComm.resumeUploadFile(_classPrivateFieldLooseBase(this, _file)[_file], _classPrivateFieldLooseBase(this, _chunks)[_chunks], _classPrivateFieldLooseBase(this, _abortController)[_abortController].signal).then(_classPrivateFieldLooseBase(this, _onSuccess)[_onSuccess], _classPrivateFieldLooseBase(this, _onReject)[_onReject]);\n}\nfunction _abortUpload2() {\n  _classPrivateFieldLooseBase(this, _abortController)[_abortController].abort();\n  this.options.companionComm.abortFileUpload(_classPrivateFieldLooseBase(this, _file)[_file]).catch(err => this.options.log(err));\n}\nexport default MultipartUploader;", "/**\n * Create a canonical request by concatenating the following strings, separated\n * by newline characters. This helps ensure that the signature that you\n * calculate and the signature that AWS calculates can match.\n *\n * @see https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request\n *\n * @param {object} param0\n * @param {string} param0.method \u2013 The HTTP method.\n * @param {string} param0.CanonicalUri \u2013 The URI-encoded version of the absolute\n * path component URL (everything between the host and the question mark\n * character (?) that starts the query string parameters). If the absolute path\n * is empty, use a forward slash character (/).\n * @param {string} param0.CanonicalQueryString \u2013 The URL-encoded query string\n * parameters, separated by ampersands (&). Percent-encode reserved characters,\n * including the space character. Encode names and values separately. If there\n * are empty parameters, append the equals sign to the parameter name before\n * encoding. After encoding, sort the parameters alphabetically by key name. If\n * there is no query string, use an empty string (\"\").\n * @param {Record<string, string>} param0.SignedHeaders \u2013 The request headers,\n * that will be signed, and their values, separated by newline characters.\n * For the values, trim any leading or trailing spaces, convert sequential\n * spaces to a single space, and separate the values for a multi-value header\n * using commas. You must include the host header (HTTP/1.1), and any x-amz-*\n * headers in the signature. You can optionally include other standard headers\n * in the signature, such as content-type.\n * @param {string} param0.HashedPayload \u2013 A string created using the payload in\n * the body of the HTTP request as input to a hash function. This string uses\n * lowercase hexadecimal characters. If the payload is empty, use an empty\n * string as the input to the hash function.\n * @returns {string}\n */\nfunction createCanonicalRequest(_ref) {\n  let {\n    method = 'PUT',\n    CanonicalUri = '/',\n    CanonicalQueryString = '',\n    SignedHeaders,\n    HashedPayload\n  } = _ref;\n  const headerKeys = Object.keys(SignedHeaders).map(k => k.toLowerCase()).sort();\n  return [method, CanonicalUri, CanonicalQueryString, ...headerKeys.map(k => `${k}:${SignedHeaders[k]}`), '', headerKeys.join(';'), HashedPayload].join('\\n');\n}\nconst ec = new TextEncoder();\nconst algorithm = {\n  name: 'HMAC',\n  hash: 'SHA-256'\n};\nasync function digest(data) {\n  const {\n    subtle\n  } = globalThis.crypto;\n  return subtle.digest(algorithm.hash, ec.encode(data));\n}\nasync function generateHmacKey(secret) {\n  const {\n    subtle\n  } = globalThis.crypto;\n  return subtle.importKey('raw', typeof secret === 'string' ? ec.encode(secret) : secret, algorithm, false, ['sign']);\n}\nfunction arrayBufferToHexString(arrayBuffer) {\n  const byteArray = new Uint8Array(arrayBuffer);\n  let hexString = '';\n  for (let i = 0; i < byteArray.length; i++) {\n    hexString += byteArray[i].toString(16).padStart(2, '0');\n  }\n  return hexString;\n}\nasync function hash(key, data) {\n  const {\n    subtle\n  } = globalThis.crypto;\n  return subtle.sign(algorithm, await generateHmacKey(key), ec.encode(data));\n}\n\n/**\n * @see https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html\n * @param {Record<string,string>} param0\n * @returns {Promise<URL>} the signed URL\n */\nexport default async function createSignedURL(_ref2) {\n  let {\n    accountKey,\n    accountSecret,\n    sessionToken,\n    bucketName,\n    Key,\n    Region,\n    expires,\n    uploadId,\n    partNumber\n  } = _ref2;\n  const Service = 's3';\n  const host = `${bucketName}.${Service}.${Region}.amazonaws.com`;\n  const CanonicalUri = `/${encodeURI(Key)}`;\n  const payload = 'UNSIGNED-PAYLOAD';\n  const requestDateTime = new Date().toISOString().replace(/[-:]|\\.\\d+/g, ''); // YYYYMMDDTHHMMSSZ\n  const date = requestDateTime.slice(0, 8); // YYYYMMDD\n  const scope = `${date}/${Region}/${Service}/aws4_request`;\n  const url = new URL(`https://${host}${CanonicalUri}`);\n  // N.B.: URL search params needs to be added in the ASCII order\n  url.searchParams.set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256');\n  url.searchParams.set('X-Amz-Content-Sha256', payload);\n  url.searchParams.set('X-Amz-Credential', `${accountKey}/${scope}`);\n  url.searchParams.set('X-Amz-Date', requestDateTime);\n  url.searchParams.set('X-Amz-Expires', expires);\n  // We are signing on the client, so we expect there's going to be a session token:\n  url.searchParams.set('X-Amz-Security-Token', sessionToken);\n  url.searchParams.set('X-Amz-SignedHeaders', 'host');\n  // Those two are present only for Multipart Uploads:\n  if (partNumber) url.searchParams.set('partNumber', partNumber);\n  if (uploadId) url.searchParams.set('uploadId', uploadId);\n  url.searchParams.set('x-id', partNumber && uploadId ? 'UploadPart' : 'PutObject');\n\n  // Step 1: Create a canonical request\n  const canonical = createCanonicalRequest({\n    CanonicalUri,\n    CanonicalQueryString: url.search.slice(1),\n    SignedHeaders: {\n      host\n    },\n    HashedPayload: payload\n  });\n\n  // Step 2: Create a hash of the canonical request\n  const hashedCanonical = arrayBufferToHexString(await digest(canonical));\n\n  // Step 3: Create a string to sign\n  const stringToSign = [`AWS4-HMAC-SHA256`,\n  // The algorithm used to create the hash of the canonical request.\n  requestDateTime,\n  // The date and time used in the credential scope.\n  scope,\n  // The credential scope. This restricts the resulting signature to the specified Region and service.\n  hashedCanonical // The hash of the canonical request.\n  ].join('\\n');\n\n  // Step 4: Calculate the signature\n  const kDate = await hash(`AWS4${accountSecret}`, date);\n  const kRegion = await hash(kDate, Region);\n  const kService = await hash(kRegion, Service);\n  const kSigning = await hash(kService, 'aws4_request');\n  const signature = arrayBufferToHexString(await hash(kSigning, stringToSign));\n\n  // Step 5: Add the signature to the request\n  url.searchParams.set('X-Amz-Signature', signature);\n  return url;\n}", "let _Symbol$for;\nfunction _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError(\"attempted to use private field on non-instance\"); } return receiver; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(name) { return \"__private_\" + id++ + \"_\" + name; }\nimport BasePlugin from '@uppy/core/lib/BasePlugin.js';\nimport { RequestClient } from '@uppy/companion-client';\nimport EventManager from '@uppy/utils/lib/EventManager';\nimport { RateLimitedQueue } from '@uppy/utils/lib/RateLimitedQueue';\nimport { filterNonFailedFiles, filterFilesToEmitUploadStarted } from '@uppy/utils/lib/fileFilters';\nimport { createAbortError } from '@uppy/utils/lib/AbortController';\nimport MultipartUploader, { pausingUploadReason } from './MultipartUploader.js';\nimport createSignedURL from './createSignedURL.js';\nconst packageJson = {\n  \"version\": \"3.10.2\"\n};\nfunction assertServerError(res) {\n  if (res && res.error) {\n    const error = new Error(res.message);\n    Object.assign(error, res.error);\n    throw error;\n  }\n  return res;\n}\nfunction removeMetadataFromURL(urlString) {\n  const urlObject = new URL(urlString);\n  urlObject.search = '';\n  urlObject.hash = '';\n  return urlObject.href;\n}\n\n/**\n * Computes the expiry time for a request signed with temporary credentials. If\n * no expiration was provided, or an invalid value (e.g. in the past) is\n * provided, undefined is returned. This function assumes the client clock is in\n * sync with the remote server, which is a requirement for the signature to be\n * validated for AWS anyway.\n *\n * @param {import('../types/index.js').AwsS3STSResponse['credentials']} credentials\n * @returns {number | undefined}\n */\nfunction getExpiry(credentials) {\n  const expirationDate = credentials.Expiration;\n  if (expirationDate) {\n    const timeUntilExpiry = Math.floor((new Date(expirationDate) - Date.now()) / 1000);\n    if (timeUntilExpiry > 9) {\n      return timeUntilExpiry;\n    }\n  }\n  return undefined;\n}\nfunction getAllowedMetadata(_ref) {\n  let {\n    meta,\n    allowedMetaFields,\n    querify = false\n  } = _ref;\n  const metaFields = allowedMetaFields != null ? allowedMetaFields : Object.keys(meta);\n  if (!meta) return {};\n  return Object.fromEntries(metaFields.filter(key => meta[key] != null).map(key => {\n    const realKey = querify ? `metadata[${key}]` : key;\n    const value = String(meta[key]);\n    return [realKey, value];\n  }));\n}\nfunction throwIfAborted(signal) {\n  if (signal != null && signal.aborted) {\n    throw createAbortError('The operation was aborted', {\n      cause: signal.reason\n    });\n  }\n}\nvar _abortMultipartUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortMultipartUpload\");\nvar _cache = /*#__PURE__*/_classPrivateFieldLooseKey(\"cache\");\nvar _createMultipartUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createMultipartUpload\");\nvar _fetchSignature = /*#__PURE__*/_classPrivateFieldLooseKey(\"fetchSignature\");\nvar _getUploadParameters = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUploadParameters\");\nvar _listParts = /*#__PURE__*/_classPrivateFieldLooseKey(\"listParts\");\nvar _previousRetryDelay = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousRetryDelay\");\nvar _requests = /*#__PURE__*/_classPrivateFieldLooseKey(\"requests\");\nvar _retryDelays = /*#__PURE__*/_classPrivateFieldLooseKey(\"retryDelays\");\nvar _sendCompletionRequest = /*#__PURE__*/_classPrivateFieldLooseKey(\"sendCompletionRequest\");\nvar _setS3MultipartState = /*#__PURE__*/_classPrivateFieldLooseKey(\"setS3MultipartState\");\nvar _uploadPartBytes = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploadPartBytes\");\nvar _getFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"getFile\");\nvar _shouldRetry = /*#__PURE__*/_classPrivateFieldLooseKey(\"shouldRetry\");\nvar _nonMultipartUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"nonMultipartUpload\");\nclass HTTPCommunicationQueue {\n  constructor(_requests2, options, setS3MultipartState, getFile) {\n    Object.defineProperty(this, _nonMultipartUpload, {\n      value: _nonMultipartUpload2\n    });\n    Object.defineProperty(this, _shouldRetry, {\n      value: _shouldRetry2\n    });\n    Object.defineProperty(this, _abortMultipartUpload, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _cache, {\n      writable: true,\n      value: new WeakMap()\n    });\n    Object.defineProperty(this, _createMultipartUpload, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _fetchSignature, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _getUploadParameters, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _listParts, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousRetryDelay, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _requests, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _retryDelays, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _sendCompletionRequest, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _setS3MultipartState, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _uploadPartBytes, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _getFile, {\n      writable: true,\n      value: void 0\n    });\n    _classPrivateFieldLooseBase(this, _requests)[_requests] = _requests2;\n    _classPrivateFieldLooseBase(this, _setS3MultipartState)[_setS3MultipartState] = setS3MultipartState;\n    _classPrivateFieldLooseBase(this, _getFile)[_getFile] = getFile;\n    this.setOptions(options);\n  }\n  setOptions(options) {\n    const requests = _classPrivateFieldLooseBase(this, _requests)[_requests];\n    if ('abortMultipartUpload' in options) {\n      _classPrivateFieldLooseBase(this, _abortMultipartUpload)[_abortMultipartUpload] = requests.wrapPromiseFunction(options.abortMultipartUpload, {\n        priority: 1\n      });\n    }\n    if ('createMultipartUpload' in options) {\n      _classPrivateFieldLooseBase(this, _createMultipartUpload)[_createMultipartUpload] = requests.wrapPromiseFunction(options.createMultipartUpload, {\n        priority: -1\n      });\n    }\n    if ('signPart' in options) {\n      _classPrivateFieldLooseBase(this, _fetchSignature)[_fetchSignature] = requests.wrapPromiseFunction(options.signPart);\n    }\n    if ('listParts' in options) {\n      _classPrivateFieldLooseBase(this, _listParts)[_listParts] = requests.wrapPromiseFunction(options.listParts);\n    }\n    if ('completeMultipartUpload' in options) {\n      _classPrivateFieldLooseBase(this, _sendCompletionRequest)[_sendCompletionRequest] = requests.wrapPromiseFunction(options.completeMultipartUpload, {\n        priority: 1\n      });\n    }\n    if ('retryDelays' in options) {\n      var _options$retryDelays;\n      _classPrivateFieldLooseBase(this, _retryDelays)[_retryDelays] = (_options$retryDelays = options.retryDelays) != null ? _options$retryDelays : [];\n    }\n    if ('uploadPartBytes' in options) {\n      _classPrivateFieldLooseBase(this, _uploadPartBytes)[_uploadPartBytes] = requests.wrapPromiseFunction(options.uploadPartBytes, {\n        priority: Infinity\n      });\n    }\n    if ('getUploadParameters' in options) {\n      _classPrivateFieldLooseBase(this, _getUploadParameters)[_getUploadParameters] = requests.wrapPromiseFunction(options.getUploadParameters);\n    }\n  }\n  async getUploadId(file, signal) {\n    let cachedResult;\n    // As the cache is updated asynchronously, there could be a race condition\n    // where we just miss a new result so we loop here until we get nothing back,\n    // at which point it's out turn to create a new cache entry.\n    while ((cachedResult = _classPrivateFieldLooseBase(this, _cache)[_cache].get(file.data)) != null) {\n      try {\n        return await cachedResult;\n      } catch {\n        // In case of failure, we want to ignore the cached error.\n        // At this point, either there's a new cached value, or we'll exit the loop a create a new one.\n      }\n    }\n    const promise = _classPrivateFieldLooseBase(this, _createMultipartUpload)[_createMultipartUpload](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), signal);\n    const abortPromise = () => {\n      promise.abort(signal.reason);\n      _classPrivateFieldLooseBase(this, _cache)[_cache].delete(file.data);\n    };\n    signal.addEventListener('abort', abortPromise, {\n      once: true\n    });\n    _classPrivateFieldLooseBase(this, _cache)[_cache].set(file.data, promise);\n    promise.then(async result => {\n      signal.removeEventListener('abort', abortPromise);\n      _classPrivateFieldLooseBase(this, _setS3MultipartState)[_setS3MultipartState](file, result);\n      _classPrivateFieldLooseBase(this, _cache)[_cache].set(file.data, result);\n    }, () => {\n      signal.removeEventListener('abort', abortPromise);\n      _classPrivateFieldLooseBase(this, _cache)[_cache].delete(file.data);\n    });\n    return promise;\n  }\n  async abortFileUpload(file) {\n    const result = _classPrivateFieldLooseBase(this, _cache)[_cache].get(file.data);\n    if (result == null) {\n      // If the createMultipartUpload request never was made, we don't\n      // need to send the abortMultipartUpload request.\n      return;\n    }\n    // Remove the cache entry right away for follow-up requests do not try to\n    // use the soon-to-be aborted chached values.\n    _classPrivateFieldLooseBase(this, _cache)[_cache].delete(file.data);\n    _classPrivateFieldLooseBase(this, _setS3MultipartState)[_setS3MultipartState](file, Object.create(null));\n    let awaitedResult;\n    try {\n      awaitedResult = await result;\n    } catch {\n      // If the cached result rejects, there's nothing to abort.\n      return;\n    }\n    await _classPrivateFieldLooseBase(this, _abortMultipartUpload)[_abortMultipartUpload](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), awaitedResult);\n  }\n  /**\n   * @param {import(\"@uppy/core\").UppyFile} file\n   * @param {import(\"../types/chunk\").Chunk[]} chunks\n   * @param {AbortSignal} signal\n   * @returns {Promise<void>}\n   */\n  async uploadFile(file, chunks, signal) {\n    throwIfAborted(signal);\n    if (chunks.length === 1 && !chunks[0].shouldUseMultipart) {\n      return _classPrivateFieldLooseBase(this, _nonMultipartUpload)[_nonMultipartUpload](file, chunks[0], signal);\n    }\n    const {\n      uploadId,\n      key\n    } = await this.getUploadId(file, signal);\n    throwIfAborted(signal);\n    try {\n      const parts = await Promise.all(chunks.map((chunk, i) => this.uploadChunk(file, i + 1, chunk, signal)));\n      throwIfAborted(signal);\n      return await _classPrivateFieldLooseBase(this, _sendCompletionRequest)[_sendCompletionRequest](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n        key,\n        uploadId,\n        parts,\n        signal\n      }, signal).abortOn(signal);\n    } catch (err) {\n      if ((err == null ? void 0 : err.cause) !== pausingUploadReason && (err == null ? void 0 : err.name) !== 'AbortError') {\n        // We purposefully don't wait for the promise and ignore its status,\n        // because we want the error `err` to bubble up ASAP to report it to the\n        // user. A failure to abort is not that big of a deal anyway.\n        this.abortFileUpload(file);\n      }\n      throw err;\n    }\n  }\n  restoreUploadFile(file, uploadIdAndKey) {\n    _classPrivateFieldLooseBase(this, _cache)[_cache].set(file.data, uploadIdAndKey);\n  }\n  async resumeUploadFile(file, chunks, signal) {\n    throwIfAborted(signal);\n    if (chunks.length === 1 && chunks[0] != null && !chunks[0].shouldUseMultipart) {\n      return _classPrivateFieldLooseBase(this, _nonMultipartUpload)[_nonMultipartUpload](file, chunks[0], signal);\n    }\n    const {\n      uploadId,\n      key\n    } = await this.getUploadId(file, signal);\n    throwIfAborted(signal);\n    const alreadyUploadedParts = await _classPrivateFieldLooseBase(this, _listParts)[_listParts](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n      uploadId,\n      key,\n      signal\n    }, signal).abortOn(signal);\n    throwIfAborted(signal);\n    const parts = await Promise.all(chunks.map((chunk, i) => {\n      const partNumber = i + 1;\n      const alreadyUploadedInfo = alreadyUploadedParts.find(_ref2 => {\n        let {\n          PartNumber\n        } = _ref2;\n        return PartNumber === partNumber;\n      });\n      if (alreadyUploadedInfo == null) {\n        return this.uploadChunk(file, partNumber, chunk, signal);\n      }\n      // Already uploaded chunks are set to null. If we are restoring the upload, we need to mark it as already uploaded.\n      chunk == null || chunk.setAsUploaded == null || chunk.setAsUploaded();\n      return {\n        PartNumber: partNumber,\n        ETag: alreadyUploadedInfo.ETag\n      };\n    }));\n    throwIfAborted(signal);\n    return _classPrivateFieldLooseBase(this, _sendCompletionRequest)[_sendCompletionRequest](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n      key,\n      uploadId,\n      parts,\n      signal\n    }, signal).abortOn(signal);\n  }\n\n  /**\n   *\n   * @param {import(\"@uppy/core\").UppyFile} file\n   * @param {number} partNumber\n   * @param {import(\"../types/chunk\").Chunk} chunk\n   * @param {AbortSignal} signal\n   * @returns {Promise<object>}\n   */\n  async uploadChunk(file, partNumber, chunk, signal) {\n    throwIfAborted(signal);\n    const {\n      uploadId,\n      key\n    } = await this.getUploadId(file, signal);\n    const signatureRetryIterator = _classPrivateFieldLooseBase(this, _retryDelays)[_retryDelays].values();\n    const chunkRetryIterator = _classPrivateFieldLooseBase(this, _retryDelays)[_retryDelays].values();\n    const shouldRetrySignature = () => {\n      const next = signatureRetryIterator.next();\n      if (next == null || next.done) {\n        return null;\n      }\n      return next.value;\n    };\n    for (;;) {\n      throwIfAborted(signal);\n      const chunkData = chunk.getData();\n      const {\n        onProgress,\n        onComplete\n      } = chunk;\n      let signature;\n      try {\n        signature = await _classPrivateFieldLooseBase(this, _fetchSignature)[_fetchSignature](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n          uploadId,\n          key,\n          partNumber,\n          body: chunkData,\n          signal\n        }).abortOn(signal);\n      } catch (err) {\n        const timeout = shouldRetrySignature();\n        if (timeout == null || signal.aborted) {\n          throw err;\n        }\n        await new Promise(resolve => setTimeout(resolve, timeout));\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n      throwIfAborted(signal);\n      try {\n        return {\n          PartNumber: partNumber,\n          ...(await _classPrivateFieldLooseBase(this, _uploadPartBytes)[_uploadPartBytes]({\n            signature,\n            body: chunkData,\n            size: chunkData.size,\n            onProgress,\n            onComplete,\n            signal\n          }).abortOn(signal))\n        };\n      } catch (err) {\n        if (!(await _classPrivateFieldLooseBase(this, _shouldRetry)[_shouldRetry](err, chunkRetryIterator))) throw err;\n      }\n    }\n  }\n}\nasync function _shouldRetry2(err, retryDelayIterator) {\n  var _err$source;\n  const requests = _classPrivateFieldLooseBase(this, _requests)[_requests];\n  const status = err == null || (_err$source = err.source) == null ? void 0 : _err$source.status;\n\n  // TODO: this retry logic is taken out of Tus. We should have a centralized place for retrying,\n  // perhaps the rate limited queue, and dedupe all plugins with that.\n  if (status == null) {\n    return false;\n  }\n  if (status === 403 && err.message === 'Request has expired') {\n    if (!requests.isPaused) {\n      // We don't want to exhaust the retryDelayIterator as long as there are\n      // more than one request in parallel, to give slower connection a chance\n      // to catch up with the expiry set in Companion.\n      if (requests.limit === 1 || _classPrivateFieldLooseBase(this, _previousRetryDelay)[_previousRetryDelay] == null) {\n        const next = retryDelayIterator.next();\n        if (next == null || next.done) {\n          return false;\n        }\n        // If there are more than 1 request done in parallel, the RLQ limit is\n        // decreased and the failed request is requeued after waiting for a bit.\n        // If there is only one request in parallel, the limit can't be\n        // decreased, so we iterate over `retryDelayIterator` as we do for\n        // other failures.\n        // `#previousRetryDelay` caches the value so we can re-use it next time.\n        _classPrivateFieldLooseBase(this, _previousRetryDelay)[_previousRetryDelay] = next.value;\n      }\n      // No need to stop the other requests, we just want to lower the limit.\n      requests.rateLimit(0);\n      await new Promise(resolve => setTimeout(resolve, _classPrivateFieldLooseBase(this, _previousRetryDelay)[_previousRetryDelay]));\n    }\n  } else if (status === 429) {\n    // HTTP 429 Too Many Requests => to avoid the whole download to fail, pause all requests.\n    if (!requests.isPaused) {\n      const next = retryDelayIterator.next();\n      if (next == null || next.done) {\n        return false;\n      }\n      requests.rateLimit(next.value);\n    }\n  } else if (status > 400 && status < 500 && status !== 409) {\n    // HTTP 4xx, the server won't send anything, it's doesn't make sense to retry\n    return false;\n  } else if (typeof navigator !== 'undefined' && navigator.onLine === false) {\n    // The navigator is offline, let's wait for it to come back online.\n    if (!requests.isPaused) {\n      requests.pause();\n      window.addEventListener('online', () => {\n        requests.resume();\n      }, {\n        once: true\n      });\n    }\n  } else {\n    // Other error code means the request can be retried later.\n    const next = retryDelayIterator.next();\n    if (next == null || next.done) {\n      return false;\n    }\n    await new Promise(resolve => setTimeout(resolve, next.value));\n  }\n  return true;\n}\nasync function _nonMultipartUpload2(file, chunk, signal) {\n  const {\n    method = 'POST',\n    url,\n    fields,\n    headers\n  } = await _classPrivateFieldLooseBase(this, _getUploadParameters)[_getUploadParameters](_classPrivateFieldLooseBase(this, _getFile)[_getFile](file), {\n    signal\n  }).abortOn(signal);\n  let body;\n  const data = chunk.getData();\n  if (method.toUpperCase() === 'POST') {\n    const formData = new FormData();\n    Object.entries(fields).forEach(_ref10 => {\n      let [key, value] = _ref10;\n      return formData.set(key, value);\n    });\n    formData.set('file', data);\n    body = formData;\n  } else {\n    body = data;\n  }\n  const {\n    onProgress,\n    onComplete\n  } = chunk;\n  const result = await _classPrivateFieldLooseBase(this, _uploadPartBytes)[_uploadPartBytes]({\n    signature: {\n      url,\n      headers,\n      method\n    },\n    body,\n    size: data.size,\n    onProgress,\n    onComplete,\n    signal\n  }).abortOn(signal);\n  return 'location' in result ? result : {\n    location: removeMetadataFromURL(url),\n    ...result\n  };\n}\nvar _companionCommunicationQueue = /*#__PURE__*/_classPrivateFieldLooseKey(\"companionCommunicationQueue\");\nvar _client = /*#__PURE__*/_classPrivateFieldLooseKey(\"client\");\nvar _cachedTemporaryCredentials = /*#__PURE__*/_classPrivateFieldLooseKey(\"cachedTemporaryCredentials\");\nvar _getTemporarySecurityCredentials = /*#__PURE__*/_classPrivateFieldLooseKey(\"getTemporarySecurityCredentials\");\nvar _setS3MultipartState2 = /*#__PURE__*/_classPrivateFieldLooseKey(\"setS3MultipartState\");\nvar _getFile2 = /*#__PURE__*/_classPrivateFieldLooseKey(\"getFile\");\nvar _uploadLocalFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploadLocalFile\");\nvar _getCompanionClientArgs = /*#__PURE__*/_classPrivateFieldLooseKey(\"getCompanionClientArgs\");\nvar _upload = /*#__PURE__*/_classPrivateFieldLooseKey(\"upload\");\nvar _setCompanionHeaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"setCompanionHeaders\");\nvar _setResumableUploadsCapability = /*#__PURE__*/_classPrivateFieldLooseKey(\"setResumableUploadsCapability\");\nvar _resetResumableCapability = /*#__PURE__*/_classPrivateFieldLooseKey(\"resetResumableCapability\");\n_Symbol$for = Symbol.for('uppy test: getClient');\nexport default class AwsS3Multipart extends BasePlugin {\n  constructor(uppy, opts) {\n    var _this$opts$rateLimite;\n    super(uppy, opts);\n    // eslint-disable-next-line class-methods-use-this\n    Object.defineProperty(this, _getCompanionClientArgs, {\n      value: _getCompanionClientArgs2\n    });\n    Object.defineProperty(this, _uploadLocalFile, {\n      value: _uploadLocalFile2\n    });\n    Object.defineProperty(this, _getTemporarySecurityCredentials, {\n      value: _getTemporarySecurityCredentials2\n    });\n    Object.defineProperty(this, _companionCommunicationQueue, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _client, {\n      writable: true,\n      value: void 0\n    });\n    /**\n     * @type {import(\"../types\").AwsS3STSResponse | Promise<import(\"../types\").AwsS3STSResponse>}\n     */\n    Object.defineProperty(this, _cachedTemporaryCredentials, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _setS3MultipartState2, {\n      writable: true,\n      value: (file, _ref3) => {\n        let {\n          key,\n          uploadId\n        } = _ref3;\n        const cFile = this.uppy.getFile(file.id);\n        if (cFile == null) {\n          // file was removed from store\n          return;\n        }\n        this.uppy.setFileState(file.id, {\n          s3Multipart: {\n            ...cFile.s3Multipart,\n            key,\n            uploadId\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _getFile2, {\n      writable: true,\n      value: file => {\n        return this.uppy.getFile(file.id) || file;\n      }\n    });\n    Object.defineProperty(this, _upload, {\n      writable: true,\n      value: async fileIDs => {\n        if (fileIDs.length === 0) return undefined;\n        const files = this.uppy.getFilesByIds(fileIDs);\n        const filesFiltered = filterNonFailedFiles(files);\n        const filesToEmit = filterFilesToEmitUploadStarted(filesFiltered);\n        this.uppy.emit('upload-start', filesToEmit);\n        const promises = filesFiltered.map(file => {\n          if (file.isRemote) {\n            const getQueue = () => this.requests;\n            _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](false);\n            const controller = new AbortController();\n            const removedHandler = removedFile => {\n              if (removedFile.id === file.id) controller.abort();\n            };\n            this.uppy.on('file-removed', removedHandler);\n            const uploadPromise = this.uppy.getRequestClientForFile(file).uploadRemoteFile(file, _classPrivateFieldLooseBase(this, _getCompanionClientArgs)[_getCompanionClientArgs](file), {\n              signal: controller.signal,\n              getQueue\n            });\n            this.requests.wrapSyncFunction(() => {\n              this.uppy.off('file-removed', removedHandler);\n            }, {\n              priority: -1\n            })();\n            return uploadPromise;\n          }\n          return _classPrivateFieldLooseBase(this, _uploadLocalFile)[_uploadLocalFile](file);\n        });\n        const upload = await Promise.all(promises);\n        // After the upload is done, another upload may happen with only local files.\n        // We reset the capability so that the next upload can use resumable uploads.\n        _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](true);\n        return upload;\n      }\n    });\n    Object.defineProperty(this, _setCompanionHeaders, {\n      writable: true,\n      value: () => {\n        _classPrivateFieldLooseBase(this, _client)[_client].setCompanionHeaders(this.opts.companionHeaders);\n      }\n    });\n    Object.defineProperty(this, _setResumableUploadsCapability, {\n      writable: true,\n      value: boolean => {\n        const {\n          capabilities\n        } = this.uppy.getState();\n        this.uppy.setState({\n          capabilities: {\n            ...capabilities,\n            resumableUploads: boolean\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _resetResumableCapability, {\n      writable: true,\n      value: () => {\n        _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](true);\n      }\n    });\n    this.type = 'uploader';\n    this.id = this.opts.id || 'AwsS3Multipart';\n    this.title = 'AWS S3 Multipart';\n    _classPrivateFieldLooseBase(this, _client)[_client] = new RequestClient(uppy, opts);\n    const defaultOptions = {\n      // TODO: null here means \u201Cinclude all\u201D, [] means include none.\n      // This is inconsistent with @uppy/aws-s3 and @uppy/transloadit\n      allowedMetaFields: null,\n      limit: 6,\n      shouldUseMultipart: file => file.size !== 0,\n      // TODO: Switch default to:\n      // eslint-disable-next-line no-bitwise\n      // shouldUseMultipart: (file) => file.size >> 10 >> 10 > 100,\n      retryDelays: [0, 1000, 3000, 5000],\n      createMultipartUpload: this.createMultipartUpload.bind(this),\n      listParts: this.listParts.bind(this),\n      abortMultipartUpload: this.abortMultipartUpload.bind(this),\n      completeMultipartUpload: this.completeMultipartUpload.bind(this),\n      getTemporarySecurityCredentials: false,\n      signPart: opts != null && opts.getTemporarySecurityCredentials ? this.createSignedURL.bind(this) : this.signPart.bind(this),\n      uploadPartBytes: AwsS3Multipart.uploadPartBytes,\n      getUploadParameters: opts != null && opts.getTemporarySecurityCredentials ? this.createSignedURL.bind(this) : this.getUploadParameters.bind(this),\n      companionHeaders: {}\n    };\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    if ((opts == null ? void 0 : opts.prepareUploadParts) != null && opts.signPart == null) {\n      this.opts.signPart = async (file, _ref4) => {\n        let {\n          uploadId,\n          key,\n          partNumber,\n          body,\n          signal\n        } = _ref4;\n        const {\n          presignedUrls,\n          headers\n        } = await opts.prepareUploadParts(file, {\n          uploadId,\n          key,\n          parts: [{\n            number: partNumber,\n            chunk: body\n          }],\n          signal\n        });\n        return {\n          url: presignedUrls == null ? void 0 : presignedUrls[partNumber],\n          headers: headers == null ? void 0 : headers[partNumber]\n        };\n      };\n    }\n\n    /**\n     * Simultaneous upload limiting is shared across all uploads with this plugin.\n     *\n     * @type {RateLimitedQueue}\n     */\n    this.requests = (_this$opts$rateLimite = this.opts.rateLimitedQueue) != null ? _this$opts$rateLimite : new RateLimitedQueue(this.opts.limit);\n    _classPrivateFieldLooseBase(this, _companionCommunicationQueue)[_companionCommunicationQueue] = new HTTPCommunicationQueue(this.requests, this.opts, _classPrivateFieldLooseBase(this, _setS3MultipartState2)[_setS3MultipartState2], _classPrivateFieldLooseBase(this, _getFile2)[_getFile2]);\n    this.uploaders = Object.create(null);\n    this.uploaderEvents = Object.create(null);\n    this.uploaderSockets = Object.create(null);\n  }\n  [_Symbol$for]() {\n    return _classPrivateFieldLooseBase(this, _client)[_client];\n  }\n  setOptions(newOptions) {\n    _classPrivateFieldLooseBase(this, _companionCommunicationQueue)[_companionCommunicationQueue].setOptions(newOptions);\n    super.setOptions(newOptions);\n    _classPrivateFieldLooseBase(this, _setCompanionHeaders)[_setCompanionHeaders]();\n  }\n\n  /**\n   * Clean up all references for a file's upload: the MultipartUploader instance,\n   * any events related to the file, and the Companion WebSocket connection.\n   *\n   * Set `opts.abort` to tell S3 that the multipart upload is cancelled and must be removed.\n   * This should be done when the user cancels the upload, not when the upload is completed or errored.\n   */\n  resetUploaderReferences(fileID, opts) {\n    if (opts === void 0) {\n      opts = {};\n    }\n    if (this.uploaders[fileID]) {\n      this.uploaders[fileID].abort({\n        really: opts.abort || false\n      });\n      this.uploaders[fileID] = null;\n    }\n    if (this.uploaderEvents[fileID]) {\n      this.uploaderEvents[fileID].remove();\n      this.uploaderEvents[fileID] = null;\n    }\n    if (this.uploaderSockets[fileID]) {\n      this.uploaderSockets[fileID].close();\n      this.uploaderSockets[fileID] = null;\n    }\n  }\n\n  // TODO: make this a private method in the next major\n  assertHost(method) {\n    if (!this.opts.companionUrl) {\n      throw new Error(`Expected a \\`companionUrl\\` option containing a Companion address, or if you are not using Companion, a custom \\`${method}\\` implementation.`);\n    }\n  }\n  createMultipartUpload(file, signal) {\n    this.assertHost('createMultipartUpload');\n    throwIfAborted(signal);\n    const metadata = getAllowedMetadata({\n      meta: file.meta,\n      allowedMetaFields: this.opts.allowedMetaFields\n    });\n    return _classPrivateFieldLooseBase(this, _client)[_client].post('s3/multipart', {\n      filename: file.name,\n      type: file.type,\n      metadata\n    }, {\n      signal\n    }).then(assertServerError);\n  }\n  listParts(file, _ref5, signal) {\n    let {\n      key,\n      uploadId\n    } = _ref5;\n    this.assertHost('listParts');\n    throwIfAborted(signal);\n    const filename = encodeURIComponent(key);\n    return _classPrivateFieldLooseBase(this, _client)[_client].get(`s3/multipart/${uploadId}?key=${filename}`, {\n      signal\n    }).then(assertServerError);\n  }\n  completeMultipartUpload(file, _ref6, signal) {\n    let {\n      key,\n      uploadId,\n      parts\n    } = _ref6;\n    this.assertHost('completeMultipartUpload');\n    throwIfAborted(signal);\n    const filename = encodeURIComponent(key);\n    const uploadIdEnc = encodeURIComponent(uploadId);\n    return _classPrivateFieldLooseBase(this, _client)[_client].post(`s3/multipart/${uploadIdEnc}/complete?key=${filename}`, {\n      parts\n    }, {\n      signal\n    }).then(assertServerError);\n  }\n  async createSignedURL(file, options) {\n    const data = await _classPrivateFieldLooseBase(this, _getTemporarySecurityCredentials)[_getTemporarySecurityCredentials](options);\n    const expires = getExpiry(data.credentials) || 604800; // 604 800 is the max value accepted by AWS.\n\n    const {\n      uploadId,\n      key,\n      partNumber,\n      signal\n    } = options;\n\n    // Return an object in the correct shape.\n    return {\n      method: 'PUT',\n      expires,\n      fields: {},\n      url: `${await createSignedURL({\n        accountKey: data.credentials.AccessKeyId,\n        accountSecret: data.credentials.SecretAccessKey,\n        sessionToken: data.credentials.SessionToken,\n        expires,\n        bucketName: data.bucket,\n        Region: data.region,\n        Key: key != null ? key : `${crypto.randomUUID()}-${file.name}`,\n        uploadId,\n        partNumber,\n        signal\n      })}`,\n      // Provide content type header required by S3\n      headers: {\n        'Content-Type': file.type\n      }\n    };\n  }\n  signPart(file, _ref7) {\n    let {\n      uploadId,\n      key,\n      partNumber,\n      signal\n    } = _ref7;\n    this.assertHost('signPart');\n    throwIfAborted(signal);\n    if (uploadId == null || key == null || partNumber == null) {\n      throw new Error('Cannot sign without a key, an uploadId, and a partNumber');\n    }\n    const filename = encodeURIComponent(key);\n    return _classPrivateFieldLooseBase(this, _client)[_client].get(`s3/multipart/${uploadId}/${partNumber}?key=${filename}`, {\n      signal\n    }).then(assertServerError);\n  }\n  abortMultipartUpload(file, _ref8, signal) {\n    let {\n      key,\n      uploadId\n    } = _ref8;\n    this.assertHost('abortMultipartUpload');\n    const filename = encodeURIComponent(key);\n    const uploadIdEnc = encodeURIComponent(uploadId);\n    return _classPrivateFieldLooseBase(this, _client)[_client].delete(`s3/multipart/${uploadIdEnc}?key=${filename}`, undefined, {\n      signal\n    }).then(assertServerError);\n  }\n  getUploadParameters(file, options) {\n    const {\n      meta\n    } = file;\n    const {\n      type,\n      name: filename\n    } = meta;\n    const metadata = getAllowedMetadata({\n      meta,\n      allowedMetaFields: this.opts.allowedMetaFields,\n      querify: true\n    });\n    const query = new URLSearchParams({\n      filename,\n      type,\n      ...metadata\n    });\n    return _classPrivateFieldLooseBase(this, _client)[_client].get(`s3/params?${query}`, options);\n  }\n  static async uploadPartBytes(_ref9) {\n    let {\n      signature: {\n        url,\n        expires,\n        headers,\n        method = 'PUT'\n      },\n      body,\n      size = body.size,\n      onProgress,\n      onComplete,\n      signal\n    } = _ref9;\n    throwIfAborted(signal);\n    if (url == null) {\n      throw new Error('Cannot upload to an undefined URL');\n    }\n    return new Promise((resolve, reject) => {\n      const xhr = new XMLHttpRequest();\n      xhr.open(method, url, true);\n      if (headers) {\n        Object.keys(headers).forEach(key => {\n          xhr.setRequestHeader(key, headers[key]);\n        });\n      }\n      xhr.responseType = 'text';\n      if (typeof expires === 'number') {\n        xhr.timeout = expires * 1000;\n      }\n      function onabort() {\n        xhr.abort();\n      }\n      function cleanup() {\n        signal.removeEventListener('abort', onabort);\n      }\n      signal.addEventListener('abort', onabort);\n      xhr.upload.addEventListener('progress', ev => {\n        onProgress(ev);\n      });\n      xhr.addEventListener('abort', () => {\n        cleanup();\n        reject(createAbortError());\n      });\n      xhr.addEventListener('timeout', () => {\n        cleanup();\n        const error = new Error('Request has expired');\n        error.source = {\n          status: 403\n        };\n        reject(error);\n      });\n      xhr.addEventListener('load', ev => {\n        cleanup();\n        if (ev.target.status === 403 && ev.target.responseText.includes('<Message>Request has expired</Message>')) {\n          const error = new Error('Request has expired');\n          error.source = ev.target;\n          reject(error);\n          return;\n        }\n        if (ev.target.status < 200 || ev.target.status >= 300) {\n          const error = new Error('Non 2xx');\n          error.source = ev.target;\n          reject(error);\n          return;\n        }\n\n        // todo make a proper onProgress API (breaking change)\n        onProgress == null || onProgress({\n          loaded: size,\n          lengthComputable: true\n        });\n\n        // NOTE This must be allowed by CORS.\n        const etag = ev.target.getResponseHeader('ETag');\n        const location = ev.target.getResponseHeader('Location');\n        if (method.toUpperCase() === 'POST' && location === null) {\n          // Not being able to read the Location header is not a fatal error.\n          // eslint-disable-next-line no-console\n          console.warn('AwsS3/Multipart: Could not read the Location header. This likely means CORS is not configured correctly on the S3 Bucket. See https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration for instructions.');\n        }\n        if (etag === null) {\n          reject(new Error('AwsS3/Multipart: Could not read the ETag header. This likely means CORS is not configured correctly on the S3 Bucket. See https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration for instructions.'));\n          return;\n        }\n        onComplete == null || onComplete(etag);\n        resolve({\n          ETag: etag,\n          ...(location ? {\n            location\n          } : undefined)\n        });\n      });\n      xhr.addEventListener('error', ev => {\n        cleanup();\n        const error = new Error('Unknown error');\n        error.source = ev.target;\n        reject(error);\n      });\n      xhr.send(body);\n    });\n  }\n  install() {\n    _classPrivateFieldLooseBase(this, _setResumableUploadsCapability)[_setResumableUploadsCapability](true);\n    this.uppy.addPreProcessor(_classPrivateFieldLooseBase(this, _setCompanionHeaders)[_setCompanionHeaders]);\n    this.uppy.addUploader(_classPrivateFieldLooseBase(this, _upload)[_upload]);\n    this.uppy.on('cancel-all', _classPrivateFieldLooseBase(this, _resetResumableCapability)[_resetResumableCapability]);\n  }\n  uninstall() {\n    this.uppy.removePreProcessor(_classPrivateFieldLooseBase(this, _setCompanionHeaders)[_setCompanionHeaders]);\n    this.uppy.removeUploader(_classPrivateFieldLooseBase(this, _upload)[_upload]);\n    this.uppy.off('cancel-all', _classPrivateFieldLooseBase(this, _resetResumableCapability)[_resetResumableCapability]);\n  }\n}\nasync function _getTemporarySecurityCredentials2(options) {\n  throwIfAborted(options == null ? void 0 : options.signal);\n  if (_classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] == null) {\n    // We do not await it just yet, so concurrent calls do not try to override it:\n    if (this.opts.getTemporarySecurityCredentials === true) {\n      this.assertHost('getTemporarySecurityCredentials');\n      _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = _classPrivateFieldLooseBase(this, _client)[_client].get('s3/sts', null, options).then(assertServerError);\n    } else {\n      _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = this.opts.getTemporarySecurityCredentials(options);\n    }\n    _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = await _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials];\n    setTimeout(() => {\n      // At half the time left before expiration, we clear the cache. That's\n      // an arbitrary tradeoff to limit the number of requests made to the\n      // remote while limiting the risk of using an expired token in case the\n      // clocks are not exactly synced.\n      // The HTTP cache should be configured to ensure a client doesn't request\n      // more tokens than it needs, but this timeout provides a second layer of\n      // security in case the HTTP cache is disabled or misconfigured.\n      _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials] = null;\n    }, (getExpiry(_classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials].credentials) || 0) * 500);\n  }\n  return _classPrivateFieldLooseBase(this, _cachedTemporaryCredentials)[_cachedTemporaryCredentials];\n}\nfunction _uploadLocalFile2(file) {\n  var _this = this;\n  return new Promise((resolve, reject) => {\n    const onProgress = (bytesUploaded, bytesTotal) => {\n      this.uppy.emit('upload-progress', this.uppy.getFile(file.id), {\n        uploader: this,\n        bytesUploaded,\n        bytesTotal\n      });\n    };\n    const onError = err => {\n      this.uppy.log(err);\n      this.uppy.emit('upload-error', file, err);\n      this.resetUploaderReferences(file.id);\n      reject(err);\n    };\n    const onSuccess = result => {\n      const uploadResp = {\n        body: {\n          ...result\n        },\n        uploadURL: result.location\n      };\n      this.resetUploaderReferences(file.id);\n      this.uppy.emit('upload-success', _classPrivateFieldLooseBase(this, _getFile2)[_getFile2](file), uploadResp);\n      if (result.location) {\n        this.uppy.log(`Download ${file.name} from ${result.location}`);\n      }\n      resolve();\n    };\n    const onPartComplete = part => {\n      this.uppy.emit('s3-multipart:part-uploaded', _classPrivateFieldLooseBase(this, _getFile2)[_getFile2](file), part);\n    };\n    const upload = new MultipartUploader(file.data, {\n      // .bind to pass the file object to each handler.\n      companionComm: _classPrivateFieldLooseBase(this, _companionCommunicationQueue)[_companionCommunicationQueue],\n      log: function () {\n        return _this.uppy.log(...arguments);\n      },\n      getChunkSize: this.opts.getChunkSize ? this.opts.getChunkSize.bind(this) : null,\n      onProgress,\n      onError,\n      onSuccess,\n      onPartComplete,\n      file,\n      shouldUseMultipart: this.opts.shouldUseMultipart,\n      ...file.s3Multipart\n    });\n    this.uploaders[file.id] = upload;\n    const eventManager = new EventManager(this.uppy);\n    this.uploaderEvents[file.id] = eventManager;\n    eventManager.onFileRemove(file.id, removed => {\n      upload.abort();\n      this.resetUploaderReferences(file.id, {\n        abort: true\n      });\n      resolve(`upload ${removed.id} was removed`);\n    });\n    eventManager.onCancelAll(file.id, function (_temp) {\n      let {\n        reason\n      } = _temp === void 0 ? {} : _temp;\n      if (reason === 'user') {\n        upload.abort();\n        _this.resetUploaderReferences(file.id, {\n          abort: true\n        });\n      }\n      resolve(`upload ${file.id} was canceled`);\n    });\n    eventManager.onFilePause(file.id, isPaused => {\n      if (isPaused) {\n        upload.pause();\n      } else {\n        upload.start();\n      }\n    });\n    eventManager.onPauseAll(file.id, () => {\n      upload.pause();\n    });\n    eventManager.onResumeAll(file.id, () => {\n      upload.start();\n    });\n    upload.start();\n  });\n}\nfunction _getCompanionClientArgs2(file) {\n  return {\n    ...file.remote.body,\n    protocol: 's3-multipart',\n    size: file.data.size,\n    metadata: file.meta\n  };\n}\nAwsS3Multipart.VERSION = packageJson.version;", "const fr_FR = {\n  strings: {},\n  pluralize(n) {\n    if (n <= 1) {\n      return 0;\n    }\n    return 1;\n  }\n};\nfr_FR.strings = {\n  addBulkFilesFailed: {\n    '0': 'L\u2019ajout de %{smart_count} fichier a \u00E9chou\u00E9',\n    '1': 'L\u2019ajout de %{smart_count} fichiers a \u00E9chou\u00E9'\n  },\n  addedNumFiles: '%{numFiles} fichier(s) ajout\u00E9(s)',\n  addingMoreFiles: 'Ajout de fichiers',\n  addMore: 'Ajouter d\u2019autres',\n  addMoreFiles: 'Ajouter d\u2019autres fichiers',\n  allFilesFromFolderNamed: 'Tous les fichiers du dossier %{name}',\n  allowAccessDescription: 'Pour prendre des photos ou enregistrer une vid\u00E9o, veuillez autoriser l\u2019acc\u00E8s \u00E0 votre cam\u00E9ra pour ce site.',\n  allowAccessTitle: 'Veuillez autoriser l\u2019acc\u00E8s \u00E0 votre cam\u00E9ra',\n  authAborted: 'Authentification interrompue',\n  authenticateWith: 'Se connecter \u00E0 %{pluginName}',\n  authenticateWithTitle: 'Veuillez vous authentifier avec %{pluginName} pour s\u00E9lectionner les fichiers',\n  back: 'Retour',\n  browse: 'naviguer',\n  browseFiles: 'naviguer',\n  cancel: 'Annuler',\n  cancelUpload: 'Annuler le t\u00E9l\u00E9versement',\n  chooseFiles: 'Choisir des fichiers',\n  closeModal: 'Fermer la fen\u00EAtre',\n  companionError: 'Connexion \u00E0 Companion a \u00E9chou\u00E9',\n  companionUnauthorizeHint: 'Pour vous d\u00E9connecter de votre compte %{provider}, veuillez aller \u00E0 %{url}',\n  complete: 'Termin\u00E9',\n  compressedX: '%{size} \u00E9conomis\u00E9(s) par la compression',\n  compressingImages: 'Compression des images\u2026',\n  connectedToInternet: 'Connect\u00E9 \u00E0 Internet',\n  copyLink: 'Copier le lien',\n  copyLinkToClipboardFallback: 'Copier le lien ci-dessous',\n  copyLinkToClipboardSuccess: 'Lien copi\u00E9',\n  creatingAssembly: 'Pr\u00E9paration du t\u00E9l\u00E9versement\u2026',\n  creatingAssemblyFailed: 'Transloadit: Impossible de cr\u00E9er Assembly',\n  dashboardTitle: 'T\u00E9l\u00E9verseur de fichiers',\n  dashboardWindowTitle: 'Fen\u00EAtre de t\u00E9l\u00E9versement de fichiers (Appuyez sur \u00C9chap pour fermer)',\n  dataUploadedOfTotal: '%{complete} sur %{total}',\n  done: 'Termin\u00E9',\n  dropHereOr: 'D\u00E9poser les fichiers ici ou %{browse}',\n  dropHint: 'D\u00E9posez vos fichiers ici',\n  dropPasteBoth: 'D\u00E9poser les fichiers ici, coller ou %{browse}',\n  dropPasteFiles: 'D\u00E9poser les fichiers ici, coller ou %{browse}',\n  dropPasteFolders: 'D\u00E9poser les fichiers ici, coller ou %{browse}',\n  dropPasteImportBoth: 'D\u00E9poser les fichiers ici, coller, %{browse} ou importer de',\n  dropPasteImportFiles: 'D\u00E9poser les fichiers ici, coller, %{browse} ou importer de',\n  dropPasteImportFolders: 'D\u00E9poser les fichiers ici, coller, %{browse} ou importer de',\n  editFile: 'Modifier le fichier',\n  editImage: 'Modifier l\u2019image',\n  editFileWithFilename: 'Modifier le fichier %{file}',\n  editing: 'Modification en cours de %{file}',\n  emptyFolderAdded: 'Aucun fichier n\u2019a \u00E9t\u00E9 ajout\u00E9 depuis un dossier vide',\n  encoding: 'Traitement\u2026',\n  enterCorrectUrl: 'Lien incorrect: Assurez-vous que vous entrez un lien direct vers le fichier',\n  enterUrlToImport: 'Entrez le lien pour importer un fichier',\n  exceedsSize: 'Ce fichier d\u00E9passe la taille maximale autoris\u00E9e de %{size}',\n  failedToFetch: 'Companion a \u00E9chou\u00E9 \u00E0 r\u00E9cup\u00E9rer ce lien, assurez-vous qu\u2019il est correct',\n  failedToUpload: 'Le t\u00E9l\u00E9versement de %{file} a \u00E9chou\u00E9',\n  fileSource: 'Fichier source: %{name}',\n  filesUploadedOfTotal: {\n    '0': '%{complete} sur %{smart_count} fichier t\u00E9l\u00E9vers\u00E9',\n    '1': '%{complete} sur %{smart_count} fichiers t\u00E9l\u00E9vers\u00E9s'\n  },\n  filter: 'Filtrer',\n  finishEditingFile: 'Terminer l\u2019\u00E9dition du fichier',\n  folderAdded: {\n    '0': '%{smart_count} fichier ajout\u00E9 de %{folder}',\n    '1': '%{smart_count} fichiers ajout\u00E9s de %{folder}'\n  },\n  generatingThumbnails: 'G\u00E9n\u00E9ration des vignettes\u2026',\n  import: 'Importer',\n  importFrom: 'Importer de %{name}',\n  loading: 'Chargement\u2026',\n  logOut: 'D\u00E9connexion',\n  micDisabled: 'Acc\u00E8s au micro refus\u00E9 par l\u2019utilisateur',\n  myDevice: 'Mon Appareil',\n  noDuplicates: 'Impossible d\u2019ajouter le fichier \"%{fileName}\", il existe d\u00E9j\u00E0',\n  noFilesFound: 'Vous n\u2019avez aucun fichier ou dossier ici',\n  noInternetConnection: 'Pas de connexion \u00E0 Internet',\n  noMoreFilesAllowed: 'Impossible d\u2019ajouter de nouveaux fichiers: en cours de chargement ',\n  openFolderNamed: 'Ouvrir %{name}',\n  pause: 'Pause',\n  pauseUpload: 'Mettre en pause le t\u00E9l\u00E9versement',\n  paused: 'En pause',\n  poweredBy: 'Propuls\u00E9 par %{uppy}',\n  processingXFiles: {\n    '0': 'Traitement de %{smart_count} fichier',\n    '1': 'Traitement de %{smart_count} fichiers'\n  },\n  recording: 'Enregistrement',\n  recordingLength: 'Dur\u00E9e d\u2019enregistrement %{recording_length}',\n  recordingStoppedMaxSize: 'L\u2019enregistrement s\u2019est arr\u00E9t\u00E9 car la taille du fichier d\u00E9passe la limite',\n  removeFile: 'Effacer le fichier %{file}',\n  resetFilter: 'R\u00E9initialiser filtre',\n  resume: 'Reprendre',\n  resumeUpload: 'Reprendre le t\u00E9l\u00E9versement',\n  retry: 'R\u00E9essayer',\n  retryUpload: 'R\u00E9essayer le t\u00E9l\u00E9versement',\n  save: 'Sauvegarder',\n  saveChanges: 'Sauvegarder les modifications',\n  selectFileNamed: 'S\u00E9lectionner le fichier %{name}',\n  selectX: {\n    '0': 'S\u00E9lectionner %{smart_count}',\n    '1': 'S\u00E9lectionner %{smart_count}'\n  },\n  smile: 'Souriez !',\n  startRecording: 'Commencer l\u2019enregistrement vid\u00E9o',\n  stopRecording: 'Arr\u00EAter l\u2019enregistrement vid\u00E9o',\n  streamActive: 'Stream actif',\n  streamPassive: 'Stream passif',\n  submitRecordedFile: 'Envoyer la vid\u00E9o enregistr\u00E9e',\n  takePicture: 'Prendre une photo',\n  timedOut: 'T\u00E9l\u00E9versement bloqu\u00E9 durant %{seconds} secondes, annulation.',\n  unselectFileNamed: 'D\u00E9s\u00E9lectionner le fichier %{name}',\n  upload: 'T\u00E9l\u00E9verser',\n  uploadComplete: 'T\u00E9l\u00E9versement termin\u00E9',\n  uploadFailed: 'Le t\u00E9l\u00E9versement a \u00E9chou\u00E9',\n  uploadPaused: 'T\u00E9l\u00E9versement mis en pause',\n  uploadStalled: 'T\u00E9l\u00E9versement bloqu\u00E9 depuis %{seconds} secondes. Il est peut-\u00EAtre n\u00E9cessaire de recommencer l\u2019op\u00E9ration.',\n  uploadXFiles: {\n    '0': 'T\u00E9l\u00E9verser %{smart_count} fichier',\n    '1': 'T\u00E9l\u00E9verser %{smart_count} fichiers'\n  },\n  uploadXNewFiles: {\n    '0': 'T\u00E9l\u00E9verser +%{smart_count} fichier',\n    '1': 'T\u00E9l\u00E9verser +%{smart_count} fichiers'\n  },\n  uploading: 'T\u00E9l\u00E9versement en cours',\n  uploadingXFiles: {\n    '0': 'T\u00E9l\u00E9versement de %{smart_count} fichier',\n    '1': 'T\u00E9l\u00E9versement de %{smart_count} fichiers'\n  },\n  xFilesSelected: {\n    '0': '%{smart_count} fichier s\u00E9lectionn\u00E9',\n    '1': '%{smart_count} fichiers s\u00E9lectionn\u00E9s'\n  },\n  xMoreFilesAdded: {\n    '0': '%{smart_count} autre fichier ajout\u00E9',\n    '1': '%{smart_count} autres fichiers ajout\u00E9s'\n  },\n  xTimeLeft: '%{time} restantes',\n  youCanOnlyUploadFileTypes: 'Vous pouvez seulement t\u00E9l\u00E9verser: %{types}',\n  youCanOnlyUploadX: {\n    '0': 'Vous pouvez seulement t\u00E9l\u00E9verser %{smart_count} fichier',\n    '1': 'Vous pouvez seulement t\u00E9l\u00E9verser %{smart_count} fichiers'\n  },\n  youHaveToAtLeastSelectX: {\n    '0': 'Vous devez s\u00E9lectionner au moins %{smart_count} fichier',\n    '1': 'Vous devez s\u00E9lectionner au moins %{smart_count} fichiers'\n  }\n};\n\n// TODO: remove this in the next major?\n// @ts-expect-error Uppy can be a global in legacy bundle\nif (typeof Uppy !== 'undefined') {\n  // @ts-expect-error Uppy can be a global in legacy bundle\n  globalThis.Uppy.locales.fr_FR = fr_FR;\n}\nexport default fr_FR;", "import { Controller } from '@hotwired/stimulus';\n\nimport Uppy from '@uppy/core';\nimport Dashboard from '@uppy/dashboard';\nimport Form from '@uppy/form';\nimport FileInput from '@uppy/file-input';\nimport AwsS3Multipart from '@uppy/aws-s3-multipart';\nimport French from '@uppy/locales/lib/fr_FR';\n\nexport default class extends Controller {\n  initialize() {\n    const directUploadForm = document.getElementById('direct-upload-form');\n    let filePrefix = '';\n    let allowedFileTypes = null;\n\n    if (directUploadForm && directUploadForm !== '') {\n      if (directUploadForm.dataset.prefix && directUploadForm.dataset.prefix !== '') {\n        filePrefix = `${directUploadForm.dataset.prefix}/`;\n      }\n\n      if (directUploadForm.dataset.accept && directUploadForm.dataset.accept !== '') {\n        allowedFileTypes = directUploadForm.dataset.accept.split(',');\n      }\n\n      delete directUploadForm.dataset.accept;\n      delete directUploadForm.dataset.prefix;\n    }\n\n    this.uppy = new Uppy({\n      autoProceed: false,\n      locale: French,\n      restrictions: {\n        allowedFileTypes: allowedFileTypes,\n      },\n\n      onBeforeFileAdded: (currentFile, files) => ({\n        ...currentFile,\n        name: `${filePrefix}${currentFile.name}`,\n      }),\n    }).use(Dashboard, {\n      height: '480px',\n      hideProgressAfterFinish: true,\n      hideRetryButton: true,\n      inline: true,\n      proudlyDisplayPoweredByUppy: false,\n      target: '#drag-drop-area',\n      width: '100%',\n    }).use(AwsS3Multipart, {\n      companionUrl: '/',\n    }).use(FileInput, {\n      inputName: 'files[]',\n      pretty: true,\n    }).use(Form, {\n      addResultToForm: true,\n      getMetaFromForm: false,\n      resultName: 'file_data',\n      submitOnSuccess: false,\n      target: '#direct-upload-form',\n      triggerUploadOnSubmit: false,\n    });\n  }\n\n  connect() {\n    this.uppy.on('complete', (result) => {\n      if (result.failed.length === 0) {\n        this.uppy.setState({ totalProgress: 100 });\n        document.querySelector('.uppy-StatusBar').setAttribute('style', 'height: 50px;');\n        document.querySelector('#direct-upload-form button[type=submit]').disabled = false;\n        document.querySelector('#direct-upload-form button[type=submit]').classList.remove(\"!cursor-not-allowed\");\n      }\n    });\n  }\n}\n", "import AwsS3Multipart from '@uppy/aws-s3-multipart';\nimport { Controller } from '@hotwired/stimulus';\nimport FileInput from '@uppy/file-input';\nimport Form from '@uppy/form';\nimport French from '@uppy/locales/lib/fr_FR';\nimport Uppy from '@uppy/core';\n\nexport default class extends Controller {\n  initialize() {\n    const directUploadInputForm = document.getElementById('direct-upload-input-form');\n    let filePrefix = '';\n    let allowedFileTypes = null;\n\n    if (directUploadInputForm && directUploadInputForm !== '') {\n      if (directUploadInputForm.dataset.prefix && directUploadInputForm.dataset.prefix !== '') {\n        filePrefix = `${directUploadInputForm.dataset.prefix}/`;\n      }\n\n      if (directUploadInputForm.dataset.accept && directUploadInputForm.dataset.accept !== '') {\n        allowedFileTypes = directUploadInputForm.dataset.accept.split(',');\n      }\n\n      delete directUploadInputForm.dataset.accept;\n      delete directUploadInputForm.dataset.prefix;\n    }\n\n    this.uppy = new Uppy({\n      maxNumberOfFiles: 1,\n      minNumberOfFiles: 1,\n      autoProceed: true,\n      locale: French,\n      restrictions: {\n        allowedFileTypes: allowedFileTypes,\n      },\n      onBeforeFileAdded: (currentFile, files) => ({\n        ...currentFile,\n        name: `${filePrefix}${currentFile.name}`,\n      }),\n    });\n\n    this.uppy.use(FileInput, {\n      target: '#direct-upload-input-form',\n      pretty: true,\n      inputName: 'file',\n    }).use(AwsS3Multipart, {\n      companionUrl: '/',\n    }).use(Form, {\n      addResultToForm: true,\n      getMetaFromForm: false,\n      resultName: 'file_data',\n      submitOnSuccess: true,\n      target: '#direct-upload-input-form',\n      triggerUploadOnSubmit: false,\n    });\n  }\n\n  connect() {\n    this.uppy.on('complete', (result) => {\n      if (result.failed.length === 0) {\n        document.querySelector('#uploaded-documents-feedback').innerHTML = directUploadInputForm.dataset.translationSuccess;\n      }\n    });\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\n    \"selectedKycType\",\n    \"singleOrSeparateFileChoiceButtons\",\n    \"choseSingleFile\",\n    \"choseSeparateFiles\",\n    \"fileBackCachedData\",\n    \"fileBackInputBlock\",\n    \"fileFrontAndBackInputBlock\",\n    \"separateLabel\",\n    \"singleLabel\",\n    \"documentInstruction\"\n  ]\n\n  connect() {\n    this.toggleSingleFileOrMultipleFilesMenu();\n  }\n\n  toggleSingleFileOrMultipleFilesMenu() {\n    this.#showInputsIfATypeIsSelected();\n    this.#toggleSingleOrSeparateFileChoiceButtons();\n    this.toggleFileBackInput();\n  }\n\n  toggleFileBackInput() {\n    if (!this.hasChoseSeparateFilesTarget) return;\n\n    if (this.choseSeparateFilesTarget.checked && this.#canSelectedDocumentTypeHaveABack()) {\n      this.fileBackInputBlockTarget.classList.remove('hidden');\n      this.fileBackInputBlockTarget.querySelectorAll('[name*=\"[file_back]\"]').forEach((el) => {\n        el.disabled = false;\n        el.required = !(this.hasFileBackCachedDataTarget && this.fileBackCachedDataTarget.value);\n      });\n\n      this.separateLabelTarget.classList.add(\"bg-info\");\n      this.singleLabelTarget.classList.remove(\"bg-info\");\n\n      this.fileFrontAndBackInputBlockTarget.classList.add('md:grid-cols-2');\n    } else {\n      this.fileBackInputBlockTarget.querySelector(\"input\").required = false;\n      this.fileBackInputBlockTarget.classList.add('hidden');\n      this.fileBackInputBlockTarget.querySelectorAll('[name*=\"[file_back]\"]').forEach((el) => {\n        el.disabled = true;\n        el.required = false;\n      });\n\n      if (this.choseSingleFileTarget.checked) {\n        this.separateLabelTarget.classList.remove(\"bg-info\");\n        this.singleLabelTarget.classList.add(\"bg-info\");\n      }\n\n      this.fileFrontAndBackInputBlockTarget.classList.remove('md:grid-cols-2');\n    }\n  }\n\n  #toggleSingleOrSeparateFileChoiceButtons() {\n    if (!this.hasSingleOrSeparateFileChoiceButtonsTarget) return;\n\n    if (this.#canSelectedDocumentTypeHaveABack()) {\n      this.singleOrSeparateFileChoiceButtonsTarget.classList.remove('hidden');\n      if (this.hasDocumentInstructionTarget) this.documentInstructionTarget.classList.remove('hidden');\n\n      this.choseSingleFileTarget.checked = false;\n      this.choseSeparateFilesTarget.checked = true;\n    } else {\n      this.singleOrSeparateFileChoiceButtonsTarget.classList.add('hidden');\n      if (this.hasDocumentInstructionTarget) this.documentInstructionTarget.classList.add('hidden');\n    }\n  }\n\n  #canSelectedDocumentTypeHaveABack() {\n    if (!this.hasSelectedKycTypeTarget) return false;\n\n    const typesWithBack = JSON.parse(this.selectedKycTypeTarget.dataset.fileBackSelectionMenuTypesWithBack);\n    const selectedValue = this.selectedKycTypeTarget.value;\n    return typesWithBack.includes(selectedValue);\n  }\n\n  #showInputsIfATypeIsSelected() {\n    // return if empty list\n    if (!this.hasSelectedKycTypeTarget || this.selectedKycTypeTarget.options.length === 0) return;\n\n    // Hide upload inputs if no type is selected\n    if (this.selectedKycTypeTarget.selectedIndex === 0 &&\n      this.selectedKycTypeTarget.options[0].value === \"\") {\n      this.fileFrontAndBackInputBlockTarget.classList.add('hidden');\n    } else {\n      this.fileFrontAndBackInputBlockTarget.classList.remove('hidden');\n    }\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\nimport toastr from \"toastr\";\n\nexport default class extends Controller {\n  static values = {message: String, level: String};\n\n  connect() {\n    this.initToast();\n  }\n\n  initToast() {\n    if (this.levelValue === \"error\") {\n      toastr.error(this.messageValue);\n    } else {\n      toastr.success(this.messageValue);\n    }\n  }\n}\n", "// TODO delete when KPIS are implemented\n\nimport { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['validationErrors'];\n\n  clear(event) {\n    event.target.reset();\n  }\n\n  clearValidationErrors() {\n    if (this.hasValidationErrorsTarget) {\n      this.validationErrorsTargets.forEach((element) => {\n        try {\n          element.innerText = '';\n        } catch (e) {}\n      });\n    }\n  }\n\n  removeWhitespace(event) {\n    const input = event.target;\n    input.value = input.value.replace(/\\s+/g, \"\");\n  }\n\n  toggleHiddenInputs(event) {\n    const triggerElement = event.target;\n    const targetSelector = triggerElement.dataset.toggleTarget;\n    const targetElement = document.querySelector(targetSelector);\n    \n    if (!targetElement) return;\n    \n    const fields = targetElement.querySelectorAll('input, select, textarea');\n    const isActive = triggerElement.value && triggerElement.value !== '';\n    \n    targetElement.style.display = isActive ? '' : 'none';\n    fields.forEach((field) => (field.disabled = !isActive));\n  }\n}\n", "import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n  static targets = ['submitButton']\n\n  connect() {\n    this.validate()\n  }\n\n  validate() {\n    const fields = this.element.querySelectorAll('input:not([disabled]):not([type=hidden]), textarea:not([disabled])')\n    const allFilled = Array.from(fields).every((field) => field.value.trim() !== '')\n\n    this.submitButtonTargets.forEach((button) => {\n      button.disabled = !allFilled\n    })\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  connect() {\n    this.element.textContent = \"Hello World!\"\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static values = {\n    onboardingUrl: String,\n    redirectUrl: String,\n    widgetId: String\n  }\n\n  connect() {\n    this.initWidget()\n  }\n\n  initWidget() {\n    LemonwayWidget.init(\n      this.onboardingUrlValue,\n      this.widgetIdValue,\n      {\n        lang: \"fr\",\n        onMyAccount: () => this.redirectToNextStep(false),\n        onFinish: () => this.redirectToNextStep(true),\n        onPageChange: () => window.scrollTo({\n          top: 0,\n          behavior: \"smooth\",\n        })\n      }\n    )\n  }\n\n  redirectToNextStep(success = false) {\n    const url = new URL(this.redirectUrlValue)\n    if (success) {\n      url.searchParams.set(\"status\", \"success\")\n    }\n\n    window.location.replace(url)\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Connects to data-controller=\"mobile-sidebar\"\nexport default class extends Controller {\n  static targets = [\n    'closeButton',\n    'backdrop',\n    'drawer',\n    'openButton',\n    'openButtonWrapper',\n    'body',\n    'backdropContainer',\n  ];\n\n  connect() {}\n\n  openMobileSidebar(event) {\n    const {\n      backdropTarget,\n      drawerTarget,\n      closeButtonTarget,\n      openButtonTarget,\n      openButtonWrapperTarget,\n      bodyTarget,\n    } = this;\n    bodyTarget.classList.add('overflow-hidden');\n    backdropTarget.classList.remove('-z-10');\n    backdropTarget.classList.add('bg-dark/30', 'z-50');\n    drawerTarget.classList.remove(\n      'translate-x-full',\n      'pointer-events-none',\n      'opacity-0'\n    );\n    drawerTarget.classList.add('opacity-100');\n    closeButtonTarget.classList.remove('hidden');\n    openButtonTarget.classList.add('hidden');\n    openButtonWrapperTarget.classList.remove('z-50');\n    backdropContainer.classList.add('z-40');\n  }\n\n  closeMobileSidebar(event) {\n    const {\n      backdropTarget,\n      drawerTarget,\n      closeButtonTarget,\n      openButtonTarget,\n      openButtonWrapperTarget,\n      bodyTarget,\n    } = this;\n    bodyTarget.classList.remove('overflow-hidden');\n    backdropTarget.classList.remove('bg-dark/30', 'z-50');\n    backdropTarget.classList.add('-z-10');\n    drawerTarget.classList.remove('opacity-100');\n    drawerTarget.classList.add(\n      'translate-x-full',\n      'pointer-events-none',\n      'opacity-0'\n    );\n    closeButtonTarget.classList.add('hidden');\n    openButtonTarget.classList.remove('hidden');\n    openButtonWrapperTarget.classList.add('z-50');\n    backdropContainer.classList.remove('z-40');\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static values = {autoShow: Boolean, targetId: String}\n\n  connect() {\n    if (this.autoShowValue) { this.open() }\n  }\n\n  open() {\n    const modal = this.hasTargetIdValue ? document.getElementById(this.targetIdValue) : this.element\n    modal.classList.remove(\"hidden\")\n  }\n\n  close() {\n    this.element.classList.add(\"hidden\")\n  }\n}\n", "export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n  return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n  return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];", "export default function getNodeName(element) {\n  return element ? (element.nodeName || '').toLowerCase() : null;\n}", "export default function getWindow(node) {\n  if (node == null) {\n    return window;\n  }\n\n  if (node.toString() !== '[object Window]') {\n    var ownerDocument = node.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView || window : window;\n  }\n\n  return node;\n}", "import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n  var OwnElement = getWindow(node).Element;\n  return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n  var OwnElement = getWindow(node).HTMLElement;\n  return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n  // IE 11 has no ShadowRoot\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n\n  var OwnElement = getWindow(node).ShadowRoot;\n  return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };", "import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n  var state = _ref.state;\n  Object.keys(state.elements).forEach(function (name) {\n    var style = state.styles[name] || {};\n    var attributes = state.attributes[name] || {};\n    var element = state.elements[name]; // arrow is optional + virtual elements\n\n    if (!isHTMLElement(element) || !getNodeName(element)) {\n      return;\n    } // Flow doesn't support to extend this property, but it's the most\n    // effective way to apply styles to an HTMLElement\n    // $FlowFixMe[cannot-write]\n\n\n    Object.assign(element.style, style);\n    Object.keys(attributes).forEach(function (name) {\n      var value = attributes[name];\n\n      if (value === false) {\n        element.removeAttribute(name);\n      } else {\n        element.setAttribute(name, value === true ? '' : value);\n      }\n    });\n  });\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state;\n  var initialStyles = {\n    popper: {\n      position: state.options.strategy,\n      left: '0',\n      top: '0',\n      margin: '0'\n    },\n    arrow: {\n      position: 'absolute'\n    },\n    reference: {}\n  };\n  Object.assign(state.elements.popper.style, initialStyles.popper);\n  state.styles = initialStyles;\n\n  if (state.elements.arrow) {\n    Object.assign(state.elements.arrow.style, initialStyles.arrow);\n  }\n\n  return function () {\n    Object.keys(state.elements).forEach(function (name) {\n      var element = state.elements[name];\n      var attributes = state.attributes[name] || {};\n      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n      var style = styleProperties.reduce(function (style, property) {\n        style[property] = '';\n        return style;\n      }, {}); // arrow is optional + virtual elements\n\n      if (!isHTMLElement(element) || !getNodeName(element)) {\n        return;\n      }\n\n      Object.assign(element.style, style);\n      Object.keys(attributes).forEach(function (attribute) {\n        element.removeAttribute(attribute);\n      });\n    });\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'applyStyles',\n  enabled: true,\n  phase: 'write',\n  fn: applyStyles,\n  effect: effect,\n  requires: ['computeStyles']\n};", "import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n  return placement.split('-')[0];\n}", "export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;", "export default function getUAString() {\n  var uaData = navigator.userAgentData;\n\n  if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n    return uaData.brands.map(function (item) {\n      return item.brand + \"/\" + item.version;\n    }).join(' ');\n  }\n\n  return navigator.userAgent;\n}", "import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n  return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}", "import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n\n  var clientRect = element.getBoundingClientRect();\n  var scaleX = 1;\n  var scaleY = 1;\n\n  if (includeScale && isHTMLElement(element)) {\n    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n  }\n\n  var _ref = isElement(element) ? getWindow(element) : window,\n      visualViewport = _ref.visualViewport;\n\n  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n  var width = clientRect.width / scaleX;\n  var height = clientRect.height / scaleY;\n  return {\n    width: width,\n    height: height,\n    top: y,\n    right: x + width,\n    bottom: y + height,\n    left: x,\n    x: x,\n    y: y\n  };\n}", "import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n  var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n  // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n  var width = element.offsetWidth;\n  var height = element.offsetHeight;\n\n  if (Math.abs(clientRect.width - width) <= 1) {\n    width = clientRect.width;\n  }\n\n  if (Math.abs(clientRect.height - height) <= 1) {\n    height = clientRect.height;\n  }\n\n  return {\n    x: element.offsetLeft,\n    y: element.offsetTop,\n    width: width,\n    height: height\n  };\n}", "import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n  if (parent.contains(child)) {\n    return true;\n  } // then fallback to custom implementation with Shadow DOM support\n  else if (rootNode && isShadowRoot(rootNode)) {\n      var next = child;\n\n      do {\n        if (next && parent.isSameNode(next)) {\n          return true;\n        } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n        next = next.parentNode || next.host;\n      } while (next);\n    } // Give up, the result is false\n\n\n  return false;\n}", "import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}", "import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n  return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}", "import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n  // $FlowFixMe[incompatible-return]: assume body is always available\n  return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n  element.document) || window.document).documentElement;\n}", "import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n  if (getNodeName(element) === 'html') {\n    return element;\n  }\n\n  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n    // $FlowFixMe[incompatible-return]\n    // $FlowFixMe[prop-missing]\n    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n    element.parentNode || ( // DOM Element detected\n    isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n    // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n    getDocumentElement(element) // fallback\n\n  );\n}", "import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n  getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n\n  return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n  var isFirefox = /firefox/i.test(getUAString());\n  var isIE = /Trident/i.test(getUAString());\n\n  if (isIE && isHTMLElement(element)) {\n    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n    var elementCss = getComputedStyle(element);\n\n    if (elementCss.position === 'fixed') {\n      return null;\n    }\n  }\n\n  var currentNode = getParentNode(element);\n\n  if (isShadowRoot(currentNode)) {\n    currentNode = currentNode.host;\n  }\n\n  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n    var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n    // create a containing block.\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n      return currentNode;\n    } else {\n      currentNode = currentNode.parentNode;\n    }\n  }\n\n  return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n  var window = getWindow(element);\n  var offsetParent = getTrueOffsetParent(element);\n\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n    offsetParent = getTrueOffsetParent(offsetParent);\n  }\n\n  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n    return window;\n  }\n\n  return offsetParent || getContainingBlock(element) || window;\n}", "export default function getMainAxisFromPlacement(placement) {\n  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}", "import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n  return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n  var v = within(min, value, max);\n  return v > max ? max : v;\n}", "export default function getFreshSideObject() {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0\n  };\n}", "import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n  return Object.assign({}, getFreshSideObject(), paddingObject);\n}", "export default function expandToHashMap(value, keys) {\n  return keys.reduce(function (hashMap, key) {\n    hashMap[key] = value;\n    return hashMap;\n  }, {});\n}", "import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : padding;\n  return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n  var _state$modifiersData$;\n\n  var state = _ref.state,\n      name = _ref.name,\n      options = _ref.options;\n  var arrowElement = state.elements.arrow;\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var basePlacement = getBasePlacement(state.placement);\n  var axis = getMainAxisFromPlacement(basePlacement);\n  var isVertical = [left, right].indexOf(basePlacement) >= 0;\n  var len = isVertical ? 'height' : 'width';\n\n  if (!arrowElement || !popperOffsets) {\n    return;\n  }\n\n  var paddingObject = toPaddingObject(options.padding, state);\n  var arrowRect = getLayoutRect(arrowElement);\n  var minProp = axis === 'y' ? top : left;\n  var maxProp = axis === 'y' ? bottom : right;\n  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n  var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n  var arrowOffsetParent = getOffsetParent(arrowElement);\n  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n  // outside of the popper bounds\n\n  var min = paddingObject[minProp];\n  var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n  var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n  var axisProp = axis;\n  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options;\n  var _options$element = options.element,\n      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n  if (arrowElement == null) {\n    return;\n  } // CSS selector\n\n\n  if (typeof arrowElement === 'string') {\n    arrowElement = state.elements.popper.querySelector(arrowElement);\n\n    if (!arrowElement) {\n      return;\n    }\n  }\n\n  if (!contains(state.elements.popper, arrowElement)) {\n    return;\n  }\n\n  state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'arrow',\n  enabled: true,\n  phase: 'main',\n  fn: arrow,\n  effect: effect,\n  requires: ['popperOffsets'],\n  requiresIfExists: ['preventOverflow']\n};", "export default function getVariation(placement) {\n  return placement.split('-')[1];\n}", "import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n  top: 'auto',\n  right: 'auto',\n  bottom: 'auto',\n  left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n  var x = _ref.x,\n      y = _ref.y;\n  var dpr = win.devicePixelRatio || 1;\n  return {\n    x: round(x * dpr) / dpr || 0,\n    y: round(y * dpr) / dpr || 0\n  };\n}\n\nexport function mapToStyles(_ref2) {\n  var _Object$assign2;\n\n  var popper = _ref2.popper,\n      popperRect = _ref2.popperRect,\n      placement = _ref2.placement,\n      variation = _ref2.variation,\n      offsets = _ref2.offsets,\n      position = _ref2.position,\n      gpuAcceleration = _ref2.gpuAcceleration,\n      adaptive = _ref2.adaptive,\n      roundOffsets = _ref2.roundOffsets,\n      isFixed = _ref2.isFixed;\n  var _offsets$x = offsets.x,\n      x = _offsets$x === void 0 ? 0 : _offsets$x,\n      _offsets$y = offsets.y,\n      y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n  var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n    x: x,\n    y: y\n  }) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref3.x;\n  y = _ref3.y;\n  var hasX = offsets.hasOwnProperty('x');\n  var hasY = offsets.hasOwnProperty('y');\n  var sideX = left;\n  var sideY = top;\n  var win = window;\n\n  if (adaptive) {\n    var offsetParent = getOffsetParent(popper);\n    var heightProp = 'clientHeight';\n    var widthProp = 'clientWidth';\n\n    if (offsetParent === getWindow(popper)) {\n      offsetParent = getDocumentElement(popper);\n\n      if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n        heightProp = 'scrollHeight';\n        widthProp = 'scrollWidth';\n      }\n    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n    offsetParent = offsetParent;\n\n    if (placement === top || (placement === left || placement === right) && variation === end) {\n      sideY = bottom;\n      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n      offsetParent[heightProp];\n      y -= offsetY - popperRect.height;\n      y *= gpuAcceleration ? 1 : -1;\n    }\n\n    if (placement === left || (placement === top || placement === bottom) && variation === end) {\n      sideX = right;\n      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n      offsetParent[widthProp];\n      x -= offsetX - popperRect.width;\n      x *= gpuAcceleration ? 1 : -1;\n    }\n  }\n\n  var commonStyles = Object.assign({\n    position: position\n  }, adaptive && unsetSides);\n\n  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n    x: x,\n    y: y\n  }, getWindow(popper)) : {\n    x: x,\n    y: y\n  };\n\n  x = _ref4.x;\n  y = _ref4.y;\n\n  if (gpuAcceleration) {\n    var _Object$assign;\n\n    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n  }\n\n  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n  var state = _ref5.state,\n      options = _ref5.options;\n  var _options$gpuAccelerat = options.gpuAcceleration,\n      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n      _options$adaptive = options.adaptive,\n      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n      _options$roundOffsets = options.roundOffsets,\n      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n  var commonStyles = {\n    placement: getBasePlacement(state.placement),\n    variation: getVariation(state.placement),\n    popper: state.elements.popper,\n    popperRect: state.rects.popper,\n    gpuAcceleration: gpuAcceleration,\n    isFixed: state.options.strategy === 'fixed'\n  };\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.popperOffsets,\n      position: state.options.strategy,\n      adaptive: adaptive,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  if (state.modifiersData.arrow != null) {\n    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.arrow,\n      position: 'absolute',\n      adaptive: false,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-placement': state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'computeStyles',\n  enabled: true,\n  phase: 'beforeWrite',\n  fn: computeStyles,\n  data: {}\n};", "import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n  passive: true\n};\n\nfunction effect(_ref) {\n  var state = _ref.state,\n      instance = _ref.instance,\n      options = _ref.options;\n  var _options$scroll = options.scroll,\n      scroll = _options$scroll === void 0 ? true : _options$scroll,\n      _options$resize = options.resize,\n      resize = _options$resize === void 0 ? true : _options$resize;\n  var window = getWindow(state.elements.popper);\n  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n  if (scroll) {\n    scrollParents.forEach(function (scrollParent) {\n      scrollParent.addEventListener('scroll', instance.update, passive);\n    });\n  }\n\n  if (resize) {\n    window.addEventListener('resize', instance.update, passive);\n  }\n\n  return function () {\n    if (scroll) {\n      scrollParents.forEach(function (scrollParent) {\n        scrollParent.removeEventListener('scroll', instance.update, passive);\n      });\n    }\n\n    if (resize) {\n      window.removeEventListener('resize', instance.update, passive);\n    }\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'eventListeners',\n  enabled: true,\n  phase: 'write',\n  fn: function fn() {},\n  effect: effect,\n  data: {}\n};", "var hash = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}", "var hash = {\n  start: 'end',\n  end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n  return placement.replace(/start|end/g, function (matched) {\n    return hash[matched];\n  });\n}", "import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n  var win = getWindow(node);\n  var scrollLeft = win.pageXOffset;\n  var scrollTop = win.pageYOffset;\n  return {\n    scrollLeft: scrollLeft,\n    scrollTop: scrollTop\n  };\n}", "import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  // Popper 1 is broken in this case and never had a bug report so let's assume\n  // it's not an issue. I don't think anyone ever specifies width on <html>\n  // anyway.\n  // Browsers where the left scrollbar doesn't cause an issue report `0` for\n  // this (e.g. Edge 2019, IE11, Safari)\n  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}", "import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n  var win = getWindow(element);\n  var html = getDocumentElement(element);\n  var visualViewport = win.visualViewport;\n  var width = html.clientWidth;\n  var height = html.clientHeight;\n  var x = 0;\n  var y = 0;\n\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    var layoutViewport = isLayoutViewport();\n\n    if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x + getWindowScrollBarX(element),\n    y: y\n  };\n}", "import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n  var _element$ownerDocumen;\n\n  var html = getDocumentElement(element);\n  var winScroll = getWindowScroll(element);\n  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n  var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n  var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n  var y = -winScroll.scrollTop;\n\n  if (getComputedStyle(body || html).direction === 'rtl') {\n    x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x,\n    y: y\n  };\n}", "import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n  // Firefox wants us to check `-x` and `-y` variations as well\n  var _getComputedStyle = getComputedStyle(element),\n      overflow = _getComputedStyle.overflow,\n      overflowX = _getComputedStyle.overflowX,\n      overflowY = _getComputedStyle.overflowY;\n\n  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}", "import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n  if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n    // $FlowFixMe[incompatible-return]: assume body is always available\n    return node.ownerDocument.body;\n  }\n\n  if (isHTMLElement(node) && isScrollParent(node)) {\n    return node;\n  }\n\n  return getScrollParent(getParentNode(node));\n}", "import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n  var _element$ownerDocumen;\n\n  if (list === void 0) {\n    list = [];\n  }\n\n  var scrollParent = getScrollParent(element);\n  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n  var win = getWindow(scrollParent);\n  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n  var updatedList = list.concat(target);\n  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n  updatedList.concat(listScrollParents(getParentNode(target)));\n}", "export default function rectToClientRect(rect) {\n  return Object.assign({}, rect, {\n    left: rect.x,\n    top: rect.y,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  });\n}", "import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n  var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n  rect.top = rect.top + element.clientTop;\n  rect.left = rect.left + element.clientLeft;\n  rect.bottom = rect.top + element.clientHeight;\n  rect.right = rect.left + element.clientWidth;\n  rect.width = element.clientWidth;\n  rect.height = element.clientHeight;\n  rect.x = rect.left;\n  rect.y = rect.top;\n  return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n  return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n  var clippingParents = listScrollParents(getParentNode(element));\n  var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n  if (!isElement(clipperElement)) {\n    return [];\n  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n  return clippingParents.filter(function (clippingParent) {\n    return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n  });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n  var firstClippingParent = clippingParents[0];\n  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n    var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n  clippingRect.width = clippingRect.right - clippingRect.left;\n  clippingRect.height = clippingRect.bottom - clippingRect.top;\n  clippingRect.x = clippingRect.left;\n  clippingRect.y = clippingRect.top;\n  return clippingRect;\n}", "import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n  var reference = _ref.reference,\n      element = _ref.element,\n      placement = _ref.placement;\n  var basePlacement = placement ? getBasePlacement(placement) : null;\n  var variation = placement ? getVariation(placement) : null;\n  var commonX = reference.x + reference.width / 2 - element.width / 2;\n  var commonY = reference.y + reference.height / 2 - element.height / 2;\n  var offsets;\n\n  switch (basePlacement) {\n    case top:\n      offsets = {\n        x: commonX,\n        y: reference.y - element.height\n      };\n      break;\n\n    case bottom:\n      offsets = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n\n    case right:\n      offsets = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n\n    case left:\n      offsets = {\n        x: reference.x - element.width,\n        y: commonY\n      };\n      break;\n\n    default:\n      offsets = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n\n  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n  if (mainAxis != null) {\n    var len = mainAxis === 'y' ? 'height' : 'width';\n\n    switch (variation) {\n      case start:\n        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n        break;\n\n      case end:\n        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n        break;\n\n      default:\n    }\n  }\n\n  return offsets;\n}", "import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      _options$placement = _options.placement,\n      placement = _options$placement === void 0 ? state.placement : _options$placement,\n      _options$strategy = _options.strategy,\n      strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n      _options$boundary = _options.boundary,\n      boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n      _options$rootBoundary = _options.rootBoundary,\n      rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n      _options$elementConte = _options.elementContext,\n      elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n      _options$altBoundary = _options.altBoundary,\n      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n      _options$padding = _options.padding,\n      padding = _options$padding === void 0 ? 0 : _options$padding;\n  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n  var altContext = elementContext === popper ? reference : popper;\n  var popperRect = state.rects.popper;\n  var element = state.elements[altBoundary ? altContext : elementContext];\n  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n  var referenceClientRect = getBoundingClientRect(state.elements.reference);\n  var popperOffsets = computeOffsets({\n    reference: referenceClientRect,\n    element: popperRect,\n    strategy: 'absolute',\n    placement: placement\n  });\n  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n  // 0 or negative = within the clipping rect\n\n  var overflowOffsets = {\n    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n    right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n  };\n  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n  if (elementContext === popper && offsetData) {\n    var offset = offsetData[placement];\n    Object.keys(overflowOffsets).forEach(function (key) {\n      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n      var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n      overflowOffsets[key] += offset[axis] * multiply;\n    });\n  }\n\n  return overflowOffsets;\n}", "import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      placement = _options.placement,\n      boundary = _options.boundary,\n      rootBoundary = _options.rootBoundary,\n      padding = _options.padding,\n      flipVariations = _options.flipVariations,\n      _options$allowedAutoP = _options.allowedAutoPlacements,\n      allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n  var variation = getVariation(placement);\n  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n    return getVariation(placement) === variation;\n  }) : basePlacements;\n  var allowedPlacements = placements.filter(function (placement) {\n    return allowedAutoPlacements.indexOf(placement) >= 0;\n  });\n\n  if (allowedPlacements.length === 0) {\n    allowedPlacements = placements;\n  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n  var overflows = allowedPlacements.reduce(function (acc, placement) {\n    acc[placement] = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding\n    })[getBasePlacement(placement)];\n    return acc;\n  }, {});\n  return Object.keys(overflows).sort(function (a, b) {\n    return overflows[a] - overflows[b];\n  });\n}", "import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n  if (getBasePlacement(placement) === auto) {\n    return [];\n  }\n\n  var oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n\n  if (state.modifiersData[name]._skip) {\n    return;\n  }\n\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n      specifiedFallbackPlacements = options.fallbackPlacements,\n      padding = options.padding,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      _options$flipVariatio = options.flipVariations,\n      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n      allowedAutoPlacements = options.allowedAutoPlacements;\n  var preferredPlacement = state.options.placement;\n  var basePlacement = getBasePlacement(preferredPlacement);\n  var isBasePlacement = basePlacement === preferredPlacement;\n  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n    return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding,\n      flipVariations: flipVariations,\n      allowedAutoPlacements: allowedAutoPlacements\n    }) : placement);\n  }, []);\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var checksMap = new Map();\n  var makeFallbackChecks = true;\n  var firstFittingPlacement = placements[0];\n\n  for (var i = 0; i < placements.length; i++) {\n    var placement = placements[i];\n\n    var _basePlacement = getBasePlacement(placement);\n\n    var isStartVariation = getVariation(placement) === start;\n    var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n    var len = isVertical ? 'width' : 'height';\n    var overflow = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      altBoundary: altBoundary,\n      padding: padding\n    });\n    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n    if (referenceRect[len] > popperRect[len]) {\n      mainVariationSide = getOppositePlacement(mainVariationSide);\n    }\n\n    var altVariationSide = getOppositePlacement(mainVariationSide);\n    var checks = [];\n\n    if (checkMainAxis) {\n      checks.push(overflow[_basePlacement] <= 0);\n    }\n\n    if (checkAltAxis) {\n      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n    }\n\n    if (checks.every(function (check) {\n      return check;\n    })) {\n      firstFittingPlacement = placement;\n      makeFallbackChecks = false;\n      break;\n    }\n\n    checksMap.set(placement, checks);\n  }\n\n  if (makeFallbackChecks) {\n    // `2` may be desired in some cases \u2013 research later\n    var numberOfChecks = flipVariations ? 3 : 1;\n\n    var _loop = function _loop(_i) {\n      var fittingPlacement = placements.find(function (placement) {\n        var checks = checksMap.get(placement);\n\n        if (checks) {\n          return checks.slice(0, _i).every(function (check) {\n            return check;\n          });\n        }\n      });\n\n      if (fittingPlacement) {\n        firstFittingPlacement = fittingPlacement;\n        return \"break\";\n      }\n    };\n\n    for (var _i = numberOfChecks; _i > 0; _i--) {\n      var _ret = _loop(_i);\n\n      if (_ret === \"break\") break;\n    }\n  }\n\n  if (state.placement !== firstFittingPlacement) {\n    state.modifiersData[name]._skip = true;\n    state.placement = firstFittingPlacement;\n    state.reset = true;\n  }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'flip',\n  enabled: true,\n  phase: 'main',\n  fn: flip,\n  requiresIfExists: ['offset'],\n  data: {\n    _skip: false\n  }\n};", "import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n  if (preventedOffsets === void 0) {\n    preventedOffsets = {\n      x: 0,\n      y: 0\n    };\n  }\n\n  return {\n    top: overflow.top - rect.height - preventedOffsets.y,\n    right: overflow.right - rect.width + preventedOffsets.x,\n    bottom: overflow.bottom - rect.height + preventedOffsets.y,\n    left: overflow.left - rect.width - preventedOffsets.x\n  };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n  return [top, right, bottom, left].some(function (side) {\n    return overflow[side] >= 0;\n  });\n}\n\nfunction hide(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var preventedOffsets = state.modifiersData.preventOverflow;\n  var referenceOverflow = detectOverflow(state, {\n    elementContext: 'reference'\n  });\n  var popperAltOverflow = detectOverflow(state, {\n    altBoundary: true\n  });\n  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n  state.modifiersData[name] = {\n    referenceClippingOffsets: referenceClippingOffsets,\n    popperEscapeOffsets: popperEscapeOffsets,\n    isReferenceHidden: isReferenceHidden,\n    hasPopperEscaped: hasPopperEscaped\n  };\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-reference-hidden': isReferenceHidden,\n    'data-popper-escaped': hasPopperEscaped\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'hide',\n  enabled: true,\n  phase: 'main',\n  requiresIfExists: ['preventOverflow'],\n  fn: hide\n};", "import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n  var basePlacement = getBasePlacement(placement);\n  var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n    placement: placement\n  })) : offset,\n      skidding = _ref[0],\n      distance = _ref[1];\n\n  skidding = skidding || 0;\n  distance = (distance || 0) * invertDistance;\n  return [left, right].indexOf(basePlacement) >= 0 ? {\n    x: distance,\n    y: skidding\n  } : {\n    x: skidding,\n    y: distance\n  };\n}\n\nfunction offset(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options,\n      name = _ref2.name;\n  var _options$offset = options.offset,\n      offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n  var data = placements.reduce(function (acc, placement) {\n    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n    return acc;\n  }, {});\n  var _data$state$placement = data[state.placement],\n      x = _data$state$placement.x,\n      y = _data$state$placement.y;\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.modifiersData.popperOffsets.x += x;\n    state.modifiersData.popperOffsets.y += y;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'offset',\n  enabled: true,\n  phase: 'main',\n  requires: ['popperOffsets'],\n  fn: offset\n};", "import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  // Offsets are the actual position the popper needs to have to be\n  // properly positioned near its reference element\n  // This is the most basic placement, and will be adjusted by\n  // the modifiers in the next step\n  state.modifiersData[name] = computeOffsets({\n    reference: state.rects.reference,\n    element: state.rects.popper,\n    strategy: 'absolute',\n    placement: state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'popperOffsets',\n  enabled: true,\n  phase: 'read',\n  fn: popperOffsets,\n  data: {}\n};", "export default function getAltAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}", "import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      padding = options.padding,\n      _options$tether = options.tether,\n      tether = _options$tether === void 0 ? true : _options$tether,\n      _options$tetherOffset = options.tetherOffset,\n      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n  var overflow = detectOverflow(state, {\n    boundary: boundary,\n    rootBoundary: rootBoundary,\n    padding: padding,\n    altBoundary: altBoundary\n  });\n  var basePlacement = getBasePlacement(state.placement);\n  var variation = getVariation(state.placement);\n  var isBasePlacement = !variation;\n  var mainAxis = getMainAxisFromPlacement(basePlacement);\n  var altAxis = getAltAxis(mainAxis);\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : tetherOffset;\n  var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n    mainAxis: tetherOffsetValue,\n    altAxis: tetherOffsetValue\n  } : Object.assign({\n    mainAxis: 0,\n    altAxis: 0\n  }, tetherOffsetValue);\n  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n  var data = {\n    x: 0,\n    y: 0\n  };\n\n  if (!popperOffsets) {\n    return;\n  }\n\n  if (checkMainAxis) {\n    var _offsetModifierState$;\n\n    var mainSide = mainAxis === 'y' ? top : left;\n    var altSide = mainAxis === 'y' ? bottom : right;\n    var len = mainAxis === 'y' ? 'height' : 'width';\n    var offset = popperOffsets[mainAxis];\n    var min = offset + overflow[mainSide];\n    var max = offset - overflow[altSide];\n    var additive = tether ? -popperRect[len] / 2 : 0;\n    var minLen = variation === start ? referenceRect[len] : popperRect[len];\n    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n    // outside the reference bounds\n\n    var arrowElement = state.elements.arrow;\n    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n      width: 0,\n      height: 0\n    };\n    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n    var arrowPaddingMin = arrowPaddingObject[mainSide];\n    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n    // to include its full size in the calculation. If the reference is small\n    // and near the edge of a boundary, the popper can overflow even if the\n    // reference is not overflowing as well (e.g. virtual elements with no\n    // width or height)\n\n    var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n    var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n    var tetherMax = offset + maxOffset - offsetModifierValue;\n    var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n    popperOffsets[mainAxis] = preventedOffset;\n    data[mainAxis] = preventedOffset - offset;\n  }\n\n  if (checkAltAxis) {\n    var _offsetModifierState$2;\n\n    var _mainSide = mainAxis === 'x' ? top : left;\n\n    var _altSide = mainAxis === 'x' ? bottom : right;\n\n    var _offset = popperOffsets[altAxis];\n\n    var _len = altAxis === 'y' ? 'height' : 'width';\n\n    var _min = _offset + overflow[_mainSide];\n\n    var _max = _offset - overflow[_altSide];\n\n    var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n    var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n    popperOffsets[altAxis] = _preventedOffset;\n    data[altAxis] = _preventedOffset - _offset;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'preventOverflow',\n  enabled: true,\n  phase: 'main',\n  fn: preventOverflow,\n  requiresIfExists: ['offset']\n};", "export default function getHTMLElementScroll(element) {\n  return {\n    scrollLeft: element.scrollLeft,\n    scrollTop: element.scrollTop\n  };\n}", "import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n  if (node === getWindow(node) || !isHTMLElement(node)) {\n    return getWindowScroll(node);\n  } else {\n    return getHTMLElementScroll(node);\n  }\n}", "import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n  var rect = element.getBoundingClientRect();\n  var scaleX = round(rect.width) / element.offsetWidth || 1;\n  var scaleY = round(rect.height) / element.offsetHeight || 1;\n  return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n\n  var isOffsetParentAnElement = isHTMLElement(offsetParent);\n  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n  var documentElement = getDocumentElement(offsetParent);\n  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n  var scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  var offsets = {\n    x: 0,\n    y: 0\n  };\n\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n    isScrollParent(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n\n    if (isHTMLElement(offsetParent)) {\n      offsets = getBoundingClientRect(offsetParent, true);\n      offsets.x += offsetParent.clientLeft;\n      offsets.y += offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n\n  return {\n    x: rect.left + scroll.scrollLeft - offsets.x,\n    y: rect.top + scroll.scrollTop - offsets.y,\n    width: rect.width,\n    height: rect.height\n  };\n}", "import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n  var map = new Map();\n  var visited = new Set();\n  var result = [];\n  modifiers.forEach(function (modifier) {\n    map.set(modifier.name, modifier);\n  }); // On visiting object, check for its dependencies and visit them recursively\n\n  function sort(modifier) {\n    visited.add(modifier.name);\n    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n    requires.forEach(function (dep) {\n      if (!visited.has(dep)) {\n        var depModifier = map.get(dep);\n\n        if (depModifier) {\n          sort(depModifier);\n        }\n      }\n    });\n    result.push(modifier);\n  }\n\n  modifiers.forEach(function (modifier) {\n    if (!visited.has(modifier.name)) {\n      // check for visited object\n      sort(modifier);\n    }\n  });\n  return result;\n}\n\nexport default function orderModifiers(modifiers) {\n  // order based on dependencies\n  var orderedModifiers = order(modifiers); // order based on phase\n\n  return modifierPhases.reduce(function (acc, phase) {\n    return acc.concat(orderedModifiers.filter(function (modifier) {\n      return modifier.phase === phase;\n    }));\n  }, []);\n}", "export default function debounce(fn) {\n  var pending;\n  return function () {\n    if (!pending) {\n      pending = new Promise(function (resolve) {\n        Promise.resolve().then(function () {\n          pending = undefined;\n          resolve(fn());\n        });\n      });\n    }\n\n    return pending;\n  };\n}", "export default function mergeByName(modifiers) {\n  var merged = modifiers.reduce(function (merged, current) {\n    var existing = merged[current.name];\n    merged[current.name] = existing ? Object.assign({}, existing, current, {\n      options: Object.assign({}, existing.options, current.options),\n      data: Object.assign({}, existing.data, current.data)\n    }) : current;\n    return merged;\n  }, {}); // IE11 does not support Object.values\n\n  return Object.keys(merged).map(function (key) {\n    return merged[key];\n  });\n}", "import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n  placement: 'bottom',\n  modifiers: [],\n  strategy: 'absolute'\n};\n\nfunction areValidElements() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return !args.some(function (element) {\n    return !(element && typeof element.getBoundingClientRect === 'function');\n  });\n}\n\nexport function popperGenerator(generatorOptions) {\n  if (generatorOptions === void 0) {\n    generatorOptions = {};\n  }\n\n  var _generatorOptions = generatorOptions,\n      _generatorOptions$def = _generatorOptions.defaultModifiers,\n      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n      _generatorOptions$def2 = _generatorOptions.defaultOptions,\n      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n  return function createPopper(reference, popper, options) {\n    if (options === void 0) {\n      options = defaultOptions;\n    }\n\n    var state = {\n      placement: 'bottom',\n      orderedModifiers: [],\n      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n      modifiersData: {},\n      elements: {\n        reference: reference,\n        popper: popper\n      },\n      attributes: {},\n      styles: {}\n    };\n    var effectCleanupFns = [];\n    var isDestroyed = false;\n    var instance = {\n      state: state,\n      setOptions: function setOptions(setOptionsAction) {\n        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n        cleanupModifierEffects();\n        state.options = Object.assign({}, defaultOptions, state.options, options);\n        state.scrollParents = {\n          reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n          popper: listScrollParents(popper)\n        }; // Orders the modifiers based on their dependencies and `phase`\n        // properties\n\n        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n        state.orderedModifiers = orderedModifiers.filter(function (m) {\n          return m.enabled;\n        });\n        runModifierEffects();\n        return instance.update();\n      },\n      // Sync update \u2013 it will always be executed, even if not necessary. This\n      // is useful for low frequency updates where sync behavior simplifies the\n      // logic.\n      // For high frequency updates (e.g. `resize` and `scroll` events), always\n      // prefer the async Popper#update method\n      forceUpdate: function forceUpdate() {\n        if (isDestroyed) {\n          return;\n        }\n\n        var _state$elements = state.elements,\n            reference = _state$elements.reference,\n            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n        // anymore\n\n        if (!areValidElements(reference, popper)) {\n          return;\n        } // Store the reference and popper rects to be read by modifiers\n\n\n        state.rects = {\n          reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n          popper: getLayoutRect(popper)\n        }; // Modifiers have the ability to reset the current update cycle. The\n        // most common use case for this is the `flip` modifier changing the\n        // placement, which then needs to re-run all the modifiers, because the\n        // logic was previously ran for the previous placement and is therefore\n        // stale/incorrect\n\n        state.reset = false;\n        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n        // is filled with the initial data specified by the modifier. This means\n        // it doesn't persist and is fresh on each update.\n        // To ensure persistent data, use `${name}#persistent`\n\n        state.orderedModifiers.forEach(function (modifier) {\n          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n        });\n\n        for (var index = 0; index < state.orderedModifiers.length; index++) {\n          if (state.reset === true) {\n            state.reset = false;\n            index = -1;\n            continue;\n          }\n\n          var _state$orderedModifie = state.orderedModifiers[index],\n              fn = _state$orderedModifie.fn,\n              _state$orderedModifie2 = _state$orderedModifie.options,\n              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n              name = _state$orderedModifie.name;\n\n          if (typeof fn === 'function') {\n            state = fn({\n              state: state,\n              options: _options,\n              name: name,\n              instance: instance\n            }) || state;\n          }\n        }\n      },\n      // Async and optimistically optimized update \u2013 it will not be executed if\n      // not necessary (debounced to run at most once-per-tick)\n      update: debounce(function () {\n        return new Promise(function (resolve) {\n          instance.forceUpdate();\n          resolve(state);\n        });\n      }),\n      destroy: function destroy() {\n        cleanupModifierEffects();\n        isDestroyed = true;\n      }\n    };\n\n    if (!areValidElements(reference, popper)) {\n      return instance;\n    }\n\n    instance.setOptions(options).then(function (state) {\n      if (!isDestroyed && options.onFirstUpdate) {\n        options.onFirstUpdate(state);\n      }\n    }); // Modifiers have the ability to execute arbitrary code before the first\n    // update cycle runs. They will be executed in the same order as the update\n    // cycle. This is useful when a modifier adds some persistent data that\n    // other modifiers need to use, but the modifier is run after the dependent\n    // one.\n\n    function runModifierEffects() {\n      state.orderedModifiers.forEach(function (_ref) {\n        var name = _ref.name,\n            _ref$options = _ref.options,\n            options = _ref$options === void 0 ? {} : _ref$options,\n            effect = _ref.effect;\n\n        if (typeof effect === 'function') {\n          var cleanupFn = effect({\n            state: state,\n            name: name,\n            instance: instance,\n            options: options\n          });\n\n          var noopFn = function noopFn() {};\n\n          effectCleanupFns.push(cleanupFn || noopFn);\n        }\n      });\n    }\n\n    function cleanupModifierEffects() {\n      effectCleanupFns.forEach(function (fn) {\n        return fn();\n      });\n      effectCleanupFns = [];\n    }\n\n    return instance;\n  };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };", "import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n  defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";", "import { Controller } from '@hotwired/stimulus';\nimport { createPopper } from '@popperjs/core';\n\nexport default class extends Controller {\n  static targets = ['element', 'tooltip'];\n  static values = {\n    placement: { type: String, default: 'top' },\n    offset: { type: Array, default: [0, 10] },\n    delay: { type: Number, default: 0 }\n  };\n\n  connect() {\n    // Create a new Popper instance\n    this.popperInstance = createPopper(this.elementTarget, this.tooltipTarget, {\n      placement: this.placementValue,\n      modifiers: [\n        {\n          name: 'offset',\n          options: {\n            offset: this.offsetValue,\n          },\n        },\n      ],\n    });\n  }\n\n  show(event) {\n    clearTimeout(this.timer);\n    this.tooltipTarget.setAttribute('data-show', '');\n\n    // We need to tell Popper to update the tooltip position\n    // after we show the tooltip, otherwise it will be incorrect\n    this.popperInstance.update();\n  }\n\n  hide(event) {\n    this.timer = setTimeout(() => {\n      this.tooltipTarget.removeAttribute('data-show');\n    }, this.delayValue);\n  }\n\n  // Destroy the Popper instance\n  disconnect() {\n    if (this.popperInstance) {\n      this.popperInstance.destroy();\n    }\n    clearTimeout(this.timer);\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\n// Connects to data-controller=\"profile-switcher\"\nexport default class extends Controller {\n  static targets = ['menu'];\n  static values = {\n    profilesCount: Number,\n  };\n\n  initialize() {\n    this.menuIsOpen = false;\n  }\n\n  connect() {}\n\n  handleClick(event) {\n    event.preventDefault();\n    event.stopPropagation();\n    const noOtherProfilesToSwitchTo = this.profilesCountValue < 1;\n    if (noOtherProfilesToSwitchTo) {\n      return;\n    }\n\n    this.menuIsOpen ? this.closeMenu() : this.openMenu();\n  }\n\n  openMenu() {\n    const { menuTarget } = this;\n    menuTarget.classList.remove('h-0', 'opacity-0');\n    menuTarget.classList.add('opacity-100', 'h-full');\n    this.menuIsOpen = true;\n  }\n\n  closeMenu() {\n    const { menuTarget } = this;\n    menuTarget.classList.remove('h-full', 'opacity-100');\n    menuTarget.classList.add('h-0', 'opacity-0');\n    this.menuIsOpen = false;\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = [\"form\"]\n  static values = {documentUrl: String}\n\n  connect() {\n    this.#generateDocumentIframe(this.element);\n    this.#injectCsrfToken();\n  }\n\n  #generateDocumentIframe(container) {\n    const iframe = document.createElement('iframe');\n    iframe.classList = ['w-full h-lvh'];\n    iframe.src = this.documentUrlValue;\n\n    container.prepend(iframe);\n  }\n\n  #injectCsrfToken() {\n    // Inject CSRF token manually, because form can be rendered with Turbo from Sidekiq\n    // Token is missing in this context\n    const formToken = this.formTarget.querySelector('input[name=\"authenticity_token\"]');\n    if (formToken) return;\n\n    const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n    const input = document.createElement(\"input\");\n    input.type = \"hidden\";\n    input.name = \"authenticity_token\";\n    input.value = csrfToken;\n    this.formTarget.prepend(input);\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"link\"]\n\n  connect() {\n    const options = {\n      root: null,\n      rootMargin: \"0px\",\n      threshold: 0.4,\n    }\n\n    this.observer = new IntersectionObserver(this.handleIntersect.bind(this), options)\n\n    this.linkTargets.forEach(link => {\n      const href = link.getAttribute(\"href\")\n      const section = document.querySelector(href)\n      if (section) {\n        this.observer.observe(section)\n      }\n    })\n  }\n\n  handleIntersect(entries) {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        const id = entry.target.getAttribute(\"id\")\n        this.activateLink(`#${id}`)\n      }\n    })\n  }\n\n  activateLink(id) {\n    this.linkTargets.forEach(link => {\n      if (link.getAttribute(\"href\") === id) {\n        link.classList.add(\"text-indigo-900\", \"font-semibold\")\n        link.classList.remove(\"hover:text-indigo-800\")\n      } else {\n        link.classList.remove(\"text-indigo-900\", \"font-semibold\")\n        link.classList.add(\"hover:text-indigo-800\")\n      }\n    })\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = [\n    'fileBackName',\n    'fileBackValidationErrors',\n    'fileName',\n    'identityProofDocumentType',\n    'validationErrors',\n  ];\n\n  static values = {\n    changeDocumentText: String,\n  };\n\n  requireDocumentType(event) {\n    if (this.hasIdentityProofDocumentTypeTarget) {\n      try {\n        this.identityProofDocumentTypeTarget.required = true;\n      } catch (e) {}\n    }\n  }\n\n  displayFileName(event) {\n    if (this.hasFileNameTarget) {\n      const fileName = event.target.value.split('\\\\').pop();\n      this.fileNameTarget.textContent = fileName;\n    }\n  }\n\n  displayFileBackName(event) {\n    if (this.hasFileBackNameTarget) {\n      const fileName = event.target.value.split('\\\\').pop();\n      this.fileBackNameTarget.textContent = fileName;\n    }\n  }\n\n  displayUploadDocumentText() {\n    if (this.hasUploadDocumentTextTarget) {\n      try {\n        this.uploadDocumentTextTarget.innerText = this.changeDocumentTextValue;\n      } catch (e) {}\n    }\n  }\n\n  clearValidationErrors() {\n    if (this.hasValidationErrorsTarget) {\n      try {\n        this.validationErrorsTarget.innerText = '';\n      } catch (e) {}\n    }\n  }\n\n  clearFileBackValidationErrors(event) {\n    const errorElement = event.target\n      .closest('div')\n      .querySelector('span.text-red-400');\n    if (errorElement) {\n      errorElement.textContent = '';\n    }\n  }\n\n  triggerFileInput(event) {\n    event.preventDefault();\n    const targetId = event.currentTarget.dataset.target;\n    const fileInput = document.getElementById(targetId);\n    if (fileInput) {\n      fileInput.click();\n    }\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"errorsContainer\", \"modalAmount\", \"submitButton\"]\n  static values = {\n    currency: String,\n    errorTranslations: Object,\n    leftToCollect: Number,\n    locale: String,\n    minimumAmount: Number,\n    profileBalance: Number,\n  }\n\n  validateAmount(event) {\n    const amount = event.target.value;\n    const errors = [];\n\n    if (amount < this.minimumAmountValue) { errors.push(this.errorTranslationsValue.lower_than_minimum_subscription_amount); }\n    if (amount > this.leftToCollectValue) { errors.push(this.errorTranslationsValue.higher_than_left_to_collect); }\n    if (amount > this.profileBalanceValue) { errors.push(this.errorTranslationsValue.insufficient_balance); }\n\n    this.#displayErrors(errors, event.target);\n    this.#toggleSubmitButton(errors);\n    this.#updateModalAmount(amount);\n  }\n\n  #displayErrors(errors, input) {\n    if (errors.length > 0) {\n      this.errorsContainerTarget.innerHTML = errors.join(\"<br>\");\n      input.classList.add(\"!border-danger\");\n    } else {\n      this.errorsContainerTarget.innerHTML = \"\"\n      input.classList.remove(\"!border-danger\");\n    }\n  }\n\n  #toggleSubmitButton(errors) {\n    this.submitButtonTargets.forEach(button => {\n      button.disabled = errors.length > 0;\n    });\n  }\n\n  #updateModalAmount(amount) {\n    const formattedAmount = new Intl.NumberFormat(this.localeValue, {\n      style: \"currency\",\n      currency: this.currencyValue,\n    }).format(amount);\n\n    this.modalAmountTarget.textContent = formattedAmount;\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"container\"]\n\n  connect() {\n    this.containerTargets.forEach(container => {\n      container.addEventListener('dragstart', this.handleDragStart.bind(this));\n      container.addEventListener('dragover', this.handleDragOver.bind(this));\n      container.addEventListener('dragend', this.handleDragEnd.bind(this));\n    });\n    this.updatePositions();\n  }\n\n  add(event) {\n    const containerName = event.target.closest('button')?.dataset?.container;\n    if (!containerName) {\n      return;\n    }\n\n    const container = this.element.querySelector(`[data-container-name=\"${containerName}\"]`);\n    const template = this.element.querySelector(`[data-nested-form-drag-target=\"${containerName}Template\"]`);\n    if (!container || !template) return;\n\n    container.insertAdjacentHTML(\"beforeend\", template.innerHTML.replace(/NEW_RECORD/g, new Date().getTime()));\n    this.updatePositions();\n  }\n\n  remove(event) {\n    const item = event.target.closest(\"[data-nested-form-drag-target='item']\");\n    const destroyField = item.querySelector(\"[data-destroy-field]\");\n\n    if (destroyField) {\n      destroyField.value = true;\n      item.style.display = \"none\";\n    } else {\n      item.remove();\n    }\n    this.updatePositions();\n  }\n\n  updatePositions() {\n    this.containerTargets.forEach(container => {\n      let position = 1;\n      container.querySelectorAll(\"[data-nested-form-drag-target='item']\").forEach(item => {\n        const isDestroyed = item.style.display == \"none\";\n        if (!isDestroyed) {\n          const positionField = item.querySelector(\"[data-position-field]\");\n          if (positionField) positionField.value = position++;\n        }\n      })\n    })\n  }\n\n  handleDragStart(e) {\n    const item = e.target.closest(\"[data-nested-form-drag-target='item']\");\n    if (!item) {\n      return;\n    }\n    this.draggedItem = item;\n    item.classList.add('opacity-50');\n  }\n\n  handleDragOver(e) {\n    e.preventDefault();\n\n    const target = e.target.closest(\"[data-nested-form-drag-target='item']\");\n    if (!target || target === this.draggedItem) {\n      return;\n    }\n\n    const rect = target.getBoundingClientRect();\n    const midY = rect.top + rect.height / 2;\n    // Insert before if the cursor is above the middle of the target\n    const insertBefore = e.clientY < midY ? target : target.nextElementSibling;\n\n    e.currentTarget.insertBefore(this.draggedItem, insertBefore);\n  }\n\n  handleDragEnd() {\n    if (this.draggedItem) {\n      this.draggedItem.classList.remove('opacity-50');\n      this.draggedItem = null;\n    }\n    this.updatePositions();\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\nimport Redactor from \"../../assets/javascripts/redactor/redactor.min.js\";\n\nexport default class extends Controller {\n  connect() {\n    Redactor(this.element, {\n      buttons: ['bold', 'italic', 'underline', 'lists', 'link'],\n      minHeight: '200px'\n    });\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static values = {\n    iframeEndpoint: String,\n    signatureId: String,\n  }\n\n  connect() {\n    const configuration = {};\n    const iframeEndpoint = this.iframeEndpointValue;\n    const signerId = this.signatureIdValue;\n    universignSigInit(this.element.id, signerId, configuration, iframeEndpoint);\n  }\n}\n", "import { Controller } from '@hotwired/stimulus'\nimport intlTelInput from 'intl-tel-input'\n\nexport default class extends Controller {\n  static targets = ['input']\n\n  connect() {\n    this.iti = intlTelInput(this.inputTarget, {\n      initialCountry: 'FR',\n      preferredCountries: ['FR'],\n      separateDialCode: true,\n      formatOnDisplay: true,\n      autoHideDialCode: false,\n      nationalMode: false,\n      loadUtils: () => import('intl-tel-input/utils'),\n    })\n  }\n\n  disconnect() {\n    if (this.iti) this.iti.destroy();\n  }\n\n  getNumber() {\n    this.inputTarget.value = this.iti.getNumber();\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  search() {\n    this.element.requestSubmit()\n  }\n}\n", "import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n  static targets = ['input', 'eyeOpen', 'eyeClosed'];\n\n  toggle() {\n    const isPassword = this.inputTarget.type === 'password';\n    this.inputTarget.type = isPassword ? 'text' : 'password';\n    this.eyeOpenTarget.classList.toggle('hidden', !isPassword);\n    this.eyeClosedTarget.classList.toggle('hidden', isPassword);\n  }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n  static targets = [\"input\", \"submit\"]\n\n  connect() {\n    this.updateSubmitButton()\n  }\n\n  formatInput() {\n    this.inputTarget.value = this.inputTarget.value.replace(/\\D/g, \"\")\n    this.updateSubmitButton()\n  }\n\n  updateSubmitButton() {\n    if (this.hasSubmitTarget) {\n      this.submitTarget.disabled = this.inputTarget.value.length !== 6\n    }\n  }\n}\n", "// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from './application';\n\nimport AccordionController from './accordion_controller.js'\nimport CollapseController from './collapse_controller.js';\nimport CopyToClipboardController from './copy_to_clipboard_controller.js';\nimport DynamicUboController from './dynamic_ubo_controller.js';\nimport DirectUploadFormController from './direct_upload_form_controller.js';\nimport DirectUploadInputController from './direct_upload_input_controller.js';\nimport FileBackSelectionMenuController from './file_back_selection_menu_controller.js'\nimport FlashController from './flash_controller.js';\nimport FormController from './form_controller.js';\nimport FormValidationController from './form_validation_controller.js';\nimport HelloController from './hello_controller.js';\nimport LemonwayIframeController from './lemonway_iframe_controller.js';\nimport MobileSidebarController from './mobile_sidebar_controller.js';\nimport ModalController from './modal_controller.js'\nimport PopperController from './popper_controller.js';\nimport ProfileSwitcherController from './profile_switcher_controller.js';\nimport SignController from './sign_controller.js';\nimport ScrollspyController from './scrollspy_controller.js'\nimport Users__Profiles__KycDocumentFormController from './users/profiles/kyc_document_form_controller.js';\nimport Users__Profiles__RecoveryFeeCollections__SubscriptionFormController\n  from './users/profiles/recovery_fee_collections/subscription_form_controller.js';\nimport NestedFormDragController from './nested_form_drag_controller.js';\nimport RedactorController from './redactor_controller.js';\nimport UniversignController from './universign_controller.js';\nimport PhoneInputController from './phone_input_controller.js';\nimport SearchFormController from './search_form_controller.js';\nimport PasswordVisibilityController from './password_visibility_controller.js';\nimport VerificationCodeController from './verification_code_controller.js';\n\napplication.register('accordion', AccordionController)\napplication.register('collapse', CollapseController);\napplication.register('copy-to-clipboard', CopyToClipboardController);\napplication.register('dynamic-ubo', DynamicUboController);\napplication.register('direct-upload-form', DirectUploadFormController);\napplication.register('direct-upload-input', DirectUploadInputController);\napplication.register('file-back-selection-menu', FileBackSelectionMenuController)\napplication.register('flash', FlashController);\napplication.register('form', FormController);\napplication.register('form-validation', FormValidationController);\napplication.register('hello', HelloController);\napplication.register('lemonway-iframe', LemonwayIframeController);\napplication.register('mobile-sidebar', MobileSidebarController);\napplication.register('modal', ModalController)\napplication.register('popper', PopperController);\napplication.register('profile-switcher', ProfileSwitcherController);\napplication.register('sign', SignController);\napplication.register('scrollspy', ScrollspyController)\napplication.register(\n  'users--profiles--kyc-document-form',\n  Users__Profiles__KycDocumentFormController\n);\napplication.register(\n  'users--profiles--recovery-fee-collections-subscription-form',\n  Users__Profiles__RecoveryFeeCollections__SubscriptionFormController\n);\napplication.register('search-form', SearchFormController);\napplication.register('nested-form-drag', NestedFormDragController);\napplication.register('redactor', RedactorController);\napplication.register('universign', UniversignController);\napplication.register('phone-input', PhoneInputController);\napplication.register('password-visibility', PasswordVisibilityController);\napplication.register('verification-code', VerificationCodeController);\n", "var adapters = {\n  logger: typeof console !== \"undefined\" ? console : undefined,\n  WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n  log(...messages) {\n    if (this.enabled) {\n      messages.push(Date.now());\n      adapters.logger.log(\"[ActionCable]\", ...messages);\n    }\n  }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n  constructor(connection) {\n    this.visibilityDidChange = this.visibilityDidChange.bind(this);\n    this.connection = connection;\n    this.reconnectAttempts = 0;\n  }\n  start() {\n    if (!this.isRunning()) {\n      this.startedAt = now();\n      delete this.stoppedAt;\n      this.startPolling();\n      addEventListener(\"visibilitychange\", this.visibilityDidChange);\n      logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n    }\n  }\n  stop() {\n    if (this.isRunning()) {\n      this.stoppedAt = now();\n      this.stopPolling();\n      removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n      logger.log(\"ConnectionMonitor stopped\");\n    }\n  }\n  isRunning() {\n    return this.startedAt && !this.stoppedAt;\n  }\n  recordPing() {\n    this.pingedAt = now();\n  }\n  recordConnect() {\n    this.reconnectAttempts = 0;\n    this.recordPing();\n    delete this.disconnectedAt;\n    logger.log(\"ConnectionMonitor recorded connect\");\n  }\n  recordDisconnect() {\n    this.disconnectedAt = now();\n    logger.log(\"ConnectionMonitor recorded disconnect\");\n  }\n  startPolling() {\n    this.stopPolling();\n    this.poll();\n  }\n  stopPolling() {\n    clearTimeout(this.pollTimeout);\n  }\n  poll() {\n    this.pollTimeout = setTimeout((() => {\n      this.reconnectIfStale();\n      this.poll();\n    }), this.getPollInterval());\n  }\n  getPollInterval() {\n    const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n    const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n    const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n    const jitter = jitterMax * Math.random();\n    return staleThreshold * 1e3 * backoff * (1 + jitter);\n  }\n  reconnectIfStale() {\n    if (this.connectionIsStale()) {\n      logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n      this.reconnectAttempts++;\n      if (this.disconnectedRecently()) {\n        logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n      } else {\n        logger.log(\"ConnectionMonitor reopening\");\n        this.connection.reopen();\n      }\n    }\n  }\n  get refreshedAt() {\n    return this.pingedAt ? this.pingedAt : this.startedAt;\n  }\n  connectionIsStale() {\n    return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n  }\n  disconnectedRecently() {\n    return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n  }\n  visibilityDidChange() {\n    if (document.visibilityState === \"visible\") {\n      setTimeout((() => {\n        if (this.connectionIsStale() || !this.connection.isOpen()) {\n          logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n          this.connection.reopen();\n        }\n      }), 200);\n    }\n  }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n  message_types: {\n    welcome: \"welcome\",\n    disconnect: \"disconnect\",\n    ping: \"ping\",\n    confirmation: \"confirm_subscription\",\n    rejection: \"reject_subscription\"\n  },\n  disconnect_reasons: {\n    unauthorized: \"unauthorized\",\n    invalid_request: \"invalid_request\",\n    server_restart: \"server_restart\",\n    remote: \"remote\"\n  },\n  default_mount_path: \"/cable\",\n  protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n  constructor(consumer) {\n    this.open = this.open.bind(this);\n    this.consumer = consumer;\n    this.subscriptions = this.consumer.subscriptions;\n    this.monitor = new ConnectionMonitor(this);\n    this.disconnected = true;\n  }\n  send(data) {\n    if (this.isOpen()) {\n      this.webSocket.send(JSON.stringify(data));\n      return true;\n    } else {\n      return false;\n    }\n  }\n  open() {\n    if (this.isActive()) {\n      logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n      return false;\n    } else {\n      const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n      logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n      if (this.webSocket) {\n        this.uninstallEventHandlers();\n      }\n      this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n      this.installEventHandlers();\n      this.monitor.start();\n      return true;\n    }\n  }\n  close({allowReconnect: allowReconnect} = {\n    allowReconnect: true\n  }) {\n    if (!allowReconnect) {\n      this.monitor.stop();\n    }\n    if (this.isOpen()) {\n      return this.webSocket.close();\n    }\n  }\n  reopen() {\n    logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n    if (this.isActive()) {\n      try {\n        return this.close();\n      } catch (error) {\n        logger.log(\"Failed to reopen WebSocket\", error);\n      } finally {\n        logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n        setTimeout(this.open, this.constructor.reopenDelay);\n      }\n    } else {\n      return this.open();\n    }\n  }\n  getProtocol() {\n    if (this.webSocket) {\n      return this.webSocket.protocol;\n    }\n  }\n  isOpen() {\n    return this.isState(\"open\");\n  }\n  isActive() {\n    return this.isState(\"open\", \"connecting\");\n  }\n  triedToReconnect() {\n    return this.monitor.reconnectAttempts > 0;\n  }\n  isProtocolSupported() {\n    return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n  }\n  isState(...states) {\n    return indexOf.call(states, this.getState()) >= 0;\n  }\n  getState() {\n    if (this.webSocket) {\n      for (let state in adapters.WebSocket) {\n        if (adapters.WebSocket[state] === this.webSocket.readyState) {\n          return state.toLowerCase();\n        }\n      }\n    }\n    return null;\n  }\n  installEventHandlers() {\n    for (let eventName in this.events) {\n      const handler = this.events[eventName].bind(this);\n      this.webSocket[`on${eventName}`] = handler;\n    }\n  }\n  uninstallEventHandlers() {\n    for (let eventName in this.events) {\n      this.webSocket[`on${eventName}`] = function() {};\n    }\n  }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n  message(event) {\n    if (!this.isProtocolSupported()) {\n      return;\n    }\n    const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n    switch (type) {\n     case message_types.welcome:\n      if (this.triedToReconnect()) {\n        this.reconnectAttempted = true;\n      }\n      this.monitor.recordConnect();\n      return this.subscriptions.reload();\n\n     case message_types.disconnect:\n      logger.log(`Disconnecting. Reason: ${reason}`);\n      return this.close({\n        allowReconnect: reconnect\n      });\n\n     case message_types.ping:\n      return this.monitor.recordPing();\n\n     case message_types.confirmation:\n      this.subscriptions.confirmSubscription(identifier);\n      if (this.reconnectAttempted) {\n        this.reconnectAttempted = false;\n        return this.subscriptions.notify(identifier, \"connected\", {\n          reconnected: true\n        });\n      } else {\n        return this.subscriptions.notify(identifier, \"connected\", {\n          reconnected: false\n        });\n      }\n\n     case message_types.rejection:\n      return this.subscriptions.reject(identifier);\n\n     default:\n      return this.subscriptions.notify(identifier, \"received\", message);\n    }\n  },\n  open() {\n    logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n    this.disconnected = false;\n    if (!this.isProtocolSupported()) {\n      logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n      return this.close({\n        allowReconnect: false\n      });\n    }\n  },\n  close(event) {\n    logger.log(\"WebSocket onclose event\");\n    if (this.disconnected) {\n      return;\n    }\n    this.disconnected = true;\n    this.monitor.recordDisconnect();\n    return this.subscriptions.notifyAll(\"disconnected\", {\n      willAttemptReconnect: this.monitor.isRunning()\n    });\n  },\n  error() {\n    logger.log(\"WebSocket onerror event\");\n  }\n};\n\nconst extend = function(object, properties) {\n  if (properties != null) {\n    for (let key in properties) {\n      const value = properties[key];\n      object[key] = value;\n    }\n  }\n  return object;\n};\n\nclass Subscription {\n  constructor(consumer, params = {}, mixin) {\n    this.consumer = consumer;\n    this.identifier = JSON.stringify(params);\n    extend(this, mixin);\n  }\n  perform(action, data = {}) {\n    data.action = action;\n    return this.send(data);\n  }\n  send(data) {\n    return this.consumer.send({\n      command: \"message\",\n      identifier: this.identifier,\n      data: JSON.stringify(data)\n    });\n  }\n  unsubscribe() {\n    return this.consumer.subscriptions.remove(this);\n  }\n}\n\nclass SubscriptionGuarantor {\n  constructor(subscriptions) {\n    this.subscriptions = subscriptions;\n    this.pendingSubscriptions = [];\n  }\n  guarantee(subscription) {\n    if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n      logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n      this.pendingSubscriptions.push(subscription);\n    } else {\n      logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n    }\n    this.startGuaranteeing();\n  }\n  forget(subscription) {\n    logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n    this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n  }\n  startGuaranteeing() {\n    this.stopGuaranteeing();\n    this.retrySubscribing();\n  }\n  stopGuaranteeing() {\n    clearTimeout(this.retryTimeout);\n  }\n  retrySubscribing() {\n    this.retryTimeout = setTimeout((() => {\n      if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n        this.pendingSubscriptions.map((subscription => {\n          logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n          this.subscriptions.subscribe(subscription);\n        }));\n      }\n    }), 500);\n  }\n}\n\nclass Subscriptions {\n  constructor(consumer) {\n    this.consumer = consumer;\n    this.guarantor = new SubscriptionGuarantor(this);\n    this.subscriptions = [];\n  }\n  create(channelName, mixin) {\n    const channel = channelName;\n    const params = typeof channel === \"object\" ? channel : {\n      channel: channel\n    };\n    const subscription = new Subscription(this.consumer, params, mixin);\n    return this.add(subscription);\n  }\n  add(subscription) {\n    this.subscriptions.push(subscription);\n    this.consumer.ensureActiveConnection();\n    this.notify(subscription, \"initialized\");\n    this.subscribe(subscription);\n    return subscription;\n  }\n  remove(subscription) {\n    this.forget(subscription);\n    if (!this.findAll(subscription.identifier).length) {\n      this.sendCommand(subscription, \"unsubscribe\");\n    }\n    return subscription;\n  }\n  reject(identifier) {\n    return this.findAll(identifier).map((subscription => {\n      this.forget(subscription);\n      this.notify(subscription, \"rejected\");\n      return subscription;\n    }));\n  }\n  forget(subscription) {\n    this.guarantor.forget(subscription);\n    this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n    return subscription;\n  }\n  findAll(identifier) {\n    return this.subscriptions.filter((s => s.identifier === identifier));\n  }\n  reload() {\n    return this.subscriptions.map((subscription => this.subscribe(subscription)));\n  }\n  notifyAll(callbackName, ...args) {\n    return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n  }\n  notify(subscription, callbackName, ...args) {\n    let subscriptions;\n    if (typeof subscription === \"string\") {\n      subscriptions = this.findAll(subscription);\n    } else {\n      subscriptions = [ subscription ];\n    }\n    return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n  }\n  subscribe(subscription) {\n    if (this.sendCommand(subscription, \"subscribe\")) {\n      this.guarantor.guarantee(subscription);\n    }\n  }\n  confirmSubscription(identifier) {\n    logger.log(`Subscription confirmed ${identifier}`);\n    this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n  }\n  sendCommand(subscription, command) {\n    const {identifier: identifier} = subscription;\n    return this.consumer.send({\n      command: command,\n      identifier: identifier\n    });\n  }\n}\n\nclass Consumer {\n  constructor(url) {\n    this._url = url;\n    this.subscriptions = new Subscriptions(this);\n    this.connection = new Connection(this);\n    this.subprotocols = [];\n  }\n  get url() {\n    return createWebSocketURL(this._url);\n  }\n  send(data) {\n    return this.connection.send(data);\n  }\n  connect() {\n    return this.connection.open();\n  }\n  disconnect() {\n    return this.connection.close({\n      allowReconnect: false\n    });\n  }\n  ensureActiveConnection() {\n    if (!this.connection.isActive()) {\n      return this.connection.open();\n    }\n  }\n  addSubProtocol(subprotocol) {\n    this.subprotocols = [ ...this.subprotocols, subprotocol ];\n  }\n}\n\nfunction createWebSocketURL(url) {\n  if (typeof url === \"function\") {\n    url = url();\n  }\n  if (url && !/^wss?:/i.test(url)) {\n    const a = document.createElement(\"a\");\n    a.href = url;\n    a.href = a.href;\n    a.protocol = a.protocol.replace(\"http\", \"ws\");\n    return a.href;\n  } else {\n    return url;\n  }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n  return new Consumer(url);\n}\n\nfunction getConfig(name) {\n  const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n", "// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\"\n\nconst consumer = createConsumer()\n\ndocument.addEventListener(\"turbo:load\", () => {\n  if (document.querySelector('meta[name=\"reconnect-cable\"]')) {\n    consumer.disconnect();\n    consumer.connect();\n  }\n});\n\nexport default consumer\n", "import consumer from \"./consumer\"\n\ndocument.addEventListener(\"turbo:load\", () => {\n  const exportButton = document.getElementById(\"export-button\")\n  if (exportButton === null) {\n    return;\n  }\n\n  const profile_id = exportButton.dataset.profileId;\n\n  consumer.subscriptions.create({channel: \"ExportChannel\", profile_id: profile_id}, {\n    exportContainer: null,\n\n    initialized() {\n      this.exportContainer = document.getElementById(\"export-container\");\n    },\n\n    connected() {\n      const exportLoader = document.getElementById(\"exportLoader\");\n\n      exportButton.onclick = () => {\n        exportButton.classList.add(\"hidden\");\n        exportLoader.classList.remove(\"hidden\");\n      }\n    },\n\n    received(data) {\n      exportLoader.classList.add(\"hidden\");\n      exportButton.classList.remove(\"hidden\");\n\n      if (data.status === \"success\") {\n        const htmlLink = `<a href=\"${data.export_url}\" id=\"export-link\" class=\"underline\">Export - ${data.created_at}</a>`;\n        this.exportContainer.innerHTML = htmlLink;\n        document.getElementById(\"export-link\").click();\n      } else {\n        const htmlError = \"<p>An error occured. Please try again later.</p>\";\n        this.exportContainer.innerHTML = htmlError;\n      }\n    }\n  });\n});\n", "import \"@hotwired/turbo-rails\";\n\nimport \"./controllers\";\nimport \"./channels\";\n\nimport toastr from \"toastr\";\nwindow.toastr = toastr;\n"],
  "mappings": "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AA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AAAA,cAEA;AAAA,cACA;AAAA,cACA,CAAC,KAAK;AAAA,cACN;AAAA,YACF;AAAA,YACA;AAAA,cACE;AAAA;AA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,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA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C,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UACxf,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,IAAG,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UACrf,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAC5f,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,MAAK,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAC5f,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,KAAK;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,UAAE,KAAI,CAAC,IAAI;AAAA,QAAC,GAAE,KAAG;AAAA,UAAC,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACzd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YACrf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,0DAAyD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,WAAW;AAAA,YACxf,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,kBAAkB,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACre;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAuC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAC5e;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YACvf;AAAA,YAAK;AAAA,YAAE;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAQ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6DAA4D,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACzd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,qBAAoB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0DAAyD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0GAAyG,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAS;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,eAAe,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uFAAsF,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8DAA6D,EAAC,EAAC,EAAC,UAAU,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,MAAM,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAQ,CAAC,SAAS;AAAA,YAC1f;AAAA,UAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,OAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAC5F;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAa;AAAA,cAAC;AAAA,cAAC,CAAC,EAAE;AAAA,cAAE,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACnC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAc;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/K;AAAA,YAAM;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,kDAAkD,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAA2B;AAAA,cAAW;AAAA,gBAAC;AAAA,gBAAuF;AAAA,gBACzU;AAAA,gBAAkS;AAAA,cAA6W;AAAA,cAC/oB;AAAA,cAAM;AAAA,cAAC;AAAA,YAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,OAAM,EAAC,CAAC,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAgC;AAAA,cAAc;AAAA,gBAAC;AAAA,gBAAyB;AAAA,gBAA4F;AAAA,gBAC3V;AAAA,gBAA4S;AAAA,cAAsX;AAAA,cAClqB;AAAA,YAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,gBAAC;AAAA,gBAAC;AAAA,gBAA2B;AAAA,gBAAW;AAAA,kBAAC;AAAA,kBAAuF;AAAA,kBACzT;AAAA,kBAAkS;AAAA,gBAA6W;AAAA,gBAC/oB;AAAA,gBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,cAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,OAAM,EAAC,CAAC;AAAA,cAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK;AAAA,cAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,OAAM,EAAC,CAAC;AAAA,cAAE,CAAC,EAAC,iCAAgC,eAAc;AAAA,gBAAC;AAAA,gBAAyB;AAAA,gBAA4F;AAAA,gBAC3V;AAAA,gBAA4S;AAAA,cAAsX,CAAC;AAAA,cACnqB,CAAC,EAAC,iCAAgC,eAAc,CAAC,IAAI,CAAC;AAAA,cAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK;AAAA,cAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,GAAG,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qXAAoX,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAsD;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChf;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,eAAe,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAChf;AAAA,YAAQ,CAAC,QAAQ;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,0DAAyD,yDAAyD,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,gBAAgB,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,eAAe,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YACpf,CAAC,QAAQ;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,0DAAyD,yDAAyD,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,gBAAgB,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA+E;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kcAAic,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YACrf;AAAA,YAAC;AAAA,YAAoG;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,uDAAsD,KAAI,EAAC,EAAC,eAAc,EAAC,QAAO,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACre;AAAA,YAAQ,CAAC,IAAI;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,MAAM,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,GAAE,SAAQ,UAAU,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,cAAc,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,CAAC,CAAC,GAAE,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACle;AAAA,YAAQ,CAAC,IAAI;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,GAAE,SAAQ,UAAU,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,cAAc,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,GAAE,EAAC,CAAC,EAAC,EAAC,+DAA8D,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACle;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,4FAA2F,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,SAAS,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6FAA4F,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC;AAAA,YAAE;AAAA,YAAE;AAAA,YAAE;AAAA,YAAE;AAAA,YACpf;AAAA,YAAG;AAAA,YAAG;AAAA,UAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,uDAAsD,KAAI,EAAC,EAAC,KAAI,EAAC,MAAK,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,MAAK,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACrY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mHAAkH,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,GAAE;AAAA,YAAC;AAAA,YACpf;AAAA,YAAmC;AAAA,YAAc,CAAC,IAAI;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,kBAAiB,sBAAqB,2BAA2B,GAAE,OAAO,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,kBAAiB,sBAAqB,2BAA2B,GAAE,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmC;AAAA,YAC5e,CAAC,QAAQ;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,uJAAsJ,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YACvf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,cAAc,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,cAAc,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACnf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2IAA0I,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yHAAwH,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACle;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACje;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mFAAkF,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5J;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,gBAAgB,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ,CAAC,sLAAsL;AAAA,YACpjB;AAAA,UAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,cAAc,GAAE,KAAK,GAAE,CAAC,EAAC,mBAAkB,SAAQ,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sFAAqF,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gEAA+D,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,aAAa,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,sEAAqE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAA0B;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qGAAoG,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACvc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,8FAA6F,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,8BAA6B,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAQ,CAAC,iBAAiB;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,qCAAqC,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,YAAY,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,8BAA6B,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAChf,CAAC,iBAAiB;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,qCAAqC,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,YAAY,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACre;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iIAAgI,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,iGAAgG,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,oBAAoB,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YACpf;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAA+B;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4CAA2C,kBAAiB,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACld;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,CAAC,EAAC,EAAC,4GAA2G,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAA0C;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAC1e;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAE;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAC9e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sDAAqD,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,SAAS,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wNAAuN,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,eAAc,KAAI,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAgB;AAAA,YAAQ,CAAC,aAAa;AAAA,YAC9f;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,MAAM,GAAE,EAAC,SAAS,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,EAAC,SAAS,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8DAA6D,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,8EAA6E,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAQ,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yFAAwF,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mEAAkE,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wEAAuE,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,0CAAyC,KAAI,EAAC,EAAC,+DAA8D,MAAK,EAAC,EAAC,CAAC,CAAC,EAAC,cAAa,MAAK,CAAC,2EAA2E,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,wBAAuB,4BAA4B,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAS,0CAA0C,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA6B;AAAA,YAAW,CAAC,eAAe;AAAA,YAC1f;AAAA,UAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,4DAA4D,GAAE,QAAO,YAAY,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,oBAAoB,GAAE,QAAO,YAAY,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,wBAAuB,4BAA4B,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW,CAAC,4DAA4D;AAAA,YACzf;AAAA,YAAO;AAAA,UAAY,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,oBAAoB,GAAE,QAAO,YAAY,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,sEAAqE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6IAA4I,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAY,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2DAA0D,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,qBAAqB,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmC;AAAA,YAC7e,CAAC,YAAY;AAAA,UAAC,CAAC,GAAE,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,qBAAqB,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,YAAY,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,+KAA8K,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,gBAAgB,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oIAAmI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iLAAgL,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,OAAM,KAAI,EAAC,EAAC,SAAQ,EAAC,QAAO,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,MAAM,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,KAAK,GAAE,MAAM,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,qDAAoD,uFAAuF,GAAE,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpd;AAAA,YAAc,CAAC,yBAAyB;AAAA,YAAE;AAAA,UAAO,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,OAAO,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,GAAE,MAAM,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,+CAA+C,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iFAAgF,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnT;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,yNAAwN,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpZ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sEAAqE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2IAA0I,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACvc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,uDAAsD,KAAI,EAAC,EAAC,mBAAkB,OAAM,QAAO,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACrd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW,CAAC,MAAM;AAAA,YAC1f;AAAA,UAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UACvf,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,6EAA4E,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAuB;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,WAAW,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/d;AAAA,YAAiB,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,0FAAyF,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAgC;AAAA,YACxe,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iCAAgC,EAAC,EAAC,EAAC,OAAO,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,OAAO,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACtd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,IAAG,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,2bAA0b,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACve;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,0DAAyD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,2BAA2B,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,MAAM,GAAE,MAAM,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAwB;AAAA,YAAW,CAAC,SAAS;AAAA,YACvf;AAAA,UAAM,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,eAAe,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kDAAkD,GAAE,MAAM,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,MAAM,GAAE,MAAM,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/d;AAAA,YAAW,CAAC,SAAS;AAAA,YAAE;AAAA,UAAM,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,eAAe,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kDAAkD,GAAE,MAAM,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,yCAAwC,kBAAiB,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACzZ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,2EAA0E,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChP;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,8BAA6B,KAAI,EAAC,EAAC,6BAA4B,EAAC,MAAK,EAAC;AAAA,YAAC,CAAC,EAAC,cAAa,MAAK,CAAC,uBAAsB,2BAA0B,0BAA0B,CAAC;AAAA,YAAE,CAAC,EAAC,cAAa,MAAK,CAAC,yBAAwB,2BAA0B,6CAA6C,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAqB;AAAA,cAAQ;AAAA,gBAAC;AAAA,gBAC/Y;AAAA,gBAAkW;AAAA,gBAClW;AAAA,gBAA0X;AAAA,cAAsX;AAAA,cAChvB;AAAA,cAAM;AAAA,YAAQ;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ;AAAA,cAAC;AAAA,cAAQ;AAAA,cAAsD;AAAA,cAAiI;AAAA,cAC7O;AAAA,YAA+yB,CAAC;AAAA,YAChzB,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAqB;AAAA,cAAQ;AAAA,gBAAC;AAAA,gBAA+Q;AAAA,gBACxV;AAAA,gBAAqU;AAAA,cAAsU;AAAA,cAC3oB;AAAA,cAAM;AAAA,YAAQ;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ;AAAA,cAAC;AAAA,cAAQ;AAAA,cAAmF;AAAA,cACzI;AAAA,YAA4vB,CAAC;AAAA,YAC7vB,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,4BAA2B,4BAA2B,4DAA4D,GAAE,OAAM,UAAS,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,+LAA+L,GAAE,OAAM,UAAS,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cACpe;AAAA,cAAQ,CAAC,GAAG;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,OAAM,UAAS,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,OAAM,UAAS,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,GAAE,EAAC,QAAQ;AAAA,YAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,GAAE,OAAM,EAAC,CAAC;AAAA,UAAC,GAAE,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ;AAAA,cAAC;AAAA,cAC5T;AAAA,cAAkW;AAAA,cAClW;AAAA,cAA0X;AAAA,YAAsX;AAAA,YAChvB;AAAA,YAAM;AAAA,UAAQ,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ;AAAA,cAAC;AAAA,cAA+Q;AAAA,cAC/T;AAAA,cAAqU;AAAA,YAAsU;AAAA,YAC3oB;AAAA,YAAM;AAAA,UAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,4BAA2B,4BAA2B,4DAA4D,GAAE,OAAM,UAAS,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,+LAA+L,GAAE,OAAM,UAAS,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAQ,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,OAAM,UAAS,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,OAAM,UAAS,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,GAAE,OAAM,EAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6CAA4C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qJAAoJ,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,6BAA4B,KAAI,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAQ,CAAC,MAAM;AAAA,YAC3f;AAAA,YAAO;AAAA,UAAS,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,gBAAgB,GAAE,EAAC,SAAS,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,QAAO,SAAS,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,gBAAgB,GAAE,EAAC,SAAS,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iDAAgD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACtd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mEAAkE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,cAAc,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,EAAC,QAAQ,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,+FAA8F,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,aAAa,GAAE,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5e;AAAA,YAAQ,CAAC,GAAG;AAAA,YAAE;AAAA,UAAO,GAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6DAA4D,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,SAAS,GAAE,MAAK,KAAI,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5e;AAAA,YAAW,CAAC,SAAS;AAAA,UAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wHAAuH,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAC/e,CAAC,QAAQ;AAAA,UAAC,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,GAAE,QAAO,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sEAAqE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,6JAA4J,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/b;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,uDAAsD,KAAI,EAAC,EAAC,mBAAkB,OAAM,QAAO,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,UAAU,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,IAAG,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2C;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mFAAkF,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,gBAAgB,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmC;AAAA,YACnf,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,aAAa,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iMAAgM,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uFAAsF,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC;AAAA,YAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAsB;AAAA,cAC7e,CAAC,gBAAgB;AAAA,cAAE;AAAA,YAAK;AAAA,YAAE,CAAC,EAAC,YAAW,MAAK,CAAC,OAAM,MAAM,CAAC;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,uGAAsG,8GAA8G,GAAE,KAAK;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAsB;AAAA,cAAQ,CAAC,wGAAuG,0bAA0b;AAAA,cAC53B;AAAA,YAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,KAAK,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAO,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,QAAO,OAAO,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,GAAE,KAAK;AAAA,YACzf,CAAC,EAAC,oBAAmB,SAAQ,CAAC,aAAY,oBAAoB,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK;AAAA,UAAC,GAAE;AAAA,YAAC,CAAC,EAAC,uBAAsB,SAAQ,CAAC,gBAAgB,GAAE,KAAK;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAsB;AAAA,cAAQ,CAAC,uGAAsG,8GAA8G;AAAA,cACvlB;AAAA,YAAK;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAsB;AAAA,cAAQ,CAAC,wGAAuG,0bAA0b;AAAA,cACzkB;AAAA,YAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,KAAK,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAO,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,QAAO,OAAO,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,GAAE,KAAK;AAAA,YACzf,CAAC,EAAC,oBAAmB,SAAQ,CAAC,aAAY,oBAAoB,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAe;AAAA,YAAC;AAAA,YAAC,CAAC,IAAG,EAAE;AAAA,UAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5Z;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,oGAAmG,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAClc;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAa;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8DAA6D,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YACnf;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAQ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAC3K;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAa;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gFAA+E,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YACnf;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAe,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yDAAwD,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,qEAAoE,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YACnf;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2DAA0D,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAc;AAAA,YAAC;AAAA,YAAC,CAAC,IAAG,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,OAAO,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1M;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,oDAAmD,8EAA8E,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,uBAAsB,0BAA0B,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YACjf,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,0CAAyC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4FAA2F,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACtf;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,mBAAkB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,8BAA8B,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,qEAAoE,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW;AAAA,YACnf,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAU,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChf;AAAA,YAAW,CAAC,OAAO;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yLAAwL,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,qFAAoF,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW;AAAA,YACzf,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC;AAAA,YAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAClB;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gFAA+E,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,4EAA2E,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACzd;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAY;AAAA,cAAC;AAAA,cAAC,CAAC,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAsD;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAK;AAAA,YAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,UAAU,GAAE,KAAK,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,2BAA2B,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cACve;AAAA,cAAQ,CAAC,sBAAsB;AAAA,cAAE;AAAA,YAAK,GAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,mBAAkB,SAAQ,CAAC,wCAAwC,GAAE,KAAK,CAAC;AAAA,YAAE,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,UAAU,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,2BAA2B,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,sBAAsB,GAAE,KAAK,GAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,mBAAkB,SAAQ,CAAC,wCAAwC,GAAE,KAAK,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAE;AAAA,YAAiB,CAAC,EAAC,EAAC,qIAAqI;AAAA,YACrnB,CAAC,EAAC,EAAC,gJAA+I,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAK;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,YAAY,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,OAAO,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,OAAO,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACne;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,QAAQ,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAQ,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,QAAQ,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,OAAO,GAAE,EAAC,QAAQ,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4EAA2E,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,sDAAqD,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,MAAM,GAAE,CAAC,EAAC,yCAAwC,kBAAiB,CAAC,QAAQ,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,MAAM,GAAE,CAAC,EAAC,yCAAwC,kBAAiB,CAAC,QAAQ,GAAE,KAAK,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sEAAqE,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,2DAA0D,MAAK,EAAC,EAAC,CAAC,CAAC,EAAC,iCAAgC,eAAc,CAAC,OAAO,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5e;AAAA,YAAc,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,SAAS,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5O;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,6NAA4N,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,+DAA8D,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,MAAK,IAAG,MAAK,KAAI,MAAK,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,QAAO,SAAQ,UAAS,SAAS,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAM,QAAO,SAAQ,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,0BAAyB,sCAAqC,kDAAkD,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,wBAAwB,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAC9e,CAAC,uBAAsB,gCAAgC;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,6FAA4F,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/a;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,4EAA2E,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yFAAwF,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChT;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,cAAc,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACve;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,gDAA+C,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,aAAa,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,8DAA6D,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,6FAA4F,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sMAAqM,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,cAAc,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACre;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,oEAAmE,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,qEAAoE,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,QAAQ,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAQ,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,QAAQ,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,UAAU,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8HAA6H,EAAC,EAAC,EAAC,SAAS,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAuD;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yEAAwE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC9e;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oFAAmF,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,4GAA2G,EAAC,EAAC,EAAC,WAAW;AAAA,YAC7f,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,sDAAqD,EAAC,EAAC,EAAC,WAAW;AAAA,YACzf,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1a;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,4DAA4D,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1e;AAAA,YAAW,CAAC,GAAG;AAAA,UAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iCAAgC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAC7e,CAAC,GAAG;AAAA,UAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wOAAuO,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1Y;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAS,GAAE,MAAK,KAAI,OAAM,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wZAAuZ,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAc;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wEAAuE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAM,MAAM,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,gCAAgC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7a;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,0CAAyC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA6T;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7e;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gDAA+C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mGAAkG,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YACrf;AAAA,YAA6B;AAAA,YAAW,CAAC,UAAU;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,UAAU,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,UAAU,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8EAA6E,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,UAAU,GAAE;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,MAAK,EAAC,EAAC,MAAK,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,SAAS,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,sDAAsD,GAAE,SAAS,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAO,GAAE,OAAO,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,4BAA4B,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAkc;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,yDAAwD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,UAAS,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,cAAc,GAAE,OAAO,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,KAAK,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACze;AAAA,YAAQ,CAAC,QAAQ;AAAA,YAAE;AAAA,UAAO,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,IAAI,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YACjf,CAAC,cAAc;AAAA,YAAE;AAAA,UAAO,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,QAAQ,GAAE,OAAO,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,WAAW,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YACrf;AAAA,YAAC;AAAA,YAA4B;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2KAA0K,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxe;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,gCAAgC,GAAE,OAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,OAAO,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,GAAG,GAAE,OAAO,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,sBAAsB,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW,CAAC,IAAI;AAAA,YACtf;AAAA,UAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,OAAO,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,yFAAwF,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iDAAgD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC;AAAA,YAAE;AAAA,YACnf;AAAA,YAAE;AAAA,YAAG;AAAA,YAAG;AAAA,UAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,IAAG,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sKAAqK,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACne;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,MAAK,KAAI,iBAAgB,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,SAAS,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iCAAgC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yDAAwD,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,kEAAiE,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE;AAAA,YAAK;AAAA,YAClf;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAS;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAuB,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,+EAA8E,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpT;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,+BAA8B,6CAA4C,4CAA4C,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAM,MAAM,GAAE,EAAC,EAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAC/e,CAAC,KAAK;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,sCAAqC,4DAA2D,0FAA0F,GAAE,OAAM,EAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW;AAAA,cAAC;AAAA,cACrS;AAAA,cAAme;AAAA,YAAukB;AAAA,YAC1iC;AAAA,YAAM;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW;AAAA,YAAC;AAAA,YAAiK;AAAA,YACpN;AAAA,UAAiY,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW;AAAA,YAAC;AAAA,YACze;AAAA,UAAe,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,GAAE,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,+BAA8B,6CAA4C,4CAA4C,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAM,MAAM,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW;AAAA,YAAC;AAAA,YAAqC;AAAA,YACvd;AAAA,UAA0F,GAAE,OAAM,EAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW;AAAA,cAAC;AAAA,cAC/I;AAAA,cAAme;AAAA,YAAukB;AAAA,YAC1iC;AAAA,YAAM;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW;AAAA,YAAC;AAAA,YAAiK;AAAA,YACpN;AAAA,UAAiY,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW;AAAA,YAAC;AAAA,YACze;AAAA,UAAe,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,GAAE,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,8EAA8E,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACtf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YACvf;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uNAAsN,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC9Y;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,cAAa,MAAK,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,0EAA0E,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/Z;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,4EAA2E,EAAC,EAAC,EAAC,QAAO,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8JAA6J,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxW;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oFAAmF,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UACtf,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+FAA8F,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kHAAiH,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,cAAa,MAAK,CAAC,iBAAgB,yBAAyB,CAAC;AAAA,YACzf,CAAC,EAAC,YAAW,MAAK,CAAC,WAAW,CAAC;AAAA,YAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAO,CAAC;AAAA,YAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,yCAAwC,uDAAuD,CAAC;AAAA,YAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,gCAAgC,CAAC;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,CAAC;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,SAAS,CAAC;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,wBAAwB,CAAC;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,qBAAqB,CAAC;AAAA,YACpf,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,CAAC;AAAA,UAAC,GAAE,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,yCAAwC,uDAAuD,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,gCAAgC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,SAAS,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAW,CAAC,wBAAwB;AAAA,UAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,qBAAqB,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,GAAE,EAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACje;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,yGAAwG,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAY,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,8BAA6B,UAAS,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,6FAA4F,EAAC,EAAC,EAAC,YAAY,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yOAAwO,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjW;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,WAAU,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0CAAyC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5E;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,WAAW,GAAE,OAAO,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAoB;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,0DAAyD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yQAAwQ,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACne;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAa;AAAA,cAAC;AAAA,cAAC,CAAC,EAAE;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wGAAuG,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAA0C;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,QAAO,SAAQ,WAAW,CAAC,GAAE,CAAC,EAAC,eAAc,MAAK,CAAC,KAAK,CAAC,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAA2B;AAAA,cAAW,CAAC,eAAe;AAAA,cACnf;AAAA,YAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,wFAAuF,yKAAwK,sLAAsL,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAC7e;AAAA,cAAW,CAAC,IAAI;AAAA,cAAE;AAAA,YAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,6BAA4B,6CAA6C,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAA2B;AAAA,cAAW;AAAA,gBAAC;AAAA,gBAC1L;AAAA,gBACA;AAAA,cAAyvB;AAAA,cACzvB;AAAA,YAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kCAAkC,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAM,MAAM,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,CAAC;AAAA,YAC1f,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,eAAe,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAwB;AAAA,cAAW,CAAC,wFAAuF,yKAAwK,sLAAsL;AAAA,cAC7hB;AAAA,YAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,6BAA4B,6CAA6C,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAA2B;AAAA,cAAW;AAAA,gBAAC;AAAA,gBAC9N;AAAA,gBACA;AAAA,cAAyvB;AAAA,cACzvB;AAAA,YAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kCAAkC,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,GAAE,KAAK,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,+EAA+E;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACzd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uQAAsQ,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8GAA6G,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,qBAAqB,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,GAAE,KAAK,GAAE,CAAC,EAAC,mCAAkC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACjY;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAW;AAAA,cAAC;AAAA,cAAC,CAAC,GAAE,CAAC;AAAA,cAAE,CAAC,GAAE,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2JAA0J,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAW;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC;AAAA,YACzf;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wIAAuI,EAAC,EAAC,EAAC,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACvS;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAC9e,CAAC,QAAQ;AAAA,UAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnZ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,SAAQ,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW,CAAC,GAAG;AAAA,YACtf;AAAA,UAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4GAA2G,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAkF;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE;AAAA,YACnf,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,0FAAyF,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,uDAAsD,KAAI,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAK,CAAC,aAAY,cAAa,aAAa;AAAA,YACjgB;AAAA,UAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,8BAA8B,GAAE,OAAM,SAAS,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,GAAG,GAAE,OAAM,SAAS,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,OAAM,SAAS,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,OAAM,SAAS,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,OAAM,SAAS,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAM,MAAM,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW,CAAC,GAAG;AAAA,YAAE;AAAA,YACpf;AAAA,UAAS,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE;AAAA,YAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,8BAA8B,GAAE,OAAM,SAAS;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC;AAAA,YAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,GAAG,GAAE,OAAM,SAAS;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,OAAM,SAAS;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,OAAM,SAAS;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,OAAM,SAAS;AAAA,YAC7f,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,OAAM,SAAS;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,qFAAoF,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iFAAgF,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACld;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,+BAA+B,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA4H;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,yGAAwG,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC9R;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpO;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,6CAA4C,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,QAAO,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,WAAU,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACje;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,mBAAmB,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,+FAA8F,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,6DAA4D,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,+CAA+C,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kEAAiE,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC9b;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8FAA6F,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,SAAS,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,uBAAsB,yBAAyB,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,EAAC,QAAQ,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UACrf,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gHAA+G,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iCAAgC,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,WAAW;AAAA,YAC9f;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kFAAiF,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,YAAY,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1e;AAAA,YAAW,CAAC,SAAS;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAC9e;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,YAAU;AAAA,YAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAO;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,SAAS,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,QAAO,EAAC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,qBAAqB,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,UAAS,EAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACtf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0EAAyE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,+FAA8F,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,0CAAyC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACve;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE;AAAA,UAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,kEAAkE,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kEAAkE,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,oBAAoB,GAAE,EAAC,QAAQ,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1e;AAAA,YAAW,CAAC,gBAAgB;AAAA,YAAE;AAAA,YAAC;AAAA,UAAQ,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,8CAA6C,kBAAiB,CAAC,oBAAoB,GAAE,EAAC,QAAQ,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,iDAAiD,GAAE,EAAC,QAAQ,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,oFAAmF,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,cAAc,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpb;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qIAAoI,EAAC,EAAC,EAAC,WAAW,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACrd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,0CAA0C,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACle;AAAA,YAAiB,CAAC,MAAM;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,yCAAwC,kBAAiB,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU;AAAA,YACxf,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YACtf,CAAC,EAAC,EAAC,0DAAyD,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,4GAA2G,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,qBAAoB,QAAO,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACvf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yMAAwM,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxe;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,8BAA8B,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,iEAAgE,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,qBAAoB,8CAA8C,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YACrf,CAAC,EAAC,EAAC,qEAAoE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAClG;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAU;AAAA,cAAC;AAAA,cAAC,CAAC,GAAE,GAAE,GAAE,CAAC;AAAA,cAAE,CAAC,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oMAAmM,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAC/d;AAAA,cAAW,CAAC,mFAAmF;AAAA,cAAE;AAAA,YAAK,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,mBAAkB,kBAAkB,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,KAAK,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,6BAA6B,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,IAAI,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cACpf;AAAA,cAAwB;AAAA,cAAW,CAAC,GAAG;AAAA,cAAE;AAAA,YAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wIAAuI,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mEAAkE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,MAAK,KAAI,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,YAAY,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,uCAAsC,0CAA0C,GAAE,KAAK,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uGAAsG,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACzd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,+GAA8G,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpR;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iGAAgG,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,yBAAyB,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YACjf;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACvb;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,mBAAkB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,0EAAyE,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,UAAU,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAkE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAU,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4GAA2G,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACvb;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,wBAAuB,EAAC,EAAC,EAAC,EAAC,EAAC,OAAM,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,eAAe,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC;AAAA,YACnf;AAAA,UAAE,CAAC,GAAE,CAAC,EAAC,EAAC,sEAAqE,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UACnf,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,SAAS,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACvf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cAAkb;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACnf;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC,CAAC,GAAE,CAAC;AAAA,YAAC;AAAA,YAAE,CAAC,EAAC,EAAC,6aAA4a,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,YAAY;AAAA,YACxf,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAQ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAK;AAAA,YAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,CAAC;AAAA,YAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,aAAa,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAiC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf,CAAC,GAAE,GAAE,EAAE;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kYAAiY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACrb;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oGAAmG,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,gCAA+B,kDAAkD,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpe;AAAA,YAAW,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,eAAe,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACnf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,WAAW,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5P;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,UAAU,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,WAAW,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kGAAiG,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,sBAAsB,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,oBAAmB,OAAM,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC;AAAA,YAAG;AAAA,YAClf;AAAA,YAAG;AAAA,YAAG;AAAA,UAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mEAAkE,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sGAAqG,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAa,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7e;AAAA,YAAW,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAY,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,iGAAgG,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YACrf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gFAA+E,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxQ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,aAAa,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YACrf;AAAA,YAA2B;AAAA,YAAW,CAAC,yCAAyC;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,YAAY,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,yCAAyC,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,YAAY,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAW,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,6GAA4G,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8HAA6H,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yDAAwD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,GAAE,mBAAkB,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,OAAO,GAAE,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACve;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oHAAmH,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6CAA4C,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,iBAAgB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAQ,CAAC,mCAAmC;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,iBAAgB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,mCAAmC,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gDAA+C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAS,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5c;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,QAAO,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,SAAS;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACxf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iDAAgD,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iEAAgE,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACvf,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAG;AAAA,YAAa;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAK;AAAA,YAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,SAAS,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,kBAAiB,sBAAsB,GAAE,KAAK,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,2BAA2B,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,kBAAkB,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,UAAU,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAA6B;AAAA,cAAW,CAAC,wBAAwB;AAAA,cACzf;AAAA,YAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oEAAmE,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uDAAsD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAQ,CAAC,MAAM;AAAA,UAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACvP;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,+CAA8C,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAClf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mLAAkL,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,2BAA0B,KAAI,WAAU,EAAC,KAAI,EAAC,MAAK,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxe;AAAA,YAAQ,CAAC,IAAI;AAAA,YAAE;AAAA,UAAO,GAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,GAAG,GAAE,OAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YACrf;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,UAAU,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kEAAiE,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,cAAc,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1b;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uFAAsF,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,iBAAgB,SAAQ,CAAC,GAAG,GAAE,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ,CAAC,sEAAqE,qHAAqH;AAAA,YACtiB;AAAA,UAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,yBAAwB,+BAA+B,GAAE,OAAO,GAAE,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,cAAc,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,IAAG,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,sQAAqQ,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,GAAE,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ,CAAC,mJAAkJ,qKAAqK;AAAA,YACvf;AAAA,UAAO,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,4DAA4D,GAAE,OAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,OAAO,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,mDAAmD,GAAE,OAAO,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,GAAE,OAAO,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACva;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAc;AAAA,YAAC;AAAA,YAAC,CAAC,IAAG,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yDAAwD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8IAA6I,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0FAAyF,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YACrf;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,YAAW,MAAK,CAAC,IAAI,CAAC;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kFAAiF,iFAAiF,CAAC;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,gDAAgD,CAAC;AAAA,YAC3gB,CAAC,EAAC,oCAAmC,eAAc,CAAC,6BAA6B,CAAC;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC;AAAA,UAAC,GAAE,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,+CAA8C,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,QAAQ,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAe;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChe;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,WAAU,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAiC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,EAAE;AAAA,YACrf,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UACtf,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4EAA2E,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,2GAA0G,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,+DAA8D,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YACtf;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,YAAY,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,6CAA4C,EAAC,EAAC,EAAC,WAAW;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yFAAwF,EAAC,EAAC,EAAC,SAAS,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,UAAS,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpU;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,CAAC;AAAA,YAAE,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,6CAA4C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,YAAW,MAAK,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,uCAAuC,GAAE,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ,CAAC,wDAAwD;AAAA,YACjgB;AAAA,UAAO,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,sDAAsD,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,oBAAoB,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,uCAAuC,GAAE,OAAO,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAqB;AAAA,YAAQ,CAAC,wDAAwD;AAAA,YACniB;AAAA,UAAO,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,sDAAsD,GAAE,OAAO,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,oBAAoB,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC;AAAA,YACvf,CAAC,EAAC,EAAC,0CAAyC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACre;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,YAAW;AAAA,YAAE,CAAC,EAAC,EAAC,8GAA6G,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,QAAQ,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,SAAQ,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAQ,CAAC,UAAS,YAAY;AAAA,YACvf;AAAA,UAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yGAAwG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACva;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,sBAAsB,GAAE,KAAK,GAAE,CAAC,EAAC,uBAAsB,SAAQ,CAAC,QAAQ,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,WAAW,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACle;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,IAAG,EAAE;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,4MAA2M,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,QAAO,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACve;AAAA,YAAW,CAAC,QAAQ;AAAA,UAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,sBAAqB,sDAAqD,uEAAuE,GAAE,UAAS,EAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAgC;AAAA,YAAc,CAAC,uBAAsB,4EAA2E,4LAA4L;AAAA,YACzjB;AAAA,YAAS;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,0BAA0B,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,QAAQ,CAAC,GAAE,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,sBAAqB,sDAAqD,uEAAuE,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,iCAAgC,eAAc;AAAA,YAAC;AAAA,YAC/e;AAAA,YAA2E;AAAA,UAA4L,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,0BAA0B,GAAE,UAAS,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,QAAQ,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAC7e,CAAC,OAAO;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2DAA0D,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gDAA+C,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAC9e,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kDAAiD,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uHAAsH,EAAC,EAAC,EAAC,SAAS,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAc;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAQ;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,SAAQ,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,kCAAkC,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA4B;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,UAAS,GAAE,MAAK,KAAI,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,aAAa,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2EAA0E,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACzI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kEAAiE,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,iBAAiB,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAA2B;AAAA,YAAW,CAAC,wCAAwC;AAAA,YAC7gB;AAAA,UAAK,GAAE,CAAC,EAAC,mCAAkC,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,sHAAsH,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,GAAE,KAAK,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,mDAAmD,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1e;AAAA,YAAc,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,+EAA+E,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4CAA2C,kBAAiB,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,iBAAiB,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,wCAAwC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACjf;AAAA,YAAc,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,sHAAsH,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAe,CAAC,GAAE,CAAC,EAAC,sCAAqC,eAAc,CAAC,mDAAmD,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,GAAG,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACxd;AAAA,YAAc,CAAC,+EAA+E;AAAA,UAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4CAA2C,kBAAiB,CAAC,MAAM,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gDAA+C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,0EAAyE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,cAAa,MAAK,CAAC,eAAc,mCAAmC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,yBAAyB,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAClf;AAAA,YAAW,CAAC,GAAG;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,yBAAyB,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,iCAAgC,EAAC,EAAC,EAAC,OAAO;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACpf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAE;AAAA,YAAQ,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yEAAwE,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACpf,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yFAAwF,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAuB;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAK;AAAA,YAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,SAAS,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,uBAAuB,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,QAAQ,GAAE,OAAO,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,MAAK,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,OAAO,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpe;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,yHAAwH,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,8DAA6D,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA0B;AAAA,YAC7e,CAAC,IAAI;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAc,iBAAiB,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,CAAC,EAAC,2BAA0B,YAAW,CAAC,IAAI,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,eAAc,iBAAiB,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC1d;AAAA,YAAc,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,6DAA4D,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,6CAA4C,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,GAAE,OAAO,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAgB;AAAA,YAAS;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,WAAW,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC9e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mDAAkD,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,wDAAuD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACtd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,iHAAgH,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC;AAAA,YAAE,CAAC,EAAC,YAAW,MAAK,CAAC,OAAO,CAAC;AAAA,YAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,+BAA+B,CAAC;AAAA,YAAE,CAAC,EAAC,iBAAgB,SAAQ,CAAC,gBAAgB,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,gBAAgB,CAAC;AAAA,YACzf,CAAC,EAAC,sBAAqB,SAAQ,CAAC,6BAA6B,CAAC;AAAA,UAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC;AAAA,YACzf,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC;AAAA,UAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YACrf;AAAA,YAAC;AAAA,YAAoB;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,4CAA2C,EAAC,EAAC,EAAC,SAAS,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+CAA8C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA8F;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAW;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,yCAAwC,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAsC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,+CAA8C,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3Q;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,gBAAe,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gFAA+E,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACxd;AAAA,YAAW,CAAC,cAAc;AAAA,YAAE;AAAA,YAAM;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,OAAM,EAAC,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC;AAAA,YAC5f,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC;AAAA,UAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,MAAM,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,KAAI,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACne;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,sBAAqB,SAAQ,EAAC,EAAC,EAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,kCAAiC,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,SAAQ,EAAC,EAAC,EAAC,EAAC,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAA4C;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,sDAAqD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC9e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,WAAU,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAE;AAAA,YAAE;AAAA,YACpf;AAAA,UAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qEAAoE,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yHAAwH,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,OAAM,EAAC,EAAC,EAAC,EAAC,EAAC,QAAO,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,OAAM,MAAM,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,kBAAkB,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAwB;AAAA,YAC7e,CAAC,mBAAmB;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,MAAM,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,MAAM,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,YAAY,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC7Z;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAU,GAAE,CAAC,EAAC,EAAC,qBAAoB,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,QAAO,EAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,IAAI,GAAE,QAAQ,GAAE,CAAC,EAAC,iCAAgC,eAAc,CAAC,OAAO,GAAE,QAAQ,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,MAAM,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,UAAU;AAAA,YAC7f,CAAC,EAAC,EAAC,iFAAgF,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,UAAU,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/b;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAQ;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,mFAAkF,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,iCAAiC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,IAAG,IAAG,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,uIAAsI,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,4EAA2E,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,uCAAsC,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wBAAuB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,KAAK,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,iBAAiB,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,kBAAiB,sBAAqB,qBAAqB,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,kBAAkB,GAAE,SAAQ,EAAC,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,GAAE,OAAM,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,iBAAiB,GAAE,OAAM,EAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAc,CAAC,kBAAiB,sBAAqB,qBAAqB;AAAA,YAAE;AAAA,YAAM;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,kBAAkB,GAAE,SAAQ,EAAC,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,IAAI,GAAE,OAAM,EAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACta;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qGAAoG,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAA0O;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,uBAAsB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAQ,CAAC,GAAG;AAAA,UAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gDAA+C,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACrK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,GAAE,MAAK,KAAI,oBAAmB,KAAI,KAAI,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,KAAK,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACxe;AAAA,YAAW,CAAC,yCAAwC,8CAA8C;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAC7f,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAU;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,kCAAkC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC5d;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,YAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,OAAM,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,+DAA8D,iFAAiF,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAQ,CAAC,yFAAwF,mGAAmG;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,iBAAiB,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,+DAA8D,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,WAAU,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAM,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,yBAAyB,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,YAAE,CAAC,CAAC;AAAA,UAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnB;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3B;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,GAAE;AAAA,YAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,EAAC,EAAC,CAAC;AAAA,YACpf,CAAC,EAAC,oBAAmB,SAAQ,CAAC,2BAA2B,CAAC;AAAA,YAAE,CAAC,EAAC,4BAA2B,cAAa,CAAC,OAAO,GAAE,EAAC,EAAC,CAAC;AAAA,UAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,4DAA2D,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,0DAAyD,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAe;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAW;AAAA,YACpf;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,qCAAoC,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,oBAAmB,KAAI,UAAS,EAAC,KAAI,EAAC,MAAK,EAAC,CAAC,CAAC,EAAC,cAAa,MAAK,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,GAAG,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,SAAS,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,GAAG,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACle;AAAA,YAAc,CAAC,GAAG;AAAA,UAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2UAA0U,EAAC,EAAC,EAAC,WAAW;AAAA,YACzf;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACH;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,YAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oCAAmC,eAAc,CAAC,SAAS,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gFAA+E,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChe;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,kHAAiH,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,uBAAsB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,IAAG,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,SAAQ,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,mBAAkB,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,IAAG,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YACnf,CAAC,EAAC,EAAC,+FAA8F,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,mEAAkE,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,cACzU;AAAA,cAAC;AAAA,cAAC;AAAA,cAAC;AAAA,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,oBAAmB,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAE;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAmB;AAAA,YAAQ;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gEAA+D,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,6BAA4B,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAY;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACrf;AAAA,YAAK;AAAA,YAAG;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,UAAU,GAAE,OAAM,QAAQ,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,0FAAyF,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2OAA0O,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,sBAAqB,SAAQ,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,2JAA0J,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,YAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChU;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAY,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,GAAE,OAAM,KAAI,EAAC,EAAC,oBAAmB,SAAQ,EAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,OAAM,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,oDAAmD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2FAA0F,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACtd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAa;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,IAAI,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,GAAG,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,OAAM,EAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACve;AAAA,YAAW,CAAC,OAAO;AAAA,YAAE;AAAA,YAAM;AAAA,YAAC;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,OAAM,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,GAAG,GAAE,EAAC,EAAC,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,OAAM,EAAC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,OAAM,EAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACte;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yDAAwD,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,2BAA0B,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,OAAO;AAAA,YAAE;AAAA,YACpf;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sBAAqB,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,KAAI,MAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YACxf,CAAC,EAAC,EAAC,iDAAgD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,mCAAkC,EAAC,EAAC,EAAC,SAAQ,EAAC,EAAC,CAAC,GAAE,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,0CAAyC,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,UAAS,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,YAAW,MAAK,CAAC,cAAc,CAAC,GAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,MAAM,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YACpf,CAAC,EAAC,EAAC,iDAAgD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,qDAAoD,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,YAAW,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAC1e;AAAA,cAAQ,CAAC,GAAG;AAAA,cAAE;AAAA,YAAK,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,gCAA+B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,sFAAqF,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,kBAAiB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,2BAA0B,YAAW,CAAC,0BAA0B,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAW,CAAC,GAAG;AAAA,YAAE;AAAA,UAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,iDAAgD,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,8CAA6C,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,gFAA+E,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,oCAAmC,EAAC,EAAC,EAAC,WAAW;AAAA,YAAE;AAAA,YAAK;AAAA,YAAI;AAAA,YAAK;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACnf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oFAAmF,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3N;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,oGAAmG,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,MAAK,IAAG,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,QAAQ,GAAE,KAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,GAAE,KAAK,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC3e;AAAA,YAAW,CAAC,OAAO;AAAA,YAAE;AAAA,UAAK,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,sCAAqC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,8BAA6B,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,YAAW,EAAC,EAAC,EAAC,WAAW,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC;AAAA,YACvf,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,KAAK;AAAA,UAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,MAAM,GAAE,KAAK,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,GAAE,KAAK,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,IAAG,CAAC,EAAC,CAAC,EAAC,EAAC,yHAAwH,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACnb;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,CAAC;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,+BAA8B,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,iCAAgC,EAAC,EAAC,EAAC,WAAU,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,2CAA0C,EAAC,EAAC,EAAC,cAAa,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,MAAK,KAAI,MAAK,KAAI,EAAC,EAAC,KAAI,EAAC,EAAC,EAAC;AAAA,YAAC,CAAC,EAAC,sBAAqB,SAAQ,CAAC,wFAAwF,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,MAAM,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,GAAE,KAAK;AAAA,YACvf,CAAC,EAAC,oBAAmB,SAAQ,CAAC,8CAA6C,4EAA4E,GAAE,OAAO;AAAA,YAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,gDAA+C,+CAA+C,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,GAAG,GAAE,KAAK;AAAA,YAAE;AAAA,cAAC;AAAA,cAAC;AAAA,cAAqB;AAAA,cAAQ,CAAC,2IAA2I;AAAA,cAC9jB;AAAA,YAAK;AAAA,YAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,iBAAiB,GAAE,KAAK;AAAA,YAAE,CAAC,EAAC,sBAAqB,SAAQ,CAAC,cAAa,UAAU,GAAE,KAAK;AAAA,UAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,yBAAwB,EAAC,EAAC,EAAC,UAAU;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAM;AAAA,YAAI;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,KAAK,CAAC,CAAC;AAAA,YAAE;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,YACrf;AAAA,YAAC;AAAA,YAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC;AAAA,UAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,eAAc,EAAC,EAAC,EAAC,UAAU,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAE,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,wCAAuC,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAY;AAAA,YAAC;AAAA,YAAC,CAAC,CAAC;AAAA,UAAC,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,cAAc,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACre;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,0BAAyB,EAAC,EAAC,EAAC,WAAW,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,UAAU,CAAC,GAAE,CAAC,EAAC,2BAA0B,YAAW,CAAC,GAAG,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,wEAAuE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAChd;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAU;AAAA,YAAC;AAAA,YAAC,CAAC,GAAE,GAAE,GAAE,IAAG,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,iLAAgL,EAAC,EAAC,EAAC,cAAc,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,EAAC,oBAAmB,SAAQ,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,oBAAmB,SAAQ,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,SAAS,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,OAAO,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAC/e;AAAA,YAAW,CAAC,IAAI;AAAA,UAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,4BAA4B,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,8BAA6B,YAAW,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,iBAAgB,EAAC,EAAC,EAAC,eAAc,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,4BAA2B,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,GAAE,GAAE,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACjc;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,UAAW,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAE,CAAC,CAAC,EAAC,8BAA6B,YAAW,CAAC,mCAAmC,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,KAAK,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,IAAI,CAAC,GAAE,CAAC,EAAC,4BAA2B,YAAW,CAAC,QAAQ,CAAC,GAAE,CAAC,EAAC,oCAAmC,eAAc,CAAC,OAAO,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC;AAAA,YACpf;AAAA,YAAC;AAAA,YAAC;AAAA,YAAC,CAAC,EAAE;AAAA,UAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAE,CAAC,CAAC,EAAC,4BAA2B,UAAU,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,WAAU,EAAC,EAAC,EAAC,aAAa,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,UAAE,KAAI,CAAC,EAAC,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,gBAAe,EAAC,EAAC,EAAC,aAAY,EAAC,EAAC,EAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,OAAM,KAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAE,CAAC,CAAC,EAAC,yBAAwB,YAAW,CAAC,QAAQ,CAAC,CAAC,GAAE,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,GAAE,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAE,CAAC,CAAC;AAAA,QAAC;AAgBvf,iBAASC,KAAG;AAAC,eAAK,IAAE,CAAC;AAAA,QAAC;AAAC,QAAAA,GAAE,IAAE;AAAO,QAAAA,GAAE,IAAE,WAAU;AAAC,iBAAOA,GAAE,IAAEA,GAAE,IAAEA,GAAE,IAAE,IAAIA;AAAA,QAAC;AACzE,YAAI,KAAG,EAAC,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,IAAG,GAAE,KAAG;AAAA,UAAC,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UACrf,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,KAAI;AAAA,UAAI,KAAI;AAAA,UAAI,KAAI;AAAA,QAAG,GAAE,KAAG;AAAA,UAAC,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,UAAS;AAAA,UAAI,GAAE;AAAA,UACnf,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,UAAI,GAAE;AAAA,QAAG,GAAE,KAAG,OAAO,YAAY,GAAEC,KAAE,OAAO,aAAa,GAAE,KAAG,OAAO,gDAAgD,GAAE,KAAG,OAAO,qDAAqD,GAAE,KAAG,aAAY,KAAG,OAAO,wDAAwD,GAAE,KAAG,wBAAuB,KAAG,OAAO,iLAAiL,GAC5mB,KAAG,OAAO,gMAAgM;AAAE,iBAASC,GAAE9B,IAAE;AAAC,iBAAM,qDAAmDA,KAAE;AAAA,QAAI;AACzR,iBAAS,KAAI;AAAC,iBAAM,UAAQ8B,GAAE,IAAI,IAAE,qIAAyIA,GAAE,IAAI,IAAE,kGAAoGA,GAAE,GAAG,IAAE,eAAaA,GAAE,GAAG,IAAE,wDAA0DA,GAAE,IAAI,IAAE,qDAAuDA,GAAE,GAAG,IAAE;AAAA,QAAK;AACzb,YAAI,KAAG,IAAI,OAAO,QAAM,GAAG,IAAE,MAAK,GAAG,GAAE,KAAG,IAAI,OAAO,iaAAua,GAAG,IAAE,OAAM,GAAG,GAAE,KAAG,UAC/e,KAAG;AAAc,iBAAS,GAAG9B,IAAE;AAAC,iBAAO,IAAEA,GAAE,SAAO,QAAG+B,GAAE,IAAG/B,EAAC;AAAA,QAAC;AAAC,iBAAS,GAAGA,IAAE;AAAC,iBAAO+B,GAAE,IAAG/B,EAAC,IAAEgC,GAAEhC,IAAE,EAAE,IAAEgC,GAAEhC,IAAE,EAAE;AAAA,QAAC;AAAC,iBAAS,GAAGA,IAAE;AAAC,cAAIC,KAAE,GAAGD,GAAE,SAAS,CAAC;AAAE,UAAAsB,GAAEtB,EAAC;AAAE,UAAAA,GAAE,EAAEC,EAAC;AAAA,QAAC;AAAC,iBAAS,GAAGD,IAAE;AAAC,iBAAO,QAAMA,OAAI,KAAGgB,GAAEhB,IAAE,CAAC,KAAG,MAAIa,GAAEb,IAAE,CAAC,EAAE,CAAC;AAAA,QAAE;AAAC,iBAASgC,GAAEhC,IAAEC,IAAE;AAAC,mBAAQC,KAAE,IAAImB,MAAElB,IAAEE,KAAEL,GAAE,QAAOM,KAAE,GAAEA,KAAED,IAAE,EAAEC,GAAE,CAAAH,KAAEH,GAAE,OAAOM,EAAC,GAAEH,KAAEF,GAAEE,GAAE,YAAY,CAAC,GAAE,QAAMA,MAAGD,GAAE,EAAEC,EAAC;AAAE,iBAAOD,GAAE,SAAS;AAAA,QAAC;AAAC,iBAAS,GAAGF,IAAE;AAAC,iBAAO,KAAGA,GAAE,UAAQ,GAAG,KAAKA,EAAC;AAAA,QAAC;AAAC,iBAASiC,GAAEjC,IAAE;AAAC,iBAAO,QAAMA,MAAG,MAAMA,EAAC,KAAGA,GAAE,YAAY,KAAI;AAAA,QAAE;AACjc,QAAA4B,GAAE,UAAU,SAAO,SAAS5B,IAAEC,IAAE;AAAC,cAAG,KAAGU,GAAEX,IAAE,CAAC,KAAGU,GAAEV,IAAE,CAAC,GAAE;AAAC,gBAAIE,KAAEa,GAAEf,IAAE,CAAC;AAAE,gBAAG,IAAEE,GAAE,OAAO,QAAOA;AAAA,UAAC;AAAC,UAAAA,KAAEa,GAAEf,IAAE,CAAC;AAAE,cAAIG,KAAE+B,GAAElC,EAAC;AAAE,cAAG,KAAGC,GAAE,QAAO,GAAGC,IAAE,GAAEC,IAAE,EAAE;AAAE,cAAG,EAAED,MAAKyB,IAAG,QAAOxB;AAAE,cAAIE,KAAE8B,GAAE,MAAKjC,IAAEkC,GAAElC,EAAC,CAAC;AAAE,UAAAF,KAAEU,GAAEV,IAAE,CAAC,KAAG,KAAGW,GAAEX,IAAE,CAAC,EAAE,SAAO,KAAGC,KAAE,UAAQU,GAAEX,IAAE,CAAC,IAAEU,GAAEL,IAAE,EAAE,IAAEM,GAAEN,IAAE,EAAE,IAAEU,GAAEf,IAAE,CAAC,IAAE,WAASe,GAAEf,IAAE,CAAC,IAAE;AAAG,aAAE;AAAC,YAAAK,KAAE,KAAGQ,GAAER,IAAE,EAAE,EAAE,UAAQ,KAAGJ,KAAEY,GAAER,IAAE,EAAE,IAAEQ,GAAER,IAAE,EAAE;AAAE,qBAAQC,IAAEC,KAAEF,GAAE,QAAOG,KAAE,GAAEA,KAAED,IAAE,EAAEC,IAAE;AAAC,cAAAF,KAAED,GAAEG,EAAC;AAAE,kBAAI6B,KAAErB,GAAEV,IAAE,CAAC;AAAE,kBAAG,KAAG+B,MAAG,KAAGlC,GAAE,OAAOQ,GAAEL,IAAE,GAAE+B,KAAE,CAAC,CAAC;AAAE,oBAAGA,KAAE,IAAI,OAAO1B,GAAEL,IAAE,CAAC,CAAC,GAAEyB,GAAEM,IAAElC,EAAC,GAAE;AAAC,kBAAAE,KAAEC;AAAE,wBAAM;AAAA,gBAAC;AAAA;AAAA,YAAC;AAAC,YAAAD,KAAE;AAAA,UAAI;AAAC,kBAAMA,OAAIE,KAAEF,IAAEA,KAAEU,GAAER,IAAE,CAAC,GAAED,KAAE,IAAI,OAAOK,GAAEJ,IAAE,CAAC,CAAC,GAAEQ;AAAA,YAAER;AAAA,YACrf;AAAA,UAAC,GAAEA,KAAEQ,GAAER,IAAE,CAAC,GAAEJ,KAAE,KAAGF,MAAG,QAAMM,MAAG,IAAEA,GAAE,SAAOJ,GAAE,QAAQG,IAAED,GAAE,QAAQ,IAAGE,EAAC,CAAC,IAAEJ,GAAE,QAAQG,IAAED,EAAC,GAAE,KAAGJ,OAAIE,KAAEA,GAAE,QAAQ,OAAO,8HAAkI,GAAE,EAAE,GAAEA,KAAEA,GAAE,QAAQ,OAAO,+HAAkI,GAAG,GAAE,GAAG;AAAI,iBAAO,GAAGD,IAAED,IAAEE,IAAEH,EAAC;AAAA,QAAC;AAAE,iBAASmC,GAAEnC,IAAEC,IAAEC,IAAE;AAAC,iBAAM,SAAOA,KAAEoC,GAAEtC,IAAE,KAAGC,EAAC,IAAEqC,GAAEtC,IAAEE,EAAC;AAAA,QAAC;AAC5d,iBAASgC,GAAElC,IAAE;AAAC,cAAG,CAACU,GAAEV,IAAE,CAAC,EAAE,QAAM;AAAG,cAAIC,KAAE,KAAGU,GAAEX,IAAE,CAAC;AAAE,iBAAOU,GAAEV,IAAE,CAAC,KAAGW,GAAEX,IAAE,CAAC,KAAG,IAAEe,GAAEf,IAAE,CAAC,IAAE,MAAMe,GAAEf,IAAE,CAAC,IAAE,CAAC,EAAE,KAAK,GAAG,IAAEC,KAAEA;AAAA,QAAC;AAAC,iBAAS,GAAGD,IAAEC,IAAEC,IAAEC,IAAE;AAAC,kBAAOF,IAAE;AAAA,YAAC,KAAK;AAAE,qBAAM,MAAID,KAAEE,KAAEC;AAAA,YAAE,KAAK;AAAE,qBAAM,MAAIH,KAAE,MAAIE,KAAEC;AAAA,YAAE,KAAK;AAAE,qBAAM,UAAQH,KAAE,MAAIE,KAAEC;AAAA,YAAE;AAAQ,qBAAOD,KAAEC;AAAA,UAAC;AAAA,QAAC;AACnP,iBAASoC,GAAEvC,IAAEC,IAAE;AAAC,kBAAOA,IAAE;AAAA,YAAC,KAAK;AAAE,qBAAOU,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,EAAE;AAAA,YAAE,KAAK;AAAE,qBAAOW,GAAEX,IAAE,EAAE;AAAA,YAAE,KAAK;AAAG,qBAAOW,GAAEX,IAAE,EAAE;AAAA,YAAE;AAAQ,qBAAOW,GAAEX,IAAE,CAAC;AAAA,UAAC;AAAA,QAAC;AAAC,iBAAS,GAAGA,IAAEC,IAAE;AAAC,cAAIC,KAAE,GAAGF,IAAEC,EAAC;AAAE,UAAAD,KAAEmC,GAAEnC,IAAEe,GAAEd,IAAE,CAAC,GAAEC,EAAC;AAAE,cAAG,QAAMF,GAAE,QAAM;AAAG,UAAAC,KAAEiC,GAAEjC,EAAC;AAAE,iBAAO,GAAGA,IAAED,EAAC;AAAA,QAAC;AACtW,iBAAS,GAAGA,IAAEC,IAAE;AAAC,iBAAOuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,EAAE,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,EAAE,CAAC,IAAE,IAAEuC,GAAExC,IAAEW,GAAEV,IAAE,EAAE,CAAC,IAAE,KAAGuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAEU,GAAEV,IAAE,EAAE,KAAGuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAE,IAAE,CAACU,GAAEV,IAAE,EAAE,KAAGuC,GAAExC,IAAEW,GAAEV,IAAE,CAAC,CAAC,IAAE,IAAE,KAAG;AAAA,QAAE;AAAC,iBAASqC,GAAEtC,IAAEC,IAAE;AAAC,cAAG,QAAMA,GAAE,QAAO;AAAK,UAAAA,KAAEA,GAAE,YAAY;AAAE,cAAIC,KAAEF,GAAE,EAAEC,EAAC;AAAE,cAAG,QAAMC,IAAE;AAAC,YAAAA,KAAE,GAAGD,EAAC;AAAE,gBAAG,QAAMC,GAAE,QAAO;AAAK,YAAAA,KAAG,IAAIkB,KAAG,EAAEK,GAAE,EAAE,GAAEvB,EAAC;AAAE,YAAAF,GAAE,EAAEC,EAAC,IAAEC;AAAA,UAAC;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASsC,GAAExC,IAAEC,IAAE;AAAC,cAAIC,KAAEF,GAAE;AAAO,iBAAO,IAAEgB,GAAEf,IAAE,CAAC,KAAG,MAAIY,GAAEZ,IAAE,CAAC,EAAE,QAAQC,EAAC,IAAE,QAAG6B,GAAEhB,GAAEd,IAAE,CAAC,GAAED,EAAC;AAAA,QAAC;AACvc,iBAAS,GAAGA,IAAEC,IAAE;AAAC,cAAIC,KAAE,GAAGF,IAAEC,EAAC;AAAE,cAAIE,KAAEY,GAAEd,IAAE,CAAC;AAAE,cAAII,KAAE8B,GAAEnC,IAAEG,IAAED,EAAC;AAAE,kBAAMG,MAAG,SAAOH,MAAGC,MAAG,GAAGH,IAAEE,EAAC,IAAEG,KAAE,SAAIL,KAAEkC,GAAEjC,EAAC,GAAEI,KAAE,MAAI,GAAGL,IAAEK,EAAC;AAAG,iBAAOA;AAAA,QAAC;AAAC,iBAAS,GAAGL,IAAEC,IAAE;AAAC,cAAG,QAAMA,GAAE,QAAO;AAAK,cAAIC,KAAEa,GAAEd,IAAE,CAAC;AAAE,UAAAC,KAAEyB,GAAEzB,EAAC;AAAE,cAAG,QAAMA,GAAE,CAAAF,KAAE;AAAA,mBAAa,KAAGE,GAAE,OAAO,CAAAF,KAAEE,GAAE,CAAC;AAAA,cAAO,IAAE;AAAC,YAAAD,KAAEiC,GAAEjC,EAAC;AAAE,qBAAQE,IAAEE,KAAEH,GAAE,QAAOI,KAAE,GAAEA,KAAED,IAAEC,MAAI;AAAC,cAAAH,KAAED,GAAEI,EAAC;AAAE,kBAAIC,KAAE+B,GAAEtC,IAAEG,EAAC;AAAE,kBAAGO,GAAEH,IAAE,EAAE,GAAE;AAAC,oBAAG,KAAGN,GAAE,OAAOU,GAAEJ,IAAE,EAAE,CAAC,GAAE;AAAC,kBAAAP,KAAEG;AAAE,wBAAM;AAAA,gBAAC;AAAA,cAAC,WAAS,MAAI,GAAGF,IAAEM,EAAC,GAAE;AAAC,gBAAAP,KAAEG;AAAE,sBAAM;AAAA,cAAC;AAAA,YAAC;AAAC,YAAAH,KAAE;AAAA,UAAI;AAAC,iBAAOA;AAAA,QAAC;AAAC,iBAASoC,GAAEpC,IAAE;AAAC,UAAAA,KAAE2B,GAAE3B,EAAC;AAAE,iBAAO,QAAMA,KAAE,OAAKA,GAAE,CAAC;AAAA,QAAC;AAC7b,iBAAS,GAAGA,IAAEC,IAAE;AAAC,UAAAD,KAAEsC,GAAEtC,IAAEC,EAAC;AAAE,cAAG,QAAMD,GAAE,OAAM,MAAM,0BAAwBC,EAAC;AAAE,iBAAOc,GAAEf,IAAE,EAAE;AAAA,QAAC;AAAC,iBAASyC,GAAEzC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,cAAIE,KAAEkC,GAAErC,IAAEC,EAAC,GAAEG,KAAE,KAAGU,GAAEX,IAAE,CAAC,IAAEQ,GAAEF,GAAET,IAAE,CAAC,GAAE,CAAC,IAAEW,GAAER,IAAE,CAAC;AAAE,UAAAA,KAAEQ,GAAER,IAAE,EAAE;AAAE,cAAG,KAAGF,GAAE,KAAG,GAAGoC,GAAErC,IAAE,CAAC,CAAC,EAAE,CAAAF,KAAEuC,GAAErC,IAAE,CAAC,GAAE,GAAGF,EAAC,MAAIM,KAAEA,GAAE,OAAO,KAAGU,GAAEhB,IAAE,CAAC,IAAEa,GAAEF,GAAET,IAAE,CAAC,GAAE,CAAC,IAAEW,GAAEb,IAAE,CAAC,CAAC,GAAEM,GAAE,KAAK,GAAE,KAAGD,GAAE,SAAOA,KAAEQ,GAAEb,IAAE,EAAE,KAAGK,KAAEA,GAAE,OAAOQ,GAAEb,IAAE,EAAE,CAAC,GAAEK,GAAE,KAAK;AAAA,cAAS,QAAOoC,GAAEzC,IAAEC,IAAEC,IAAE,CAAC;AAAE,cAAG,MAAII,GAAE,CAAC,EAAE,QAAO;AAAE,UAAAL,KAAEA,GAAE;AAAO,cAAG,KAAGI,GAAE,QAAQJ,EAAC,EAAE,QAAO;AAAE,UAAAC,KAAEI,GAAE,CAAC;AAAE,iBAAOJ,MAAGD,KAAE,IAAEC,KAAED,KAAE,IAAEK,GAAEA,GAAE,SAAO,CAAC,IAAEL,KAAE,IAAE,KAAGK,GAAE,QAAQL,IAAE,CAAC,IAAE,IAAE;AAAA,QAAC;AACzc,iBAASyC,GAAE1C,IAAEC,IAAEC,IAAE;AAAC,cAAIC,KAAE+B,GAAEjC,EAAC;AAAE,UAAAA,KAAEc,GAAEd,IAAE,CAAC;AAAE,cAAG,EAAEA,MAAK0B,IAAG,QAAO;AAAE,UAAA1B,KAAEkC,GAAEnC,IAAEC,IAAEmC,GAAEnC,EAAC,CAAC;AAAE,iBAAOwC,GAAEzC,IAAEG,IAAEF,IAAEC,EAAC;AAAA,QAAC;AAAC,iBAAS,GAAGF,IAAEC,IAAE;AAAC,UAAAD,KAAEA,GAAE,SAAS;AAAE,cAAG,KAAGA,GAAE,UAAQ,OAAKA,GAAE,OAAO,CAAC,EAAE,QAAO;AAAE,mBAAQE,IAAEC,KAAEH,GAAE,QAAOK,KAAE,GAAE,KAAGA,MAAGA,MAAGF,IAAE,EAAEE,GAAE,KAAGH,KAAE,SAASF,GAAE,UAAU,GAAEK,EAAC,GAAE,EAAE,GAAEH,MAAKyB,GAAE,QAAO1B,GAAE,EAAED,GAAE,UAAUK,EAAC,CAAC,GAAEH;AAAE,iBAAO;AAAA,QAAC;AAC7R,iBAAS,GAAGF,IAAEC,IAAEC,IAAEC,IAAEE,IAAEC,IAAE;AAAC,cAAG,KAAGL,GAAE,OAAO,QAAO;AAAE,UAAAA,KAAE,IAAIoB,GAAEpB,EAAC;AAAE,cAAIM;AAAE,kBAAML,OAAIK,KAAEI,GAAET,IAAE,EAAE;AAAG,kBAAMK,OAAIA,KAAE;AAAY,cAAIC,KAAEP,GAAE,SAAS;AAAE,cAAG,KAAGO,GAAE,OAAO,CAAAD,KAAE;AAAA,mBAAWsB,GAAE,KAAKrB,EAAC,EAAE,CAAAA,KAAEA,GAAE,QAAQqB,IAAE,EAAE,GAAEP,GAAErB,EAAC,GAAEA,GAAE,EAAE,GAAGO,EAAC,CAAC,GAAED,KAAE;AAAA,eAAM;AAAC,YAAAC,KAAE,IAAI,OAAOD,EAAC;AAAE,eAAGN,EAAC;AAAE,YAAAM,KAAEN,GAAE,SAAS;AAAE,gBAAG,KAAGM,GAAE,OAAOC,EAAC,GAAE;AAAC,cAAAA,KAAED,GAAE,MAAMC,EAAC,EAAE,CAAC,EAAE;AAAO,kBAAI6B,KAAE9B,GAAE,UAAUC,EAAC,EAAE,MAAM,EAAE;AAAE,cAAA6B,MAAG,QAAMA,GAAE,CAAC,KAAG,IAAEA,GAAE,CAAC,EAAE,UAAQ,OAAKL,GAAEK,GAAE,CAAC,GAAE,EAAE,IAAE9B,KAAE,SAAIe,GAAErB,EAAC,GAAEA,GAAE,EAAEM,GAAE,UAAUC,EAAC,CAAC,GAAED,KAAE;AAAA,YAAG,MAAM,CAAAA,KAAE;AAAG,YAAAA,KAAEA,KAAE,IAAE;AAAA,UAAE;AAAC,UAAAF,MAAGO,GAAEN,IAAE,GAAEC,EAAC;AAAE,cAAG,MAAIA,IAAE;AAAC,gBAAG,KAAGN,GAAE,EAAE,OAAO,OAAM,MAAM,kCAAkC;AAC5f,YAAAD,KAAE,GAAGC,IAAEE,EAAC;AAAE,gBAAG,KAAGH,GAAE,QAAOY,GAAEN,IAAE,GAAEN,EAAC,GAAEA;AAAE,kBAAM,MAAM,8BAA8B;AAAA,UAAE;AAAC,cAAG,QAAME,OAAIK,KAAEQ,GAAEb,IAAE,EAAE,GAAEM,KAAE,KAAGD,IAAE8B,KAAEpC,GAAE,SAAS,GAAE,KAAGoC,GAAE,YAAY7B,IAAE,CAAC,MAAIA,KAAE,IAAIa,GAAEgB,GAAE,UAAU7B,GAAE,MAAM,CAAC,GAAE6B,KAAE1B,GAAET,IAAE,CAAC,GAAEmC,KAAE,IAAI,OAAOtB,GAAEsB,IAAE,CAAC,CAAC,GAAE,GAAG7B,IAAEN,IAAE,IAAI,GAAEM,KAAEA,GAAE,SAAS,GAAE,CAACuB,GAAEM,IAAEpC,GAAE,SAAS,CAAC,KAAG8B,GAAEM,IAAE7B,EAAC,KAAG,KAAGiC,GAAEzC,IAAEC,GAAE,SAAS,GAAEC,IAAE,EAAE,IAAI,QAAOC,GAAE,EAAEK,EAAC,GAAEH,MAAGO,GAAEN,IAAE,GAAE,EAAE,GAAEM,GAAEN,IAAE,GAAEC,EAAC,GAAEA;AAAE,UAAAK,GAAEN,IAAE,GAAE,CAAC;AAAE,iBAAO;AAAA,QAAC;AAC9V,iBAAS,GAAGN,IAAEC,IAAEC,IAAE;AAAC,cAAIC,KAAEH,GAAE,SAAS,GAAEK,KAAEF,GAAE,QAAOG,KAAEK,GAAEV,IAAE,EAAE;AAAE,cAAG,KAAGI,MAAG,QAAMC,MAAG,KAAGA,GAAE,QAAO;AAAC,gBAAIC,KAAE,IAAI,OAAO,SAAOD,KAAE,GAAG;AAAE,gBAAGD,KAAEE,GAAE,KAAKJ,EAAC,GAAE;AAAC,cAAAG,KAAE,IAAI,OAAOS,GAAEJ,GAAEV,IAAE,CAAC,GAAE,CAAC,CAAC;AAAE,kBAAIO,KAAEuB,GAAEzB,IAAEH,EAAC,GAAEkC,KAAEhC,GAAE,SAAO;AAAE,cAAAJ,KAAEU,GAAEV,IAAE,EAAE;AAAE,kBAAG,QAAMA,MAAG,KAAGA,GAAE,UAAQ,QAAMI,GAAEgC,EAAC,KAAG,KAAGhC,GAAEgC,EAAC,EAAE,QAAO;AAAC,oBAAG,CAAC7B,MAAGuB,GAAEzB,IAAEH,GAAE,UAAUE,GAAE,CAAC,EAAE,MAAM,CAAC,EAAE,SAAMH,MAAG,IAAEmC,MAAG,QAAMhC,GAAEgC,EAAC,KAAGnC,GAAE,EAAEG,GAAE,CAAC,CAAC,GAAEL,GAAE,IAAIG,GAAE,UAAUE,GAAE,CAAC,EAAE,MAAM,CAAC;AAAA,cAAC,WAASF,KAAEA,GAAE,QAAQI,IAAEN,EAAC,GAAE,CAACO,MAAGuB,GAAEzB,IAAEH,EAAC,EAAE,SAAMD,MAAG,IAAEmC,MAAGnC,GAAE,EAAEG,GAAE,CAAC,CAAC,GAAEL,GAAE,IAAIG,EAAC;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC;AAC3a,iBAASwC,GAAE3C,IAAEC,IAAEC,IAAE;AAAC,cAAG,CAAC+B,GAAE/B,EAAC,KAAG,IAAED,GAAE,UAAQ,OAAKA,GAAE,OAAO,CAAC,EAAE,OAAM,MAAM,8BAA8B;AAAE,iBAAO,GAAGD,IAAEC,IAAEC,IAAE,IAAE;AAAA,QAAC;AACxH,iBAAS,GAAGF,IAAEC,IAAEC,IAAEC,IAAE;AAAC,cAAG,QAAMF,GAAE,OAAM,MAAM,uDAAuD;AAAE,cAAG,MAAIA,GAAE,OAAO,OAAM,MAAM,sDAAsD;AAAE,cAAII,KAAE,IAAIgB;AAAE,cAAIf,KAAEL,GAAE,QAAQ,iBAAiB;AAAE,cAAG,OAAKK,GAAE,CAAAA,KAAE;AAAA,mBAAaA,MAAG,IAAGA,MAAGL,GAAE,OAAO,CAAAK,KAAE;AAAA,eAAO;AAAC,gBAAIC,KAAEN,GAAE,QAAQ,KAAIK,EAAC;AAAE,YAAAA,KAAE,OAAKC,KAAEN,GAAE,UAAUK,IAAEC,EAAC,IAAEN,GAAE,UAAUK,EAAC;AAAA,UAAC;AAAC,cAAIE,KAAEF;AAAE,kBAAME,KAAED,KAAE,OAAG,MAAIC,GAAE,SAAOD,KAAE,SAAIA,KAAE,GAAG,KAAKC,EAAC,GAAEA,KAAE,GAAG,KAAKA,EAAC,GAAED,KAAE,SAAOA,MAAG,SAAOC;AAAG,cAAG,CAACD,GAAE,OAAM,MAAM,uDAAuD;AAC9f,kBAAMD,MAAG,QAAMA,GAAE,OAAO,CAAC,KAAGD,GAAE,EAAEC,EAAC,GAAEA,KAAEL,GAAE,QAAQ,MAAM,GAAEI,GAAE,EAAEJ,GAAE,UAAU,KAAGK,KAAEA,KAAE,IAAE,GAAEL,GAAE,QAAQ,iBAAiB,CAAC,CAAC,MAAIK,KAAED,GAAE,GAAEE,KAAEN,MAAG,IAAGO,KAAED,GAAE,OAAO,EAAE,GAAE,KAAGC,MAAGD,KAAEA,GAAE,UAAUC,EAAC,GAAED,KAAEA,GAAE,QAAQ,IAAG,EAAE,GAAEC,KAAED,GAAE,OAAO,EAAE,GAAE,KAAGC,OAAID,KAAEA,GAAE,UAAU,GAAEC,EAAC,MAAID,KAAE,IAAGD,GAAE,KAAKD,IAAEE,EAAC;AAAG,UAAAD,KAAED,GAAE,SAAS;AAAE,UAAAE,KAAED,GAAE,QAAQ,QAAQ;AAAE,cAAEC,OAAIe,GAAEjB,EAAC,GAAEA,GAAE,EAAEC,GAAE,UAAU,GAAEC,EAAC,CAAC;AAAG,cAAG,CAAC,GAAGF,GAAE,SAAS,CAAC,EAAE,OAAM,MAAM,uDAAuD;AAAE,UAAAC,KAAED,GAAE,SAAS;AAAE,cAAG,EAAE4B,GAAE/B,EAAC,KAAG,QAAMI,MAAG,IAAEA,GAAE,UAAQuB,GAAE,KAAKvB,EAAC,GAAG,OAAM,MAAM,8BAA8B;AAC5f,UAAAA,KAAE,IAAIoB;AAAE,UAAAvB,MAAGS,GAAEN,IAAE,GAAEL,EAAC;AAAE,aAAE;AAAC,YAAAA,KAAEI,GAAE,SAAS;AAAE,YAAAE,KAAEN,GAAE,OAAO,EAAE;AAAE,gBAAG,KAAGM,MAAG,GAAGN,GAAE,UAAU,GAAEM,EAAC,CAAC,GAAE;AAAC,cAAAC,KAAEP,GAAE,MAAM,EAAE;AAAE,uBAAQoC,KAAE7B,GAAE,QAAOoC,KAAE,GAAEA,KAAEP,IAAE,EAAEO,GAAE,KAAG,QAAMpC,GAAEoC,EAAC,KAAG,IAAEpC,GAAEoC,EAAC,EAAE,QAAO;AAAC,gBAAAtB,GAAEjB,EAAC;AAAE,gBAAAA,GAAE,EAAEJ,GAAE,UAAU,GAAEM,EAAC,CAAC;AAAE,gBAAAN,KAAEO,GAAEoC,EAAC;AAAE,sBAAM;AAAA,cAAC;AAAA,YAAC;AAAC,YAAA3C,KAAE;AAAA,UAAE;AAAC,cAAEA,GAAE,UAAQW,GAAEN,IAAE,GAAEL,EAAC;AAAE,UAAAM,KAAE+B,GAAEtC,IAAEE,EAAC;AAAE,UAAAD,KAAE,IAAIoB;AAAE,UAAAb,KAAE;AAAE,UAAA6B,KAAEhC,GAAE,SAAS;AAAE,cAAG;AAAC,YAAAG,KAAE,GAAGR,IAAEqC,IAAE9B,IAAEN,IAAEE,IAAEG,EAAC;AAAA,UAAC,SAAO,IAAG;AAAC,gBAAG,kCAAgC,GAAG,WAASuB,GAAE,KAAKQ,EAAC,GAAE;AAAC,kBAAGA,KAAEA,GAAE,QAAQR,IAAE,EAAE,GAAErB,KAAE,GAAGR,IAAEqC,IAAE9B,IAAEN,IAAEE,IAAEG,EAAC,GAAE,KAAGE,GAAE,OAAM;AAAA,YAAG,MAAM,OAAM;AAAA,UAAG;AAAC,eAAGA,MAAGH,KAAE+B,GAAE5B,EAAC,GAAEH,MAAGH,OAAIK,KAAE4B,GAAEnC,IAAEQ,IAAEH,EAAC,OAAK,GAAGA,EAAC,GAAEJ,GAAE,EAAEI,GAAE,SAAS,CAAC,GAAE,QAAMH,MAAGM,KAAEO,GAAER,IAAE,EAAE,GAAEK;AAAA,YAAEN;AAAA,YACtf;AAAA,YAAEE;AAAA,UAAC,KAAGL,OAAI,OAAOG,GAAE,EAAE,CAAC,GAAEA,GAAE,KAAG,OAAOA,GAAE,EAAE,CAAC;AAAI,cAAG,IAAEL,GAAE,EAAE,OAAO,OAAM,MAAM,uDAAuD;AAAE,kBAAMM,OAAIL,KAAE,IAAImB,MAAEhB,KAAE,IAAIgB,GAAEpB,GAAE,SAAS,CAAC,GAAE,GAAGI,IAAEE,IAAEL,EAAC,GAAEF,KAAEyC,GAAEzC,IAAEK,GAAE,SAAS,GAAEE,IAAE,EAAE,GAAE,KAAGP,MAAG,KAAGA,MAAG,KAAGA,OAAIC,KAAEI,IAAEF,MAAG,IAAED,GAAE,SAAS,EAAE,UAAQU,GAAEN,IAAE,GAAEJ,GAAE,SAAS,CAAC;AAAI,UAAAC,KAAEF,GAAE,SAAS;AAAE,UAAAD,KAAEG,GAAE;AAAO,cAAG,IAAEH,GAAE,OAAM,MAAM,uDAAuD;AAAE,cAAG,KAAGA,GAAE,OAAM,MAAM,sDAAsD;AAAE,cAAG,IAAEG,GAAE,UAAQ,OAAKA,GAAE,OAAO,CAAC,GAAE;AAAC,YAAAS,GAAEN,IAAE,GAAE,IAAE;AAAE,iBAAIN,KACrf,GAAEA,KAAEG,GAAE,SAAO,KAAG,OAAKA,GAAE,OAAOH,EAAC,IAAG,CAAAA;AAAI,iBAAGA,MAAGY,GAAEN,IAAE,GAAEN,EAAC;AAAA,UAAC;AAAC,UAAAY,GAAEN,IAAE,GAAE,SAASH,IAAE,EAAE,CAAC;AAAE,iBAAOG;AAAA,QAAC;AAAC,iBAASyB,GAAE/B,IAAEC,IAAE;AAAC,kBAAOD,KAAEC,GAAE,MAAM,IAAI,OAAO,UAAQ,YAAU,OAAOD,KAAEA,KAAEA,GAAE,UAAQ,MAAK,GAAG,CAAC,MAAIA,GAAE,CAAC,EAAE,UAAQC,GAAE,SAAO,OAAG;AAAA,QAAE;AAAC;AAAC,iBAAS,GAAGD,IAAE;AAAC,eAAK,KAAG,OAAO,QAAQ;AAAE,eAAK,KAAG;AAAG,eAAK,IAAE,IAAIqB;AAAE,eAAK,KAAG;AAAG,eAAK,IAAE,IAAIA;AAAE,eAAK,KAAG,IAAIA;AAAE,eAAK,IAAE;AAAG,eAAK,KAAG,KAAK,KAAG,KAAK,KAAG;AAAG,eAAK,KAAGO,GAAE,EAAE;AAAE,eAAK,IAAE;AAAE,eAAK,IAAE,IAAIP;AAAE,eAAK,KAAG;AAAG,eAAK,IAAE;AAAG,eAAK,IAAE,IAAIA;AAAE,eAAK,IAAE,CAAC;AAAE,eAAK,KAAGrB;AAAE,eAAK,IAAE,GAAG,MAAK,KAAK,EAAE;AAAA,QAAC;AAAC,YAAI,KAAG,IAAIyB;AAAE,QAAAb,GAAE,IAAG,IAAG,IAAI;AACve,YAAI,KAAG,OAAO,kYAA8Y,GAAE,KAAG;AACja,iBAAS,GAAGZ,IAAEC,IAAE;AAAC,cAAIC,KAAEF,GAAE;AAAG,UAAAC,KAAEgC,GAAEhC,EAAC,IAAE,GAAGC,IAAED,EAAC,IAAE;AAAE,UAAAD,KAAEsC,GAAEtC,GAAE,IAAGoC,GAAEnC,EAAC,CAAC;AAAE,iBAAO,QAAMD,KAAEA,KAAE;AAAA,QAAE;AAAC,iBAAS,GAAGA,IAAE;AAAC,mBAAQC,KAAED,GAAE,EAAE,QAAOE,KAAE,GAAEA,KAAED,IAAE,EAAEC,IAAE;AAAC,gBAAIC,KAAEH,GAAE,EAAEE,EAAC,GAAEG,KAAEU,GAAEZ,IAAE,CAAC;AAAE,gBAAGH,GAAE,MAAIK,GAAE,QAAM;AAAG,gBAAIC,KAAEN;AAAE,gBAAIO,KAAEJ,IAAEK,KAAEO,GAAER,IAAE,CAAC;AAAE,YAAAe,GAAEhB,GAAE,CAAC;AAAE,gBAAI+B,KAAE/B;AAAE,YAAAC,KAAEQ,GAAER,IAAE,CAAC;AAAE,gBAAIqC,KAAE,kBAAkB,MAAMpC,EAAC,EAAE,CAAC;AAAE,YAAAoC,GAAE,SAAOP,GAAE,EAAE,EAAE,SAAOA,KAAE,MAAIA,KAAEO,GAAE,QAAQ,IAAI,OAAOpC,IAAE,GAAG,GAAED,EAAC,GAAE8B,KAAEA,GAAE,QAAQ,OAAO,KAAI,GAAG,GAAE,QAAQ;AAAG,gBAAEA,GAAE,UAAQ/B,GAAE,EAAE,EAAE+B,EAAC,GAAE/B,KAAE,QAAIA,KAAE;AAAG,gBAAGA,GAAE,QAAON,GAAE,KAAGK,IAAEL,GAAE,KAAG,GAAG,KAAKW,GAAER,IAAE,CAAC,CAAC,GAAEH,GAAE,IAAE,GAAE;AAAA,UAAE;AAAC,iBAAOA,GAAE,IAAE;AAAA,QAAE;AAClc,iBAAS,GAAGA,IAAEC,IAAE;AAAC,mBAAQC,KAAE,CAAC,GAAEC,KAAEF,GAAE,SAAO,GAAEI,KAAEL,GAAE,EAAE,QAAOM,KAAE,GAAEA,KAAED,IAAE,EAAEC,IAAE;AAAC,gBAAIC,KAAEP,GAAE,EAAEM,EAAC;AAAE,iBAAGU,GAAET,IAAE,CAAC,IAAEL,GAAE,KAAKF,GAAE,EAAEM,EAAC,CAAC,KAAGC,KAAEI,GAAEJ,IAAE,GAAE,KAAK,IAAIJ,IAAEa,GAAET,IAAE,CAAC,IAAE,CAAC,CAAC,GAAE,KAAGN,GAAE,OAAOM,EAAC,KAAGL,GAAE,KAAKF,GAAE,EAAEM,EAAC,CAAC;AAAA,UAAE;AAAC,UAAAN,GAAE,IAAEE;AAAA,QAAC;AAC/K,iBAAS,GAAGF,IAAEC,IAAE;AAAC,UAAAD,GAAE,EAAE,EAAEC,EAAC;AAAE,cAAIC,KAAED;AAAE,aAAG,KAAKC,EAAC,KAAG,KAAGF,GAAE,EAAE,EAAE,UAAQ,GAAG,KAAKE,EAAC,KAAG,OAAKD,MAAGC,KAAED,IAAED,GAAE,GAAG,EAAEC,EAAC,MAAIC,KAAE,GAAGD,EAAC,GAAED,GAAE,GAAG,EAAEE,EAAC,GAAEF,GAAE,EAAE,EAAEE,EAAC,IAAGD,KAAEC,OAAIF,GAAE,IAAE,OAAGA,GAAE,KAAG;AAAI,cAAG,CAACA,GAAE,GAAE;AAAC,gBAAG,CAACA,GAAE;AAAG,kBAAG,GAAGA,EAAC,GAAE;AAAC,oBAAG,GAAGA,EAAC,EAAE,QAAO,GAAGA,EAAC;AAAA,cAAC,WAAS,IAAEA,GAAE,EAAE,WAASC,KAAED,GAAE,EAAE,SAAS,GAAEsB,GAAEtB,GAAE,CAAC,GAAEA,GAAE,EAAE,EAAEA,GAAE,CAAC,GAAEA,GAAE,EAAE,EAAEC,EAAC,GAAEA,KAAED,GAAE,EAAE,SAAS,GAAEE,KAAED,GAAE,YAAYD,GAAE,CAAC,GAAEsB,GAAEtB,GAAE,CAAC,GAAEA,GAAE,EAAE,EAAEC,GAAE,UAAU,GAAEC,EAAC,CAAC,IAAGF,GAAE,KAAG,GAAGA,EAAC,EAAE,QAAOA,GAAE,EAAE,EAAE,GAAG,GAAE,GAAGA,EAAC;AAAA;AAAE,mBAAOA,GAAE,EAAE,SAAS;AAAA,UAAC;AAAC,kBAAOA,GAAE,GAAG,EAAE,QAAO;AAAA,YAAC,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAOA,GAAE,EAAE,SAAS;AAAA,YAAE,KAAK;AAAE,kBAAG,GAAGA,EAAC,EAAE,CAAAA,GAAE,KAAG;AAAA,kBAAQ,QAAOA,GAAE,IAAE,GAAGA,EAAC,GACtf,GAAGA,EAAC;AAAA,YAAE;AAAQ,kBAAGA,GAAE,GAAG,QAAO,GAAGA,EAAC,MAAIA,GAAE,KAAG,QAAIA,GAAE,EAAE,SAAS,IAAEA,GAAE,EAAE,SAAS;AAAE,kBAAG,IAAEA,GAAE,EAAE,QAAO;AAAC,gBAAAC,KAAE,GAAGD,IAAEC,EAAC;AAAE,gBAAAC,KAAE,GAAGF,EAAC;AAAE,oBAAG,IAAEE,GAAE,OAAO,QAAOA;AAAE,mBAAGF,IAAEA,GAAE,EAAE,SAAS,CAAC;AAAE,uBAAO,GAAGA,EAAC,IAAE,GAAGA,EAAC,IAAEA,GAAE,IAAE6C,GAAE7C,IAAEC,EAAC,IAAED,GAAE,EAAE,SAAS;AAAA,cAAC;AAAC,qBAAO,GAAGA,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,iBAAS,GAAGA,IAAE;AAAC,UAAAA,GAAE,IAAE;AAAG,UAAAA,GAAE,KAAG;AAAG,UAAAA,GAAE,IAAE,CAAC;AAAE,UAAAA,GAAE,IAAE;AAAE,UAAAsB,GAAEtB,GAAE,CAAC;AAAE,UAAAA,GAAE,KAAG;AAAG,iBAAO,GAAGA,EAAC;AAAA,QAAC;AAC5R,iBAAS,GAAGA,IAAE;AAAC,mBAAQC,KAAED,GAAE,EAAE,SAAS,GAAEE,KAAEF,GAAE,EAAE,QAAOG,KAAE,GAAEA,KAAED,IAAE,EAAEC,IAAE;AAAC,gBAAIE,KAAEL,GAAE,EAAEG,EAAC,GAAEG,KAAES,GAAEV,IAAE,CAAC;AAAE,gBAAI,IAAI,OAAO,SAAOC,KAAE,IAAI,EAAG,KAAKL,EAAC,MAAID,GAAE,KAAG,GAAG,KAAKW,GAAEN,IAAE,CAAC,CAAC,GAAEA,KAAEJ,GAAE,QAAQ,IAAI,OAAOK,IAAE,GAAG,GAAEK,GAAEN,IAAE,CAAC,CAAC,GAAEA,KAAEwC,GAAE7C,IAAEK,EAAC,GAAE2B,GAAE3B,IAAE,EAAE,KAAGL,GAAE,IAAI,QAAOK;AAAA,UAAC;AAAC,iBAAM;AAAA,QAAE;AAAC,iBAASwC,GAAE7C,IAAEC,IAAE;AAAC,cAAIC,KAAEF,GAAE,EAAE,EAAE;AAAO,iBAAOA,GAAE,MAAI,IAAEE,MAAG,OAAKF,GAAE,EAAE,SAAS,EAAE,OAAOE,KAAE,CAAC,IAAEF,GAAE,IAAE,MAAIC,KAAED,GAAE,IAAEC;AAAA,QAAC;AAC1U,iBAAS,GAAGD,IAAE;AAAC,cAAIC,KAAED,GAAE,EAAE,SAAS;AAAE,cAAG,KAAGC,GAAE,QAAO;AAAC,qBAAQC,KAAEF,GAAE,MAAI,KAAGA,GAAE,EAAE,UAAQ,IAAEgB,GAAEhB,GAAE,GAAE,EAAE,IAAEa,GAAEb,GAAE,GAAE,EAAE,IAAEa,GAAEb,GAAE,GAAE,EAAE,GAAEG,KAAED,GAAE,QAAOG,KAAE,GAAEA,KAAEF,IAAE,EAAEE,IAAE;AAAC,kBAAIC,KAAEJ,GAAEG,EAAC;AAAE,kBAAEL,GAAE,EAAE,UAAQ,GAAGe,GAAET,IAAE,CAAC,CAAC,KAAG,CAACK,GAAEL,IAAE,CAAC,KAAG,CAACI,GAAEJ,IAAE,CAAC,MAAI,KAAGN,GAAE,EAAE,UAAQA,GAAE,MAAI,GAAGe,GAAET,IAAE,CAAC,CAAC,KAAGK,GAAEL,IAAE,CAAC,MAAI,GAAG,KAAKS,GAAET,IAAE,CAAC,CAAC,KAAGN,GAAE,EAAE,KAAKM,EAAC;AAAA,YAAC;AAAC,eAAGN,IAAEC,EAAC;AAAE,YAAAA,KAAE,GAAGD,EAAC;AAAE,mBAAO,IAAEC,GAAE,SAAOA,KAAE,GAAGD,EAAC,IAAE,GAAGA,EAAC,IAAEA,GAAE,EAAE,SAAS;AAAA,UAAC;AAAC,iBAAO6C,GAAE7C,IAAEC,EAAC;AAAA,QAAC;AAAC,iBAAS,GAAGD,IAAE;AAAC,cAAIC,KAAED,GAAE,EAAE,SAAS,GAAEE,KAAED,GAAE;AAAO,cAAG,IAAEC,IAAE;AAAC,qBAAQC,KAAE,IAAGE,KAAE,GAAEA,KAAEH,IAAEG,KAAI,CAAAF,KAAE,GAAGH,IAAEC,GAAE,OAAOI,EAAC,CAAC;AAAE,mBAAOL,GAAE,IAAE6C,GAAE7C,IAAEG,EAAC,IAAEH,GAAE,EAAE,SAAS;AAAA,UAAC;AAAC,iBAAOA,GAAE,EAAE,SAAS;AAAA,QAAC;AACjf,iBAAS,GAAGA,IAAE;AAAC,cAAIC,KAAED,GAAE,EAAE,SAAS,GAAEE,KAAE;AAAE,cAAG,KAAGS,GAAEX,GAAE,GAAE,EAAE,EAAE,KAAIG,KAAE;AAAA,cAAQ,CAAAA,KAAEH,GAAE,EAAE,SAAS,GAAEG,KAAE,OAAKA,GAAE,OAAO,CAAC,KAAG,OAAKA,GAAE,OAAO,CAAC,KAAG,OAAKA,GAAE,OAAO,CAAC;AAAE,UAAAA,MAAGD,KAAE,GAAEF,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAEA,GAAE,KAAG,QAAIU,GAAEV,GAAE,GAAE,EAAE,MAAIG,KAAE,IAAI,OAAO,SAAOQ,GAAEX,GAAE,GAAE,EAAE,IAAE,GAAG,GAAEG,KAAEF,GAAE,MAAME,EAAC,GAAE,QAAMA,MAAG,QAAMA,GAAE,CAAC,KAAG,IAAEA,GAAE,CAAC,EAAE,WAASH,GAAE,KAAG,MAAGE,KAAEC,GAAE,CAAC,EAAE,QAAOH,GAAE,EAAE,EAAEC,GAAE,UAAU,GAAEC,EAAC,CAAC;AAAI,UAAAoB,GAAEtB,GAAE,CAAC;AAAE,UAAAA,GAAE,EAAE,EAAEC,GAAE,UAAUC,EAAC,CAAC;AAAE,iBAAOD,GAAE,UAAU,GAAEC,EAAC;AAAA,QAAC;AACrX,iBAAS,GAAGF,IAAE;AAAC,cAAIC,KAAED,GAAE,GAAG,SAAS,GAAEE,KAAE,IAAI,OAAO,aAAWS,GAAEX,GAAE,GAAE,EAAE,IAAE,GAAG;AAAE,UAAAE,KAAED,GAAE,MAAMC,EAAC;AAAE,iBAAO,QAAMA,MAAG,QAAMA,GAAE,CAAC,KAAG,IAAEA,GAAE,CAAC,EAAE,UAAQF,GAAE,KAAG,MAAGE,KAAEA,GAAE,CAAC,EAAE,QAAOoB,GAAEtB,GAAE,CAAC,GAAEA,GAAE,EAAE,EAAEC,GAAE,UAAUC,EAAC,CAAC,GAAEoB,GAAEtB,GAAE,CAAC,GAAEA,GAAE,EAAE,EAAEC,GAAE,UAAU,GAAEC,EAAC,CAAC,GAAE,OAAKD,GAAE,OAAO,CAAC,KAAGD,GAAE,EAAE,EAAE,GAAG,GAAE,QAAI;AAAA,QAAE;AAAC,iBAAS,GAAGA,IAAE;AAAC,cAAG,KAAGA,GAAE,EAAE,EAAE,OAAO,QAAM;AAAG,cAAIC,KAAE,IAAIoB,MAAEnB,KAAE,GAAGF,GAAE,GAAEC,EAAC;AAAE,cAAG,KAAGC,GAAE,QAAM;AAAG,UAAAoB,GAAEtB,GAAE,CAAC;AAAE,UAAAA,GAAE,EAAE,EAAEC,GAAE,SAAS,CAAC;AAAE,UAAAA,KAAEmC,GAAElC,EAAC;AAAE,mBAAOD,KAAED,GAAE,IAAEsC,GAAEtC,GAAE,IAAG,KAAGE,EAAC,IAAED,MAAGD,GAAE,OAAKA,GAAE,IAAE,GAAGA,IAAEC,EAAC;AAAG,UAAAD,GAAE,EAAE,EAAE,KAAGE,EAAC,EAAE,EAAE,GAAG;AAAE,UAAAF,GAAE,IAAE;AAAG,iBAAM;AAAA,QAAE;AACnc,iBAAS,GAAGA,IAAEC,IAAE;AAAC,cAAIC,KAAEF,GAAE,EAAE,SAAS;AAAE,cAAG,KAAGE,GAAE,UAAUF,GAAE,CAAC,EAAE,OAAOA,GAAE,EAAE,GAAE;AAAC,gBAAIG,KAAED,GAAE,OAAOF,GAAE,EAAE;AAAE,YAAAC,KAAEC,GAAE,QAAQF,GAAE,IAAGC,EAAC;AAAE,YAAAqB,GAAEtB,GAAE,CAAC;AAAE,YAAAA,GAAE,EAAE,EAAEC,EAAC;AAAE,YAAAD,GAAE,IAAEG;AAAE,mBAAOF,GAAE,UAAU,GAAED,GAAE,IAAE,CAAC;AAAA,UAAC;AAAC,eAAGA,GAAE,EAAE,WAASA,GAAE,IAAE;AAAI,UAAAA,GAAE,KAAG;AAAG,iBAAOA,GAAE,EAAE,SAAS;AAAA,QAAC;AAAC;AAAC,cAAM,KAAG,CAAAA,OAAG;AAAC,gBAAMC,KAAE,CAAC;AAAE,UAAAD,GAAE,SAAS,sBAAsB,KAAGA,GAAE,SAAS,QAAQ,KAAGC,GAAE,KAAK,QAAQ,GAAED,GAAE,SAAS,YAAY,KAAGC,GAAE,KAAK,YAAY,MAAID,GAAE,SAAS,QAAQ,KAAGA,GAAE,SAAS,YAAY,MAAIC,GAAE,KAAK,sBAAsB;AAAE,iBAAOD,GAAE,OAAOC,EAAC;AAAA,QAAC,GAAE,KAAG,EAAC,YAAW,GAAE,QAAO,GAAE,sBAAqB,GAAE,WAAU,GAAE,cAAa,GAAE,aAAY,GAAE,MAAK,GAAE,iBAAgB,GAAE,OAAM,GAAE,KAAI,GAAE,WAAU,IAAG,SAAQ,GAAE;AAAE,QAAAF,GAAE,yBAAwB,CAAC,CAAC;AAC3oB,QAAAA,GAAE,+CAA8C,CAACC,IAAEC,OAAI;AAAC,cAAG;AAAC,kBAAMC,KAAEF,GAAE,QAAQ,YAAW,EAAE,GAAEG,KAAE,IAAI,GAAGF,EAAC;AAAE,YAAAA,KAAE;AAAG,qBAAQI,KAAE,GAAEA,KAAEH,GAAE,QAAOG,KAAI,CAAAF,GAAE,KAAG,GAAGA,IAAED,GAAE,OAAOG,EAAC,CAAC,GAAEJ,KAAEE,GAAE;AAAG,mBAAOF;AAAA,UAAC,QAAM;AAAC,mBAAOD;AAAA,UAAC;AAAA,QAAC,CAAC;AAAE,QAAAD,GAAE,sCAAqC,CAACC,IAAEC,IAAEC,OAAI;AAAC,cAAG;AAAC,kBAAMG,KAAEuB,GAAE,EAAE,GAAEtB,KAAEqC,GAAEtC,IAAEL,IAAEC,EAAC;AAAE,gBAAIE,KAAEuC,GAAErC,IAAEC,IAAE,EAAE;AAAE,mBAAO,KAAGH,MAAG,KAAGA,KAAEE,GAAE,OAAOC,IAAE,gBAAc,OAAOJ,KAAE,IAAEA,EAAC,IAAEF;AAAA,UAAC,QAAM;AAAC,mBAAOA;AAAA,UAAC;AAAA,QAAC,CAAC;AAC3W,QAAAD,GAAE,0CAAyC,CAACC,IAAEC,IAAEC,IAAEC,OAAI;AAAC,cAAG;AAAC,kBAAMkC,KAAET,GAAE,EAAE;AAAE,eAAE;AAAC,kBAAIvB,KAAEgC;AAAE,kBAAGJ,GAAEjC,EAAC,GAAE;AAAC,oBAAIM,KAAEiC,GAAED,GAAEjC,IAAEL,EAAC,GAAEE,EAAC;AAAE,oBAAG;AAAC,sBAAGQ,GAAEJ,IAAE,CAAC,GAAE;AAAC,wBAAIC,KAAEI,GAAEL,IAAE,CAAC;AAAE,wBAAIE,KAAE,GAAGH,IAAEE,IAAEP,IAAE,KAAE;AAAE,0BAAM;AAAA,kBAAC;AAAA,gBAAC,SAAO4C,IAAE;AAAA,gBAAC;AAAA,cAAC;AAAC,cAAApC,KAAE;AAAA,YAAI;AAAC,mBAAO6B,GAAE,OAAO7B,IAAEL,KAAE,IAAEF,KAAE,IAAE,CAAC;AAAA,UAAC,QAAM;AAAC,mBAAM;AAAA,UAAE;AAAA,QAAC,CAAC;AAAE,QAAAF,GAAE,sCAAqC,CAACC,IAAEC,OAAI;AAAC,cAAG;AAAC,mBAAOU,GAAEgC,GAAEf,GAAE,EAAE,GAAE5B,IAAEC,EAAC,GAAE,CAAC;AAAA,UAAC,QAAM;AAAC,mBAAM;AAAA,UAAE;AAAA,QAAC,CAAC;AAAE,QAAAF,GAAE,uCAAsC,CAACC,IAAEC,OAAI;AAAC,cAAG;AAAC,kBAAMC,KAAE0B,GAAE,EAAE,GAAEzB,KAAEwC,GAAEzC,IAAEF,IAAEC,EAAC;AAAE,mBAAO,GAAGC,IAAEC,EAAC;AAAA,UAAC,QAAM;AAAC,mBAAM;AAAA,UAAG;AAAA,QAAC,CAAC;AACnb,QAAAJ,GAAE,4CAA2C,CAACC,IAAEC,OAAI;AAAC,cAAG,CAACA,GAAE,QAAO;AAAE,cAAG;AAAC,kBAAMC,KAAE0B,GAAE,EAAE,GAAEzB,KAAEwC,GAAEzC,IAAEF,IAAEC,EAAC;AAAE,mBAAOyC,GAAExC,IAAEC,IAAE,EAAE;AAAA,UAAC,SAAOD,IAAE;AAAC,mBAAM,mCAAiCA,GAAE,UAAQ,IAAE,KAAGF,GAAE,UAAQ,uCAAqCE,GAAE,WAAS,4DAA0DA,GAAE,UAAQ,IAAE,2DAAyDA,GAAE,UAAQ,IAAE;AAAA,UAAG;AAAA,QAAC,CAAC;AAC3X,QAAAH,GAAE,uCAAsC,CAACC,IAAEC,IAAEC,OAAI;AAAC,cAAG;AAAC,kBAAMC,KAAEyB,GAAE,EAAE,GAAEvB,KAAEsC,GAAExC,IAAEH,IAAEC,EAAC,GAAEK,KAAE,GAAGH,IAAEE,EAAC;AAAE,gBAAGH,IAAE;AAAC,oBAAMK,KAAE,GAAGL,EAAC,EAAE,IAAI,CAAAM,OAAG,GAAGA,EAAC,CAAC;AAAE,qBAAOF,MAAGC,GAAE,SAAS,GAAGJ,IAAEE,EAAC,CAAC;AAAA,YAAC;AAAC,mBAAOC;AAAA,UAAC,QAAM;AAAC,mBAAM;AAAA,UAAE;AAAA,QAAC,CAAC;AAAE,QAAAP,GAAE,0CAAyC,CAACC,IAAEC,IAAEC,OAAI;AAAC,cAAG;AAAC,kBAAMC,KAAEyB,GAAE,EAAE,GAAEvB,KAAEsC,GAAExC,IAAEH,IAAEC,EAAC;AAAE,gBAAGC,IAAE;AAAC,oBAAMI,KAAE,GAAGJ,EAAC;AAAE,uBAAQK,MAAKD,GAAE,KAAG,MAAIoC,GAAEvC,IAAEE,IAAE,GAAGE,EAAC,CAAC,EAAE,QAAM;AAAG,qBAAM;AAAA,YAAE;AAAC,mBAAO,MAAImC,GAAEvC,IAAEE,IAAE,EAAE;AAAA,UAAC,QAAM;AAAC,mBAAM;AAAA,UAAE;AAAA,QAAC,CAAC;AAAE,QAAAN,GAAE,uCAAsC,CAACC,IAAEC,OAAI;AAAC,cAAG;AAAC,mBAAOU,GAAEgC,GAAEf,GAAE,EAAE,GAAE5B,IAAEC,EAAC,GAAE,CAAC,EAAE,SAAS;AAAA,UAAC,QAAM;AAAC,mBAAM;AAAA,UAAE;AAAA,QAAC,CAAC;AAC9d,QAAAF,GAAE,sCAAqC,EAAC,MAAK,GAAE,eAAc,GAAE,UAAS,GAAE,SAAQ,EAAC,CAAC;AAAE,QAAAA,GAAE,oCAAmC,EAAE;AAAE,QAAAA,GAAE,yCAAwC,EAAC,aAAY,GAAE,sBAAqB,GAAE,WAAU,GAAE,UAAS,GAAE,wBAAuB,GAAE,gBAAe,EAAC,CAAC;AAAA,MAAE,GAAG;AACrR,MAAM,gBAAgB,OAAO,WAAW,cAAc,SAAS,OAAO,WAAW,cAAc,SAAS,OAAO,SAAS,cAAc,OAAO;AAC7I,MAAM,QAAQ,cAAc;AAC5B,aAAO,cAAc;AACrB,MAAO,gBAAQ;AAAA;AAAA;;;ACthBf,GAAC,WAAY;AACT,QAAI,OAAO,YAAY,UAAa,OAAO,mBAAmB,UAC1D,OAAO,eAAe,2BAA2B;AACjD;AAAA,IACJ;AACA,UAAM,qBAAqB;AAC3B,UAAM,oBAAoB;AAAA,MACtB,eAAe,SAAS+C,eAAc;AAClC,eAAO,QAAQ,UAAU,oBAAoB,CAAC,GAAG,KAAK,WAAW;AAAA,MACrE;AAAA,IACJ;AACA,WAAO,cACH,kBAAkB,aAAa;AACnC,gBAAY,YAAY,mBAAmB;AAC3C,gBAAY,UAAU,cAAc;AACpC,WAAO,eAAe,aAAa,kBAAkB;AAAA,EACzD,GAAG;AA0BH,GAAC,SAAS,WAAW;AACnB,QAAI,OAAO,UAAU,iBAAiB,WAAY;AAElD,cAAU,gBAAgB,SAAS,WAAW;AAC5C,UAAI,WAAW;AACb,0BAAkB,WAAW,IAAI;AACjC,kBAAU,MAAM;AAAA,MAClB,OAAO;AACL,oBAAY,SAAS,cAAc,OAAO;AAC1C,kBAAU,OAAO;AACjB,kBAAU,SAAS;AACnB,aAAK,YAAY,SAAS;AAC1B,kBAAU,MAAM;AAChB,aAAK,YAAY,SAAS;AAAA,MAC5B;AAAA,IACF;AAEA,aAAS,kBAAkB,WAAW,MAAM;AAC1C,2BAAqB,eAAe,MAAM,WAAW,0CAA0C;AAC/F,gBAAU,QAAQ,YAAY,MAAM,WAAW,8CAA8C;AAC7F,gBAAU,QAAQ,QAAQ,MAAM,cAAc,2DAA2D,eAAe;AAAA,IAC1H;AAEA,aAAS,MAAM,kBAAkB,SAAS,MAAM;AAC9C,YAAM,IAAI,iBAAiB,6DAA6D,UAAU,KAAK,IAAI;AAAA,IAC7G;AAAA,EACF,GAAG,gBAAgB,SAAS;AAE5B,MAAM,mBAAmB,oBAAI;AAC7B,WAAS,6BAA6B,QAAQ;AAC1C,UAAM,UAAU,kBAAkB,UAAU,SAAS,kBAAkB,OAAO,OAAO,gBAAgB;AACrG,UAAM,YAAY,UAAU,QAAQ,QAAQ,eAAe,IAAI;AAC/D,YAAQ,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,SAAS,WAAW,YAAY;AAAA,EAC5G;AACA,WAAS,cAAc,OAAO;AAC1B,UAAM,YAAY,6BAA6B,MAAM,MAAM;AAC3D,QAAI,aAAa,UAAU,MAAM;AAC7B,uBAAiB,IAAI,UAAU,MAAM,SAAS;AAAA,IAClD;AAAA,EACJ;AACA,GAAC,WAAY;AACT,QAAI,eAAe,MAAM;AACrB;AACJ,QAAI;AACJ,QAAI,iBAAiB,UAAU,iBAAiB,KAAK,UAAU,MAAM,GAAG;AACpE,kBAAY,OAAO,YAAY;AAAA,IACnC,WACS,iBAAiB,QAAQ;AAC9B;AAAA,IACJ,OACK;AACD,kBAAY,OAAO,MAAM;AAAA,IAC7B;AACA,qBAAiB,SAAS,eAAe,IAAI;AAC7C,WAAO,eAAe,WAAW,aAAa;AAAA,MAC1C,MAAM;AACF,YAAI,KAAK,QAAQ,YAAY,KAAK,kBAAkB,iBAAiB;AACjE,iBAAO,iBAAiB,IAAI,KAAK,MAAM;AAAA,QAC3C;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL,GAAG;AAEH,MAAI;AACJ,GAAC,SAAUC,oBAAmB;AAC1B,IAAAA,mBAAkB,OAAO,IAAI;AAC7B,IAAAA,mBAAkB,MAAM,IAAI;AAAA,EAChC,GAAG,sBAAsB,oBAAoB,CAAC,EAAE;AAChD,MAAM,eAAN,MAAM,sBAAqB,YAAY;AAAA,IACnC,cAAc;AACV,YAAM;AACN,WAAK,SAAS,QAAQ,QAAQ;AAC9B,WAAK,WAAW,IAAI,cAAa,oBAAoB,IAAI;AAAA,IAC7D;AAAA,IACA,WAAW,qBAAqB;AAC5B,aAAO,CAAC,YAAY,WAAW,KAAK;AAAA,IACxC;AAAA,IACA,oBAAoB;AAChB,WAAK,SAAS,QAAQ;AAAA,IAC1B;AAAA,IACA,uBAAuB;AACnB,WAAK,SAAS,WAAW;AAAA,IAC7B;AAAA,IACA,SAAS;AACL,YAAM,EAAE,IAAI,IAAI;AAChB,WAAK,MAAM;AACX,WAAK,MAAM;AAAA,IACf;AAAA,IACA,yBAAyB,MAAM;AAC3B,UAAI,QAAQ,WAAW;AACnB,aAAK,SAAS,oBAAoB;AAAA,MACtC,WACS,QAAQ,OAAO;AACpB,aAAK,SAAS,iBAAiB;AAAA,MACnC,OACK;AACD,aAAK,SAAS,gBAAgB;AAAA,MAClC;AAAA,IACJ;AAAA,IACA,IAAI,MAAM;AACN,aAAO,KAAK,aAAa,KAAK;AAAA,IAClC;AAAA,IACA,IAAI,IAAI,OAAO;AACX,UAAI,OAAO;AACP,aAAK,aAAa,OAAO,KAAK;AAAA,MAClC,OACK;AACD,aAAK,gBAAgB,KAAK;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,aAAO,4BAA4B,KAAK,aAAa,SAAS,KAAK,EAAE;AAAA,IACzE;AAAA,IACA,IAAI,QAAQ,OAAO;AACf,UAAI,OAAO;AACP,aAAK,aAAa,WAAW,KAAK;AAAA,MACtC,OACK;AACD,aAAK,gBAAgB,SAAS;AAAA,MAClC;AAAA,IACJ;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,aAAa,UAAU;AAAA,IACvC;AAAA,IACA,IAAI,SAAS,OAAO;AAChB,UAAI,OAAO;AACP,aAAK,aAAa,YAAY,EAAE;AAAA,MACpC,OACK;AACD,aAAK,gBAAgB,UAAU;AAAA,MACnC;AAAA,IACJ;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,aAAa,YAAY;AAAA,IACzC;AAAA,IACA,IAAI,WAAW,OAAO;AAClB,UAAI,OAAO;AACP,aAAK,aAAa,cAAc,EAAE;AAAA,MACtC,OACK;AACD,aAAK,gBAAgB,YAAY;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,IAAI,WAAW;AACX,aAAO,CAAC,KAAK,SAAS;AAAA,IAC1B;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,kBAAkB,YAAY,CAAC,KAAK;AAAA,IACpD;AAAA,IACA,IAAI,YAAY;AACZ,UAAI,IAAI;AACR,cAAQ,MAAM,KAAK,KAAK,mBAAmB,QAAQ,OAAO,SAAS,SAAS,GAAG,qBAAqB,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,oBAAoB;AAAA,IAC7K;AAAA,EACJ;AACA,WAAS,4BAA4B,OAAO;AACxC,YAAQ,MAAM,YAAY,GAAG;AAAA,MACzB,KAAK;AAAQ,eAAO,kBAAkB;AAAA,MACtC;AAAS,eAAO,kBAAkB;AAAA,IACtC;AAAA,EACJ;AAEA,WAAS,UAAU,WAAW;AAC1B,WAAO,IAAI,IAAI,UAAU,SAAS,GAAG,SAAS,OAAO;AAAA,EACzD;AACA,WAAS,UAAU,KAAK;AACpB,QAAI;AACJ,QAAI,IAAI,MAAM;AACV,aAAO,IAAI,KAAK,MAAM,CAAC;AAAA,IAC3B,WACS,cAAc,IAAI,KAAK,MAAM,QAAQ,GAAG;AAC7C,aAAO,YAAY,CAAC;AAAA,IACxB;AAAA,EACJ;AACA,WAAS,UAAU,MAAM,WAAW;AAChC,UAAM,UAAU,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,aAAa,YAAY,MAAM,KAAK,aAAa,QAAQ,KAAK,KAAK;AACnJ,WAAO,UAAU,MAAM;AAAA,EAC3B;AACA,WAAS,aAAa,KAAK;AACvB,YAAQ,qBAAqB,GAAG,EAAE,MAAM,UAAU,KAAK,CAAC,GAAG,CAAC,KAAK;AAAA,EACrE;AACA,WAAS,OAAO,KAAK;AACjB,WAAO,CAAC,CAAC,aAAa,GAAG,EAAE,MAAM,6BAA6B;AAAA,EAClE;AACA,WAAS,aAAa,SAAS,KAAK;AAChC,UAAM,SAAS,UAAU,GAAG;AAC5B,WAAO,QAAQ,SAAS,UAAU,MAAM,EAAE,QAAQ,QAAQ,KAAK,WAAW,MAAM;AAAA,EACpF;AACA,WAAS,oBAAoBC,WAAU,cAAc;AACjD,WAAO,aAAaA,WAAU,YAAY,KAAK,OAAOA,SAAQ;AAAA,EAClE;AACA,WAAS,cAAc,KAAK;AACxB,UAAM,SAAS,UAAU,GAAG;AAC5B,WAAO,UAAU,OACX,IAAI,KAAK,MAAM,GAAG,EAAE,OAAO,SAAS,EAAE,IACtC,IAAI;AAAA,EACd;AACA,WAAS,WAAW,KAAK;AACrB,WAAO,cAAc,GAAG;AAAA,EAC5B;AACA,WAAS,aAAaC,OAAMC,QAAO;AAC/B,WAAO,UAAUD,KAAI,EAAE,QAAQ,UAAUC,MAAK,EAAE;AAAA,EACpD;AACA,WAAS,kBAAkB,KAAK;AAC5B,WAAO,IAAI,SAAS,MAAM,GAAG,EAAE,MAAM,CAAC;AAAA,EAC1C;AACA,WAAS,qBAAqB,KAAK;AAC/B,WAAO,kBAAkB,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;AAAA,EAC7C;AACA,WAAS,UAAU,KAAK;AACpB,WAAO,iBAAiB,IAAI,SAAS,IAAI,QAAQ;AAAA,EACrD;AACA,WAAS,iBAAiB,OAAO;AAC7B,WAAO,MAAM,SAAS,GAAG,IAAI,QAAQ,QAAQ;AAAA,EACjD;AAEA,MAAM,gBAAN,MAAoB;AAAA,IAChB,YAAY,UAAU;AAClB,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,IAAI,YAAY;AACZ,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,KAAK;AAAA,IACjB;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,cAAc,OAAO,KAAK,cAAc;AAAA,IACxD;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,cAAc,OAAO,KAAK,cAAc;AAAA,IACxD;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,WAAW;AACX,aAAO,UAAU,KAAK,SAAS,GAAG;AAAA,IACtC;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,eAAe,KAAK,YAAY,MAAM,wDAAwD;AAAA,IAC9G;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,OAAO,cAAc;AAAA,IACrC;AAAA,IACA,IAAI,eAAe;AACf,aAAO,KAAK,SAAS,MAAM,EAAE,KAAK;AAAA,IACtC;AAAA,IACA,IAAI,eAAe;AACf,UAAI,KAAK,QAAQ;AACb,eAAO,KAAK,SAAS,MAAM,EAAE,KAAK;AAAA,MACtC,OACK;AACD,eAAO,QAAQ,QAAQ,MAAS;AAAA,MACpC;AAAA,IACJ;AAAA,IACA,OAAO,MAAM;AACT,aAAO,KAAK,SAAS,QAAQ,IAAI,IAAI;AAAA,IACzC;AAAA,EACJ;AAEA,WAAS,SAAS,WAAW,EAAE,QAAQ,YAAY,OAAO,IAAI,CAAC,GAAG;AAC9D,UAAM,QAAQ,IAAI,YAAY,WAAW,EAAE,YAAY,SAAS,MAAM,OAAO,CAAC;AAC9E,QAAI,UAAU,OAAO,aAAa;AAC9B,aAAO,cAAc,KAAK;AAAA,IAC9B,OACK;AACD,eAAS,gBAAgB,cAAc,KAAK;AAAA,IAChD;AACA,WAAO;AAAA,EACX;AACA,WAAS,qBAAqB;AAC1B,WAAO,IAAI,QAAQ,aAAW,sBAAsB,MAAM,QAAQ,CAAC,CAAC;AAAA,EACxE;AACA,WAAS,oBAAoB;AACzB,WAAO,IAAI,QAAQ,aAAW,WAAW,MAAM,QAAQ,GAAG,CAAC,CAAC;AAAA,EAChE;AACA,WAAS,gBAAgB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EAC3B;AACA,WAAS,kBAAkB,OAAO,IAAI;AAClC,WAAO,IAAI,UAAU,EAAE,gBAAgB,MAAM,WAAW;AAAA,EAC5D;AACA,WAAS,SAAS,YAAY,QAAQ;AAClC,UAAM,QAAQ,YAAY,SAAS,MAAM,EAAE,QAAQ,OAAO,EAAE,EAAE,MAAM,IAAI;AACxE,UAAMC,SAAQ,MAAM,CAAC,EAAE,MAAM,MAAM;AACnC,UAAM,SAASA,SAAQA,OAAM,CAAC,EAAE,SAAS;AACzC,WAAO,MAAM,IAAI,UAAQ,KAAK,MAAM,MAAM,CAAC,EAAE,KAAK,IAAI;AAAA,EAC1D;AACA,WAAS,YAAY,SAAS,QAAQ;AAClC,WAAO,QAAQ,OAAO,CAAC,QAAQ,QAAQC,OAAM;AACzC,YAAM,QAAQ,OAAOA,EAAC,KAAK,SAAY,KAAK,OAAOA,EAAC;AACpD,aAAO,SAAS,SAAS;AAAA,IAC7B,GAAG,EAAE;AAAA,EACT;AACA,WAAS,OAAO;AACZ,WAAO,MAAM,MAAM,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,CAACC,IAAGD,OAAM;AACnD,UAAIA,MAAK,KAAKA,MAAK,MAAMA,MAAK,MAAMA,MAAK,IAAI;AACzC,eAAO;AAAA,MACX,WACSA,MAAK,IAAI;AACd,eAAO;AAAA,MACX,WACSA,MAAK,IAAI;AACd,gBAAQ,KAAK,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE;AAAA,MAC1D,OACK;AACD,eAAO,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE;AAAA,MACrD;AAAA,IACJ,CAAC,EAAE,KAAK,EAAE;AAAA,EACd;AACA,WAAS,aAAa,kBAAkB,UAAU;AAC9C,eAAW,SAAS,SAAS,IAAI,aAAW,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,aAAa,aAAa,CAAC,GAAG;AAChI,UAAI,OAAO,SAAS;AAChB,eAAO;AAAA,IACf;AACA,WAAO;AAAA,EACX;AACA,WAAS,cAAc,UAAU;AAC7B,eAAW,WAAW,UAAU;AAC5B,UAAI,QAAQ,aAAa,eAAe;AACpC,gBAAQ,aAAa,QAAQ,EAAE;AAAA,MACnC;AACA,cAAQ,aAAa,aAAa,MAAM;AAAA,IAC5C;AAAA,EACJ;AACA,WAAS,kBAAkB,UAAU;AACjC,eAAW,WAAW,UAAU;AAC5B,UAAI,QAAQ,aAAa,eAAe;AACpC,gBAAQ,gBAAgB,MAAM;AAAA,MAClC;AACA,cAAQ,gBAAgB,WAAW;AAAA,IACvC;AAAA,EACJ;AAEA,MAAI;AACJ,GAAC,SAAUE,cAAa;AACpB,IAAAA,aAAYA,aAAY,KAAK,IAAI,CAAC,IAAI;AACtC,IAAAA,aAAYA,aAAY,MAAM,IAAI,CAAC,IAAI;AACvC,IAAAA,aAAYA,aAAY,KAAK,IAAI,CAAC,IAAI;AACtC,IAAAA,aAAYA,aAAY,OAAO,IAAI,CAAC,IAAI;AACxC,IAAAA,aAAYA,aAAY,QAAQ,IAAI,CAAC,IAAI;AAAA,EAC7C,GAAG,gBAAgB,cAAc,CAAC,EAAE;AACpC,WAAS,sBAAsB,QAAQ;AACnC,YAAQ,OAAO,YAAY,GAAG;AAAA,MAC1B,KAAK;AAAO,eAAO,YAAY;AAAA,MAC/B,KAAK;AAAQ,eAAO,YAAY;AAAA,MAChC,KAAK;AAAO,eAAO,YAAY;AAAA,MAC/B,KAAK;AAAS,eAAO,YAAY;AAAA,MACjC,KAAK;AAAU,eAAO,YAAY;AAAA,IACtC;AAAA,EACJ;AACA,MAAM,eAAN,MAAmB;AAAA,IACf,YAAY,UAAU,QAAQN,WAAU,OAAO,IAAI,mBAAiB,SAAS,MAAM;AAC/E,WAAK,kBAAkB,IAAI;AAC3B,WAAK,wBAAwB,CAAC,UAAU;AAAA,MAAE;AAC1C,WAAK,WAAW;AAChB,WAAK,SAAS;AACd,WAAK,UAAU,KAAK;AACpB,WAAK,OAAO;AACZ,WAAK,MAAMA;AACX,WAAK,SAAS;AAAA,IAClB;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,OAAO,MAAM,KAAK,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC;AAAA,IAC1D;AAAA,IACA,SAAS;AACL,WAAK,gBAAgB,MAAM;AAAA,IAC/B;AAAA,IACA,MAAM,UAAU;AACZ,UAAI,IAAI;AACR,YAAM,EAAE,aAAa,IAAI;AACzB,OAAC,MAAM,KAAK,KAAK,UAAU,8BAA8B,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAK,IAAI,KAAK,SAAS,IAAI;AACxH,YAAM,KAAK,4BAA4B,YAAY;AACnD,UAAI;AACA,aAAK,SAAS,eAAe,IAAI;AACjC,cAAM,WAAW,MAAM,MAAM,KAAK,IAAI,MAAM,YAAY;AACxD,eAAO,MAAM,KAAK,QAAQ,QAAQ;AAAA,MACtC,SACOO,QAAO;AACV,YAAIA,OAAM,SAAS,cAAc;AAC7B,eAAK,SAAS,eAAe,MAAMA,MAAK;AACxC,gBAAMA;AAAA,QACV;AAAA,MACJ,UACA;AACI,aAAK,SAAS,gBAAgB,IAAI;AAAA,MACtC;AAAA,IACJ;AAAA,IACA,MAAM,QAAQ,UAAU;AACpB,YAAM,gBAAgB,IAAI,cAAc,QAAQ;AAChD,YAAM,QAAQ,SAAS,+BAA+B,EAAE,YAAY,MAAM,QAAQ,EAAE,cAAc,GAAG,QAAQ,KAAK,OAAO,CAAC;AAC1H,UAAI,MAAM,kBAAkB;AACxB,aAAK,SAAS,iCAAiC,MAAM,aAAa;AAAA,MACtE,WACS,cAAc,WAAW;AAC9B,aAAK,SAAS,6BAA6B,MAAM,aAAa;AAAA,MAClE,OACK;AACD,aAAK,SAAS,0BAA0B,MAAM,aAAa;AAAA,MAC/D;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,eAAe;AACf,UAAI;AACJ,aAAO;AAAA,QACH,QAAQ,YAAY,KAAK,MAAM,EAAE,YAAY;AAAA,QAC7C,aAAa;AAAA,QACb,SAAS,KAAK;AAAA,QACd,UAAU;AAAA,QACV,MAAM,KAAK,eAAe,OAAO,KAAK;AAAA,QACtC,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK,KAAK,SAAS,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,MACpF;AAAA,IACJ;AAAA,IACA,IAAI,iBAAiB;AACjB,aAAO;AAAA,QACH,UAAU;AAAA,MACd;AAAA,IACJ;AAAA,IACA,IAAI,eAAe;AACf,aAAO,KAAK,UAAU,YAAY;AAAA,IACtC;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,gBAAgB;AAAA,IAChC;AAAA,IACA,MAAM,4BAA4B,cAAc;AAC5C,YAAM,sBAAsB,IAAI,QAAQ,aAAW,KAAK,wBAAwB,OAAO;AACvF,YAAM,QAAQ,SAAS,8BAA8B;AAAA,QACjD,YAAY;AAAA,QACZ,QAAQ;AAAA,UACJ;AAAA,UACA,KAAK,KAAK;AAAA,UACV,QAAQ,KAAK;AAAA,QACjB;AAAA,QACA,QAAQ,KAAK;AAAA,MACjB,CAAC;AACD,UAAI,MAAM;AACN,cAAM;AAAA,IACd;AAAA,EACJ;AAEA,MAAM,qBAAN,MAAyB;AAAA,IACrB,YAAY,UAAU,SAAS;AAC3B,WAAK,UAAU;AACf,WAAK,YAAY,aAAW;AACxB,cAAM,YAAY,QAAQ,MAAM,EAAE,EAAE,CAAC;AACrC,YAAI,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,gBAAgB;AAChF,eAAK,SAAS,0BAA0B,KAAK,OAAO;AAAA,QACxD;AAAA,MACJ;AACA,WAAK,WAAW;AAChB,WAAK,UAAU;AACf,WAAK,uBAAuB,IAAI,qBAAqB,KAAK,SAAS;AAAA,IACvE;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,aAAK,qBAAqB,QAAQ,KAAK,OAAO;AAAA,MAClD;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,UAAU;AACf,aAAK,qBAAqB,UAAU,KAAK,OAAO;AAAA,MACpD;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,gBAAN,MAAoB;AAAA,IAChB,YAAY,MAAM;AACd,WAAK,kBAAkB,SAAS,cAAc,UAAU;AACxD,WAAK,gBAAgB,YAAY;AAAA,IACrC;AAAA,IACA,OAAO,KAAK,SAAS;AACjB,UAAI,OAAO,WAAW,UAAU;AAC5B,eAAO,IAAI,KAAK,OAAO;AAAA,MAC3B,OACK;AACD,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,IAAI,WAAW;AACX,YAAM,WAAW,SAAS,uBAAuB;AACjD,iBAAW,WAAW,KAAK,iBAAiB;AACxC,iBAAS,YAAY,SAAS,WAAW,SAAS,IAAI,CAAC;AAAA,MAC3D;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO,KAAK,iBAAiB,OAAO,CAAC,gBAAgB,UAAU;AAC3D,YAAI,MAAM,QAAQ,YAAY,KAAK,gBAAgB;AAC/C,iBAAO,CAAC,GAAG,gBAAgB,KAAK;AAAA,QACpC,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,GAAG,CAAC,CAAC;AAAA,IACT;AAAA,IACA,IAAI,mBAAmB;AACnB,aAAO,MAAM,KAAK,KAAK,gBAAgB,QAAQ,QAAQ;AAAA,IAC3D;AAAA,EACJ;AACA,gBAAc,cAAc;AAE5B,MAAI;AACJ,GAAC,SAAUC,sBAAqB;AAC5B,IAAAA,qBAAoBA,qBAAoB,aAAa,IAAI,CAAC,IAAI;AAC9D,IAAAA,qBAAoBA,qBAAoB,YAAY,IAAI,CAAC,IAAI;AAC7D,IAAAA,qBAAoBA,qBAAoB,SAAS,IAAI,CAAC,IAAI;AAC1D,IAAAA,qBAAoBA,qBAAoB,WAAW,IAAI,CAAC,IAAI;AAC5D,IAAAA,qBAAoBA,qBAAoB,UAAU,IAAI,CAAC,IAAI;AAC3D,IAAAA,qBAAoBA,qBAAoB,SAAS,IAAI,CAAC,IAAI;AAAA,EAC9D,GAAG,wBAAwB,sBAAsB,CAAC,EAAE;AACpD,MAAI;AACJ,GAAC,SAAUC,cAAa;AACpB,IAAAA,aAAY,YAAY,IAAI;AAC5B,IAAAA,aAAY,WAAW,IAAI;AAC3B,IAAAA,aAAY,OAAO,IAAI;AAAA,EAC3B,GAAG,gBAAgB,cAAc,CAAC,EAAE;AACpC,WAAS,sBAAsB,UAAU;AACrC,YAAQ,SAAS,YAAY,GAAG;AAAA,MAC5B,KAAK,YAAY;AAAW,eAAO,YAAY;AAAA,MAC/C,KAAK,YAAY;AAAO,eAAO,YAAY;AAAA,MAC3C;AAAS,eAAO,YAAY;AAAA,IAChC;AAAA,EACJ;AACA,MAAM,iBAAN,MAAM,gBAAe;AAAA,IACjB,YAAY,UAAU,aAAa,WAAW,eAAe,OAAO;AAChE,WAAK,QAAQ,oBAAoB;AACjC,WAAK,WAAW;AAChB,WAAK,cAAc;AACnB,WAAK,YAAY;AACjB,WAAK,WAAW,cAAc,aAAa,SAAS;AACpD,WAAK,WAAW,UAAU,KAAK,MAAM;AACrC,UAAI,KAAK,UAAU,YAAY,KAAK;AAChC,6BAAqB,KAAK,UAAU,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC;AAAA,MAChE;AACA,WAAK,eAAe,IAAI,aAAa,MAAM,KAAK,QAAQ,KAAK,UAAU,KAAK,MAAM,KAAK,WAAW;AAClG,WAAK,eAAe;AAAA,IACxB;AAAA,IACA,OAAO,cAAc,SAAS,SAAS;AACnC,aAAO,QAAQ,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,SAAS;AACT,UAAI;AACJ,YAAM,WAAW,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,YAAY,MAAM,KAAK,YAAY,aAAa,QAAQ,KAAK;AACxJ,aAAO,sBAAsB,OAAO,YAAY,CAAC,KAAK,YAAY;AAAA,IACtE;AAAA,IACA,IAAI,SAAS;AACT,UAAI;AACJ,YAAM,oBAAoB,OAAO,KAAK,YAAY,WAAW,WAAW,KAAK,YAAY,SAAS;AAClG,eAAS,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,YAAY,MAAM,KAAK,YAAY,aAAa,QAAQ,KAAK,qBAAqB;AAAA,IACzK;AAAA,IACA,IAAI,OAAO;AACP,UAAI,KAAK,WAAW,YAAY,cAAc,KAAK,UAAU,YAAY,KAAK;AAC1E,eAAO,IAAI,gBAAgB,KAAK,cAAc;AAAA,MAClD,OACK;AACD,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,UAAI;AACJ,aAAO,wBAAwB,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,aAAa,MAAM,KAAK,YAAY,OAAO;AAAA,IACxJ;AAAA,IACA,IAAI,eAAe;AACf,aAAO,KAAK,aAAa;AAAA,IAC7B;AAAA,IACA,IAAI,iBAAiB;AACjB,aAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM;AACzD,eAAO,QAAQ,OAAO,OAAO,SAAS,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;AAAA,MACzE,GAAG,CAAC,CAAC;AAAA,IACT;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,KAAK,YAAY,aAAa,oBAAoB;AAAA,IAC7D;AAAA,IACA,IAAI,oBAAoB;AACpB,aAAO,KAAK,wBAAwB;AAAA,IACxC;AAAA,IACA,MAAM,QAAQ;AACV,YAAM,EAAE,aAAa,WAAW,IAAI;AACpC,UAAI,KAAK,mBAAmB;AACxB,cAAM,SAAS,gBAAe,cAAc,KAAK,qBAAqB,KAAK,WAAW;AACtF,YAAI,CAAC,QAAQ;AACT;AAAA,QACJ;AAAA,MACJ;AACA,UAAI,KAAK,SAAS,aAAa;AAC3B,aAAK,QAAQ;AACb,eAAO,KAAK,aAAa,QAAQ;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,OAAO;AACH,YAAM,EAAE,UAAU,QAAQ,IAAI;AAC9B,UAAI,KAAK,SAAS,YAAY,KAAK,SAAS,SAAS;AACjD,aAAK,QAAQ;AACb,aAAK,aAAa,OAAO;AACzB,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,yBAAyB,SAAS,SAAS;AACvC,UAAI,CAAC,QAAQ,cAAc;AACvB,cAAM,QAAQ,eAAe,eAAe,YAAY,CAAC,KAAK,eAAe,YAAY;AACzF,YAAI,OAAO;AACP,kBAAQ,cAAc,IAAI;AAAA,QAC9B;AACA,gBAAQ,QAAQ,IAAI,CAAC,cAAc,aAAa,QAAQ,QAAQ,CAAC,EAAE,KAAK,IAAI;AAAA,MAChF;AAAA,IACJ;AAAA,IACA,eAAe,SAAS;AACpB,UAAI;AACJ,WAAK,QAAQ,oBAAoB;AACjC,OAAC,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,YAAY,EAAE;AACzF,eAAS,sBAAsB,EAAE,QAAQ,KAAK,aAAa,QAAQ,EAAE,gBAAgB,KAAK,EAAE,CAAC;AAC7F,WAAK,SAAS,sBAAsB,IAAI;AAAA,IAC5C;AAAA,IACA,iCAAiC,SAAS,UAAU;AAChD,WAAK,SAAS,EAAE,SAAS,SAAS,WAAW,eAAe,SAAS;AAAA,IACzE;AAAA,IACA,6BAA6B,SAAS,UAAU;AAC5C,UAAI,SAAS,eAAe,SAAS,aAAa;AAC9C,aAAK,SAAS,iCAAiC,MAAM,QAAQ;AAAA,MACjE,WACS,KAAK,oBAAoB,OAAO,KAAK,iCAAiC,QAAQ,GAAG;AACtF,cAAMF,SAAQ,IAAI,MAAM,kDAAkD;AAC1E,aAAK,SAAS,sBAAsB,MAAMA,MAAK;AAAA,MACnD,OACK;AACD,aAAK,QAAQ,oBAAoB;AACjC,aAAK,SAAS,EAAE,SAAS,MAAM,eAAe,SAAS;AACvD,aAAK,SAAS,oCAAoC,MAAM,QAAQ;AAAA,MACpE;AAAA,IACJ;AAAA,IACA,0BAA0B,SAAS,UAAU;AACzC,WAAK,SAAS,EAAE,SAAS,OAAO,eAAe,SAAS;AACxD,WAAK,SAAS,iCAAiC,MAAM,QAAQ;AAAA,IACjE;AAAA,IACA,eAAe,SAASA,QAAO;AAC3B,WAAK,SAAS,EAAE,SAAS,OAAO,OAAAA,OAAM;AACtC,WAAK,SAAS,sBAAsB,MAAMA,MAAK;AAAA,IACnD;AAAA,IACA,gBAAgB,SAAS;AACrB,UAAI;AACJ,WAAK,QAAQ,oBAAoB;AACjC,OAAC,KAAK,KAAK,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,gBAAgB,UAAU;AACxF,eAAS,oBAAoB,EAAE,QAAQ,KAAK,aAAa,QAAQ,OAAO,OAAO,EAAE,gBAAgB,KAAK,GAAG,KAAK,MAAM,EAAE,CAAC;AACvH,WAAK,SAAS,uBAAuB,IAAI;AAAA,IAC7C;AAAA,IACA,oBAAoB,SAAS;AACzB,aAAO,CAAC,QAAQ,gBAAgB,KAAK;AAAA,IACzC;AAAA,EACJ;AACA,WAAS,cAAc,aAAa,WAAW;AAC3C,UAAM,WAAW,IAAI,SAAS,WAAW;AACzC,UAAM,OAAO,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,aAAa,MAAM;AAChG,UAAM,QAAQ,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,aAAa,OAAO;AAClG,QAAI,QAAQ,SAAS,QAAQ,SAAS,IAAI,IAAI,KAAK,OAAO;AACtD,eAAS,OAAO,MAAM,KAAK;AAAA,IAC/B;AACA,WAAO;AAAA,EACX;AACA,WAAS,eAAe,YAAY;AAChC,QAAI,cAAc,MAAM;AACpB,YAAM,UAAU,SAAS,SAAS,SAAS,OAAO,MAAM,IAAI,IAAI,CAAC;AACjE,YAAM,SAAS,QAAQ,KAAK,CAACG,YAAWA,QAAO,WAAW,UAAU,CAAC;AACrE,UAAI,QAAQ;AACR,cAAM,QAAQ,OAAO,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AACjD,eAAO,QAAQ,mBAAmB,KAAK,IAAI;AAAA,MAC/C;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,eAAe,MAAM;AAC1B,UAAM,UAAU,SAAS,cAAc,cAAc,IAAI,IAAI;AAC7D,WAAO,WAAW,QAAQ;AAAA,EAC9B;AACA,WAAS,iCAAiC,UAAU;AAChD,WAAO,SAAS,cAAc,OAAO,CAAC,SAAS;AAAA,EACnD;AACA,WAAS,qBAAqB,KAAK,SAAS;AACxC,UAAM,eAAe,IAAI;AACzB,eAAW,CAAC,MAAM,KAAK,KAAK,SAAS;AACjC,UAAI,iBAAiB;AACjB;AACJ,mBAAa,OAAO,MAAM,KAAK;AAAA,IACnC;AACA,QAAI,SAAS,aAAa,SAAS;AACnC,WAAO;AAAA,EACX;AAEA,MAAM,WAAN,MAAe;AAAA,IACX,YAAY,SAAS;AACjB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,IAAI,WAAW;AACX,aAAO,CAAC,GAAG,KAAK,QAAQ,QAAQ;AAAA,IACpC;AAAA,IACA,UAAU,QAAQ;AACd,aAAO,KAAK,oBAAoB,MAAM,KAAK;AAAA,IAC/C;AAAA,IACA,oBAAoB,QAAQ;AACxB,aAAO,SAAS,KAAK,QAAQ,cAAc,QAAQ,MAAM,eAAe,MAAM,IAAI,IAAI;AAAA,IAC1F;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,4BAA4B;AAC5B,aAAO,KAAK,QAAQ,cAAc,aAAa;AAAA,IACnD;AAAA,IACA,IAAI,oBAAoB;AACpB,aAAO,CAAC,GAAG,KAAK,QAAQ,iBAAiB,4BAA4B,CAAC;AAAA,IAC1E;AAAA,IACA,wBAAwBC,MAAI;AACxB,aAAO,KAAK,QAAQ,cAAc,IAAIA,IAAE,wBAAwB;AAAA,IACpE;AAAA,IACA,kCAAkC,UAAU;AACxC,YAAM,sBAAsB,CAAC;AAC7B,iBAAW,2BAA2B,KAAK,mBAAmB;AAC1D,cAAM,EAAE,IAAAA,KAAG,IAAI;AACf,cAAM,sBAAsB,SAAS,wBAAwBA,IAAE;AAC/D,YAAI,qBAAqB;AACrB,8BAAoBA,IAAE,IAAI,CAAC,yBAAyB,mBAAmB;AAAA,QAC3E;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,MAAM,kBAAN,MAAsB;AAAA,IAClB,YAAY,UAAU,SAAS;AAC3B,WAAK,iBAAiB,CAAC,UAAU;AAC7B,cAAM,OAAO,MAAM;AACnB,YAAI,CAAC,MAAM,oBAAoB,gBAAgB,mBAAmB,KAAK,QAAQ,mBAAmB,KAAK,KAAK,SAAS;AACjH,gBAAM,YAAY,MAAM,aAAa;AACrC,gBAAM,UAAU,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,aAAa,YAAY,MAAM,KAAK;AACpH,cAAI,UAAU,YAAY,KAAK,SAAS,8BAA8B,MAAM,SAAS,GAAG;AACpF,kBAAM,eAAe;AACrB,kBAAM,yBAAyB;AAC/B,iBAAK,SAAS,0BAA0B,MAAM,SAAS;AAAA,UAC3D;AAAA,QACJ;AAAA,MACJ;AACA,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,QAAQ;AACJ,WAAK,QAAQ,iBAAiB,UAAU,KAAK,aAAa;AAAA,IAC9D;AAAA,IACA,OAAO;AACH,WAAK,QAAQ,oBAAoB,UAAU,KAAK,aAAa;AAAA,IACjE;AAAA,EACJ;AAEA,MAAM,OAAN,MAAW;AAAA,IACP,YAAY,UAAU,SAAS;AAC3B,WAAK,uBAAuB,CAAC,UAAU;AAAA,MAAE;AACzC,WAAK,6BAA6B,CAAC,UAAU;AAAA,MAAE;AAC/C,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,eAAe,QAAQ;AACnB,YAAM,UAAU,KAAK,SAAS,oBAAoB,MAAM;AACxD,UAAI,SAAS;AACT,aAAK,gBAAgB,OAAO;AAC5B,aAAK,aAAa,OAAO;AAAA,MAC7B,OACK;AACD,aAAK,iBAAiB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;AAAA,MACxC;AAAA,IACJ;AAAA,IACA,2BAA2BX,WAAU;AACjC,WAAK,eAAe,UAAUA,SAAQ,CAAC;AAAA,IAC3C;AAAA,IACA,gBAAgB,SAAS;AACrB,cAAQ,eAAe;AAAA,IAC3B;AAAA,IACA,aAAa,SAAS;AAClB,UAAI,mBAAmB,aAAa;AAChC,YAAI,QAAQ,aAAa,UAAU,GAAG;AAClC,kBAAQ,MAAM;AAAA,QAClB,OACK;AACD,kBAAQ,aAAa,YAAY,IAAI;AACrC,kBAAQ,MAAM;AACd,kBAAQ,gBAAgB,UAAU;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,iBAAiB,EAAE,GAAAY,IAAG,GAAAC,GAAE,GAAG;AACvB,WAAK,WAAW,SAASD,IAAGC,EAAC;AAAA,IACjC;AAAA,IACA,cAAc;AACV,WAAK,iBAAiB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;AAAA,IACxC;AAAA,IACA,IAAI,aAAa;AACb,aAAO;AAAA,IACX;AAAA,IACA,MAAM,OAAO,UAAU;AACnB,YAAM,EAAE,WAAW,cAAc,aAAa,SAAS,IAAI;AAC3D,UAAI,cAAc;AACd,YAAI;AACA,eAAK,gBAAgB,IAAI,QAAQ,aAAW,KAAK,uBAAuB,OAAO;AAC/E,eAAK,WAAW;AAChB,eAAK,wBAAwB,QAAQ;AACrC,gBAAM,qBAAqB,IAAI,QAAQ,aAAW,KAAK,6BAA6B,OAAO;AAC3F,gBAAM,kBAAkB,KAAK,SAAS,sBAAsB,UAAU,KAAK,0BAA0B;AACrG,cAAI,CAAC;AACD,kBAAM;AACV,gBAAM,KAAK,eAAe,QAAQ;AAClC,eAAK,SAAS,qBAAqB,UAAU,SAAS;AACtD,eAAK,wBAAwB,QAAQ;AAAA,QACzC,UACA;AACI,iBAAO,KAAK;AACZ,eAAK,qBAAqB,MAAS;AACnC,iBAAO,KAAK;AAAA,QAChB;AAAA,MACJ,OACK;AACD,aAAK,WAAW;AAAA,MACpB;AAAA,IACJ;AAAA,IACA,aAAa;AACT,WAAK,SAAS,gBAAgB;AAAA,IAClC;AAAA,IACA,wBAAwB,UAAU;AAC9B,WAAK,cAAc,SAAS,SAAS;AACrC,eAAS,gBAAgB;AAAA,IAC7B;AAAA,IACA,cAAc,WAAW;AACrB,UAAI,WAAW;AACX,aAAK,QAAQ,aAAa,sBAAsB,EAAE;AAAA,MACtD,OACK;AACD,aAAK,QAAQ,gBAAgB,oBAAoB;AAAA,MACrD;AAAA,IACJ;AAAA,IACA,MAAM,eAAe,UAAU;AAC3B,YAAM,SAAS,OAAO;AAAA,IAC1B;AAAA,IACA,wBAAwB,UAAU;AAC9B,eAAS,gBAAgB;AAAA,IAC7B;AAAA,EACJ;AAEA,MAAM,YAAN,cAAwB,KAAK;AAAA,IACzB,aAAa;AACT,WAAK,QAAQ,YAAY;AAAA,IAC7B;AAAA,IACA,IAAI,WAAW;AACX,aAAO,IAAI,SAAS,KAAK,OAAO;AAAA,IACpC;AAAA,EACJ;AAEA,MAAM,kBAAN,MAAsB;AAAA,IAClB,YAAY,UAAU,SAAS;AAC3B,WAAK,eAAe,CAAC,UAAU;AAC3B,YAAI,KAAK,sBAAsB,MAAM,MAAM,GAAG;AAC1C,eAAK,aAAa;AAAA,QACtB,OACK;AACD,iBAAO,KAAK;AAAA,QAChB;AAAA,MACJ;AACA,WAAK,eAAe,CAAC,UAAU;AAC3B,YAAI,KAAK,cAAc,KAAK,sBAAsB,MAAM,MAAM,KAAK,MAAM,kBAAkB,SAAS;AAChG,cAAI,KAAK,SAAS,yBAAyB,MAAM,QAAQ,MAAM,OAAO,GAAG,GAAG;AACxE,iBAAK,WAAW,eAAe;AAC/B,kBAAM,eAAe;AACrB,iBAAK,SAAS,qBAAqB,MAAM,QAAQ,MAAM,OAAO,GAAG;AAAA,UACrE;AAAA,QACJ;AACA,eAAO,KAAK;AAAA,MAChB;AACA,WAAK,YAAY,MAAM;AACnB,eAAO,KAAK;AAAA,MAChB;AACA,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,QAAQ;AACJ,WAAK,QAAQ,iBAAiB,SAAS,KAAK,YAAY;AACxD,eAAS,iBAAiB,eAAe,KAAK,WAAW;AACzD,eAAS,iBAAiB,sBAAsB,KAAK,SAAS;AAAA,IAClE;AAAA,IACA,OAAO;AACH,WAAK,QAAQ,oBAAoB,SAAS,KAAK,YAAY;AAC3D,eAAS,oBAAoB,eAAe,KAAK,WAAW;AAC5D,eAAS,oBAAoB,sBAAsB,KAAK,SAAS;AAAA,IACrE;AAAA,IACA,sBAAsB,QAAQ;AAC1B,YAAM,UAAU,kBAAkB,UAC5B,SACA,kBAAkB,OACd,OAAO,gBACP;AACV,aAAO,WAAW,QAAQ,QAAQ,mBAAmB,KAAK,KAAK;AAAA,IACnE;AAAA,EACJ;AAEA,MAAM,QAAN,MAAY;AAAA,IACR,YAAY,qBAAqB;AAC7B,WAAK,sBAAsB;AAAA,IAC/B;AAAA,IACA,OAAO,4BAA4B,qBAAqB,UAAU;AAC9D,YAAM,QAAQ,IAAI,KAAK,mBAAmB;AAC1C,YAAM,MAAM;AACZ,eAAS;AACT,YAAM,MAAM;AAAA,IAChB;AAAA,IACA,QAAQ;AACJ,iBAAWF,QAAM,KAAK,qBAAqB;AACvC,cAAM,CAAC,EAAE,mBAAmB,IAAI,KAAK,oBAAoBA,IAAE;AAC3D,aAAK,0CAA0C,mBAAmB;AAAA,MACtE;AAAA,IACJ;AAAA,IACA,QAAQ;AACJ,iBAAWA,QAAM,KAAK,qBAAqB;AACvC,cAAM,CAAC,uBAAuB,IAAI,KAAK,oBAAoBA,IAAE;AAC7D,aAAK,wCAAwC,uBAAuB;AACpE,aAAK,uCAAuC,uBAAuB;AAAA,MACvE;AAAA,IACJ;AAAA,IACA,0CAA0C,kBAAkB;AACxD,YAAM,cAAc,qCAAqC,gBAAgB;AACzE,uBAAiB,YAAY,WAAW;AAAA,IAC5C;AAAA,IACA,wCAAwC,kBAAkB;AACtD,YAAM,QAAQ,iBAAiB,UAAU,IAAI;AAC7C,uBAAiB,YAAY,KAAK;AAAA,IACtC;AAAA,IACA,uCAAuC,kBAAkB;AACrD,YAAM,cAAc,KAAK,mBAAmB,iBAAiB,EAAE;AAC/D,sBAAgB,QAAQ,gBAAgB,SAAS,SAAS,YAAY,YAAY,gBAAgB;AAAA,IACtG;AAAA,IACA,mBAAmBA,MAAI;AACnB,aAAO,KAAK,aAAa,KAAK,aAAW,QAAQ,WAAWA,IAAE;AAAA,IAClE;AAAA,IACA,IAAI,eAAe;AACf,aAAO,CAAC,GAAG,SAAS,iBAAiB,iDAAiD,CAAC;AAAA,IAC3F;AAAA,EACJ;AACA,WAAS,qCAAqC,kBAAkB;AAC5D,UAAM,UAAU,SAAS,cAAc,MAAM;AAC7C,YAAQ,aAAa,QAAQ,6BAA6B;AAC1D,YAAQ,aAAa,WAAW,iBAAiB,EAAE;AACnD,WAAO;AAAA,EACX;AAEA,MAAM,WAAN,MAAe;AAAA,IACX,YAAY,iBAAiB,aAAa,WAAW,aAAa,MAAM;AACpE,WAAK,kBAAkB;AACvB,WAAK,cAAc;AACnB,WAAK,YAAY;AACjB,WAAK,aAAa;AAClB,WAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW,KAAK,qBAAqB,EAAE,SAAS,OAAO,CAAC;AAAA,IACjG;AAAA,IACA,IAAI,eAAe;AACf,aAAO;AAAA,IACX;AAAA,IACA,kBAAkB;AACd;AAAA,IACJ;AAAA,IACA,kBAAkB;AACd,UAAI,KAAK,oBAAoB;AACzB,aAAK,mBAAmB,QAAQ;AAChC,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,oBAAoB,SAAS;AACzB,UAAI,QAAQ,aAAa,iBAAiB,KAAK,SAAS;AACpD,eAAO;AAAA,MACX,OACK;AACD,cAAM,uBAAuB,SAAS,cAAc,QAAQ;AAC5D,YAAI,KAAK,UAAU;AACf,+BAAqB,QAAQ,KAAK;AAAA,QACtC;AACA,6BAAqB,cAAc,QAAQ;AAC3C,6BAAqB,QAAQ;AAC7B,8BAAsB,sBAAsB,OAAO;AACnD,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,4BAA4B,UAAU;AAClC,YAAM,4BAA4B,KAAK,qBAAqB,QAAQ;AAAA,IACxE;AAAA,IACA,iCAAiC;AAC7B,YAAM,UAAU,KAAK,kBAAkB;AACvC,UAAI,mBAAmB,OAAO,GAAG;AAC7B,gBAAQ,MAAM;AAAA,MAClB;AAAA,IACJ;AAAA,IACA,IAAI,oBAAoB;AACpB,aAAO,KAAK,YAAY,cAAc,KAAK,cAAc,KAAK;AAAA,IAClE;AAAA,IACA,IAAI,iBAAiB;AACjB,aAAO,KAAK,gBAAgB;AAAA,IAChC;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,KAAK,gBAAgB,kCAAkC,KAAK,WAAW;AAAA,IAClF;AAAA,IACA,IAAI,WAAW;AACX,UAAI;AACJ,cAAQ,KAAK,SAAS,KAAK,cAAc,wBAAwB,OAAO,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,SAAS;AAAA,IACtI;AAAA,EACJ;AACA,WAAS,sBAAsB,oBAAoB,eAAe;AAC9D,eAAW,EAAE,MAAM,MAAM,KAAK,CAAC,GAAG,cAAc,UAAU,GAAG;AACzD,yBAAmB,aAAa,MAAM,KAAK;AAAA,IAC/C;AAAA,EACJ;AACA,WAAS,mBAAmB,SAAS;AACjC,WAAO,WAAW,OAAO,QAAQ,SAAS;AAAA,EAC9C;AAEA,MAAM,gBAAN,cAA4B,SAAS;AAAA,IACjC,IAAI,eAAe;AACf,aAAO;AAAA,IACX;AAAA,IACA,MAAM,SAAS;AACX,YAAM,mBAAmB;AACzB,WAAK,4BAA4B,MAAM;AACnC,aAAK,iBAAiB;AAAA,MAC1B,CAAC;AACD,WAAK,oBAAoB;AACzB,YAAM,mBAAmB;AACzB,WAAK,+BAA+B;AACpC,YAAM,mBAAmB;AACzB,WAAK,uBAAuB;AAAA,IAChC;AAAA,IACA,mBAAmB;AACf,UAAI;AACJ,YAAM,mBAAmB,SAAS,YAAY;AAC9C,uBAAiB,mBAAmB,KAAK,cAAc;AACvD,uBAAiB,eAAe;AAChC,YAAM,eAAe,KAAK;AAC1B,YAAM,eAAe,KAAK,aAAa,mBAAmB,QAAQ,OAAO,SAAS,SAAS,GAAG,YAAY;AAC1G,UAAI,aAAa;AACb,oBAAY,mBAAmB,YAAY;AAC3C,aAAK,eAAe,YAAY,YAAY,gBAAgB,CAAC;AAAA,MACjE;AAAA,IACJ;AAAA,IACA,sBAAsB;AAClB,UAAI,KAAK,eAAe,cAAc,KAAK,WAAW,YAAY;AAC9D,cAAM,UAAU,KAAK,eAAe;AACpC,cAAM,QAAQ,0BAA0B,KAAK,eAAe,aAAa,uBAAuB,GAAG,KAAK;AACxG,YAAI,SAAS;AACT,kBAAQ,eAAe,EAAE,MAAM,CAAC;AAChC,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,IACA,yBAAyB;AACrB,iBAAW,sBAAsB,KAAK,mBAAmB;AACrD,cAAM,yBAAyB,KAAK,oBAAoB,kBAAkB;AAC1E,2BAAmB,YAAY,sBAAsB;AAAA,MACzD;AAAA,IACJ;AAAA,IACA,IAAI,oBAAoB;AACpB,aAAO,KAAK,eAAe,iBAAiB,QAAQ;AAAA,IACxD;AAAA,EACJ;AACA,WAAS,0BAA0B,OAAO,cAAc;AACpD,QAAI,SAAS,SAAS,SAAS,WAAW,SAAS,YAAY,SAAS,WAAW;AAC/E,aAAO;AAAA,IACX,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,MAAM,cAAN,MAAM,aAAY;AAAA,IACd,cAAc;AACV,WAAK,SAAS;AACd,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,UAAU,MAAM;AACjB,aAAK,SAAS,KAAK,QAAQ,KAAK,OAAO,IAAI,GAAG;AAAA,MAClD;AACA,WAAK,oBAAoB,KAAK,wBAAwB;AACtD,WAAK,kBAAkB,KAAK,sBAAsB;AAClD,WAAK,yBAAyB;AAC9B,WAAK,SAAS,CAAC;AAAA,IACnB;AAAA,IACA,WAAW,aAAa;AACpB,aAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAUG,aAAY,iBAAiB;AAAA,oBAC3B,aAAY,oBAAoB,CAAC,MAAM,aAAY,oBAAoB,CAAC;AAAA;AAAA;AAAA;AAAA,IAIxF;AAAA,IACA,OAAO;AACH,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,aAAK,uBAAuB;AAC5B,aAAK,eAAe;AAAA,MACxB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,WAAW,CAAC,KAAK,QAAQ;AAC9B,aAAK,SAAS;AACd,aAAK,oBAAoB,MAAM;AAC3B,eAAK,yBAAyB;AAC9B,eAAK,cAAc;AACnB,eAAK,UAAU;AACf,eAAK,SAAS;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,IACA,SAAS,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,QAAQ;AAAA,IACjB;AAAA,IACA,2BAA2B;AACvB,eAAS,KAAK,aAAa,KAAK,mBAAmB,SAAS,KAAK,UAAU;AAAA,IAC/E;AAAA,IACA,yBAAyB;AACrB,WAAK,gBAAgB,MAAM,QAAQ;AACnC,WAAK,gBAAgB,MAAM,UAAU;AACrC,eAAS,gBAAgB,aAAa,KAAK,iBAAiB,SAAS,IAAI;AACzE,WAAK,QAAQ;AAAA,IACjB;AAAA,IACA,oBAAoB,UAAU;AAC1B,WAAK,gBAAgB,MAAM,UAAU;AACrC,iBAAW,UAAU,aAAY,oBAAoB,GAAG;AAAA,IAC5D;AAAA,IACA,2BAA2B;AACvB,UAAI,KAAK,gBAAgB,YAAY;AACjC,iBAAS,gBAAgB,YAAY,KAAK,eAAe;AAAA,MAC7D;AAAA,IACJ;AAAA,IACA,iBAAiB;AACb,UAAI,CAAC,KAAK,iBAAiB;AACvB,aAAK,kBAAkB,OAAO,YAAY,KAAK,SAAS,aAAY,iBAAiB;AAAA,MACzF;AAAA,IACJ;AAAA,IACA,gBAAgB;AACZ,aAAO,cAAc,KAAK,eAAe;AACzC,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,UAAU;AACN,4BAAsB,MAAM;AACxB,aAAK,gBAAgB,MAAM,QAAQ,GAAG,KAAM,KAAK,QAAQ,EAAG;AAAA,MAChE,CAAC;AAAA,IACL;AAAA,IACA,0BAA0B;AACtB,YAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,cAAQ,OAAO;AACf,cAAQ,cAAc,aAAY;AAClC,aAAO;AAAA,IACX;AAAA,IACA,wBAAwB;AACpB,YAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,cAAQ,YAAY;AACpB,aAAO;AAAA,IACX;AAAA,EACJ;AACA,cAAY,oBAAoB;AAEhC,MAAM,eAAN,cAA2B,SAAS;AAAA,IAChC,cAAc;AACV,YAAM,GAAG,SAAS;AAClB,WAAK,qBAAqB,KAAK,SAC1B,OAAO,CAAC,YAAY,CAAC,kBAAkB,OAAO,CAAC,EAC/C,IAAI,CAAC,YAAY,oBAAoB,OAAO,CAAC,EAC7C,OAAO,CAAC,QAAQ,YAAY;AAC7B,cAAM,EAAE,UAAU,IAAI;AACtB,cAAM,UAAU,aAAa,SACvB,OAAO,SAAS,IAChB;AAAA,UACE,MAAM,YAAY,OAAO;AAAA,UACzB,SAAS,iBAAiB,OAAO;AAAA,UACjC,UAAU,CAAC;AAAA,QACf;AACJ,eAAO,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS,GAAG,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,OAAO,GAAG,EAAE,UAAU,CAAC,GAAG,QAAQ,UAAU,OAAO,EAAE,CAAC,EAAE,CAAC;AAAA,MAC5J,GAAG,CAAC,CAAC;AAAA,IACT;AAAA,IACA,IAAI,0BAA0B;AAC1B,aAAO,OAAO,KAAK,KAAK,kBAAkB,EACrC,OAAO,eAAa,KAAK,mBAAmB,SAAS,EAAE,OAAO,EAC9D,KAAK,EAAE;AAAA,IAChB;AAAA,IACA,+BAA+B,UAAU;AACrC,aAAO,KAAK,qCAAqC,UAAU,QAAQ;AAAA,IACvE;AAAA,IACA,mCAAmC,UAAU;AACzC,aAAO,KAAK,qCAAqC,cAAc,QAAQ;AAAA,IAC3E;AAAA,IACA,qCAAqC,aAAa,UAAU;AACxD,aAAO,OAAO,KAAK,KAAK,kBAAkB,EACrC,OAAO,eAAa,EAAE,aAAa,SAAS,mBAAmB,EAC/D,IAAI,eAAa,KAAK,mBAAmB,SAAS,CAAC,EACnD,OAAO,CAAC,EAAE,KAAK,MAAM,QAAQ,WAAW,EACxC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,OAAO;AAAA,IACjD;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,OAAO,KAAK,KAAK,kBAAkB,EAAE,OAAO,CAAC,QAAQ,cAAc;AACtE,cAAM,EAAE,MAAM,SAAS,SAAS,IAAI,KAAK,mBAAmB,SAAS;AACrE,YAAI,QAAQ,QAAQ,CAAC,SAAS;AAC1B,iBAAO,CAAC,GAAG,QAAQ,GAAG,QAAQ;AAAA,QAClC,WACS,SAAS,SAAS,GAAG;AAC1B,iBAAO,CAAC,GAAG,QAAQ,GAAG,SAAS,MAAM,CAAC,CAAC;AAAA,QAC3C,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,GAAG,CAAC,CAAC;AAAA,IACT;AAAA,IACA,aAAa,MAAM;AACf,YAAM,UAAU,KAAK,sBAAsB,IAAI;AAC/C,aAAO,UACD,QAAQ,aAAa,SAAS,IAC9B;AAAA,IACV;AAAA,IACA,sBAAsB,MAAM;AACxB,aAAO,OAAO,KAAK,KAAK,kBAAkB,EAAE,OAAO,CAAC,QAAQ,cAAc;AACtE,cAAM,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,KAAK,mBAAmB,SAAS;AACjE,eAAO,6BAA6B,SAAS,IAAI,IAAI,UAAU;AAAA,MACnE,GAAG,MAAS;AAAA,IAChB;AAAA,EACJ;AACA,WAAS,YAAY,SAAS;AAC1B,QAAI,gBAAgB,OAAO,GAAG;AAC1B,aAAO;AAAA,IACX,WACS,oBAAoB,OAAO,GAAG;AACnC,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,iBAAiB,SAAS;AAC/B,WAAO,QAAQ,aAAa,kBAAkB,KAAK;AAAA,EACvD;AACA,WAAS,gBAAgB,SAAS;AAC9B,UAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,WAAO,WAAW;AAAA,EACtB;AACA,WAAS,kBAAkB,SAAS;AAChC,UAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,WAAO,WAAW;AAAA,EACtB;AACA,WAAS,oBAAoB,SAAS;AAClC,UAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,WAAO,WAAW,WAAY,WAAW,UAAU,QAAQ,aAAa,KAAK,KAAK;AAAA,EACtF;AACA,WAAS,6BAA6B,SAAS,MAAM;AACjD,UAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,WAAO,WAAW,UAAU,QAAQ,aAAa,MAAM,KAAK;AAAA,EAChE;AACA,WAAS,oBAAoB,SAAS;AAClC,QAAI,QAAQ,aAAa,OAAO,GAAG;AAC/B,cAAQ,aAAa,SAAS,EAAE;AAAA,IACpC;AACA,WAAO;AAAA,EACX;AAEA,MAAM,eAAN,MAAM,sBAAqB,SAAS;AAAA,IAChC,YAAY,SAAS,cAAc;AAC/B,YAAM,OAAO;AACb,WAAK,eAAe;AAAA,IACxB;AAAA,IACA,OAAO,eAAe,OAAO,IAAI;AAC7B,aAAO,KAAK,aAAa,kBAAkB,IAAI,CAAC;AAAA,IACpD;AAAA,IACA,OAAO,YAAY,SAAS;AACxB,aAAO,KAAK,aAAa,QAAQ,aAAa;AAAA,IAClD;AAAA,IACA,OAAO,aAAa,EAAE,MAAM,KAAK,GAAG;AAChC,aAAO,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,CAAC;AAAA,IAChD;AAAA,IACA,QAAQ;AACJ,aAAO,IAAI,cAAa,KAAK,QAAQ,UAAU,IAAI,GAAG,KAAK,YAAY;AAAA,IAC3E;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,aAAa;AAAA,IAC7B;AAAA,IACA,IAAI,eAAe;AACf,UAAI;AACJ,YAAM,QAAQ,KAAK,KAAK,WAAW,MAAM,OAAO,QAAQ,OAAO,SAAS,KAAK;AAC7E,aAAO,UAAU,IAAI;AAAA,IACzB;AAAA,IACA,IAAI,oBAAoB;AACpB,aAAO,KAAK,WAAW,eAAe;AAAA,IAC1C;AAAA,IACA,IAAI,gBAAgB;AAChB,aAAO,KAAK,qBAAqB;AAAA,IACrC;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,qBAAqB;AAAA,IACrC;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,WAAW,eAAe,KAAK;AAAA,IAC/C;AAAA,IACA,WAAW,MAAM;AACb,aAAO,KAAK,aAAa,aAAa,SAAS,IAAI,EAAE;AAAA,IACzD;AAAA,EACJ;AAEA,MAAI;AACJ,GAAC,SAAUG,eAAc;AACrB,IAAAA,cAAa,YAAY,IAAI;AAC7B,IAAAA,cAAa,cAAc,IAAI;AAC/B,IAAAA,cAAa,YAAY,IAAI;AAC7B,IAAAA,cAAa,UAAU,IAAI;AAAA,EAC/B,GAAG,iBAAiB,eAAe,CAAC,EAAE;AACtC,MAAI;AACJ,GAAC,SAAUC,aAAY;AACnB,IAAAA,YAAW,aAAa,IAAI;AAC5B,IAAAA,YAAW,SAAS,IAAI;AACxB,IAAAA,YAAW,UAAU,IAAI;AACzB,IAAAA,YAAW,QAAQ,IAAI;AACvB,IAAAA,YAAW,WAAW,IAAI;AAAA,EAC9B,GAAG,eAAe,aAAa,CAAC,EAAE;AAClC,MAAM,iBAAiB;AAAA,IACnB,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,qBAAqB,MAAM;AAAA,IAAE;AAAA,IAC7B,YAAY;AAAA,EAChB;AACA,MAAI;AACJ,GAAC,SAAUC,mBAAkB;AACzB,IAAAA,kBAAiBA,kBAAiB,gBAAgB,IAAI,CAAC,IAAI;AAC3D,IAAAA,kBAAiBA,kBAAiB,gBAAgB,IAAI,EAAE,IAAI;AAC5D,IAAAA,kBAAiBA,kBAAiB,qBAAqB,IAAI,EAAE,IAAI;AAAA,EACrE,GAAG,qBAAqB,mBAAmB,CAAC,EAAE;AAC9C,MAAM,QAAN,MAAY;AAAA,IACR,YAAY,UAAUhB,WAAU,uBAAuB,UAAU,CAAC,GAAG;AACjE,WAAK,aAAa,KAAK;AACvB,WAAK,gBAAgB,CAAC;AACtB,WAAK,mBAAmB;AACxB,WAAK,iBAAiB;AACtB,WAAK,WAAW;AAChB,WAAK,iBAAiB;AACtB,WAAK,QAAQ,WAAW;AACxB,WAAK,WAAW;AAChB,WAAK,WAAWA;AAChB,WAAK,wBAAwB,yBAAyB,KAAK;AAC3D,YAAM,EAAE,QAAQ,gBAAgB,UAAU,cAAc,UAAU,qBAAqB,WAAW,IAAI,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,cAAc,GAAG,OAAO;AAC9J,WAAK,SAAS;AACd,WAAK,iBAAiB;AACtB,WAAK,WAAW;AAChB,WAAK,eAAe;AACpB,WAAK,WAAW;AAChB,WAAK,aAAa,KAAK,SAAS,6BAA6B,KAAK,UAAU,KAAK,MAAM;AACvF,WAAK,sBAAsB;AAC3B,WAAK,aAAa;AAClB,WAAK,WAAW,CAAC;AAAA,IACrB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,OAAO;AACP,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO,KAAK,QAAQ,gCAAgC,KAAK,qBAAqB;AAAA,IAClF;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,QAAQ;AACJ,UAAI,KAAK,SAAS,WAAW,aAAa;AACtC,aAAK,mBAAmB,aAAa,UAAU;AAC/C,aAAK,QAAQ,WAAW;AACxB,aAAK,QAAQ,aAAa,IAAI;AAC9B,aAAK,SAAS,aAAa,IAAI;AAAA,MACnC;AAAA,IACJ;AAAA,IACA,SAAS;AACL,UAAI,KAAK,SAAS,WAAW,SAAS;AAClC,YAAI,KAAK,SAAS;AACd,eAAK,QAAQ,OAAO;AAAA,QACxB;AACA,aAAK,aAAa;AAClB,aAAK,QAAQ,WAAW;AAAA,MAC5B;AAAA,IACJ;AAAA,IACA,WAAW;AACP,UAAI,KAAK,SAAS,WAAW,SAAS;AAClC,aAAK,mBAAmB,aAAa,QAAQ;AAC7C,aAAK,QAAQ,WAAW;AACxB,aAAK,QAAQ,eAAe,IAAI;AAChC,aAAK,SAAS,eAAe,IAAI;AACjC,aAAK,eAAe;AAAA,MACxB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS,WAAW,SAAS;AAClC,aAAK,QAAQ,WAAW;AACxB,aAAK,QAAQ,YAAY,IAAI;AAAA,MACjC;AAAA,IACJ;AAAA,IACA,gBAAgB;AACZ,UAAI;AACJ,UAAI,CAAC,KAAK,gBAAgB;AACtB,cAAM,mBAAmB,KAAK,SAAS,WAAW,KAAK,KAAK,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG,QAAQ,YAAY,KAAK;AACvI,cAAM,SAAS,KAAK,0BAA0B,gBAAgB;AAC9D,aAAK,QAAQ,OAAO,QAAQ,KAAK,UAAU,KAAK,qBAAqB;AACrE,aAAK,iBAAiB;AAAA,MAC1B;AAAA,IACJ;AAAA,IACA,eAAe;AACX,UAAI,KAAK,qBAAqB,GAAG;AAC7B,aAAK,gBAAgB;AAAA,MACzB,WACS,KAAK,mBAAmB,KAAK,CAAC,KAAK,SAAS;AACjD,aAAK,UAAU,IAAI,aAAa,MAAM,YAAY,KAAK,KAAK,QAAQ;AACpE,aAAK,QAAQ,QAAQ;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,kBAAkB;AACd,UAAI,KAAK,UAAU;AACf,aAAK,aAAa;AAClB,aAAK,eAAe;AACpB,aAAK,cAAc;AAAA,MACvB;AAAA,IACJ;AAAA,IACA,eAAe;AACX,WAAK,mBAAmB,aAAa,YAAY;AACjD,WAAK,QAAQ,oBAAoB,IAAI;AAAA,IACzC;AAAA,IACA,eAAe,WAAW,KAAK,UAAU;AACrC,WAAK,WAAW;AAChB,UAAI,UAAU;AACV,cAAM,EAAE,WAAW,IAAI;AACvB,YAAI,aAAa,UAAU,GAAG;AAC1B,eAAK,QAAQ,sBAAsB,IAAI;AAAA,QAC3C,OACK;AACD,eAAK,QAAQ,iCAAiC,MAAM,UAAU;AAAA,QAClE;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,gBAAgB;AACZ,WAAK,mBAAmB,aAAa,UAAU;AAC/C,WAAK,QAAQ,qBAAqB,IAAI;AAAA,IAC1C;AAAA,IACA,eAAe;AACX,UAAI,KAAK,UAAU;AACf,cAAM,EAAE,YAAY,aAAa,IAAI,KAAK;AAC1C,aAAK,OAAO,YAAY;AACpB,eAAK,cAAc;AACnB,cAAI,KAAK,KAAK;AACV,kBAAM,KAAK,KAAK;AACpB,cAAI,aAAa,UAAU,KAAK,gBAAgB,MAAM;AAClD,kBAAM,KAAK,KAAK,WAAW,aAAa,eAAe,YAAY,GAAG,OAAO,KAAK,UAAU;AAC5F,iBAAK,QAAQ,cAAc,IAAI;AAC/B,iBAAK,SAAS;AAAA,UAClB,OACK;AACD,kBAAM,KAAK,KAAK,YAAY,aAAa,eAAe,YAAY,CAAC;AACrE,iBAAK,QAAQ,cAAc,IAAI;AAC/B,iBAAK,KAAK;AAAA,UACd;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,IACA,oBAAoB;AAChB,YAAM,WAAW,KAAK,KAAK,6BAA6B,KAAK,QAAQ,KAAK,KAAK,qBAAqB;AACpG,UAAI,aAAa,CAAC,UAAU,KAAK,QAAQ,KAAK,SAAS,UAAU,UAAU,KAAK,QAAQ,CAAC,IAAI;AACzF,YAAI,KAAK,UAAU,aAAa,SAAS,eAAe;AACpD,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,uBAAuB;AACnB,UAAI,KAAK,cAAc;AACnB,eAAO,aAAa,eAAe,KAAK,YAAY;AAAA,MACxD;AAAA,IACJ;AAAA,IACA,oBAAoB;AAChB,aAAO,KAAK,kBAAkB,KAAK;AAAA,IACvC;AAAA,IACA,qBAAqB;AACjB,YAAM,WAAW,KAAK,kBAAkB;AACxC,UAAI,UAAU;AACV,cAAM,YAAY,KAAK,mBAAmB;AAC1C,aAAK,OAAO,YAAY;AACpB,eAAK,cAAc;AACnB,cAAI,KAAK,YAAY;AACjB,iBAAK,QAAQ,cAAc,IAAI;AAAA,UACnC,OACK;AACD,gBAAI,KAAK,KAAK;AACV,oBAAM,KAAK,KAAK;AACpB,kBAAM,KAAK,KAAK,WAAW,UAAU,WAAW,KAAK,UAAU;AAC/D,iBAAK,QAAQ,cAAc,IAAI;AAC/B,gBAAI,CAAC,WAAW;AACZ,mBAAK,SAAS;AAAA,YAClB;AAAA,UACJ;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,IACA,iBAAiB;AACb,UAAI;AACJ,UAAI,KAAK,wBAAwB,CAAC,KAAK,sBAAsB,KAAK,KAAK,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa;AAClI,aAAK,QAAQ,wBAAwB,KAAK,sBAAsB;AAAA,UAC5D,QAAQ;AAAA,UACR,UAAU,KAAK;AAAA,QACnB,CAAC;AACD,aAAK,mBAAmB;AAAA,MAC5B;AAAA,IACJ;AAAA,IACA,qBAAqB;AACjB,UAAI,KAAK,YAAY;AACjB,aAAK,OAAO,YAAY;AACpB,eAAK,cAAc;AACnB,eAAK,QAAQ,cAAc,IAAI;AAAA,QACnC,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,IACA,iBAAiB;AACb,WAAK,aAAa;AAAA,IACtB;AAAA,IACA,iCAAiC,SAAS,UAAU;AAAA,IACpD;AAAA,IACA,MAAM,6BAA6B,SAAS,UAAU;AAClD,YAAM,eAAe,MAAM,SAAS;AACpC,YAAM,EAAE,YAAY,WAAW,IAAI;AACnC,UAAI,gBAAgB,QAAW;AAC3B,aAAK,eAAe,EAAE,YAAY,iBAAiB,qBAAqB,WAAW,CAAC;AAAA,MACxF,OACK;AACD,aAAK,uBAAuB,SAAS,aAAa,SAAS,WAAW;AACtE,aAAK,eAAe,EAAE,YAAwB,cAAc,WAAW,CAAC;AAAA,MAC5E;AAAA,IACJ;AAAA,IACA,MAAM,0BAA0B,SAAS,UAAU;AAC/C,YAAM,eAAe,MAAM,SAAS;AACpC,YAAM,EAAE,YAAY,WAAW,IAAI;AACnC,UAAI,gBAAgB,QAAW;AAC3B,aAAK,eAAe,EAAE,YAAY,iBAAiB,qBAAqB,WAAW,CAAC;AAAA,MACxF,OACK;AACD,aAAK,eAAe,EAAE,YAAwB,cAAc,WAAW,CAAC;AAAA,MAC5E;AAAA,IACJ;AAAA,IACA,eAAe,SAASO,QAAO;AAC3B,WAAK,eAAe,EAAE,YAAY,iBAAiB,gBAAgB,YAAY,MAAM,CAAC;AAAA,IAC1F;AAAA,IACA,kBAAkB;AACd,WAAK,cAAc;AAAA,IACvB;AAAA,IACA,gBAAgB;AACZ,UAAI,CAAC,KAAK,UAAU;AAChB,YAAI,KAAK,UAAU,WAAW;AAC1B,eAAK,yBAAyB,KAAK,KAAK,eAAe,KAAK,KAAK,KAAK,YAAY;AAAA,QACtF,OACK;AACD,eAAK,eAAe,KAAK,KAAK,KAAK,YAAY;AAAA,QACnD;AACA,YAAI,KAAK,YAAY;AACjB,eAAK,SAAS,gCAAgC,KAAK,KAAK,sBAAsB,KAAK,QAAQ;AAAA,QAC/F;AACA,aAAK,WAAW;AAAA,MACpB;AAAA,IACJ;AAAA,IACA,2BAA2B;AACvB,YAAM,EAAE,eAAe,IAAI,KAAK;AAChC,UAAI,gBAAgB;AAChB,aAAK,KAAK,iBAAiB,cAAc;AACzC,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,iBAAiB;AACb,YAAM,SAAS,UAAU,KAAK,QAAQ;AACtC,UAAI,UAAU,MAAM;AAChB,aAAK,KAAK,eAAe,MAAM;AAC/B,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,mBAAmB,QAAQ;AACvB,WAAK,cAAc,MAAM,KAAI,oBAAI,KAAK,GAAE,QAAQ;AAAA,IACpD;AAAA,IACA,mBAAmB;AACf,aAAO,OAAO,OAAO,CAAC,GAAG,KAAK,aAAa;AAAA,IAC/C;AAAA,IACA,0BAA0B,QAAQ;AAC9B,cAAQ,QAAQ;AAAA,QACZ,KAAK;AAAW,iBAAO,QAAQ;AAAA,QAC/B,KAAK;AAAA,QACL,KAAK;AAAW,iBAAO,QAAQ;AAAA,MACnC;AAAA,IACJ;AAAA,IACA,uBAAuB;AACnB,aAAO,OAAO,KAAK,YAAY;AAAA,IACnC;AAAA,IACA,qBAAqB;AACjB,UAAI,KAAK,YAAY;AACjB,eAAO;AAAA,MACX,WACS,KAAK,UAAU,WAAW;AAC/B,eAAO,CAAC,KAAK,kBAAkB;AAAA,MACnC,OACK;AACD,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,gBAAgB;AACZ,UAAI,CAAC,KAAK,gBAAgB;AACtB,aAAK,KAAK,cAAc,EAAE,KAAK,cAAY,YAAY,KAAK,oBAAoB,QAAQ,CAAC;AACzF,aAAK,iBAAiB;AAAA,MAC1B;AAAA,IACJ;AAAA,IACA,MAAM,OAAO,UAAU;AACnB,WAAK,aAAa;AAClB,YAAM,IAAI,QAAQ,aAAW;AACzB,aAAK,QAAQ,sBAAsB,MAAM,QAAQ,CAAC;AAAA,MACtD,CAAC;AACD,YAAM,SAAS;AACf,aAAO,KAAK;AACZ,WAAK,cAAc;AAAA,IACvB;AAAA,IACA,eAAe;AACX,UAAI,KAAK,OAAO;AACZ,6BAAqB,KAAK,KAAK;AAC/B,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,aAAa,YAAY;AAC9B,WAAO,cAAc,OAAO,aAAa;AAAA,EAC7C;AAEA,MAAM,iBAAN,MAAqB;AAAA,IACjB,YAAYU,UAAS;AACjB,WAAK,cAAc,IAAI;AACvB,WAAK,kBAAkB,MAAM;AACzB,aAAK,YAAY,KAAK;AAAA,MAC1B;AACA,WAAK,UAAUA;AAAA,IACnB;AAAA,IACA,wBAAwBjB,WAAU,SAAS;AACvC,WAAK,UAAU,WAAWA,WAAU,KAAK,GAAG,OAAO;AAAA,IACvD;AAAA,IACA,aAAakB,QAAO;AAChB,MAAAA,OAAM,mBAAmB;AACzB,MAAAA,OAAM,aAAa;AACnB,MAAAA,OAAM,cAAc;AACpB,MAAAA,OAAM,mBAAmB;AAAA,IAC7B;AAAA,IACA,oBAAoBA,QAAO;AACvB,WAAK,YAAY,SAAS,CAAC;AAC3B,UAAIA,OAAM,kBAAkB,KAAKA,OAAM,UAAU,WAAW;AACxD,aAAK,+BAA+B;AAAA,MACxC,OACK;AACD,aAAK,gBAAgB;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,sBAAsBA,QAAO;AACzB,MAAAA,OAAM,aAAa;AAAA,IACvB;AAAA,IACA,iCAAiCA,QAAO,YAAY;AAChD,cAAQ,YAAY;AAAA,QAChB,KAAK,iBAAiB;AAAA,QACtB,KAAK,iBAAiB;AAAA,QACtB,KAAK,iBAAiB;AAClB,iBAAO,KAAK,OAAO;AAAA,QACvB;AACI,iBAAOA,OAAM,aAAa;AAAA,MAClC;AAAA,IACJ;AAAA,IACA,qBAAqBA,QAAO;AACxB,WAAK,YAAY,SAAS,CAAC;AAC3B,WAAK,qBAAqB;AAAA,IAC9B;AAAA,IACA,eAAeA,QAAO;AAAA,IACtB;AAAA,IACA,kBAAkB;AACd,WAAK,OAAO;AAAA,IAChB;AAAA,IACA,YAAYA,QAAO;AAAA,IACnB;AAAA,IACA,cAAcA,QAAO;AAAA,IACrB;AAAA,IACA,sBAAsB,gBAAgB;AAClC,WAAK,YAAY,SAAS,CAAC;AAC3B,WAAK,8BAA8B;AAAA,IACvC;AAAA,IACA,uBAAuB,gBAAgB;AACnC,WAAK,YAAY,SAAS,CAAC;AAC3B,WAAK,oBAAoB;AAAA,IAC7B;AAAA,IACA,iCAAiC;AAC7B,WAAK,0BAA0B,OAAO,WAAW,KAAK,iBAAiB,KAAK,QAAQ,gBAAgB;AAAA,IACxG;AAAA,IACA,uBAAuB;AACnB,WAAK,YAAY,KAAK;AACtB,UAAI,KAAK,2BAA2B,MAAM;AACtC,eAAO,aAAa,KAAK,uBAAuB;AAChD,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,gCAAgC;AAC5B,UAAI,KAAK,0BAA0B,MAAM;AACrC,aAAK,yBAAyB,OAAO,WAAW,KAAK,iBAAiB,KAAK,QAAQ,gBAAgB;AAAA,MACvG;AAAA,IACJ;AAAA,IACA,sBAAsB;AAClB,WAAK,YAAY,KAAK;AACtB,UAAI,KAAK,0BAA0B,MAAM;AACrC,eAAO,aAAa,KAAK,sBAAsB;AAC/C,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,SAAS;AACL,aAAO,SAAS,OAAO;AAAA,IAC3B;AAAA,IACA,IAAI,YAAY;AACZ,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,EACJ;AAEA,MAAM,gBAAN,MAAoB;AAAA,IAChB,cAAc;AACV,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,yBAAiB,sBAAsB,KAAK,qBAAqB,KAAK;AAAA,MAC1E;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,UAAU;AACf,4BAAoB,sBAAsB,KAAK,qBAAqB,KAAK;AAAA,MAC7E;AAAA,IACJ;AAAA,IACA,sBAAsB;AAClB,YAAM,gBAAgB,CAAC,GAAG,SAAS,iBAAiB,4BAA4B,CAAC;AACjF,iBAAW,WAAW,eAAe;AACjC,gBAAQ,OAAO;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,qBAAN,MAAyB;AAAA,IACrB,YAAY,UAAU;AAClB,WAAK,UAAU;AACf,WAAK,iBAAiB,MAAM;AACxB,4BAAoB,UAAU,KAAK,eAAe,KAAK;AACvD,yBAAiB,UAAU,KAAK,eAAe,KAAK;AAAA,MACxD;AACA,WAAK,iBAAiB,CAAC,UAAU;AAC7B,YAAI,CAAC,MAAM,kBAAkB;AACzB,gBAAM,OAAO,MAAM,kBAAkB,kBAAkB,MAAM,SAAS;AACtE,gBAAM,YAAY,MAAM,aAAa;AACrC,cAAI,MAAM;AACN,kBAAM,UAAU,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,aAAa,YAAY,MAAM,KAAK,aAAa,QAAQ;AACzI,gBAAI,UAAU,YAAY,KAAK,SAAS,eAAe,MAAM,SAAS,GAAG;AACrE,oBAAM,eAAe;AACrB,mBAAK,SAAS,cAAc,MAAM,SAAS;AAAA,YAC/C;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AACA,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,yBAAiB,UAAU,KAAK,gBAAgB,IAAI;AACpD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,4BAAoB,UAAU,KAAK,gBAAgB,IAAI;AACvD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,kBAAN,MAAsB;AAAA,IAClB,YAAY,SAAS;AACjB,WAAK,UAAU;AACf,WAAK,kBAAkB,IAAI,gBAAgB,MAAM,OAAO;AACxD,WAAK,kBAAkB,IAAI,gBAAgB,MAAM,OAAO;AAAA,IAC5D;AAAA,IACA,QAAQ;AACJ,WAAK,gBAAgB,MAAM;AAC3B,WAAK,gBAAgB,MAAM;AAAA,IAC/B;AAAA,IACA,OAAO;AACH,WAAK,gBAAgB,KAAK;AAC1B,WAAK,gBAAgB,KAAK;AAAA,IAC9B;AAAA,IACA,yBAAyB,SAAS,KAAK;AACnC,aAAO,KAAK,eAAe,OAAO;AAAA,IACtC;AAAA,IACA,qBAAqB,SAAS,KAAK;AAC/B,YAAM,QAAQ,KAAK,iBAAiB,OAAO;AAC3C,UAAI,OAAO;AACP,cAAM,SAAS,qBAAqB,SAAS,GAAG;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,8BAA8B,SAAS,WAAW;AAC9C,aAAO,KAAK,aAAa,SAAS,SAAS;AAAA,IAC/C;AAAA,IACA,0BAA0B,SAAS,WAAW;AAC1C,YAAM,QAAQ,KAAK,iBAAiB,SAAS,SAAS;AACtD,UAAI,OAAO;AACP,cAAM,gBAAgB,YAAY;AAClC,cAAM,SAAS,0BAA0B,SAAS,SAAS;AAAA,MAC/D;AAAA,IACJ;AAAA,IACA,aAAa,MAAM,WAAW;AAC1B,UAAI;AACJ,YAAM,SAAS,UAAU,MAAM,SAAS;AACxC,YAAM,OAAO,KAAK,QAAQ,cAAc,cAAc,yBAAyB;AAC/E,YAAM,eAAe,WAAW,KAAK,SAAS,QAAQ,SAAS,SAAS,SAAS,KAAK,aAAa,QAAQ,OAAO,SAAS,KAAK,GAAG;AACnI,aAAO,KAAK,eAAe,MAAM,SAAS,KAAK,oBAAoB,QAAQ,YAAY;AAAA,IAC3F;AAAA,IACA,eAAe,SAAS,WAAW;AAC/B,YAAM,QAAQ,KAAK,iBAAiB,SAAS,SAAS;AACtD,aAAO,QAAQ,SAAS,QAAQ,QAAQ,aAAa,IAAI;AAAA,IAC7D;AAAA,IACA,iBAAiB,SAAS,WAAW;AACjC,YAAMP,QAAM,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,aAAa,kBAAkB,MAAM,QAAQ,aAAa,kBAAkB;AACxJ,UAAIA,QAAMA,QAAM,QAAQ;AACpB,cAAM,QAAQ,KAAK,QAAQ,cAAc,IAAIA,IAAE,kBAAkB;AACjE,YAAI,iBAAiB,cAAc;AAC/B,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,UAAN,MAAc;AAAA,IACV,YAAY,UAAU;AAClB,WAAK,wBAAwB,KAAK;AAClC,WAAK,kBAAkB,CAAC;AACxB,WAAK,UAAU;AACf,WAAK,aAAa;AAClB,WAAK,aAAa,CAAC,UAAU;AACzB,YAAI,KAAK,qBAAqB,GAAG;AAC7B,gBAAM,EAAE,MAAM,IAAI,MAAM,SAAS,CAAC;AAClC,cAAI,OAAO;AACP,iBAAK,WAAW,IAAI,IAAI,OAAO,SAAS,IAAI;AAC5C,kBAAM,EAAE,sBAAsB,IAAI;AAClC,iBAAK,wBAAwB;AAC7B,iBAAK,SAAS,iDAAiD,KAAK,UAAU,qBAAqB;AAAA,UACvG;AAAA,QACJ;AAAA,MACJ;AACA,WAAK,aAAa,OAAO,UAAU;AAC/B,cAAM,cAAc;AACpB,aAAK,aAAa;AAAA,MACtB;AACA,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,yBAAiB,YAAY,KAAK,YAAY,KAAK;AACnD,yBAAiB,QAAQ,KAAK,YAAY,KAAK;AAC/C,aAAK,UAAU;AACf,aAAK,QAAQ,IAAI,IAAI,OAAO,SAAS,IAAI,CAAC;AAAA,MAC9C;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,4BAAoB,YAAY,KAAK,YAAY,KAAK;AACtD,4BAAoB,QAAQ,KAAK,YAAY,KAAK;AAClD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,KAAKX,WAAU,uBAAuB;AAClC,WAAK,OAAO,QAAQ,WAAWA,WAAU,qBAAqB;AAAA,IAClE;AAAA,IACA,QAAQA,WAAU,uBAAuB;AACrC,WAAK,OAAO,QAAQ,cAAcA,WAAU,qBAAqB;AAAA,IACrE;AAAA,IACA,OAAO,QAAQA,WAAU,wBAAwB,KAAK,GAAG;AACrD,YAAM,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;AACjD,aAAO,KAAK,SAAS,OAAO,IAAIA,UAAS,IAAI;AAC7C,WAAK,WAAWA;AAChB,WAAK,wBAAwB;AAAA,IACjC;AAAA,IACA,gCAAgC,uBAAuB;AACnD,aAAO,KAAK,gBAAgB,qBAAqB,KAAK,CAAC;AAAA,IAC3D;AAAA,IACA,sBAAsB,gBAAgB;AAClC,YAAM,EAAE,sBAAsB,IAAI;AAClC,YAAM,kBAAkB,KAAK,gBAAgB,qBAAqB;AAClE,WAAK,gBAAgB,qBAAqB,IAAI,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,eAAe,GAAG,cAAc;AAAA,IAClH;AAAA,IACA,mCAAmC;AAC/B,UAAI;AACJ,UAAI,CAAC,KAAK,2BAA2B;AACjC,aAAK,6BAA6B,KAAK,QAAQ,uBAAuB,QAAQ,OAAO,SAAS,KAAK;AACnG,gBAAQ,oBAAoB;AAAA,MAChC;AAAA,IACJ;AAAA,IACA,uCAAuC;AACnC,UAAI,KAAK,2BAA2B;AAChC,gBAAQ,oBAAoB,KAAK;AACjC,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,uBAAuB;AACnB,aAAO,KAAK,aAAa;AAAA,IAC7B;AAAA,IACA,eAAe;AACX,aAAO,KAAK,cAAc,SAAS,cAAc;AAAA,IACrD;AAAA,EACJ;AAEA,MAAM,oBAAN,MAAwB;AAAA,IACpB,YAAY,UAAU;AAClB,WAAK,UAAU;AACf,WAAK,gBAAgB,MAAM;AACvB,4BAAoB,SAAS,KAAK,cAAc,KAAK;AACrD,yBAAiB,SAAS,KAAK,cAAc,KAAK;AAAA,MACtD;AACA,WAAK,eAAe,CAAC,UAAU;AAC3B,YAAI,KAAK,wBAAwB,KAAK,GAAG;AACrC,gBAAM,SAAU,MAAM,gBAAgB,MAAM,aAAa,EAAE,CAAC,KAAM,MAAM;AACxE,gBAAM,OAAO,KAAK,wBAAwB,MAAM;AAChD,cAAI,MAAM;AACN,kBAAMA,YAAW,KAAK,mBAAmB,IAAI;AAC7C,gBAAI,KAAK,SAAS,yBAAyB,MAAMA,SAAQ,GAAG;AACxD,oBAAM,eAAe;AACrB,mBAAK,SAAS,uBAAuB,MAAMA,SAAQ;AAAA,YACvD;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AACA,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,yBAAiB,SAAS,KAAK,eAAe,IAAI;AAClD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,4BAAoB,SAAS,KAAK,eAAe,IAAI;AACrD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,wBAAwB,OAAO;AAC3B,aAAO,EAAG,MAAM,UAAU,MAAM,OAAO,qBAChC,MAAM,oBACN,MAAM,QAAQ,KACd,MAAM,UACN,MAAM,WACN,MAAM,WACN,MAAM;AAAA,IACjB;AAAA,IACA,wBAAwB,QAAQ;AAC5B,UAAI,kBAAkB,SAAS;AAC3B,eAAO,OAAO,QAAQ,0CAA0C;AAAA,MACpE;AAAA,IACJ;AAAA,IACA,mBAAmB,MAAM;AACrB,aAAO,UAAU,KAAK,aAAa,MAAM,KAAK,EAAE;AAAA,IACpD;AAAA,EACJ;AAEA,WAAS,SAAS,QAAQ;AACtB,WAAO,UAAU,aAAa,UAAU,aAAa,UAAU;AAAA,EACnE;AAEA,MAAM,YAAN,MAAgB;AAAA,IACZ,YAAY,UAAU;AAClB,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,aAAaA,WAAU,UAAU,CAAC,GAAG;AACjC,UAAI,KAAK,SAAS,iCAAiCA,WAAU,QAAQ,MAAM,GAAG;AAC1E,YAAI,oBAAoBA,WAAU,KAAK,KAAK,SAAS,YAAY,GAAG;AAChE,eAAK,SAAS,wBAAwBA,WAAU,OAAO;AAAA,QAC3D,OACK;AACD,iBAAO,SAAS,OAAOA,UAAS,SAAS;AAAA,QAC7C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,WAAW,WAAW,uBAAuB,UAAU,CAAC,GAAG;AACvD,WAAK,KAAK;AACV,WAAK,eAAe,IAAI,MAAM,MAAM,UAAU,SAAS,GAAG,uBAAuB,OAAO,OAAO,EAAE,UAAU,KAAK,SAAS,GAAG,OAAO,CAAC;AACpI,WAAK,aAAa,MAAM;AAAA,IAC5B;AAAA,IACA,WAAW,MAAM,WAAW;AACxB,WAAK,KAAK;AACV,WAAK,iBAAiB,IAAI,eAAe,MAAM,MAAM,WAAW,IAAI;AACpE,WAAK,eAAe,MAAM;AAAA,IAC9B;AAAA,IACA,OAAO;AACH,UAAI,KAAK,gBAAgB;AACrB,aAAK,eAAe,KAAK;AACzB,eAAO,KAAK;AAAA,MAChB;AACA,UAAI,KAAK,cAAc;AACnB,aAAK,aAAa,OAAO;AACzB,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,OAAO;AACP,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,sBAAsB,gBAAgB;AAClC,UAAI,OAAO,KAAK,QAAQ,0BAA0B,YAAY;AAC1D,aAAK,QAAQ,sBAAsB,cAAc;AAAA,MACrD;AAAA,IACJ;AAAA,IACA,MAAM,oCAAoC,gBAAgB,eAAe;AACrE,UAAI,kBAAkB,KAAK,gBAAgB;AACvC,cAAM,eAAe,MAAM,cAAc;AACzC,YAAI,cAAc;AACd,cAAI,eAAe,UAAU,YAAY,KAAK;AAC1C,iBAAK,KAAK,mBAAmB;AAAA,UACjC;AACA,gBAAM,EAAE,YAAY,WAAW,IAAI;AACnC,gBAAM,SAAS,KAAK,2BAA2B,cAAc;AAC7D,gBAAM,eAAe,EAAE,QAAQ,UAAU,EAAE,YAAY,cAAc,WAAW,EAAE;AAClF,eAAK,aAAa,cAAc,UAAU,YAAY;AAAA,QAC1D;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,MAAM,iCAAiC,gBAAgB,eAAe;AAClE,YAAM,eAAe,MAAM,cAAc;AACzC,UAAI,cAAc;AACd,cAAM,WAAW,aAAa,eAAe,YAAY;AACzD,YAAI,cAAc,aAAa;AAC3B,gBAAM,KAAK,KAAK,YAAY,QAAQ;AAAA,QACxC,OACK;AACD,gBAAM,KAAK,KAAK,WAAW,QAAQ;AAAA,QACvC;AACA,aAAK,KAAK,YAAY;AACtB,aAAK,KAAK,mBAAmB;AAAA,MACjC;AAAA,IACJ;AAAA,IACA,sBAAsB,gBAAgBO,QAAO;AACzC,cAAQ,MAAMA,MAAK;AAAA,IACvB;AAAA,IACA,uBAAuB,gBAAgB;AACnC,UAAI,OAAO,KAAK,QAAQ,2BAA2B,YAAY;AAC3D,aAAK,QAAQ,uBAAuB,cAAc;AAAA,MACtD;AAAA,IACJ;AAAA,IACA,aAAaW,QAAO;AAChB,WAAK,SAAS,aAAaA,MAAK;AAAA,IACpC;AAAA,IACA,eAAeA,QAAO;AAClB,WAAK,SAAS,eAAeA,MAAK;AAAA,IACtC;AAAA,IACA,6BAA6BlB,WAAU,QAAQ;AAC3C,YAAM,SAAS,UAAUA,SAAQ;AACjC,YAAM,gBAAgB,UAAU,KAAK,KAAK,oBAAoB;AAC9D,YAAM,qBAAqB,WAAW,aAAa,OAAO,WAAW;AACrE,aAAO,WAAW,aACd,cAAcA,SAAQ,MAAM,cAAc,KAAK,KAAK,oBAAoB,MACvE,sBAAuB,UAAU,QAAQ,WAAW;AAAA,IAC7D;AAAA,IACA,gCAAgC,QAAQ,QAAQ;AAC5C,WAAK,SAAS,gCAAgC,QAAQ,MAAM;AAAA,IAChE;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,wBAAwB;AACxB,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,2BAA2B,gBAAgB;AACvC,YAAM,EAAE,aAAa,UAAU,IAAI;AACnC,YAAM,SAAS,aAAa,qBAAqB,WAAW,WAAW;AACvE,aAAO,SAAS,MAAM,IAAI,SAAS;AAAA,IACvC;AAAA,EACJ;AAEA,MAAI;AACJ,GAAC,SAAUmB,YAAW;AAClB,IAAAA,WAAUA,WAAU,SAAS,IAAI,CAAC,IAAI;AACtC,IAAAA,WAAUA,WAAU,SAAS,IAAI,CAAC,IAAI;AACtC,IAAAA,WAAUA,WAAU,aAAa,IAAI,CAAC,IAAI;AAC1C,IAAAA,WAAUA,WAAU,UAAU,IAAI,CAAC,IAAI;AAAA,EAC3C,GAAG,cAAc,YAAY,CAAC,EAAE;AAChC,MAAM,eAAN,MAAmB;AAAA,IACf,YAAY,UAAU;AAClB,WAAK,QAAQ,UAAU;AACvB,WAAK,UAAU;AACf,WAAK,sBAAsB,MAAM;AAC7B,cAAM,EAAE,WAAW,IAAI;AACvB,YAAI,cAAc,eAAe;AAC7B,eAAK,kBAAkB;AAAA,QAC3B,WACS,cAAc,YAAY;AAC/B,eAAK,eAAe;AAAA,QACxB;AAAA,MACJ;AACA,WAAK,iBAAiB,MAAM;AACxB,aAAK,SAAS,eAAe;AAAA,MACjC;AACA,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,YAAI,KAAK,SAAS,UAAU,SAAS;AACjC,eAAK,QAAQ,UAAU;AAAA,QAC3B;AACA,iBAAS,iBAAiB,oBAAoB,KAAK,qBAAqB,KAAK;AAC7E,yBAAiB,YAAY,KAAK,gBAAgB,KAAK;AACvD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,iBAAS,oBAAoB,oBAAoB,KAAK,qBAAqB,KAAK;AAChF,4BAAoB,YAAY,KAAK,gBAAgB,KAAK;AAC1D,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,oBAAoB;AAChB,UAAI,KAAK,SAAS,UAAU,SAAS;AACjC,aAAK,QAAQ,UAAU;AACvB,aAAK,SAAS,sBAAsB;AAAA,MACxC;AAAA,IACJ;AAAA,IACA,iBAAiB;AACb,WAAK,kBAAkB;AACvB,UAAI,KAAK,SAAS,UAAU,aAAa;AACrC,aAAK,QAAQ,UAAU;AACvB,aAAK,SAAS,WAAW;AAAA,MAC7B;AAAA,IACJ;AAAA,IACA,IAAI,aAAa;AACb,aAAO,SAAS;AAAA,IACpB;AAAA,EACJ;AAEA,MAAM,iBAAN,MAAqB;AAAA,IACjB,YAAY,UAAU;AAClB,WAAK,UAAU;AACf,WAAK,WAAW,MAAM;AAClB,aAAK,eAAe,EAAE,GAAG,OAAO,aAAa,GAAG,OAAO,YAAY,CAAC;AAAA,MACxE;AACA,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,yBAAiB,UAAU,KAAK,UAAU,KAAK;AAC/C,aAAK,SAAS;AACd,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,4BAAoB,UAAU,KAAK,UAAU,KAAK;AAClD,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,eAAe,UAAU;AACrB,WAAK,SAAS,sBAAsB,QAAQ;AAAA,IAChD;AAAA,EACJ;AAEA,MAAM,iBAAN,MAAqB;AAAA,IACjB,YAAY,UAAU;AAClB,WAAK,UAAU,oBAAI;AACnB,WAAK,UAAU;AACf,WAAK,wBAAwB,CAAC,UAAU;AACpC,cAAM,WAAW,uBAAuB,KAAK;AAC7C,YAAI,YAAY,sBAAsB,QAAQ,GAAG;AAC7C,gBAAM,eAAe;AACrB,eAAK,uBAAuB,QAAQ;AAAA,QACxC;AAAA,MACJ;AACA,WAAK,sBAAsB,CAAC,UAAU;AAClC,YAAI,KAAK,WAAW,OAAO,MAAM,QAAQ,UAAU;AAC/C,eAAK,mBAAmB,MAAM,IAAI;AAAA,QACtC;AAAA,MACJ;AACA,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,yBAAiB,+BAA+B,KAAK,sBAAsB,KAAK;AAAA,MACpF;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,UAAU;AACf,4BAAoB,+BAA+B,KAAK,sBAAsB,KAAK;AAAA,MACvF;AAAA,IACJ;AAAA,IACA,oBAAoB,QAAQ;AACxB,UAAI,CAAC,KAAK,wBAAwB,MAAM,GAAG;AACvC,aAAK,QAAQ,IAAI,MAAM;AACvB,eAAO,iBAAiB,WAAW,KAAK,qBAAqB,KAAK;AAAA,MACtE;AAAA,IACJ;AAAA,IACA,uBAAuB,QAAQ;AAC3B,UAAI,KAAK,wBAAwB,MAAM,GAAG;AACtC,aAAK,QAAQ,OAAO,MAAM;AAC1B,eAAO,oBAAoB,WAAW,KAAK,qBAAqB,KAAK;AAAA,MACzE;AAAA,IACJ;AAAA,IACA,wBAAwB,QAAQ;AAC5B,aAAO,KAAK,QAAQ,IAAI,MAAM;AAAA,IAClC;AAAA,IACA,MAAM,uBAAuB,UAAU;AACnC,YAAM,OAAO,MAAM,SAAS;AAC5B,UAAI,MAAM;AACN,aAAK,mBAAmB,IAAI;AAAA,MAChC;AAAA,IACJ;AAAA,IACA,mBAAmB,MAAM;AACrB,WAAK,SAAS,0BAA0B,IAAI,cAAc,IAAI,CAAC;AAAA,IACnE;AAAA,EACJ;AACA,WAAS,uBAAuB,OAAO;AACnC,QAAI;AACJ,UAAM,iBAAiB,KAAK,MAAM,YAAY,QAAQ,OAAO,SAAS,SAAS,GAAG;AAClF,QAAI,yBAAyB,eAAe;AACxC,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,sBAAsB,UAAU;AACrC,QAAI;AACJ,UAAM,eAAe,KAAK,SAAS,iBAAiB,QAAQ,OAAO,SAAS,KAAK;AACjF,WAAO,YAAY,WAAW,cAAc,WAAW;AAAA,EAC3D;AAEA,MAAM,gBAAN,cAA4B,SAAS;AAAA,IACjC,MAAM,SAAS;AACX,WAAK,mBAAmB;AACxB,WAAK,uBAAuB;AAAA,IAChC;AAAA,IACA,qBAAqB;AACjB,YAAM,EAAE,iBAAiB,MAAM,KAAK,IAAI;AACxC,sBAAgB,aAAa,KAAK,SAAS,IAAI;AAC/C,sBAAgB,aAAa,KAAK,YAAY,IAAI;AAAA,IACtD;AAAA,IACA,yBAAyB;AACrB,iBAAW,sBAAsB,KAAK,gBAAgB;AAClD,cAAM,aAAa,mBAAmB;AACtC,YAAI,YAAY;AACZ,gBAAM,UAAU,KAAK,oBAAoB,kBAAkB;AAC3D,qBAAW,aAAa,SAAS,kBAAkB;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,YAAY,aAAa;AAAA,IACzC;AAAA,IACA,IAAI,iBAAiB;AACjB,aAAO,CAAC,GAAG,SAAS,gBAAgB,iBAAiB,QAAQ,CAAC;AAAA,IAClE;AAAA,EACJ;AAEA,MAAM,eAAN,cAA2B,SAAS;AAAA,IAChC,IAAI,eAAe;AACf,aAAO,KAAK,YAAY,eAAe,KAAK;AAAA,IAChD;AAAA,IACA,kBAAkB;AACd,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,MAAM,SAAS;AACX,UAAI,KAAK,YAAY;AACjB,aAAK,YAAY;AAAA,MACrB;AAAA,IACJ;AAAA,IACA,kBAAkB;AACd,YAAM,gBAAgB;AACtB,UAAI,CAAC,KAAK,WAAW;AACjB,aAAK,+BAA+B;AAAA,MACxC;AAAA,IACJ;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,KAAK,gBAAgB;AAAA,IAChC;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,YAAY;AACR,WAAK,8BAA8B;AACnC,WAAK,0BAA0B;AAC/B,WAAK,qCAAqC;AAC1C,WAAK,+BAA+B;AAAA,IACxC;AAAA,IACA,cAAc;AACV,WAAK,4BAA4B,MAAM;AACnC,aAAK,gBAAgB;AACrB,aAAK,cAAc;AAAA,MACvB,CAAC;AAAA,IACL;AAAA,IACA,IAAI,8BAA8B;AAC9B,aAAO,KAAK,oBAAoB,2BAA2B,KAAK,gBAAgB;AAAA,IACpF;AAAA,IACA,gCAAgC;AAC5B,iBAAW,WAAW,KAAK,2BAA2B;AAClD,iBAAS,KAAK,YAAY,OAAO;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,4BAA4B;AACxB,iBAAW,WAAW,KAAK,uBAAuB;AAC9C,iBAAS,KAAK,YAAY,KAAK,oBAAoB,OAAO,CAAC;AAAA,MAC/D;AAAA,IACJ;AAAA,IACA,uCAAuC;AACnC,iBAAW,WAAW,KAAK,gCAAgC;AACvD,iBAAS,KAAK,YAAY,OAAO;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,iCAAiC;AAC7B,iBAAW,WAAW,KAAK,4BAA4B;AACnD,iBAAS,KAAK,YAAY,OAAO;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,kBAAkB;AACd,eAAS,UAAU,KAAK,UAAU;AAClC,WAAK,8BAA8B;AAAA,IACvC;AAAA,IACA,gCAAgC;AAC5B,iBAAW,sBAAsB,KAAK,uBAAuB;AACzD,cAAM,yBAAyB,KAAK,oBAAoB,kBAAkB;AAC1E,2BAAmB,YAAY,sBAAsB;AAAA,MACzD;AAAA,IACJ;AAAA,IACA,gBAAgB;AACZ,UAAI,SAAS,QAAQ,KAAK,sBAAsB,iBAAiB;AAC7D,iBAAS,KAAK,YAAY,KAAK,UAAU;AAAA,MAC7C,OACK;AACD,iBAAS,gBAAgB,YAAY,KAAK,UAAU;AAAA,MACxD;AAAA,IACJ;AAAA,IACA,IAAI,4BAA4B;AAC5B,aAAO,KAAK,gBAAgB,mCAAmC,KAAK,mBAAmB;AAAA,IAC3F;AAAA,IACA,IAAI,wBAAwB;AACxB,aAAO,KAAK,gBAAgB,+BAA+B,KAAK,mBAAmB;AAAA,IACvF;AAAA,IACA,IAAI,iCAAiC;AACjC,aAAO,KAAK,oBAAoB;AAAA,IACpC;AAAA,IACA,IAAI,6BAA6B;AAC7B,aAAO,KAAK,gBAAgB;AAAA,IAChC;AAAA,IACA,IAAI,wBAAwB;AACxB,aAAO,KAAK,WAAW,iBAAiB,QAAQ;AAAA,IACpD;AAAA,EACJ;AAEA,MAAM,gBAAN,MAAoB;AAAA,IAChB,YAAY,MAAM;AACd,WAAK,OAAO,CAAC;AACb,WAAK,YAAY,CAAC;AAClB,WAAK,OAAO;AAAA,IAChB;AAAA,IACA,IAAInB,WAAU;AACV,aAAO,WAAWA,SAAQ,KAAK,KAAK;AAAA,IACxC;AAAA,IACA,IAAIA,WAAU;AACV,UAAI,KAAK,IAAIA,SAAQ,GAAG;AACpB,cAAM,WAAW,KAAK,KAAKA,SAAQ;AACnC,aAAK,MAAMA,SAAQ;AACnB,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,IAAIA,WAAU,UAAU;AACpB,WAAK,MAAMA,WAAU,QAAQ;AAC7B,WAAK,MAAMA,SAAQ;AACnB,aAAO;AAAA,IACX;AAAA,IACA,QAAQ;AACJ,WAAK,YAAY,CAAC;AAAA,IACtB;AAAA,IACA,KAAKA,WAAU;AACX,aAAO,KAAK,UAAU,WAAWA,SAAQ,CAAC;AAAA,IAC9C;AAAA,IACA,MAAMA,WAAU,UAAU;AACtB,WAAK,UAAU,WAAWA,SAAQ,CAAC,IAAI;AAAA,IAC3C;AAAA,IACA,MAAMA,WAAU;AACZ,YAAM,MAAM,WAAWA,SAAQ;AAC/B,YAAM,QAAQ,KAAK,KAAK,QAAQ,GAAG;AACnC,UAAI,QAAQ;AACR,aAAK,KAAK,OAAO,OAAO,CAAC;AAC7B,WAAK,KAAK,QAAQ,GAAG;AACrB,WAAK,KAAK;AAAA,IACd;AAAA,IACA,OAAO;AACH,iBAAW,OAAO,KAAK,KAAK,OAAO,KAAK,IAAI,GAAG;AAC3C,eAAO,KAAK,UAAU,GAAG;AAAA,MAC7B;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,WAAN,cAAuB,KAAK;AAAA,IACxB,cAAc;AACV,YAAM,GAAG,SAAS;AAClB,WAAK,gBAAgB,IAAI,cAAc,EAAE;AACzC,WAAK,uBAAuB,IAAI,IAAI,SAAS,IAAI;AAAA,IACrD;AAAA,IACA,WAAW,UAAU,YAAY,OAAO,aAAa,MAAM;AACvD,YAAM,WAAW,IAAI,aAAa,KAAK,UAAU,UAAU,WAAW,UAAU;AAChF,aAAO,KAAK,OAAO,QAAQ;AAAA,IAC/B;AAAA,IACA,YAAY,UAAU;AAClB,YAAM,WAAW,IAAI,cAAc,KAAK,UAAU,UAAU,KAAK;AACjE,aAAO,KAAK,OAAO,QAAQ;AAAA,IAC/B;AAAA,IACA,qBAAqB;AACjB,WAAK,cAAc,MAAM;AAAA,IAC7B;AAAA,IACA,MAAM,gBAAgB;AAClB,UAAI,KAAK,qBAAqB;AAC1B,aAAK,SAAS,sBAAsB;AACpC,cAAM,EAAE,UAAU,sBAAsBA,UAAS,IAAI;AACrD,cAAM,kBAAkB;AACxB,cAAM,iBAAiB,SAAS,MAAM;AACtC,aAAK,cAAc,IAAIA,WAAU,cAAc;AAC/C,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,6BAA6BA,WAAU;AACnC,aAAO,KAAK,cAAc,IAAIA,SAAQ;AAAA,IAC1C;AAAA,IACA,IAAI,WAAW;AACX,aAAO,aAAa,YAAY,KAAK,OAAO;AAAA,IAChD;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,KAAK,SAAS;AAAA,IACzB;AAAA,EACJ;AAEA,MAAM,UAAN,MAAc;AAAA,IACV,cAAc;AACV,WAAK,YAAY,IAAI,UAAU,IAAI;AACnC,WAAK,UAAU,IAAI,QAAQ,IAAI;AAC/B,WAAK,OAAO,IAAI,SAAS,MAAM,SAAS,eAAe;AACvD,WAAK,UAAU,IAAI,eAAe,IAAI;AACtC,WAAK,eAAe,IAAI,aAAa,IAAI;AACzC,WAAK,gBAAgB,IAAI,cAAc;AACvC,WAAK,oBAAoB,IAAI,kBAAkB,IAAI;AACnD,WAAK,qBAAqB,IAAI,mBAAmB,IAAI;AACrD,WAAK,iBAAiB,IAAI,eAAe,IAAI;AAC7C,WAAK,iBAAiB,IAAI,eAAe,IAAI;AAC7C,WAAK,kBAAkB,IAAI,gBAAgB,SAAS,eAAe;AACnE,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,mBAAmB;AACxB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,aAAa,MAAM;AACxB,aAAK,cAAc,MAAM;AACzB,aAAK,kBAAkB,MAAM;AAC7B,aAAK,mBAAmB,MAAM;AAC9B,aAAK,eAAe,MAAM;AAC1B,aAAK,eAAe,MAAM;AAC1B,aAAK,gBAAgB,MAAM;AAC3B,aAAK,QAAQ,MAAM;AACnB,aAAK,UAAU;AACf,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,UAAU;AACN,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,aAAa,KAAK;AACvB,aAAK,cAAc,KAAK;AACxB,aAAK,kBAAkB,KAAK;AAC5B,aAAK,mBAAmB,KAAK;AAC7B,aAAK,eAAe,KAAK;AACzB,aAAK,eAAe,KAAK;AACzB,aAAK,gBAAgB,KAAK;AAC1B,aAAK,QAAQ,KAAK;AAClB,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,gBAAgB,SAAS;AACrB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,MAAMA,WAAU,UAAU,CAAC,GAAG;AAC1B,WAAK,UAAU,aAAa,UAAUA,SAAQ,GAAG,OAAO;AAAA,IAC5D;AAAA,IACA,oBAAoB,QAAQ;AACxB,WAAK,eAAe,oBAAoB,MAAM;AAAA,IAClD;AAAA,IACA,uBAAuB,QAAQ;AAC3B,WAAK,eAAe,uBAAuB,MAAM;AAAA,IACrD;AAAA,IACA,oBAAoB,SAAS;AACzB,eAAS,gBAAgB,YAAY,cAAc,KAAK,OAAO,EAAE,QAAQ;AAAA,IAC7E;AAAA,IACA,aAAa;AACT,WAAK,KAAK,mBAAmB;AAAA,IACjC;AAAA,IACA,oBAAoB,OAAO;AACvB,WAAK,mBAAmB;AAAA,IAC5B;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,wBAAwB;AACxB,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,iDAAiDA,WAAU,uBAAuB;AAC9E,UAAI,KAAK,SAAS;AACd,aAAK,UAAU,WAAWA,WAAU,uBAAuB,EAAE,QAAQ,WAAW,gBAAgB,KAAK,CAAC;AAAA,MAC1G,OACK;AACD,aAAK,QAAQ,gBAAgB;AAAA,MACjC;AAAA,IACJ;AAAA,IACA,sBAAsB,UAAU;AAC5B,WAAK,QAAQ,sBAAsB,EAAE,gBAAgB,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,yBAAyB,MAAMA,WAAU;AACrC,aAAO,KAAK,oBAAoB,IAAI,KAC7B,oBAAoBA,WAAU,KAAK,SAAS,YAAY,KACxD,KAAK,yCAAyC,MAAMA,SAAQ;AAAA,IACvE;AAAA,IACA,uBAAuB,MAAMA,WAAU;AACnC,YAAM,SAAS,KAAK,iBAAiB,IAAI;AACzC,WAAK,2CAA2C,IAAI,KAAK,KAAK,MAAMA,UAAS,MAAM,EAAE,OAAO,CAAC;AAAA,IACjG;AAAA,IACA,2CAA2C,MAAM;AAC7C,YAAM,aAAa,KAAK,aAAa,mBAAmB;AACxD,UAAI,YAAY;AACZ,cAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,aAAK,SAAS;AACd,aAAK,SAAS,KAAK,aAAa,MAAM,KAAK;AAC3C,aAAK,SAAS;AACd,YAAI,KAAK,aAAa,oBAAoB,GAAG;AACzC,eAAK,aAAa,sBAAsB,KAAK,aAAa,oBAAoB,CAAC;AAAA,QACnF;AACA,cAAM,QAAQ,KAAK,sBAAsB,IAAI;AAC7C,YAAI,OAAO;AACP,eAAK,aAAa,oBAAoB,KAAK;AAC3C,eAAK,iBAAiB,sBAAsB,MAAM,KAAK,OAAO,CAAC;AAAA,QACnE,OACK;AACD,eAAK,iBAAiB,UAAU,MAAM,KAAK,OAAO,CAAC;AAAA,QACvD;AACA,iBAAS,KAAK,YAAY,IAAI;AAC9B,eAAO,SAAS,UAAU,EAAE,YAAY,MAAM,QAAQ,KAAK,CAAC;AAAA,MAChE,OACK;AACD,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,iCAAiCA,WAAU,QAAQ;AAC/C,aAAO,KAAK,6BAA6BA,WAAU,MAAM,KAAK,KAAK,kCAAkCA,SAAQ;AAAA,IACjH;AAAA,IACA,wBAAwBA,WAAU,SAAS;AACvC,wCAAkCA,SAAQ;AAC1C,WAAK,QAAQ,wBAAwBA,WAAU,OAAO;AAAA,IAC1D;AAAA,IACA,aAAakB,QAAO;AAChB,wCAAkCA,OAAM,QAAQ;AAChD,UAAI,CAACA,OAAM,QAAQ;AACf,aAAK,uCAAuCA,OAAM,UAAUA,OAAM,MAAM;AAAA,MAC5E;AAAA,IACJ;AAAA,IACA,eAAeA,QAAO;AAClB,WAAK,+BAA+BA,OAAM,iBAAiB,CAAC;AAAA,IAChE;AAAA,IACA,6BAA6BlB,WAAU,QAAQ;AAC3C,aAAO,KAAK,UAAU,6BAA6BA,WAAU,MAAM;AAAA,IACvE;AAAA,IACA,gCAAgC,QAAQ,QAAQ;AAC5C,WAAK,+CAA+C,QAAQ,MAAM;AAAA,IACtE;AAAA,IACA,eAAe,MAAM,WAAW;AAC5B,YAAM,SAAS,UAAU,MAAM,SAAS;AACxC,aAAO,KAAK,oBAAoB,IAAI,MAC5B,CAAC,aAAa,KAAK,oBAAoB,SAAS,MACjD,oBAAoB,UAAU,MAAM,GAAG,KAAK,SAAS,YAAY;AAAA,IAC5E;AAAA,IACA,cAAc,MAAM,WAAW;AAC3B,WAAK,UAAU,WAAW,MAAM,SAAS;AAAA,IAC7C;AAAA,IACA,wBAAwB;AACpB,WAAK,KAAK,uBAAuB,KAAK;AACtC,WAAK,+BAA+B;AAAA,IACxC;AAAA,IACA,aAAa;AACT,WAAK,QAAQ,iCAAiC;AAAA,IAClD;AAAA,IACA,iBAAiB;AACb,WAAK,QAAQ,qCAAqC;AAAA,IACtD;AAAA,IACA,0BAA0B,SAAS;AAC/B,WAAK,oBAAoB,OAAO;AAAA,IACpC;AAAA,IACA,wBAAwB;AACpB,UAAI;AACJ,UAAI,GAAG,KAAK,KAAK,UAAU,kBAAkB,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAS;AACtF,aAAK,uCAAuC;AAAA,MAChD;AAAA,IACJ;AAAA,IACA,sBAAsB,EAAE,QAAQ,GAAG,QAAQ;AACvC,YAAM,QAAQ,KAAK,8BAA8B,SAAS,MAAM;AAChE,aAAO,CAAC,MAAM;AAAA,IAClB;AAAA,IACA,qBAAqB,UAAU,WAAW;AACtC,WAAK,KAAK,uBAAuB,KAAK,QAAQ;AAC9C,WAAK,6BAA6B;AAAA,IACtC;AAAA,IACA,kBAAkB;AACd,WAAK,QAAQ,gBAAgB;AAAA,IACjC;AAAA,IACA,YAAY,OAAO;AACf,WAAK,gCAAgC,KAAK;AAAA,IAC9C;AAAA,IACA,cAAc,eAAe,OAAO;AAChC,WAAK,kCAAkC,eAAe,KAAK;AAAA,IAC/D;AAAA,IACA,yCAAyC,MAAMA,WAAU;AACrD,YAAM,QAAQ,KAAK,6CAA6C,MAAMA,SAAQ;AAC9E,aAAO,CAAC,MAAM;AAAA,IAClB;AAAA,IACA,kCAAkCA,WAAU;AACxC,YAAM,QAAQ,KAAK,wCAAwCA,SAAQ;AACnE,aAAO,CAAC,MAAM;AAAA,IAClB;AAAA,IACA,6CAA6C,MAAMA,WAAU;AACzD,aAAO,SAAS,eAAe,EAAE,QAAQ,MAAM,QAAQ,EAAE,KAAKA,UAAS,KAAK,GAAG,YAAY,KAAK,CAAC;AAAA,IACrG;AAAA,IACA,wCAAwCA,WAAU;AAC9C,aAAO,SAAS,sBAAsB,EAAE,QAAQ,EAAE,KAAKA,UAAS,KAAK,GAAG,YAAY,KAAK,CAAC;AAAA,IAC9F;AAAA,IACA,uCAAuCA,WAAU,QAAQ;AACrD,iBAAW,SAAS,eAAe;AACnC,aAAO,SAAS,eAAe,EAAE,QAAQ,EAAE,KAAKA,UAAS,MAAM,OAAO,EAAE,CAAC;AAAA,IAC7E;AAAA,IACA,yCAAyC;AACrC,aAAO,SAAS,oBAAoB;AAAA,IACxC;AAAA,IACA,8BAA8B,SAAS,QAAQ;AAC3C,aAAO,SAAS,uBAAuB,EAAE,QAAQ,EAAE,SAAS,OAAO,GAAG,YAAY,KAAK,CAAC;AAAA,IAC5F;AAAA,IACA,+BAA+B;AAC3B,aAAO,SAAS,cAAc;AAAA,IAClC;AAAA,IACA,+BAA+B,SAAS,CAAC,GAAG;AACxC,qBAAe,SAAS,eAAe;AACvC,aAAO,SAAS,cAAc,EAAE,QAAQ,EAAE,KAAK,KAAK,SAAS,MAAM,OAAO,EAAE,CAAC;AAAA,IACjF;AAAA,IACA,+CAA+C,QAAQ,QAAQ;AAC3D,oBAAc,IAAI,gBAAgB,cAAc,EAAE,QAAQ,OAAO,SAAS,GAAG,QAAQ,OAAO,SAAS,EAAE,CAAC,CAAC;AAAA,IAC7G;AAAA,IACA,gCAAgC,OAAO;AACnC,aAAO,SAAS,oBAAoB,EAAE,QAAQ,MAAM,CAAC;AAAA,IACzD;AAAA,IACA,kCAAkC,eAAe,OAAO;AACpD,aAAO,SAAS,sBAAsB,EAAE,QAAQ,EAAE,cAAc,GAAG,QAAQ,OAAO,YAAY,KAAK,CAAC;AAAA,IACxG;AAAA,IACA,oBAAoB,SAAS;AACzB,YAAM,YAAY,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,QAAQ,cAAc;AAClG,UAAI,KAAK,OAAO;AACZ,YAAI,WAAW;AACX,iBAAO,UAAU,aAAa,YAAY,KAAK;AAAA,QACnD,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,OACK;AACD,YAAI,WAAW;AACX,iBAAO,UAAU,aAAa,YAAY,KAAK;AAAA,QACnD,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,iBAAiB,MAAM;AACnB,YAAM,SAAS,KAAK,aAAa,mBAAmB;AACpD,aAAO,SAAS,MAAM,IAAI,SAAS;AAAA,IACvC;AAAA,IACA,sBAAsB,MAAM;AACxB,YAAM,QAAQ,KAAK,aAAa,kBAAkB;AAClD,UAAI,OAAO;AACP,eAAO;AAAA,MACX,OACK;AACD,cAAM,YAAY,KAAK,QAAQ,aAAa;AAC5C,YAAI,WAAW;AACX,iBAAO,UAAU;AAAA,QACrB;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,WAAS,kCAAkC,KAAK;AAC5C,WAAO,iBAAiB,KAAK,qCAAqC;AAAA,EACtE;AACA,MAAM,wCAAwC;AAAA,IAC1C,aAAa;AAAA,MACT,MAAM;AACF,eAAO,KAAK,SAAS;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,UAAU,IAAI;AACpB,MAAM,EAAE,WAAW,YAAY,IAAI;AACnC,WAAS,QAAQ;AACb,YAAQ,MAAM;AAAA,EAClB;AACA,WAAS,gBAAgB,SAAS;AAC9B,YAAQ,gBAAgB,OAAO;AAAA,EACnC;AACA,WAAS,MAAMA,WAAU,SAAS;AAC9B,YAAQ,MAAMA,WAAU,OAAO;AAAA,EACnC;AACA,WAAS,oBAAoB,QAAQ;AACjC,YAAQ,oBAAoB,MAAM;AAAA,EACtC;AACA,WAAS,uBAAuB,QAAQ;AACpC,YAAQ,uBAAuB,MAAM;AAAA,EACzC;AACA,WAAS,oBAAoB,SAAS;AAClC,YAAQ,oBAAoB,OAAO;AAAA,EACvC;AACA,WAAS,aAAa;AAClB,YAAQ,WAAW;AAAA,EACvB;AACA,WAAS,oBAAoB,OAAO;AAChC,YAAQ,oBAAoB,KAAK;AAAA,EACrC;AACA,WAAS,iBAAiB,eAAe;AACrC,mBAAe,gBAAgB;AAAA,EACnC;AAEA,MAAI,QAAqB,uBAAO,OAAO;AAAA,IACnC,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAED,MAAM,kBAAN,MAAsB;AAAA,IAClB,YAAY,SAAS;AACjB,WAAK,sBAAsB,CAAC,kBAAkB;AAAA,MAAE;AAChD,WAAK,sBAAsB;AAC3B,WAAK,sBAAsB,MAAM;AAAA,MAAE;AACnC,WAAK,YAAY;AACjB,WAAK,gBAAgB;AACrB,WAAK,mBAAmB;AACxB,WAAK,UAAU;AACf,WAAK,OAAO,IAAI,UAAU,MAAM,KAAK,OAAO;AAC5C,WAAK,qBAAqB,IAAI,mBAAmB,MAAM,KAAK,OAAO;AACnE,WAAK,kBAAkB,IAAI,gBAAgB,MAAM,KAAK,OAAO;AAC7D,WAAK,kBAAkB,IAAI,gBAAgB,MAAM,KAAK,OAAO;AAAA,IACjE;AAAA,IACA,UAAU;AACN,UAAI,CAAC,KAAK,WAAW;AACjB,aAAK,YAAY;AACjB,aAAK,aAAa;AAClB,YAAI,KAAK,gBAAgB,kBAAkB,MAAM;AAC7C,eAAK,mBAAmB,MAAM;AAAA,QAClC;AACA,aAAK,gBAAgB,MAAM;AAC3B,aAAK,gBAAgB,MAAM;AAC3B,aAAK,iBAAiB;AAAA,MAC1B;AAAA,IACJ;AAAA,IACA,aAAa;AACT,UAAI,KAAK,WAAW;AAChB,aAAK,YAAY;AACjB,aAAK,mBAAmB,KAAK;AAC7B,aAAK,gBAAgB,KAAK;AAC1B,aAAK,gBAAgB,KAAK;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,kBAAkB;AACd,UAAI,KAAK,gBAAgB,kBAAkB,OAAO;AAC9C,aAAK,cAAc;AAAA,MACvB;AAAA,IACJ;AAAA,IACA,mBAAmB;AACf,UAAI,KAAK,gBAAgB,kBAAkB,SAAS,KAAK,eAAe;AACpE,aAAK,cAAc;AAAA,MACvB;AAAA,IACJ;AAAA,IACA,sBAAsB;AAClB,UAAI,KAAK,gBAAgB,kBAAkB,MAAM;AAC7C,aAAK,mBAAmB,MAAM;AAAA,MAClC,OACK;AACD,aAAK,mBAAmB,KAAK;AAC7B,aAAK,cAAc;AAAA,MACvB;AAAA,IACJ;AAAA,IACA,MAAM,gBAAgB;AAClB,UAAI,CAAC,KAAK,oBAAoB,KAAK,WAAW,KAAK,aAAa,KAAK,cAAc,KAAK,aAAa,KAAK,aAAa;AACnH,cAAM,cAAc,KAAK;AACzB,aAAK,aAAa,KAAK;AACvB,YAAI,KAAK,WAAW;AAChB,cAAI;AACA,iBAAK,QAAQ,SAAS,KAAK,MAAM,UAAU,KAAK,SAAS,CAAC;AAC1D,iBAAK,mBAAmB,KAAK;AAC7B,kBAAM,KAAK,QAAQ;AACnB,iBAAK,gBAAgB;AAAA,UACzB,SACOO,QAAO;AACV,iBAAK,aAAa;AAClB,kBAAMA;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,MAAM,aAAa,eAAe;AAC9B,UAAI,cAAc,cAAe,cAAc,aAAa,cAAc,QAAS;AAC/E,aAAK,YAAY,cAAc,SAAS;AAAA,MAC5C;AACA,UAAI;AACA,cAAM,OAAO,MAAM,cAAc;AACjC,YAAI,MAAM;AACN,gBAAM,EAAE,KAAK,IAAI,kBAAkB,IAAI;AACvC,gBAAM,WAAW,IAAI,SAAS,MAAM,KAAK,2BAA2B,IAAI,CAAC;AACzE,gBAAM,WAAW,IAAI,cAAc,KAAK,KAAK,UAAU,UAAU,OAAO,KAAK;AAC7E,cAAI,KAAK,KAAK;AACV,kBAAM,KAAK,KAAK;AACpB,gBAAM,KAAK,KAAK,OAAO,QAAQ;AAC/B,kBAAQ,cAAc,eAAe,KAAK,OAAO;AACjD,kBAAQ,YAAY,KAAK,OAAO;AAChC,eAAK,oBAAoB,aAAa;AAAA,QAC1C;AAAA,MACJ,SACOA,QAAO;AACV,gBAAQ,MAAMA,MAAK;AACnB,aAAK,KAAK,WAAW;AAAA,MACzB,UACA;AACI,aAAK,sBAAsB,MAAM;AAAA,QAAE;AAAA,MACvC;AAAA,IACJ;AAAA,IACA,0BAA0B,SAAS;AAC/B,WAAK,cAAc;AAAA,IACvB;AAAA,IACA,yBAAyB,SAAS,KAAK;AACnC,UAAI,QAAQ,aAAa,mBAAmB,GAAG;AAC3C,eAAO;AAAA,MACX,OACK;AACD,eAAO,KAAK,0BAA0B,OAAO;AAAA,MACjD;AAAA,IACJ;AAAA,IACA,qBAAqB,SAAS,KAAK;AAC/B,WAAK,aAAa;AAClB,WAAK,cAAc,SAAS,GAAG;AAAA,IACnC;AAAA,IACA,8BAA8B,SAAS,WAAW;AAC9C,aAAO,KAAK,0BAA0B,SAAS,SAAS;AAAA,IAC5D;AAAA,IACA,0BAA0B,SAAS,WAAW;AAC1C,UAAI,KAAK,gBAAgB;AACrB,aAAK,eAAe,KAAK;AAAA,MAC7B;AACA,WAAK,aAAa;AAClB,WAAK,iBAAiB,IAAI,eAAe,MAAM,SAAS,SAAS;AACjE,YAAM,EAAE,aAAa,IAAI,KAAK;AAC9B,WAAK,yBAAyB,aAAa,SAAS,YAAY;AAChE,WAAK,eAAe,MAAM;AAAA,IAC9B;AAAA,IACA,yBAAyB,SAAS,SAAS;AACvC,cAAQ,aAAa,IAAI,KAAK;AAAA,IAClC;AAAA,IACA,eAAe,SAAS;AACpB,iBAAW,KAAK,OAAO;AAAA,IAC3B;AAAA,IACA,iCAAiC,SAAS,UAAU;AAChD,WAAK,oBAAoB;AAAA,IAC7B;AAAA,IACA,MAAM,6BAA6B,SAAS,UAAU;AAClD,YAAM,KAAK,aAAa,QAAQ;AAChC,WAAK,oBAAoB;AAAA,IAC7B;AAAA,IACA,0BAA0B,SAAS,UAAU;AACzC,cAAQ,MAAM,QAAQ;AACtB,WAAK,oBAAoB;AAAA,IAC7B;AAAA,IACA,eAAe,SAASA,QAAO;AAC3B,cAAQ,MAAMA,MAAK;AACnB,WAAK,oBAAoB;AAAA,IAC7B;AAAA,IACA,gBAAgB,SAAS;AACrB,qBAAe,KAAK,OAAO;AAAA,IAC/B;AAAA,IACA,sBAAsB,EAAE,YAAY,GAAG;AACnC,iBAAW,aAAa,KAAK,iBAAiB,WAAW,CAAC;AAAA,IAC9D;AAAA,IACA,oCAAoC,gBAAgB,UAAU;AAC1D,YAAM,QAAQ,KAAK,iBAAiB,eAAe,aAAa,eAAe,SAAS;AACxF,WAAK,kCAAkC,OAAO,eAAe,aAAa,eAAe,SAAS;AAClG,YAAM,SAAS,aAAa,QAAQ;AAAA,IACxC;AAAA,IACA,iCAAiC,gBAAgB,eAAe;AAC5D,WAAK,QAAQ,SAAS,aAAa,aAAa;AAAA,IACpD;AAAA,IACA,sBAAsB,gBAAgBA,QAAO;AACzC,cAAQ,MAAMA,MAAK;AAAA,IACvB;AAAA,IACA,uBAAuB,EAAE,YAAY,GAAG;AACpC,qBAAe,aAAa,KAAK,iBAAiB,WAAW,CAAC;AAAA,IAClE;AAAA,IACA,sBAAsB,UAAU,QAAQ;AACpC,aAAO;AAAA,IACX;AAAA,IACA,qBAAqB,UAAU,WAAW;AAAA,IAC1C;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,IACA,MAAM,MAAM,KAAK;AACb,UAAI;AACJ,YAAM,UAAU,IAAI,aAAa,MAAM,YAAY,KAAK,KAAK,IAAI,mBAAiB,KAAK,OAAO;AAC9F,OAAC,KAAK,KAAK,yBAAyB,QAAQ,OAAO,SAAS,SAAS,GAAG,OAAO;AAC/E,WAAK,sBAAsB;AAC3B,aAAO,IAAI,QAAQ,aAAW;AAC1B,aAAK,sBAAsB,MAAM;AAC7B,eAAK,sBAAsB,MAAM;AAAA,UAAE;AACnC,eAAK,sBAAsB;AAC3B,kBAAQ;AAAA,QACZ;AACA,gBAAQ,QAAQ;AAAA,MACpB,CAAC;AAAA,IACL;AAAA,IACA,cAAc,SAAS,KAAK,WAAW;AACnC,YAAM,QAAQ,KAAK,iBAAiB,SAAS,SAAS;AACtD,WAAK,kCAAkC,OAAO,SAAS,SAAS;AAChE,YAAM,aAAa,cAAc,EAAE;AACnC,YAAM,MAAM;AAAA,IAChB;AAAA,IACA,kCAAkC,OAAO,SAAS,WAAW;AACzD,YAAM,SAAS,aAAa,qBAAqB,WAAW,SAAS,KAAK;AAC1E,UAAI,SAAS,MAAM,GAAG;AAClB,cAAM,EAAE,oBAAoB,IAAI,IAAI,qBAAqB,KAAK;AAC9D,cAAM,SAAS,sBAAsB,CAAC,kBAAkB;AACpD,cAAI,MAAM,KAAK;AACX,kBAAM,EAAE,YAAY,WAAW,IAAI;AACnC,kBAAM,eAAe,MAAM,cAAc,gBAAgB;AACzD,kBAAM,WAAW,EAAE,YAAY,YAAY,aAAa;AACxD,oBAAQ,MAAM,MAAM,KAAK,EAAE,QAAQ,UAAU,qBAAqB,YAAY,MAAM,CAAC;AAAA,UACzF;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,iBAAiB,SAAS,WAAW;AACjC,UAAI;AACJ,YAAMI,OAAK,aAAa,oBAAoB,WAAW,OAAO,KAAK,KAAK,QAAQ,aAAa,QAAQ;AACrG,cAAQ,KAAK,oBAAoBA,IAAE,OAAO,QAAQ,OAAO,SAAS,KAAK,KAAK;AAAA,IAChF;AAAA,IACA,MAAM,2BAA2B,WAAW;AACxC,UAAI;AACJ,YAAMA,OAAK,IAAI,OAAO,KAAK,EAAE;AAC7B,UAAI;AACA,YAAI,UAAU,gBAAgB,UAAU,cAAc,eAAeA,IAAE,EAAE,GAAG,KAAK,UAAU,GAAG;AAC1F,iBAAO;AAAA,QACX;AACA,YAAI,UAAU,gBAAgB,UAAU,cAAc,6BAA6BA,IAAE,GAAG,GAAG,KAAK,UAAU,GAAG;AACzG,gBAAM,QAAQ;AACd,iBAAO,MAAM,KAAK,2BAA2B,OAAO;AAAA,QACxD;AACA,gBAAQ,MAAM,6CAA6CA,IAAE,YAAY;AAAA,MAC7E,SACOJ,QAAO;AACV,gBAAQ,MAAMA,MAAK;AAAA,MACvB;AACA,aAAO,IAAI,aAAa;AAAA,IAC5B;AAAA,IACA,sBAAsB,MAAM,WAAW;AACnC,YAAM,SAAS,UAAU,MAAM,SAAS;AACxC,aAAO,oBAAoB,UAAU,MAAM,GAAG,KAAK,YAAY;AAAA,IACnE;AAAA,IACA,0BAA0B,SAAS,WAAW;AAC1C,YAAMI,OAAK,aAAa,oBAAoB,WAAW,OAAO,KAAK,KAAK,QAAQ,aAAa,QAAQ;AACrG,UAAI,mBAAmB,mBAAmB,CAAC,KAAK,sBAAsB,SAAS,SAAS,GAAG;AACvF,eAAO;AAAA,MACX;AACA,UAAI,CAAC,KAAK,WAAWA,QAAM,QAAQ;AAC/B,eAAO;AAAA,MACX;AACA,UAAIA,MAAI;AACJ,cAAM,eAAe,oBAAoBA,IAAE;AAC3C,YAAI,cAAc;AACd,iBAAO,CAAC,aAAa;AAAA,QACzB;AAAA,MACJ;AACA,UAAI,CAAC,QAAQ,oBAAoB,OAAO,GAAG;AACvC,eAAO;AAAA,MACX;AACA,UAAI,aAAa,CAAC,QAAQ,oBAAoB,SAAS,GAAG;AACtD,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,KAAK;AACL,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,CAAC,KAAK,QAAQ;AAAA,IACzB;AAAA,IACA,IAAI,YAAY;AACZ,UAAI,KAAK,QAAQ,KAAK;AAClB,eAAO,KAAK,QAAQ;AAAA,MACxB;AAAA,IACJ;AAAA,IACA,IAAI,aAAa;AACb,YAAM,QAAQ,KAAK,iBAAiB,KAAK,OAAO;AAChD,aAAO,MAAM,aAAa,YAAY;AAAA,IAC1C;AAAA,IACA,IAAI,WAAW,OAAO;AAClB,YAAM,QAAQ,KAAK,iBAAiB,KAAK,OAAO;AAChD,UAAI,OAAO;AACP,cAAM,aAAa,cAAc,EAAE;AAAA,MACvC,OACK;AACD,cAAM,gBAAgB,YAAY;AAAA,MACtC;AAAA,IACJ;AAAA,IACA,IAAI,UAAU,WAAW;AACrB,WAAK,mBAAmB;AACxB,WAAK,QAAQ,MAAM,cAAc,QAAQ,cAAc,SAAS,YAAY;AAC5E,WAAK,aAAa,KAAK,QAAQ;AAC/B,WAAK,mBAAmB;AAAA,IAC5B;AAAA,IACA,IAAI,eAAe;AACf,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,YAAY;AACZ,aAAO,KAAK,mBAAmB,UAAa,KAAK,oBAAoB,MAAM;AAAA,IAC/E;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,QAAQ,YAAY,KAAK;AAAA,IACzC;AAAA,IACA,IAAI,eAAe;AACf,UAAI;AACJ,YAAM,OAAO,KAAK,QAAQ,cAAc,cAAc,yBAAyB;AAC/E,YAAM,QAAQ,KAAK,SAAS,QAAQ,SAAS,SAAS,SAAS,KAAK,aAAa,QAAQ,OAAO,SAAS,KAAK;AAC9G,aAAO,UAAU,IAAI;AAAA,IACzB;AAAA,EACJ;AACA,MAAM,uBAAN,MAA2B;AAAA,IACvB,YAAY,SAAS;AACjB,WAAK,sBAAsB,CAAC,EAAE,SAAAS,SAAQ,MAAM;AACxC,YAAI;AACJ,cAAM,EAAE,IAAAT,MAAI,MAAM,IAAI;AACtB,SAAC,KAAKS,SAAQ,cAAc,MAAMT,IAAE,OAAO,QAAQ,OAAO,SAAS,SAAS,GAAG,YAAY,KAAK;AAAA,MACpG;AACA,WAAK,QAAQ,QAAQ,UAAU,IAAI;AACnC,WAAK,KAAK,QAAQ;AAAA,IACtB;AAAA,EACJ;AACA,WAAS,oBAAoBA,MAAI;AAC7B,QAAIA,QAAM,MAAM;AACZ,YAAM,UAAU,SAAS,eAAeA,IAAE;AAC1C,UAAI,mBAAmB,cAAc;AACjC,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,gBAAgB,SAAS,YAAY;AAC1C,QAAI,SAAS;AACT,YAAM,MAAM,QAAQ,aAAa,KAAK;AACtC,UAAI,OAAO,QAAQ,cAAc,QAAQ,aAAa,KAAK,UAAU,GAAG;AACpE,cAAM,IAAI,MAAM,6BAA6B,QAAQ,EAAE,qDAAqD;AAAA,MAChH;AACA,UAAI,QAAQ,kBAAkB,UAAU;AACpC,kBAAU,SAAS,WAAW,SAAS,IAAI;AAAA,MAC/C;AACA,UAAI,mBAAmB,cAAc;AACjC,gBAAQ,kBAAkB;AAC1B,gBAAQ,qBAAqB;AAC7B,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,gBAAgB;AAAA,IAClB,QAAQ;AACJ,WAAK,eAAe,QAAQ,CAAAU,OAAK;AAAE,YAAI;AAAI,gBAAQ,KAAKA,GAAE,mBAAmB,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,KAAK,iBAAiBA,GAAE,WAAW;AAAA,MAAG,CAAC;AAAA,IACzK;AAAA,IACA,SAAS;AACL,WAAK,8BAA8B;AACnC,WAAK,eAAe,QAAQ,CAAAA,OAAKA,GAAE,OAAO,KAAK,eAAe,CAAC;AAAA,IACnE;AAAA,IACA,SAAS;AACL,WAAK,eAAe,QAAQ,CAAAA,OAAK;AAAE,YAAI;AAAI,gBAAQ,KAAKA,GAAE,mBAAmB,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,KAAK,iBAAiBA,EAAC;AAAA,MAAG,CAAC;AAAA,IAC7J;AAAA,IACA,UAAU;AACN,WAAK,8BAA8B;AACnC,WAAK,eAAe,QAAQ,CAAAA,OAAKA,GAAE,QAAQ,KAAK,eAAe,CAAC;AAAA,IACpE;AAAA,IACA,SAAS;AACL,WAAK,eAAe,QAAQ,CAAAA,OAAKA,GAAE,OAAO,CAAC;AAAA,IAC/C;AAAA,IACA,UAAU;AACN,WAAK,eAAe,QAAQ,CAAAA,OAAKA,GAAE,YAAY,KAAK,eAAe,CAAC;AAAA,IACxE;AAAA,IACA,SAAS;AACL,WAAK,eAAe,QAAQ,CAAAA,OAAK;AAC7B,QAAAA,GAAE,YAAY;AACd,QAAAA,GAAE,OAAO,KAAK,eAAe;AAAA,MACjC,CAAC;AAAA,IACL;AAAA,EACJ;AAEA,MAAM,gBAAN,cAA4B,YAAY;AAAA,IACpC,MAAM,oBAAoB;AACtB,UAAI;AACA,cAAM,KAAK,OAAO;AAAA,MACtB,SACOd,QAAO;AACV,gBAAQ,MAAMA,MAAK;AAAA,MACvB,UACA;AACI,aAAK,WAAW;AAAA,MACpB;AAAA,IACJ;AAAA,IACA,MAAM,SAAS;AACX,UAAI;AACJ,cAAQ,KAAK,KAAK,mBAAmB,QAAQ,OAAO,SAAS,KAAM,KAAK,iBAAiB,YAAY;AACjG,YAAI,KAAK,cAAc,KAAK,iBAAiB,GAAG;AAC5C,gBAAM,mBAAmB;AACzB,eAAK,cAAc;AAAA,QACvB;AAAA,MACJ,GAAG;AAAA,IACP;AAAA,IACA,aAAa;AACT,UAAI;AACA,aAAK,OAAO;AAAA,MAChB,SACO,IAAI;AAAA,MAAE;AAAA,IACjB;AAAA,IACA,gCAAgC;AAC5B,WAAK,kBAAkB,QAAQ,CAAAe,OAAKA,GAAE,OAAO,CAAC;AAAA,IAClD;AAAA,IACA,IAAI,oBAAoB;AACpB,UAAI;AACJ,YAAM,mBAAmB,KAAK,eAAe,QAAQ,CAAAD,OAAK,CAAC,GAAGA,GAAE,QAAQ,CAAC,EAAE,OAAO,CAAAC,OAAK,CAAC,CAACA,GAAE,EAAE;AAC7F,YAAM,iBAAiB,CAAC,IAAI,KAAK,KAAK,qBAAqB,QAAQ,OAAO,SAAS,SAAS,GAAG,QAAQ,EAAE,OAAO,CAAAA,OAAK,CAAC,CAACA,GAAE,EAAE,EAAE,IAAI,CAAAA,OAAKA,GAAE,EAAE;AAC1I,aAAO,iBAAiB,OAAO,CAAAA,OAAK,eAAe,SAASA,GAAE,EAAE,CAAC;AAAA,IACrE;AAAA,IACA,IAAI,gBAAgB;AAChB,UAAI,KAAK,QAAQ;AACb,cAAM,iBAAiB,cAAc,KAAK,MAAM;AAChD,YAAI,gBAAgB;AAChB,iBAAO;AAAA,QACX;AACA,aAAK,MAAM,gBAAgB;AAAA,MAC/B;AACA,WAAK,MAAM,6BAA6B;AAAA,IAC5C;AAAA,IACA,IAAI,iBAAiB;AACjB,UAAI,KAAK,QAAQ;AACb,eAAO,KAAK;AAAA,MAChB,WACS,KAAK,SAAS;AACnB,eAAO,KAAK;AAAA,MAChB,OACK;AACD,aAAK,MAAM,wCAAwC;AAAA,MACvD;AAAA,IACJ;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO,KAAK,gBAAgB,QAAQ,UAAU,IAAI;AAAA,IACtD;AAAA,IACA,IAAI,kBAAkB;AAClB,UAAI,KAAK,6BAA6B,qBAAqB;AACvD,eAAO,KAAK;AAAA,MAChB;AACA,WAAK,MAAM,kDAAkD;AAAA,IACjE;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,aAAa,QAAQ;AAAA,IACrC;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,aAAa,QAAQ;AAAA,IACrC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,aAAa,SAAS;AAAA,IACtC;AAAA,IACA,MAAM,SAAS;AACX,YAAM,IAAI,MAAM,GAAG,KAAK,WAAW,KAAK,OAAO,EAAE;AAAA,IACrD;AAAA,IACA,IAAI,cAAc;AACd,UAAI,IAAI;AACR,cAAQ,OAAO,KAAK,KAAK,UAAU,MAAM,SAAS,OAAO,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,OAAO,SAAS,KAAK;AAAA,IACnI;AAAA,IACA,IAAI,oBAAoB;AACpB,aAAO,IAAI,YAAY,8BAA8B,EAAE,SAAS,MAAM,YAAY,KAAK,CAAC;AAAA,IAC5F;AAAA,IACA,IAAI,qBAAqB;AACrB,UAAI;AACJ,YAAM,WAAW,KAAK,KAAK,mBAAmB,QAAQ,OAAO,SAAS,SAAS,GAAG,eAAe,KAAK,MAAM;AAC5G,UAAI,YAAY,MAAM;AAClB,eAAO,CAAC,OAAO;AAAA,MACnB,OACK;AACD,eAAO,CAAC;AAAA,MACZ;AAAA,IACJ;AAAA,IACA,IAAI,wBAAwB;AACxB,UAAI;AACJ,YAAM,YAAY,KAAK,KAAK,mBAAmB,QAAQ,OAAO,SAAS,SAAS,GAAG,iBAAiB,KAAK,OAAO;AAChH,UAAI,SAAS,WAAW,GAAG;AACvB,eAAO,MAAM,UAAU,MAAM,KAAK,QAAQ;AAAA,MAC9C,OACK;AACD,eAAO,CAAC;AAAA,MACZ;AAAA,IACJ;AAAA,EACJ;AAEA,eAAa,sBAAsB;AACnC,iBAAe,OAAO,eAAe,YAAY;AACjD,iBAAe,OAAO,gBAAgB,aAAa;AAEnD,GAAC,MAAM;AACH,QAAI,UAAU,SAAS;AACvB,QAAI,CAAC;AACD;AACJ,QAAI,QAAQ,aAAa,6BAA6B;AAClD;AACJ,WAAO,UAAU,QAAQ,eAAe;AACpC,UAAI,WAAW,SAAS,MAAM;AAC1B,eAAO,QAAQ,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SASvB,QAAQ,SAAS;AAAA,MAClB;AAAA,IACJ;AAAA,EACJ,GAAG;AAEH,SAAO,QAAQ;AACf,QAAM;;;ACzwGN,MAAI;AAEJ,iBAAsB,cAAc;AAClC,WAAO,YAAY,YAAYC,gBAAe,EAAE,KAAK,WAAW,CAAC;AAAA,EACnE;AAEO,WAAS,YAAY,aAAa;AACvC,WAAO,WAAW;AAAA,EACpB;AAEA,iBAAsBA,kBAAiB;AACrC,UAAM,EAAE,gBAAAA,gBAAe,IAAI,MAAM;AACjC,WAAOA,gBAAe;AAAA,EACxB;AAEA,iBAAsB,YAAY,SAAS,OAAO;AAChD,UAAM,EAAE,cAAc,IAAI,MAAM,YAAY;AAC5C,WAAO,cAAc,OAAO,SAAS,KAAK;AAAA,EAC5C;;;ACCe,WAAR,KAAuB,KAAK;AAC/B,QAAI,CAAC,OAAO,OAAO,QAAQ,SAAU,QAAO;AAC5C,QAAI,eAAe,QAAQ,eAAe,OAAQ,QAAO;AACzD,QAAI,MAAM,QAAQ,GAAG,EAAG,QAAO,IAAI,IAAI,IAAI;AAC3C,WAAO,OAAO,KAAK,GAAG,EAAE,OAAO,SAAU,KAAK,KAAK;AAC/C,UAAI,QAAQ,IAAI,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC,EAAE,QAAQ,aAAa,SAAUC,IAAGC,IAAG;AACjF,eAAO,MAAMA,GAAE,YAAY;AAAA,MAC/B,CAAC;AACD,UAAI,KAAK,IAAI,KAAK,IAAI,GAAG,CAAC;AAC1B,aAAO;AAAA,IACX,GAAG,CAAC,CAAC;AAAA,EACT;;;AC1BA,MAAM,gCAAN,cAA4C,YAAY;AAAA,IACtD,MAAM,oBAAoB;AACxB,0BAAoB,IAAI;AACxB,WAAK,eAAe,MAAM,YAAY,KAAK,SAAS,EAAE,UAAU,KAAK,qBAAqB,KAAK,IAAI,EAAE,CAAC;AAAA,IACxG;AAAA,IAEA,uBAAuB;AACrB,6BAAuB,IAAI;AAC3B,UAAI,KAAK,aAAc,MAAK,aAAa,YAAY;AAAA,IACvD;AAAA,IAEA,qBAAqB,MAAM;AACzB,YAAM,QAAQ,IAAI,aAAa,WAAW,EAAE,KAAK,CAAC;AAClD,aAAO,KAAK,cAAc,KAAK;AAAA,IACjC;AAAA,IAEA,IAAI,UAAU;AACZ,YAAM,UAAU,KAAK,aAAa,SAAS;AAC3C,YAAM,qBAAqB,KAAK,aAAa,oBAAoB;AACjE,aAAO,EAAE,SAAS,oBAAoB,GAAG,KAAS,EAAE,GAAG,KAAK,QAAQ,CAAC,EAAE;AAAA,IACzE;AAAA,EACF;AAEA,iBAAe,OAAO,6BAA6B,6BAA6B;;;AC3BzE,WAAS,6BAA6B,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,UAAU,EAAE,EAAE,GAAG;AACxG,QAAI,aAAa,UAAU,cAAc,aAAa,KAAK,IAAI,SAAS,GAAG;AACzE,mBAAa,KAAK,IAAI,WAAW,UAAU,UAAU;AAAA,IACvD;AAAA,EACF;;;ACKA,mBAAiB,sBAAsB,4BAA4B;;;ACLnE,MAAM,gBAAN,MAAoB;AAAA,IAChB,YAAY,aAAa,WAAW,cAAc;AAC9C,WAAK,cAAc;AACnB,WAAK,YAAY;AACjB,WAAK,eAAe;AACpB,WAAK,oBAAoB,oBAAI,IAAI;AAAA,IACrC;AAAA,IACA,UAAU;AACN,WAAK,YAAY,iBAAiB,KAAK,WAAW,MAAM,KAAK,YAAY;AAAA,IAC7E;AAAA,IACA,aAAa;AACT,WAAK,YAAY,oBAAoB,KAAK,WAAW,MAAM,KAAK,YAAY;AAAA,IAChF;AAAA,IACA,iBAAiB,SAAS;AACtB,WAAK,kBAAkB,IAAI,OAAO;AAAA,IACtC;AAAA,IACA,oBAAoB,SAAS;AACzB,WAAK,kBAAkB,OAAO,OAAO;AAAA,IACzC;AAAA,IACA,YAAY,OAAO;AACf,YAAM,gBAAgB,YAAY,KAAK;AACvC,iBAAW,WAAW,KAAK,UAAU;AACjC,YAAI,cAAc,6BAA6B;AAC3C;AAAA,QACJ,OACK;AACD,kBAAQ,YAAY,aAAa;AAAA,QACrC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,IAAI,WAAW;AACX,aAAO,MAAM,KAAK,KAAK,iBAAiB,EAAE,KAAK,CAACC,OAAMC,WAAU;AAC5D,cAAM,YAAYD,MAAK,OAAO,aAAaC,OAAM;AACjD,eAAO,YAAY,aAAa,KAAK,YAAY,aAAa,IAAI;AAAA,MACtE,CAAC;AAAA,IACL;AAAA,EACJ;AACA,WAAS,YAAY,OAAO;AACxB,QAAI,iCAAiC,OAAO;AACxC,aAAO;AAAA,IACX,OACK;AACD,YAAM,EAAE,yBAAyB,IAAI;AACrC,aAAO,OAAO,OAAO,OAAO;AAAA,QACxB,6BAA6B;AAAA,QAC7B,2BAA2B;AACvB,eAAK,8BAA8B;AACnC,mCAAyB,KAAK,IAAI;AAAA,QACtC;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAEA,MAAM,aAAN,MAAiB;AAAA,IACb,YAAYC,cAAa;AACrB,WAAK,cAAcA;AACnB,WAAK,oBAAoB,oBAAI;AAC7B,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,aAAK,eAAe,QAAQ,mBAAiB,cAAc,QAAQ,CAAC;AAAA,MACxE;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,UAAU;AACf,aAAK,eAAe,QAAQ,mBAAiB,cAAc,WAAW,CAAC;AAAA,MAC3E;AAAA,IACJ;AAAA,IACA,IAAI,iBAAiB;AACjB,aAAO,MAAM,KAAK,KAAK,kBAAkB,OAAO,CAAC,EAC5C,OAAO,CAAC,WAAW,QAAQ,UAAU,OAAO,MAAM,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,IAClF;AAAA,IACA,iBAAiB,SAAS;AACtB,WAAK,6BAA6B,OAAO,EAAE,iBAAiB,OAAO;AAAA,IACvE;AAAA,IACA,oBAAoB,SAAS;AACzB,WAAK,6BAA6B,OAAO,EAAE,oBAAoB,OAAO;AAAA,IAC1E;AAAA,IACA,YAAYC,QAAO,SAAS,SAAS,CAAC,GAAG;AACrC,WAAK,YAAY,YAAYA,QAAO,SAAS,OAAO,IAAI,MAAM;AAAA,IAClE;AAAA,IACA,6BAA6B,SAAS;AAClC,YAAM,EAAE,aAAa,WAAW,aAAa,IAAI;AACjD,aAAO,KAAK,mBAAmB,aAAa,WAAW,YAAY;AAAA,IACvE;AAAA,IACA,mBAAmB,aAAa,WAAW,cAAc;AACrD,YAAM,mBAAmB,KAAK,oCAAoC,WAAW;AAC7E,YAAM,WAAW,KAAK,SAAS,WAAW,YAAY;AACtD,UAAI,gBAAgB,iBAAiB,IAAI,QAAQ;AACjD,UAAI,CAAC,eAAe;AAChB,wBAAgB,KAAK,oBAAoB,aAAa,WAAW,YAAY;AAC7E,yBAAiB,IAAI,UAAU,aAAa;AAAA,MAChD;AACA,aAAO;AAAA,IACX;AAAA,IACA,oBAAoB,aAAa,WAAW,cAAc;AACtD,YAAM,gBAAgB,IAAI,cAAc,aAAa,WAAW,YAAY;AAC5E,UAAI,KAAK,SAAS;AACd,sBAAc,QAAQ;AAAA,MAC1B;AACA,aAAO;AAAA,IACX;AAAA,IACA,oCAAoC,aAAa;AAC7C,UAAI,mBAAmB,KAAK,kBAAkB,IAAI,WAAW;AAC7D,UAAI,CAAC,kBAAkB;AACnB,2BAAmB,oBAAI;AACvB,aAAK,kBAAkB,IAAI,aAAa,gBAAgB;AAAA,MAC5D;AACA,aAAO;AAAA,IACX;AAAA,IACA,SAAS,WAAW,cAAc;AAC9B,YAAM,QAAQ,CAAC,SAAS;AACxB,aAAO,KAAK,YAAY,EAAE,KAAK,EAAE,QAAQ,SAAO;AAC5C,cAAM,KAAK,GAAG,aAAa,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE;AAAA,MACtD,CAAC;AACD,aAAO,MAAM,KAAK,GAAG;AAAA,IACzB;AAAA,EACJ;AAEA,MAAM,oBAAoB;AAC1B,WAAS,4BAA4B,kBAAkB;AACnD,UAAM,SAAS,iBAAiB,KAAK;AACrC,UAAM,UAAU,OAAO,MAAM,iBAAiB,KAAK,CAAC;AACpD,WAAO;AAAA,MACH,aAAa,iBAAiB,QAAQ,CAAC,CAAC;AAAA,MACxC,WAAW,QAAQ,CAAC;AAAA,MACpB,cAAc,QAAQ,CAAC,IAAI,kBAAkB,QAAQ,CAAC,CAAC,IAAI,CAAC;AAAA,MAC5D,YAAY,QAAQ,CAAC;AAAA,MACrB,YAAY,QAAQ,CAAC;AAAA,IACzB;AAAA,EACJ;AACA,WAAS,iBAAiB,iBAAiB;AACvC,QAAI,mBAAmB,UAAU;AAC7B,aAAO;AAAA,IACX,WACS,mBAAmB,YAAY;AACpC,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,kBAAkB,cAAc;AACrC,WAAO,aAAa,MAAM,GAAG,EAAE,OAAO,CAAC,SAAS,UAAU,OAAO,OAAO,SAAS,EAAE,CAAC,MAAM,QAAQ,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AAAA,EAC1I;AACA,WAAS,qBAAqB,aAAa;AACvC,QAAI,eAAe,QAAQ;AACvB,aAAO;AAAA,IACX,WACS,eAAe,UAAU;AAC9B,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,WAAS,SAAS,OAAO;AACrB,WAAO,MAAM,QAAQ,uBAAuB,CAACC,IAAG,SAAS,KAAK,YAAY,CAAC;AAAA,EAC/E;AACA,WAAS,WAAW,OAAO;AACvB,WAAO,MAAM,OAAO,CAAC,EAAE,YAAY,IAAI,MAAM,MAAM,CAAC;AAAA,EACxD;AACA,WAAS,UAAU,OAAO;AACtB,WAAO,MAAM,QAAQ,YAAY,CAACA,IAAG,SAAS,IAAI,KAAK,YAAY,CAAC,EAAE;AAAA,EAC1E;AACA,WAAS,SAAS,OAAO;AACrB,WAAO,MAAM,MAAM,SAAS,KAAK,CAAC;AAAA,EACtC;AAEA,MAAM,SAAN,MAAa;AAAA,IACT,YAAY,SAAS,OAAO,YAAY;AACpC,WAAK,UAAU;AACf,WAAK,QAAQ;AACb,WAAK,cAAc,WAAW,eAAe;AAC7C,WAAK,YAAY,WAAW,aAAa,8BAA8B,OAAO,KAAK,MAAM,oBAAoB;AAC7G,WAAK,eAAe,WAAW,gBAAgB,CAAC;AAChD,WAAK,aAAa,WAAW,cAAc,MAAM,oBAAoB;AACrE,WAAK,aAAa,WAAW,cAAc,MAAM,qBAAqB;AAAA,IAC1E;AAAA,IACA,OAAO,SAAS,OAAO;AACnB,aAAO,IAAI,KAAK,MAAM,SAAS,MAAM,OAAO,4BAA4B,MAAM,OAAO,CAAC;AAAA,IAC1F;AAAA,IACA,WAAW;AACP,YAAM,kBAAkB,KAAK,kBAAkB,IAAI,KAAK,eAAe,KAAK;AAC5E,aAAO,GAAG,KAAK,SAAS,GAAG,eAAe,KAAK,KAAK,UAAU,IAAI,KAAK,UAAU;AAAA,IACrF;AAAA,IACA,IAAI,SAAS;AACT,UAAI,KAAK,uBAAuB,SAAS;AACrC,eAAO,KAAK,mCAAmC,KAAK,WAAW;AAAA,MACnE,OACK;AACD,eAAO,CAAC;AAAA,MACZ;AAAA,IACJ;AAAA,IACA,mCAAmC,aAAa;AAC5C,YAAM,SAAS,CAAC;AAChB,YAAM,UAAU,IAAI,OAAO,SAAS,KAAK,UAAU,cAAc;AACjE,YAAM,aAAa,MAAM,KAAK,YAAY,UAAU;AACpD,iBAAW,QAAQ,CAAC,EAAE,MAAM,MAAM,MAAM;AACpC,cAAMC,SAAQ,KAAK,MAAM,OAAO;AAChC,cAAM,MAAMA,UAASA,OAAM,CAAC;AAC5B,YAAI,KAAK;AACL,iBAAO,OAAO,QAAQ,EAAE,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,KAAK,EAAE,CAAC;AAAA,QAC9D;AAAA,MACJ,CAAC;AACD,aAAO;AAAA,IACX;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO,qBAAqB,KAAK,WAAW;AAAA,IAChD;AAAA,EACJ;AACA,MAAM,oBAAoB;AAAA,IACtB,KAAK,CAAAC,OAAK;AAAA,IACV,UAAU,CAAAA,OAAK;AAAA,IACf,QAAQ,CAAAA,OAAK;AAAA,IACb,WAAW,CAAAA,OAAK;AAAA,IAChB,SAAS,CAAAA,OAAKA,GAAE,aAAa,MAAM,KAAK,WAAW,UAAU;AAAA,IAC7D,UAAU,CAAAA,OAAK;AAAA,IACf,YAAY,CAAAA,OAAK;AAAA,EACrB;AACA,WAAS,8BAA8B,SAAS;AAC5C,UAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,QAAI,WAAW,mBAAmB;AAC9B,aAAO,kBAAkB,OAAO,EAAE,OAAO;AAAA,IAC7C;AAAA,EACJ;AACA,WAAS,MAAM,SAAS;AACpB,UAAM,IAAI,MAAM,OAAO;AAAA,EAC3B;AACA,WAAS,SAAS,OAAO;AACrB,QAAI;AACA,aAAO,KAAK,MAAM,KAAK;AAAA,IAC3B,SACO,KAAK;AACR,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,MAAM,UAAN,MAAc;AAAA,IACV,YAAY,SAAS,QAAQ;AACzB,WAAK,UAAU;AACf,WAAK,SAAS;AAAA,IAClB;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,eAAe;AACf,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,YAAY,OAAO;AACf,UAAI,KAAK,qBAAqB,KAAK,GAAG;AAClC,aAAK,gBAAgB,KAAK;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,IAAI,YAAY;AACZ,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,SAAS;AACT,YAAM,SAAS,KAAK,WAAW,KAAK,UAAU;AAC9C,UAAI,OAAO,UAAU,YAAY;AAC7B,eAAO;AAAA,MACX;AACA,YAAM,IAAI,MAAM,WAAW,KAAK,MAAM,kCAAkC,KAAK,UAAU,GAAG;AAAA,IAC9F;AAAA,IACA,gBAAgB,OAAO;AACnB,YAAM,EAAE,QAAQ,cAAc,IAAI;AAClC,UAAI;AACA,cAAM,EAAE,OAAO,IAAI,KAAK;AACxB,cAAM,cAAc,OAAO,OAAO,OAAO,EAAE,OAAO,CAAC;AACnD,aAAK,OAAO,KAAK,KAAK,YAAY,WAAW;AAC7C,aAAK,QAAQ,iBAAiB,KAAK,YAAY,EAAE,OAAO,QAAQ,eAAe,QAAQ,KAAK,WAAW,CAAC;AAAA,MAC5G,SACOH,QAAO;AACV,cAAM,EAAE,YAAY,YAAY,SAAS,MAAM,IAAI;AACnD,cAAM,SAAS,EAAE,YAAY,YAAY,SAAS,OAAO,MAAM;AAC/D,aAAK,QAAQ,YAAYA,QAAO,oBAAoB,KAAK,MAAM,KAAK,MAAM;AAAA,MAC9E;AAAA,IACJ;AAAA,IACA,qBAAqB,OAAO;AACxB,YAAM,cAAc,MAAM;AAC1B,UAAI,KAAK,YAAY,aAAa;AAC9B,eAAO;AAAA,MACX,WACS,uBAAuB,WAAW,KAAK,QAAQ,SAAS,WAAW,GAAG;AAC3E,eAAO,KAAK,MAAM,gBAAgB,WAAW;AAAA,MACjD,OACK;AACD,eAAO,KAAK,MAAM,gBAAgB,KAAK,OAAO,OAAO;AAAA,MACzD;AAAA,IACJ;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,EACJ;AAEA,MAAM,kBAAN,MAAsB;AAAA,IAClB,YAAY,SAAS,UAAU;AAC3B,WAAK,uBAAuB,EAAE,YAAY,MAAM,WAAW,MAAM,SAAS,KAAK;AAC/E,WAAK,UAAU;AACf,WAAK,UAAU;AACf,WAAK,WAAW;AAChB,WAAK,WAAW,oBAAI;AACpB,WAAK,mBAAmB,IAAI,iBAAiB,CAAC,cAAc,KAAK,iBAAiB,SAAS,CAAC;AAAA,IAChG;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,aAAK,iBAAiB,QAAQ,KAAK,SAAS,KAAK,oBAAoB;AACrE,aAAK,QAAQ;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,MAAM,UAAU;AACZ,UAAI,KAAK,SAAS;AACd,aAAK,iBAAiB,WAAW;AACjC,aAAK,UAAU;AAAA,MACnB;AACA,eAAS;AACT,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,iBAAiB,QAAQ,KAAK,SAAS,KAAK,oBAAoB;AACrE,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,iBAAiB,YAAY;AAClC,aAAK,iBAAiB,WAAW;AACjC,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,UAAU;AACN,UAAI,KAAK,SAAS;AACd,cAAM,UAAU,IAAI,IAAI,KAAK,oBAAoB,CAAC;AAClD,mBAAW,WAAW,MAAM,KAAK,KAAK,QAAQ,GAAG;AAC7C,cAAI,CAAC,QAAQ,IAAI,OAAO,GAAG;AACvB,iBAAK,cAAc,OAAO;AAAA,UAC9B;AAAA,QACJ;AACA,mBAAW,WAAW,MAAM,KAAK,OAAO,GAAG;AACvC,eAAK,WAAW,OAAO;AAAA,QAC3B;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,iBAAiB,WAAW;AACxB,UAAI,KAAK,SAAS;AACd,mBAAW,YAAY,WAAW;AAC9B,eAAK,gBAAgB,QAAQ;AAAA,QACjC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,gBAAgB,UAAU;AACtB,UAAI,SAAS,QAAQ,cAAc;AAC/B,aAAK,uBAAuB,SAAS,QAAQ,SAAS,aAAa;AAAA,MACvE,WACS,SAAS,QAAQ,aAAa;AACnC,aAAK,oBAAoB,SAAS,YAAY;AAC9C,aAAK,kBAAkB,SAAS,UAAU;AAAA,MAC9C;AAAA,IACJ;AAAA,IACA,uBAAuB,MAAM,eAAe;AACxC,YAAM,UAAU;AAChB,UAAI,KAAK,SAAS,IAAI,OAAO,GAAG;AAC5B,YAAI,KAAK,SAAS,2BAA2B,KAAK,aAAa,OAAO,GAAG;AACrE,eAAK,SAAS,wBAAwB,SAAS,aAAa;AAAA,QAChE,OACK;AACD,eAAK,cAAc,OAAO;AAAA,QAC9B;AAAA,MACJ,WACS,KAAK,aAAa,OAAO,GAAG;AACjC,aAAK,WAAW,OAAO;AAAA,MAC3B;AAAA,IACJ;AAAA,IACA,oBAAoB,OAAO;AACvB,iBAAW,QAAQ,MAAM,KAAK,KAAK,GAAG;AAClC,cAAM,UAAU,KAAK,gBAAgB,IAAI;AACzC,YAAI,SAAS;AACT,eAAK,YAAY,SAAS,KAAK,aAAa;AAAA,QAChD;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,kBAAkB,OAAO;AACrB,iBAAW,QAAQ,MAAM,KAAK,KAAK,GAAG;AAClC,cAAM,UAAU,KAAK,gBAAgB,IAAI;AACzC,YAAI,WAAW,KAAK,gBAAgB,OAAO,GAAG;AAC1C,eAAK,YAAY,SAAS,KAAK,UAAU;AAAA,QAC7C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,aAAa,SAAS;AAClB,aAAO,KAAK,SAAS,aAAa,OAAO;AAAA,IAC7C;AAAA,IACA,oBAAoB,OAAO,KAAK,SAAS;AACrC,aAAO,KAAK,SAAS,oBAAoB,IAAI;AAAA,IACjD;AAAA,IACA,YAAY,MAAM,WAAW;AACzB,iBAAW,WAAW,KAAK,oBAAoB,IAAI,GAAG;AAClD,kBAAU,KAAK,MAAM,OAAO;AAAA,MAChC;AAAA,IACJ;AAAA,IACA,gBAAgB,MAAM;AAClB,UAAI,KAAK,YAAY,KAAK,cAAc;AACpC,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,gBAAgB,SAAS;AACrB,UAAI,QAAQ,eAAe,KAAK,QAAQ,aAAa;AACjD,eAAO;AAAA,MACX,OACK;AACD,eAAO,KAAK,QAAQ,SAAS,OAAO;AAAA,MACxC;AAAA,IACJ;AAAA,IACA,WAAW,SAAS;AAChB,UAAI,CAAC,KAAK,SAAS,IAAI,OAAO,GAAG;AAC7B,YAAI,KAAK,gBAAgB,OAAO,GAAG;AAC/B,eAAK,SAAS,IAAI,OAAO;AACzB,cAAI,KAAK,SAAS,gBAAgB;AAC9B,iBAAK,SAAS,eAAe,OAAO;AAAA,UACxC;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,cAAc,SAAS;AACnB,UAAI,KAAK,SAAS,IAAI,OAAO,GAAG;AAC5B,aAAK,SAAS,OAAO,OAAO;AAC5B,YAAI,KAAK,SAAS,kBAAkB;AAChC,eAAK,SAAS,iBAAiB,OAAO;AAAA,QAC1C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,oBAAN,MAAwB;AAAA,IACpB,YAAY,SAAS,eAAe,UAAU;AAC1C,WAAK,gBAAgB;AACrB,WAAK,WAAW;AAChB,WAAK,kBAAkB,IAAI,gBAAgB,SAAS,IAAI;AAAA,IAC5D;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,gBAAgB;AAAA,IAChC;AAAA,IACA,IAAI,WAAW;AACX,aAAO,IAAI,KAAK,aAAa;AAAA,IACjC;AAAA,IACA,QAAQ;AACJ,WAAK,gBAAgB,MAAM;AAAA,IAC/B;AAAA,IACA,MAAM,UAAU;AACZ,WAAK,gBAAgB,MAAM,QAAQ;AAAA,IACvC;AAAA,IACA,OAAO;AACH,WAAK,gBAAgB,KAAK;AAAA,IAC9B;AAAA,IACA,UAAU;AACN,WAAK,gBAAgB,QAAQ;AAAA,IACjC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,gBAAgB;AAAA,IAChC;AAAA,IACA,aAAa,SAAS;AAClB,aAAO,QAAQ,aAAa,KAAK,aAAa;AAAA,IAClD;AAAA,IACA,oBAAoB,MAAM;AACtB,YAAME,SAAQ,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AAClD,YAAM,UAAU,MAAM,KAAK,KAAK,iBAAiB,KAAK,QAAQ,CAAC;AAC/D,aAAOA,OAAM,OAAO,OAAO;AAAA,IAC/B;AAAA,IACA,eAAe,SAAS;AACpB,UAAI,KAAK,SAAS,yBAAyB;AACvC,aAAK,SAAS,wBAAwB,SAAS,KAAK,aAAa;AAAA,MACrE;AAAA,IACJ;AAAA,IACA,iBAAiB,SAAS;AACtB,UAAI,KAAK,SAAS,2BAA2B;AACzC,aAAK,SAAS,0BAA0B,SAAS,KAAK,aAAa;AAAA,MACvE;AAAA,IACJ;AAAA,IACA,wBAAwB,SAAS,eAAe;AAC5C,UAAI,KAAK,SAAS,gCAAgC,KAAK,iBAAiB,eAAe;AACnF,aAAK,SAAS,6BAA6B,SAAS,aAAa;AAAA,MACrE;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,oBAAN,MAAwB;AAAA,IACpB,YAAY,SAAS,UAAU;AAC3B,WAAK,UAAU;AACf,WAAK,WAAW;AAChB,WAAK,UAAU;AACf,WAAK,YAAY,oBAAI;AACrB,WAAK,mBAAmB,IAAI,iBAAiB,eAAa,KAAK,iBAAiB,SAAS,CAAC;AAAA,IAC9F;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,SAAS;AACf,aAAK,UAAU;AACf,aAAK,iBAAiB,QAAQ,KAAK,SAAS,EAAE,YAAY,MAAM,mBAAmB,KAAK,CAAC;AACzF,aAAK,QAAQ;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,SAAS;AACd,aAAK,iBAAiB,YAAY;AAClC,aAAK,iBAAiB,WAAW;AACjC,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,UAAU;AACN,UAAI,KAAK,SAAS;AACd,mBAAW,iBAAiB,KAAK,qBAAqB;AAClD,eAAK,iBAAiB,eAAe,IAAI;AAAA,QAC7C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,iBAAiB,WAAW;AACxB,UAAI,KAAK,SAAS;AACd,mBAAW,YAAY,WAAW;AAC9B,eAAK,gBAAgB,QAAQ;AAAA,QACjC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,gBAAgB,UAAU;AACtB,YAAM,gBAAgB,SAAS;AAC/B,UAAI,eAAe;AACf,aAAK,iBAAiB,eAAe,SAAS,QAAQ;AAAA,MAC1D;AAAA,IACJ;AAAA,IACA,iBAAiB,eAAe,UAAU;AACtC,YAAM,MAAM,KAAK,SAAS,4BAA4B,aAAa;AACnE,UAAI,OAAO,MAAM;AACb,YAAI,CAAC,KAAK,UAAU,IAAI,aAAa,GAAG;AACpC,eAAK,kBAAkB,KAAK,aAAa;AAAA,QAC7C;AACA,cAAM,QAAQ,KAAK,QAAQ,aAAa,aAAa;AACrD,YAAI,KAAK,UAAU,IAAI,aAAa,KAAK,OAAO;AAC5C,eAAK,sBAAsB,OAAO,KAAK,QAAQ;AAAA,QACnD;AACA,YAAI,SAAS,MAAM;AACf,gBAAME,YAAW,KAAK,UAAU,IAAI,aAAa;AACjD,eAAK,UAAU,OAAO,aAAa;AACnC,cAAIA;AACA,iBAAK,oBAAoB,KAAK,eAAeA,SAAQ;AAAA,QAC7D,OACK;AACD,eAAK,UAAU,IAAI,eAAe,KAAK;AAAA,QAC3C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,kBAAkB,KAAK,eAAe;AAClC,UAAI,KAAK,SAAS,mBAAmB;AACjC,aAAK,SAAS,kBAAkB,KAAK,aAAa;AAAA,MACtD;AAAA,IACJ;AAAA,IACA,sBAAsB,OAAO,KAAK,UAAU;AACxC,UAAI,KAAK,SAAS,uBAAuB;AACrC,aAAK,SAAS,sBAAsB,OAAO,KAAK,QAAQ;AAAA,MAC5D;AAAA,IACJ;AAAA,IACA,oBAAoB,KAAK,eAAe,UAAU;AAC9C,UAAI,KAAK,SAAS,qBAAqB;AACnC,aAAK,SAAS,oBAAoB,KAAK,eAAe,QAAQ;AAAA,MAClE;AAAA,IACJ;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,MAAM,KAAK,IAAI,IAAI,KAAK,sBAAsB,OAAO,KAAK,sBAAsB,CAAC,CAAC;AAAA,IAC7F;AAAA,IACA,IAAI,wBAAwB;AACxB,aAAO,MAAM,KAAK,KAAK,QAAQ,UAAU,EAAE,IAAI,eAAa,UAAU,IAAI;AAAA,IAC9E;AAAA,IACA,IAAI,yBAAyB;AACzB,aAAO,MAAM,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,IAC3C;AAAA,EACJ;AAEA,WAAS,IAAI,KAAK,KAAK,OAAO;AAC1B,IAAAC,OAAM,KAAK,GAAG,EAAE,IAAI,KAAK;AAAA,EAC7B;AACA,WAAS,IAAI,KAAK,KAAK,OAAO;AAC1B,IAAAA,OAAM,KAAK,GAAG,EAAE,OAAO,KAAK;AAC5B,UAAM,KAAK,GAAG;AAAA,EAClB;AACA,WAASA,OAAM,KAAK,KAAK;AACrB,QAAI,SAAS,IAAI,IAAI,GAAG;AACxB,QAAI,CAAC,QAAQ;AACT,eAAS,oBAAI,IAAI;AACjB,UAAI,IAAI,KAAK,MAAM;AAAA,IACvB;AACA,WAAO;AAAA,EACX;AACA,WAAS,MAAM,KAAK,KAAK;AACrB,UAAM,SAAS,IAAI,IAAI,GAAG;AAC1B,QAAI,UAAU,QAAQ,OAAO,QAAQ,GAAG;AACpC,UAAI,OAAO,GAAG;AAAA,IAClB;AAAA,EACJ;AAEA,MAAM,WAAN,MAAe;AAAA,IACX,cAAc;AACV,WAAK,cAAc,oBAAI,IAAI;AAAA,IAC/B;AAAA,IACA,IAAI,OAAO;AACP,aAAO,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC;AAAA,IAC7C;AAAA,IACA,IAAI,SAAS;AACT,YAAM,OAAO,MAAM,KAAK,KAAK,YAAY,OAAO,CAAC;AACjD,aAAO,KAAK,OAAO,CAAC,QAAQ,QAAQ,OAAO,OAAO,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAAA,IAC1E;AAAA,IACA,IAAI,OAAO;AACP,YAAM,OAAO,MAAM,KAAK,KAAK,YAAY,OAAO,CAAC;AACjD,aAAO,KAAK,OAAO,CAAC,MAAM,QAAQ,OAAO,IAAI,MAAM,CAAC;AAAA,IACxD;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,UAAI,KAAK,aAAa,KAAK,KAAK;AAAA,IACpC;AAAA,IACA,OAAO,KAAK,OAAO;AACf,UAAI,KAAK,aAAa,KAAK,KAAK;AAAA,IACpC;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,YAAM,SAAS,KAAK,YAAY,IAAI,GAAG;AACvC,aAAO,UAAU,QAAQ,OAAO,IAAI,KAAK;AAAA,IAC7C;AAAA,IACA,OAAO,KAAK;AACR,aAAO,KAAK,YAAY,IAAI,GAAG;AAAA,IACnC;AAAA,IACA,SAAS,OAAO;AACZ,YAAM,OAAO,MAAM,KAAK,KAAK,YAAY,OAAO,CAAC;AACjD,aAAO,KAAK,KAAK,SAAO,IAAI,IAAI,KAAK,CAAC;AAAA,IAC1C;AAAA,IACA,gBAAgB,KAAK;AACjB,YAAM,SAAS,KAAK,YAAY,IAAI,GAAG;AACvC,aAAO,SAAS,MAAM,KAAK,MAAM,IAAI,CAAC;AAAA,IAC1C;AAAA,IACA,gBAAgB,OAAO;AACnB,aAAO,MAAM,KAAK,KAAK,WAAW,EAC7B,OAAO,CAAC,CAAC,KAAK,MAAM,MAAM,OAAO,IAAI,KAAK,CAAC,EAC3C,IAAI,CAAC,CAAC,KAAK,MAAM,MAAM,GAAG;AAAA,IACnC;AAAA,EACJ;AA2BA,MAAM,oBAAN,MAAwB;AAAA,IACpB,YAAY,SAAS,eAAe,UAAU;AAC1C,WAAK,oBAAoB,IAAI,kBAAkB,SAAS,eAAe,IAAI;AAC3E,WAAK,WAAW;AAChB,WAAK,kBAAkB,IAAI;AAAA,IAC/B;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,kBAAkB;AAAA,IAClC;AAAA,IACA,QAAQ;AACJ,WAAK,kBAAkB,MAAM;AAAA,IACjC;AAAA,IACA,MAAM,UAAU;AACZ,WAAK,kBAAkB,MAAM,QAAQ;AAAA,IACzC;AAAA,IACA,OAAO;AACH,WAAK,kBAAkB,KAAK;AAAA,IAChC;AAAA,IACA,UAAU;AACN,WAAK,kBAAkB,QAAQ;AAAA,IACnC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,kBAAkB;AAAA,IAClC;AAAA,IACA,IAAI,gBAAgB;AAChB,aAAO,KAAK,kBAAkB;AAAA,IAClC;AAAA,IACA,wBAAwB,SAAS;AAC7B,WAAK,cAAc,KAAK,qBAAqB,OAAO,CAAC;AAAA,IACzD;AAAA,IACA,6BAA6B,SAAS;AAClC,YAAM,CAAC,iBAAiB,aAAa,IAAI,KAAK,wBAAwB,OAAO;AAC7E,WAAK,gBAAgB,eAAe;AACpC,WAAK,cAAc,aAAa;AAAA,IACpC;AAAA,IACA,0BAA0B,SAAS;AAC/B,WAAK,gBAAgB,KAAK,gBAAgB,gBAAgB,OAAO,CAAC;AAAA,IACtE;AAAA,IACA,cAAc,QAAQ;AAClB,aAAO,QAAQ,WAAS,KAAK,aAAa,KAAK,CAAC;AAAA,IACpD;AAAA,IACA,gBAAgB,QAAQ;AACpB,aAAO,QAAQ,WAAS,KAAK,eAAe,KAAK,CAAC;AAAA,IACtD;AAAA,IACA,aAAa,OAAO;AAChB,WAAK,SAAS,aAAa,KAAK;AAChC,WAAK,gBAAgB,IAAI,MAAM,SAAS,KAAK;AAAA,IACjD;AAAA,IACA,eAAe,OAAO;AAClB,WAAK,SAAS,eAAe,KAAK;AAClC,WAAK,gBAAgB,OAAO,MAAM,SAAS,KAAK;AAAA,IACpD;AAAA,IACA,wBAAwB,SAAS;AAC7B,YAAM,iBAAiB,KAAK,gBAAgB,gBAAgB,OAAO;AACnE,YAAM,gBAAgB,KAAK,qBAAqB,OAAO;AACvD,YAAM,sBAAsB,IAAI,gBAAgB,aAAa,EACxD,UAAU,CAAC,CAAC,eAAe,YAAY,MAAM,CAAC,eAAe,eAAe,YAAY,CAAC;AAC9F,UAAI,uBAAuB,IAAI;AAC3B,eAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,MAClB,OACK;AACD,eAAO,CAAC,eAAe,MAAM,mBAAmB,GAAG,cAAc,MAAM,mBAAmB,CAAC;AAAA,MAC/F;AAAA,IACJ;AAAA,IACA,qBAAqB,SAAS;AAC1B,YAAM,gBAAgB,KAAK;AAC3B,YAAM,cAAc,QAAQ,aAAa,aAAa,KAAK;AAC3D,aAAO,iBAAiB,aAAa,SAAS,aAAa;AAAA,IAC/D;AAAA,EACJ;AACA,WAAS,iBAAiB,aAAa,SAAS,eAAe;AAC3D,WAAO,YAAY,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,aAAW,QAAQ,MAAM,EAClE,IAAI,CAAC,SAAS,WAAW,EAAE,SAAS,eAAe,SAAS,MAAM,EAAE;AAAA,EAC7E;AACA,WAAS,IAAIC,OAAMC,QAAO;AACtB,UAAM,SAAS,KAAK,IAAID,MAAK,QAAQC,OAAM,MAAM;AACjD,WAAO,MAAM,KAAK,EAAE,OAAO,GAAG,CAACC,IAAG,UAAU,CAACF,MAAK,KAAK,GAAGC,OAAM,KAAK,CAAC,CAAC;AAAA,EAC3E;AACA,WAAS,eAAeD,OAAMC,QAAO;AACjC,WAAOD,SAAQC,UAASD,MAAK,SAASC,OAAM,SAASD,MAAK,WAAWC,OAAM;AAAA,EAC/E;AAEA,MAAM,oBAAN,MAAwB;AAAA,IACpB,YAAY,SAAS,eAAe,UAAU;AAC1C,WAAK,oBAAoB,IAAI,kBAAkB,SAAS,eAAe,IAAI;AAC3E,WAAK,WAAW;AAChB,WAAK,sBAAsB,oBAAI;AAC/B,WAAK,yBAAyB,oBAAI;AAAA,IACtC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,kBAAkB;AAAA,IAClC;AAAA,IACA,QAAQ;AACJ,WAAK,kBAAkB,MAAM;AAAA,IACjC;AAAA,IACA,OAAO;AACH,WAAK,kBAAkB,KAAK;AAAA,IAChC;AAAA,IACA,UAAU;AACN,WAAK,kBAAkB,QAAQ;AAAA,IACnC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,kBAAkB;AAAA,IAClC;AAAA,IACA,IAAI,gBAAgB;AAChB,aAAO,KAAK,kBAAkB;AAAA,IAClC;AAAA,IACA,aAAa,OAAO;AAChB,YAAM,EAAE,QAAQ,IAAI;AACpB,YAAM,EAAE,MAAM,IAAI,KAAK,yBAAyB,KAAK;AACrD,UAAI,OAAO;AACP,aAAK,6BAA6B,OAAO,EAAE,IAAI,OAAO,KAAK;AAC3D,aAAK,SAAS,oBAAoB,SAAS,KAAK;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,eAAe,OAAO;AAClB,YAAM,EAAE,QAAQ,IAAI;AACpB,YAAM,EAAE,MAAM,IAAI,KAAK,yBAAyB,KAAK;AACrD,UAAI,OAAO;AACP,aAAK,6BAA6B,OAAO,EAAE,OAAO,KAAK;AACvD,aAAK,SAAS,sBAAsB,SAAS,KAAK;AAAA,MACtD;AAAA,IACJ;AAAA,IACA,yBAAyB,OAAO;AAC5B,UAAI,cAAc,KAAK,oBAAoB,IAAI,KAAK;AACpD,UAAI,CAAC,aAAa;AACd,sBAAc,KAAK,WAAW,KAAK;AACnC,aAAK,oBAAoB,IAAI,OAAO,WAAW;AAAA,MACnD;AACA,aAAO;AAAA,IACX;AAAA,IACA,6BAA6B,SAAS;AAClC,UAAI,gBAAgB,KAAK,uBAAuB,IAAI,OAAO;AAC3D,UAAI,CAAC,eAAe;AAChB,wBAAgB,oBAAI;AACpB,aAAK,uBAAuB,IAAI,SAAS,aAAa;AAAA,MAC1D;AACA,aAAO;AAAA,IACX;AAAA,IACA,WAAW,OAAO;AACd,UAAI;AACA,cAAM,QAAQ,KAAK,SAAS,mBAAmB,KAAK;AACpD,eAAO,EAAE,MAAM;AAAA,MACnB,SACOE,QAAO;AACV,eAAO,EAAE,OAAAA,OAAM;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAM,kBAAN,MAAsB;AAAA,IAClB,YAAY,SAAS,UAAU;AAC3B,WAAK,UAAU;AACf,WAAK,WAAW;AAChB,WAAK,mBAAmB,oBAAI;AAAA,IAChC;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,mBAAmB;AACzB,aAAK,oBAAoB,IAAI,kBAAkB,KAAK,SAAS,KAAK,iBAAiB,IAAI;AACvF,aAAK,kBAAkB,MAAM;AAAA,MACjC;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,mBAAmB;AACxB,aAAK,kBAAkB,KAAK;AAC5B,eAAO,KAAK;AACZ,aAAK,qBAAqB;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,WAAW;AACX,aAAO,MAAM,KAAK,KAAK,iBAAiB,OAAO,CAAC;AAAA,IACpD;AAAA,IACA,cAAc,QAAQ;AAClB,YAAM,UAAU,IAAI,QAAQ,KAAK,SAAS,MAAM;AAChD,WAAK,iBAAiB,IAAI,QAAQ,OAAO;AACzC,WAAK,SAAS,iBAAiB,OAAO;AAAA,IAC1C;AAAA,IACA,iBAAiB,QAAQ;AACrB,YAAM,UAAU,KAAK,iBAAiB,IAAI,MAAM;AAChD,UAAI,SAAS;AACT,aAAK,iBAAiB,OAAO,MAAM;AACnC,aAAK,SAAS,oBAAoB,OAAO;AAAA,MAC7C;AAAA,IACJ;AAAA,IACA,uBAAuB;AACnB,WAAK,SAAS,QAAQ,aAAW,KAAK,SAAS,oBAAoB,OAAO,CAAC;AAC3E,WAAK,iBAAiB,MAAM;AAAA,IAChC;AAAA,IACA,mBAAmB,OAAO;AACtB,YAAM,SAAS,OAAO,SAAS,KAAK;AACpC,UAAI,OAAO,cAAc,KAAK,YAAY;AACtC,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,oBAAoB,SAAS,QAAQ;AACjC,WAAK,cAAc,MAAM;AAAA,IAC7B;AAAA,IACA,sBAAsB,SAAS,QAAQ;AACnC,WAAK,iBAAiB,MAAM;AAAA,IAChC;AAAA,EACJ;AAEA,MAAM,gBAAN,MAAoB;AAAA,IAChB,YAAY,SAAS,UAAU;AAC3B,WAAK,UAAU;AACf,WAAK,WAAW;AAChB,WAAK,oBAAoB,IAAI,kBAAkB,KAAK,SAAS,IAAI;AACjE,WAAK,qBAAqB,KAAK,WAAW;AAC1C,WAAK,uCAAuC;AAAA,IAChD;AAAA,IACA,QAAQ;AACJ,WAAK,kBAAkB,MAAM;AAAA,IACjC;AAAA,IACA,OAAO;AACH,WAAK,kBAAkB,KAAK;AAAA,IAChC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,4BAA4B,eAAe;AACvC,UAAI,iBAAiB,KAAK,oBAAoB;AAC1C,eAAO,KAAK,mBAAmB,aAAa,EAAE;AAAA,MAClD;AAAA,IACJ;AAAA,IACA,kBAAkB,KAAK,eAAe;AAClC,YAAM,aAAa,KAAK,mBAAmB,aAAa;AACxD,UAAI,CAAC,KAAK,SAAS,GAAG,GAAG;AACrB,aAAK,sBAAsB,KAAK,WAAW,OAAO,KAAK,SAAS,GAAG,CAAC,GAAG,WAAW,OAAO,WAAW,YAAY,CAAC;AAAA,MACrH;AAAA,IACJ;AAAA,IACA,sBAAsB,OAAO,MAAM,UAAU;AACzC,YAAM,aAAa,KAAK,uBAAuB,IAAI;AACnD,UAAI,UAAU;AACV;AACJ,UAAI,aAAa,MAAM;AACnB,mBAAW,WAAW,OAAO,WAAW,YAAY;AAAA,MACxD;AACA,WAAK,sBAAsB,MAAM,OAAO,QAAQ;AAAA,IACpD;AAAA,IACA,oBAAoB,KAAK,eAAe,UAAU;AAC9C,YAAM,aAAa,KAAK,uBAAuB,GAAG;AAClD,UAAI,KAAK,SAAS,GAAG,GAAG;AACpB,aAAK,sBAAsB,KAAK,WAAW,OAAO,KAAK,SAAS,GAAG,CAAC,GAAG,QAAQ;AAAA,MACnF,OACK;AACD,aAAK,sBAAsB,KAAK,WAAW,OAAO,WAAW,YAAY,GAAG,QAAQ;AAAA,MACxF;AAAA,IACJ;AAAA,IACA,yCAAyC;AACrC,iBAAW,EAAE,KAAK,MAAM,cAAc,OAAO,KAAK,KAAK,kBAAkB;AACrE,YAAI,gBAAgB,UAAa,CAAC,KAAK,WAAW,KAAK,IAAI,GAAG,GAAG;AAC7D,eAAK,sBAAsB,MAAM,OAAO,YAAY,GAAG,MAAS;AAAA,QACpE;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,sBAAsB,MAAM,UAAU,aAAa;AAC/C,YAAM,oBAAoB,GAAG,IAAI;AACjC,YAAM,gBAAgB,KAAK,SAAS,iBAAiB;AACrD,UAAI,OAAO,iBAAiB,YAAY;AACpC,cAAM,aAAa,KAAK,uBAAuB,IAAI;AACnD,cAAM,QAAQ,WAAW,OAAO,QAAQ;AACxC,YAAI,WAAW;AACf,YAAI,aAAa;AACb,qBAAW,WAAW,OAAO,WAAW;AAAA,QAC5C;AACA,sBAAc,KAAK,KAAK,UAAU,OAAO,QAAQ;AAAA,MACrD;AAAA,IACJ;AAAA,IACA,IAAI,mBAAmB;AACnB,YAAM,EAAE,mBAAmB,IAAI;AAC/B,aAAO,OAAO,KAAK,kBAAkB,EAAE,IAAI,SAAO,mBAAmB,GAAG,CAAC;AAAA,IAC7E;AAAA,IACA,IAAI,yBAAyB;AACzB,YAAM,cAAc,CAAC;AACrB,aAAO,KAAK,KAAK,kBAAkB,EAAE,QAAQ,SAAO;AAChD,cAAM,aAAa,KAAK,mBAAmB,GAAG;AAC9C,oBAAY,WAAW,IAAI,IAAI;AAAA,MACnC,CAAC;AACD,aAAO;AAAA,IACX;AAAA,IACA,SAAS,eAAe;AACpB,YAAM,aAAa,KAAK,uBAAuB,aAAa;AAC5D,YAAM,gBAAgB,MAAM,WAAW,WAAW,IAAI,CAAC;AACvD,aAAO,KAAK,SAAS,aAAa;AAAA,IACtC;AAAA,EACJ;AAEA,MAAM,iBAAN,MAAqB;AAAA,IACjB,YAAY,SAAS,UAAU;AAC3B,WAAK,UAAU;AACf,WAAK,WAAW;AAChB,WAAK,gBAAgB,IAAI;AAAA,IAC7B;AAAA,IACA,QAAQ;AACJ,UAAI,CAAC,KAAK,mBAAmB;AACzB,aAAK,oBAAoB,IAAI,kBAAkB,KAAK,SAAS,KAAK,eAAe,IAAI;AACrF,aAAK,kBAAkB,MAAM;AAAA,MACjC;AAAA,IACJ;AAAA,IACA,OAAO;AACH,UAAI,KAAK,mBAAmB;AACxB,aAAK,qBAAqB;AAC1B,aAAK,kBAAkB,KAAK;AAC5B,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAAA,IACA,aAAa,EAAE,SAAS,SAAS,KAAK,GAAG;AACrC,UAAI,KAAK,MAAM,gBAAgB,OAAO,GAAG;AACrC,aAAK,cAAc,SAAS,IAAI;AAAA,MACpC;AAAA,IACJ;AAAA,IACA,eAAe,EAAE,SAAS,SAAS,KAAK,GAAG;AACvC,WAAK,iBAAiB,SAAS,IAAI;AAAA,IACvC;AAAA,IACA,cAAc,SAAS,MAAM;AACzB,UAAI;AACJ,UAAI,CAAC,KAAK,cAAc,IAAI,MAAM,OAAO,GAAG;AACxC,aAAK,cAAc,IAAI,MAAM,OAAO;AACpC,SAAC,KAAK,KAAK,uBAAuB,QAAQ,OAAO,SAAS,SAAS,GAAG,MAAM,MAAM,KAAK,SAAS,gBAAgB,SAAS,IAAI,CAAC;AAAA,MAClI;AAAA,IACJ;AAAA,IACA,iBAAiB,SAAS,MAAM;AAC5B,UAAI;AACJ,UAAI,KAAK,cAAc,IAAI,MAAM,OAAO,GAAG;AACvC,aAAK,cAAc,OAAO,MAAM,OAAO;AACvC,SAAC,KAAK,KAAK,uBAAuB,QAAQ,OAAO,SAAS,SAAS,GAAG,MAAM,MAAM,KAAK,SAAS,mBAAmB,SAAS,IAAI,CAAC;AAAA,MACrI;AAAA,IACJ;AAAA,IACA,uBAAuB;AACnB,iBAAW,QAAQ,KAAK,cAAc,MAAM;AACxC,mBAAW,WAAW,KAAK,cAAc,gBAAgB,IAAI,GAAG;AAC5D,eAAK,iBAAiB,SAAS,IAAI;AAAA,QACvC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,IAAI,gBAAgB;AAChB,aAAO,QAAQ,KAAK,QAAQ,UAAU;AAAA,IAC1C;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,EACJ;AAEA,MAAM,UAAN,MAAc;AAAA,IACV,YAAY,QAAQ,OAAO;AACvB,WAAK,mBAAmB,CAAC,cAAc,SAAS,CAAC,MAAM;AACnD,cAAM,EAAE,YAAY,YAAY,QAAQ,IAAI;AAC5C,iBAAS,OAAO,OAAO,EAAE,YAAY,YAAY,QAAQ,GAAG,MAAM;AAClE,aAAK,YAAY,iBAAiB,KAAK,YAAY,cAAc,MAAM;AAAA,MAC3E;AACA,WAAK,SAAS;AACd,WAAK,QAAQ;AACb,WAAK,aAAa,IAAI,OAAO,sBAAsB,IAAI;AACvD,WAAK,kBAAkB,IAAI,gBAAgB,MAAM,KAAK,UAAU;AAChE,WAAK,gBAAgB,IAAI,cAAc,MAAM,KAAK,UAAU;AAC5D,WAAK,iBAAiB,IAAI,eAAe,MAAM,IAAI;AACnD,UAAI;AACA,aAAK,WAAW,WAAW;AAC3B,aAAK,iBAAiB,YAAY;AAAA,MACtC,SACOA,QAAO;AACV,aAAK,YAAYA,QAAO,yBAAyB;AAAA,MACrD;AAAA,IACJ;AAAA,IACA,UAAU;AACN,WAAK,gBAAgB,MAAM;AAC3B,WAAK,cAAc,MAAM;AACzB,WAAK,eAAe,MAAM;AAC1B,UAAI;AACA,aAAK,WAAW,QAAQ;AACxB,aAAK,iBAAiB,SAAS;AAAA,MACnC,SACOA,QAAO;AACV,aAAK,YAAYA,QAAO,uBAAuB;AAAA,MACnD;AAAA,IACJ;AAAA,IACA,aAAa;AACT,UAAI;AACA,aAAK,WAAW,WAAW;AAC3B,aAAK,iBAAiB,YAAY;AAAA,MACtC,SACOA,QAAO;AACV,aAAK,YAAYA,QAAO,0BAA0B;AAAA,MACtD;AACA,WAAK,eAAe,KAAK;AACzB,WAAK,cAAc,KAAK;AACxB,WAAK,gBAAgB,KAAK;AAAA,IAC9B;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,gBAAgB;AAChB,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,YAAYA,QAAO,SAAS,SAAS,CAAC,GAAG;AACrC,YAAM,EAAE,YAAY,YAAY,QAAQ,IAAI;AAC5C,eAAS,OAAO,OAAO,EAAE,YAAY,YAAY,QAAQ,GAAG,MAAM;AAClE,WAAK,YAAY,YAAYA,QAAO,SAAS,OAAO,IAAI,MAAM;AAAA,IAClE;AAAA,IACA,gBAAgB,SAAS,MAAM;AAC3B,WAAK,uBAAuB,GAAG,IAAI,mBAAmB,OAAO;AAAA,IACjE;AAAA,IACA,mBAAmB,SAAS,MAAM;AAC9B,WAAK,uBAAuB,GAAG,IAAI,sBAAsB,OAAO;AAAA,IACpE;AAAA,IACA,uBAAuB,eAAe,MAAM;AACxC,YAAM,aAAa,KAAK;AACxB,UAAI,OAAO,WAAW,UAAU,KAAK,YAAY;AAC7C,mBAAW,UAAU,EAAE,GAAG,IAAI;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,iCAAiC,aAAa,cAAc;AACjE,UAAM,YAAY,2BAA2B,WAAW;AACxD,WAAO,MAAM,KAAK,UAAU,OAAO,CAAC,QAAQC,iBAAgB;AACxD,8BAAwBA,cAAa,YAAY,EAAE,QAAQ,UAAQ,OAAO,IAAI,IAAI,CAAC;AACnF,aAAO;AAAA,IACX,GAAG,oBAAI,KAAG,CAAC;AAAA,EACf;AACA,WAAS,iCAAiC,aAAa,cAAc;AACjE,UAAM,YAAY,2BAA2B,WAAW;AACxD,WAAO,UAAU,OAAO,CAAC,OAAOA,iBAAgB;AAC5C,YAAM,KAAK,GAAG,wBAAwBA,cAAa,YAAY,CAAC;AAChE,aAAO;AAAA,IACX,GAAG,CAAC,CAAC;AAAA,EACT;AACA,WAAS,2BAA2B,aAAa;AAC7C,UAAM,YAAY,CAAC;AACnB,WAAO,aAAa;AAChB,gBAAU,KAAK,WAAW;AAC1B,oBAAc,OAAO,eAAe,WAAW;AAAA,IACnD;AACA,WAAO,UAAU,QAAQ;AAAA,EAC7B;AACA,WAAS,wBAAwB,aAAa,cAAc;AACxD,UAAM,aAAa,YAAY,YAAY;AAC3C,WAAO,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC;AAAA,EACrD;AACA,WAAS,wBAAwB,aAAa,cAAc;AACxD,UAAM,aAAa,YAAY,YAAY;AAC3C,WAAO,aAAa,OAAO,KAAK,UAAU,EAAE,IAAI,SAAO,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;AAAA,EACtF;AAEA,WAAS,MAAM,aAAa;AACxB,WAAO,OAAO,aAAa,qBAAqB,WAAW,CAAC;AAAA,EAChE;AACA,WAAS,OAAO,aAAa,YAAY;AACrC,UAAM,oBAAoBC,QAAO,WAAW;AAC5C,UAAM,mBAAmB,oBAAoB,YAAY,WAAW,UAAU;AAC9E,WAAO,iBAAiB,kBAAkB,WAAW,gBAAgB;AACrE,WAAO;AAAA,EACX;AACA,WAAS,qBAAqB,aAAa;AACvC,UAAM,YAAY,iCAAiC,aAAa,WAAW;AAC3E,WAAO,UAAU,OAAO,CAAC,mBAAmB,aAAa;AACrD,YAAM,aAAa,SAAS,WAAW;AACvC,iBAAW,OAAO,YAAY;AAC1B,cAAM,aAAa,kBAAkB,GAAG,KAAK,CAAC;AAC9C,0BAAkB,GAAG,IAAI,OAAO,OAAO,YAAY,WAAW,GAAG,CAAC;AAAA,MACtE;AACA,aAAO;AAAA,IACX,GAAG,CAAC,CAAC;AAAA,EACT;AACA,WAAS,oBAAoB,WAAW,YAAY;AAChD,WAAO,WAAW,UAAU,EAAE,OAAO,CAAC,kBAAkB,QAAQ;AAC5D,YAAM,aAAa,sBAAsB,WAAW,YAAY,GAAG;AACnE,UAAI,YAAY;AACZ,eAAO,OAAO,kBAAkB,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC;AAAA,MACzD;AACA,aAAO;AAAA,IACX,GAAG,CAAC,CAAC;AAAA,EACT;AACA,WAAS,sBAAsB,WAAW,YAAY,KAAK;AACvD,UAAM,sBAAsB,OAAO,yBAAyB,WAAW,GAAG;AAC1E,UAAM,kBAAkB,uBAAuB,WAAW;AAC1D,QAAI,CAAC,iBAAiB;AAClB,YAAM,aAAa,OAAO,yBAAyB,YAAY,GAAG,EAAE;AACpE,UAAI,qBAAqB;AACrB,mBAAW,MAAM,oBAAoB,OAAO,WAAW;AACvD,mBAAW,MAAM,oBAAoB,OAAO,WAAW;AAAA,MAC3D;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,MAAM,cAAc,MAAM;AACtB,QAAI,OAAO,OAAO,yBAAyB,YAAY;AACnD,aAAO,CAAC,WAAW;AAAA,QACf,GAAG,OAAO,oBAAoB,MAAM;AAAA,QACpC,GAAG,OAAO,sBAAsB,MAAM;AAAA,MAC1C;AAAA,IACJ,OACK;AACD,aAAO,OAAO;AAAA,IAClB;AAAA,EACJ,GAAG;AACH,MAAMA,WAAU,MAAM;AAClB,aAAS,kBAAkB,aAAa;AACpC,eAAS,WAAW;AAChB,eAAO,QAAQ,UAAU,aAAa,WAAW,UAAU;AAAA,MAC/D;AACA,eAAS,YAAY,OAAO,OAAO,YAAY,WAAW;AAAA,QACtD,aAAa,EAAE,OAAO,SAAS;AAAA,MACnC,CAAC;AACD,cAAQ,eAAe,UAAU,WAAW;AAC5C,aAAO;AAAA,IACX;AACA,aAAS,uBAAuB;AAC5B,YAAMC,KAAI,WAAY;AAAE,aAAK,EAAE,KAAK,IAAI;AAAA,MAAG;AAC3C,YAAMC,KAAI,kBAAkBD,EAAC;AAC7B,MAAAC,GAAE,UAAU,IAAI,WAAY;AAAA,MAAE;AAC9B,aAAO,IAAIA;AAAA,IACf;AACA,QAAI;AACA,2BAAqB;AACrB,aAAO;AAAA,IACX,SACOJ,QAAO;AACV,aAAO,CAAC,gBAAgB,MAAM,iBAAiB,YAAY;AAAA,MAC3D;AAAA,IACJ;AAAA,EACJ,GAAG;AAEH,WAAS,gBAAgB,YAAY;AACjC,WAAO;AAAA,MACH,YAAY,WAAW;AAAA,MACvB,uBAAuB,MAAM,WAAW,qBAAqB;AAAA,IACjE;AAAA,EACJ;AAEA,MAAM,SAAN,MAAa;AAAA,IACT,YAAYK,cAAa,YAAY;AACjC,WAAK,cAAcA;AACnB,WAAK,aAAa,gBAAgB,UAAU;AAC5C,WAAK,kBAAkB,oBAAI;AAC3B,WAAK,oBAAoB,oBAAI;AAAA,IACjC;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,WAAW;AAAA,IAC3B;AAAA,IACA,IAAI,wBAAwB;AACxB,aAAO,KAAK,WAAW;AAAA,IAC3B;AAAA,IACA,IAAI,WAAW;AACX,aAAO,MAAM,KAAK,KAAK,iBAAiB;AAAA,IAC5C;AAAA,IACA,uBAAuB,OAAO;AAC1B,YAAM,UAAU,KAAK,qBAAqB,KAAK;AAC/C,WAAK,kBAAkB,IAAI,OAAO;AAClC,cAAQ,QAAQ;AAAA,IACpB;AAAA,IACA,0BAA0B,OAAO;AAC7B,YAAM,UAAU,KAAK,gBAAgB,IAAI,KAAK;AAC9C,UAAI,SAAS;AACT,aAAK,kBAAkB,OAAO,OAAO;AACrC,gBAAQ,WAAW;AAAA,MACvB;AAAA,IACJ;AAAA,IACA,qBAAqB,OAAO;AACxB,UAAI,UAAU,KAAK,gBAAgB,IAAI,KAAK;AAC5C,UAAI,CAAC,SAAS;AACV,kBAAU,IAAI,QAAQ,MAAM,KAAK;AACjC,aAAK,gBAAgB,IAAI,OAAO,OAAO;AAAA,MAC3C;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,MAAM,WAAN,MAAe;AAAA,IACX,YAAY,OAAO;AACf,WAAK,QAAQ;AAAA,IACjB;AAAA,IACA,IAAI,MAAM;AACN,aAAO,KAAK,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC;AAAA,IAC9C;AAAA,IACA,IAAI,MAAM;AACN,aAAO,KAAK,OAAO,IAAI,EAAE,CAAC;AAAA,IAC9B;AAAA,IACA,OAAO,MAAM;AACT,YAAM,cAAc,KAAK,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK;AAC5D,aAAO,SAAS,WAAW;AAAA,IAC/B;AAAA,IACA,iBAAiB,MAAM;AACnB,aAAO,KAAK,KAAK,uBAAuB,KAAK,WAAW,IAAI,CAAC;AAAA,IACjE;AAAA,IACA,WAAW,MAAM;AACb,aAAO,GAAG,IAAI;AAAA,IAClB;AAAA,IACA,IAAI,OAAO;AACP,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,EACJ;AAEA,MAAM,UAAN,MAAc;AAAA,IACV,YAAY,OAAO;AACf,WAAK,QAAQ;AAAA,IACjB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,KAAK;AACL,YAAM,OAAO,KAAK,uBAAuB,GAAG;AAC5C,aAAO,KAAK,QAAQ,aAAa,IAAI;AAAA,IACzC;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,YAAM,OAAO,KAAK,uBAAuB,GAAG;AAC5C,WAAK,QAAQ,aAAa,MAAM,KAAK;AACrC,aAAO,KAAK,IAAI,GAAG;AAAA,IACvB;AAAA,IACA,IAAI,KAAK;AACL,YAAM,OAAO,KAAK,uBAAuB,GAAG;AAC5C,aAAO,KAAK,QAAQ,aAAa,IAAI;AAAA,IACzC;AAAA,IACA,OAAO,KAAK;AACR,UAAI,KAAK,IAAI,GAAG,GAAG;AACf,cAAM,OAAO,KAAK,uBAAuB,GAAG;AAC5C,aAAK,QAAQ,gBAAgB,IAAI;AACjC,eAAO;AAAA,MACX,OACK;AACD,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,uBAAuB,KAAK;AACxB,aAAO,QAAQ,KAAK,UAAU,IAAI,UAAU,GAAG,CAAC;AAAA,IACpD;AAAA,EACJ;AAEA,MAAM,QAAN,MAAY;AAAA,IACR,YAAYC,SAAQ;AAChB,WAAK,qBAAqB,oBAAI;AAC9B,WAAK,SAASA;AAAA,IAClB;AAAA,IACA,KAAK,QAAQ,KAAK,SAAS;AACvB,UAAI,aAAa,KAAK,mBAAmB,IAAI,MAAM;AACnD,UAAI,CAAC,YAAY;AACb,qBAAa,oBAAI;AACjB,aAAK,mBAAmB,IAAI,QAAQ,UAAU;AAAA,MAClD;AACA,UAAI,CAAC,WAAW,IAAI,GAAG,GAAG;AACtB,mBAAW,IAAI,GAAG;AAClB,aAAK,OAAO,KAAK,SAAS,MAAM;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,4BAA4B,eAAe,OAAO;AACvD,WAAO,IAAI,aAAa,MAAM,KAAK;AAAA,EACvC;AAEA,MAAM,YAAN,MAAgB;AAAA,IACZ,YAAY,OAAO;AACf,WAAK,QAAQ;AAAA,IACjB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,YAAY;AACZ,aAAO,KAAK,KAAK,UAAU,KAAK;AAAA,IACpC;AAAA,IACA,QAAQ,aAAa;AACjB,aAAO,YAAY,OAAO,CAAC,QAAQ,eAAe,UAC3C,KAAK,WAAW,UAAU,KAC1B,KAAK,iBAAiB,UAAU,GAAG,MAAS;AAAA,IACvD;AAAA,IACA,WAAW,aAAa;AACpB,aAAO,YAAY,OAAO,CAAC,SAAS,eAAe;AAAA,QAC/C,GAAG;AAAA,QACH,GAAG,KAAK,eAAe,UAAU;AAAA,QACjC,GAAG,KAAK,qBAAqB,UAAU;AAAA,MAC3C,GAAG,CAAC,CAAC;AAAA,IACT;AAAA,IACA,WAAW,YAAY;AACnB,YAAM,WAAW,KAAK,yBAAyB,UAAU;AACzD,aAAO,KAAK,MAAM,YAAY,QAAQ;AAAA,IAC1C;AAAA,IACA,eAAe,YAAY;AACvB,YAAM,WAAW,KAAK,yBAAyB,UAAU;AACzD,aAAO,KAAK,MAAM,gBAAgB,QAAQ;AAAA,IAC9C;AAAA,IACA,yBAAyB,YAAY;AACjC,YAAM,gBAAgB,KAAK,OAAO,wBAAwB,KAAK,UAAU;AACzE,aAAO,4BAA4B,eAAe,UAAU;AAAA,IAChE;AAAA,IACA,iBAAiB,YAAY;AACzB,YAAM,WAAW,KAAK,+BAA+B,UAAU;AAC/D,aAAO,KAAK,UAAU,KAAK,MAAM,YAAY,QAAQ,GAAG,UAAU;AAAA,IACtE;AAAA,IACA,qBAAqB,YAAY;AAC7B,YAAM,WAAW,KAAK,+BAA+B,UAAU;AAC/D,aAAO,KAAK,MAAM,gBAAgB,QAAQ,EAAE,IAAI,aAAW,KAAK,UAAU,SAAS,UAAU,CAAC;AAAA,IAClG;AAAA,IACA,+BAA+B,YAAY;AACvC,YAAM,mBAAmB,GAAG,KAAK,UAAU,IAAI,UAAU;AACzD,aAAO,4BAA4B,KAAK,OAAO,iBAAiB,gBAAgB;AAAA,IACpF;AAAA,IACA,UAAU,SAAS,YAAY;AAC3B,UAAI,SAAS;AACT,cAAM,EAAE,WAAW,IAAI;AACvB,cAAM,gBAAgB,KAAK,OAAO;AAClC,cAAM,uBAAuB,KAAK,OAAO,wBAAwB,UAAU;AAC3E,aAAK,MAAM,KAAK,SAAS,UAAU,UAAU,IAAI,kBAAkB,aAAa,KAAK,UAAU,IAAI,UAAU,UAAU,oBAAoB,KAAK,UAAU,UAC/I,aAAa,+EAA+E;AAAA,MAC3G;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,EACJ;AAEA,MAAM,QAAN,MAAY;AAAA,IACR,YAAY,QAAQ,SAAS,YAAYA,SAAQ;AAC7C,WAAK,UAAU,IAAI,UAAU,IAAI;AACjC,WAAK,UAAU,IAAI,SAAS,IAAI;AAChC,WAAK,OAAO,IAAI,QAAQ,IAAI;AAC5B,WAAK,kBAAkB,CAACC,aAAY;AAChC,eAAOA,SAAQ,QAAQ,KAAK,kBAAkB,MAAM,KAAK;AAAA,MAC7D;AACA,WAAK,SAAS;AACd,WAAK,UAAU;AACf,WAAK,aAAa;AAClB,WAAK,QAAQ,IAAI,MAAMD,OAAM;AAAA,IACjC;AAAA,IACA,YAAY,UAAU;AAClB,aAAO,KAAK,QAAQ,QAAQ,QAAQ,IAC9B,KAAK,UACL,KAAK,cAAc,QAAQ,EAAE,KAAK,KAAK,eAAe;AAAA,IAChE;AAAA,IACA,gBAAgB,UAAU;AACtB,aAAO;AAAA,QACH,GAAG,KAAK,QAAQ,QAAQ,QAAQ,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC;AAAA,QACtD,GAAG,KAAK,cAAc,QAAQ,EAAE,OAAO,KAAK,eAAe;AAAA,MAC/D;AAAA,IACJ;AAAA,IACA,cAAc,UAAU;AACpB,aAAO,MAAM,KAAK,KAAK,QAAQ,iBAAiB,QAAQ,CAAC;AAAA,IAC7D;AAAA,IACA,IAAI,qBAAqB;AACrB,aAAO,4BAA4B,KAAK,OAAO,qBAAqB,KAAK,UAAU;AAAA,IACvF;AAAA,EACJ;AAEA,MAAM,gBAAN,MAAoB;AAAA,IAChB,YAAY,SAAS,QAAQ,UAAU;AACnC,WAAK,UAAU;AACf,WAAK,SAAS;AACd,WAAK,WAAW;AAChB,WAAK,oBAAoB,IAAI,kBAAkB,KAAK,SAAS,KAAK,qBAAqB,IAAI;AAC3F,WAAK,8BAA8B,oBAAI;AACvC,WAAK,uBAAuB,oBAAI;AAAA,IACpC;AAAA,IACA,QAAQ;AACJ,WAAK,kBAAkB,MAAM;AAAA,IACjC;AAAA,IACA,OAAO;AACH,WAAK,kBAAkB,KAAK;AAAA,IAChC;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,mBAAmB,OAAO;AACtB,YAAM,EAAE,SAAS,SAAS,WAAW,IAAI;AACzC,YAAM,qBAAqB,KAAK,kCAAkC,OAAO;AACzE,UAAI,QAAQ,mBAAmB,IAAI,UAAU;AAC7C,UAAI,CAAC,OAAO;AACR,gBAAQ,KAAK,SAAS,mCAAmC,SAAS,UAAU;AAC5E,2BAAmB,IAAI,YAAY,KAAK;AAAA,MAC5C;AACA,aAAO;AAAA,IACX;AAAA,IACA,oBAAoB,SAAS,OAAO;AAChC,YAAM,kBAAkB,KAAK,qBAAqB,IAAI,KAAK,KAAK,KAAK;AACrE,WAAK,qBAAqB,IAAI,OAAO,cAAc;AACnD,UAAI,kBAAkB,GAAG;AACrB,aAAK,SAAS,eAAe,KAAK;AAAA,MACtC;AAAA,IACJ;AAAA,IACA,sBAAsB,SAAS,OAAO;AAClC,YAAM,iBAAiB,KAAK,qBAAqB,IAAI,KAAK;AAC1D,UAAI,gBAAgB;AAChB,aAAK,qBAAqB,IAAI,OAAO,iBAAiB,CAAC;AACvD,YAAI,kBAAkB,GAAG;AACrB,eAAK,SAAS,kBAAkB,KAAK;AAAA,QACzC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,kCAAkC,SAAS;AACvC,UAAI,qBAAqB,KAAK,4BAA4B,IAAI,OAAO;AACrE,UAAI,CAAC,oBAAoB;AACrB,6BAAqB,oBAAI;AACzB,aAAK,4BAA4B,IAAI,SAAS,kBAAkB;AAAA,MACpE;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,MAAM,SAAN,MAAa;AAAA,IACT,YAAYD,cAAa;AACrB,WAAK,cAAcA;AACnB,WAAK,gBAAgB,IAAI,cAAc,KAAK,SAAS,KAAK,QAAQ,IAAI;AACtE,WAAK,qBAAqB,IAAI;AAC9B,WAAK,sBAAsB,oBAAI;AAAA,IACnC;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,YAAY;AAAA,IAC5B;AAAA,IACA,IAAI,sBAAsB;AACtB,aAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,MAAM,KAAK,KAAK,oBAAoB,OAAO,CAAC;AAAA,IACvD;AAAA,IACA,IAAI,WAAW;AACX,aAAO,KAAK,QAAQ,OAAO,CAAC,UAAU,WAAW,SAAS,OAAO,OAAO,QAAQ,GAAG,CAAC,CAAC;AAAA,IACzF;AAAA,IACA,QAAQ;AACJ,WAAK,cAAc,MAAM;AAAA,IAC7B;AAAA,IACA,OAAO;AACH,WAAK,cAAc,KAAK;AAAA,IAC5B;AAAA,IACA,eAAe,YAAY;AACvB,WAAK,iBAAiB,WAAW,UAAU;AAC3C,YAAM,SAAS,IAAI,OAAO,KAAK,aAAa,UAAU;AACtD,WAAK,cAAc,MAAM;AAAA,IAC7B;AAAA,IACA,iBAAiB,YAAY;AACzB,YAAM,SAAS,KAAK,oBAAoB,IAAI,UAAU;AACtD,UAAI,QAAQ;AACR,aAAK,iBAAiB,MAAM;AAAA,MAChC;AAAA,IACJ;AAAA,IACA,kCAAkC,SAAS,YAAY;AACnD,YAAM,SAAS,KAAK,oBAAoB,IAAI,UAAU;AACtD,UAAI,QAAQ;AACR,eAAO,OAAO,SAAS,KAAK,aAAW,QAAQ,WAAW,OAAO;AAAA,MACrE;AAAA,IACJ;AAAA,IACA,YAAYL,QAAO,SAAS,QAAQ;AAChC,WAAK,YAAY,YAAYA,QAAO,SAAS,MAAM;AAAA,IACvD;AAAA,IACA,mCAAmC,SAAS,YAAY;AACpD,aAAO,IAAI,MAAM,KAAK,QAAQ,SAAS,YAAY,KAAK,MAAM;AAAA,IAClE;AAAA,IACA,eAAe,OAAO;AAClB,WAAK,mBAAmB,IAAI,MAAM,YAAY,KAAK;AACnD,YAAM,SAAS,KAAK,oBAAoB,IAAI,MAAM,UAAU;AAC5D,UAAI,QAAQ;AACR,eAAO,uBAAuB,KAAK;AAAA,MACvC;AAAA,IACJ;AAAA,IACA,kBAAkB,OAAO;AACrB,WAAK,mBAAmB,OAAO,MAAM,YAAY,KAAK;AACtD,YAAM,SAAS,KAAK,oBAAoB,IAAI,MAAM,UAAU;AAC5D,UAAI,QAAQ;AACR,eAAO,0BAA0B,KAAK;AAAA,MAC1C;AAAA,IACJ;AAAA,IACA,cAAc,QAAQ;AAClB,WAAK,oBAAoB,IAAI,OAAO,YAAY,MAAM;AACtD,YAAM,SAAS,KAAK,mBAAmB,gBAAgB,OAAO,UAAU;AACxE,aAAO,QAAQ,WAAS,OAAO,uBAAuB,KAAK,CAAC;AAAA,IAChE;AAAA,IACA,iBAAiB,QAAQ;AACrB,WAAK,oBAAoB,OAAO,OAAO,UAAU;AACjD,YAAM,SAAS,KAAK,mBAAmB,gBAAgB,OAAO,UAAU;AACxE,aAAO,QAAQ,WAAS,OAAO,0BAA0B,KAAK,CAAC;AAAA,IACnE;AAAA,EACJ;AAEA,MAAM,gBAAgB;AAAA,IAClB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,yBAAyB,gBAAc,QAAQ,UAAU;AAAA,EAC7D;AAEA,MAAM,cAAN,MAAM,aAAY;AAAA,IACd,YAAY,UAAU,SAAS,iBAAiB,SAAS,eAAe;AACpE,WAAK,SAAS;AACd,WAAK,QAAQ;AACb,WAAK,mBAAmB,CAAC,YAAY,cAAc,SAAS,CAAC,MAAM;AAC/D,YAAI,KAAK,OAAO;AACZ,eAAK,oBAAoB,YAAY,cAAc,MAAM;AAAA,QAC7D;AAAA,MACJ;AACA,WAAK,UAAU;AACf,WAAK,SAAS;AACd,WAAK,aAAa,IAAI,WAAW,IAAI;AACrC,WAAK,SAAS,IAAI,OAAO,IAAI;AAAA,IACjC;AAAA,IACA,OAAO,MAAM,SAAS,QAAQ;AAC1B,YAAMK,eAAc,IAAI,aAAY,SAAS,MAAM;AACnD,MAAAA,aAAY,MAAM;AAClB,aAAOA;AAAA,IACX;AAAA,IACA,MAAM,QAAQ;AACV,YAAM,SAAS;AACf,WAAK,iBAAiB,eAAe,UAAU;AAC/C,WAAK,WAAW,MAAM;AACtB,WAAK,OAAO,MAAM;AAClB,WAAK,iBAAiB,eAAe,OAAO;AAAA,IAChD;AAAA,IACA,OAAO;AACH,WAAK,iBAAiB,eAAe,UAAU;AAC/C,WAAK,WAAW,KAAK;AACrB,WAAK,OAAO,KAAK;AACjB,WAAK,iBAAiB,eAAe,MAAM;AAAA,IAC/C;AAAA,IACA,SAAS,YAAY,uBAAuB;AACxC,UAAI,sBAAsB,YAAY;AAClC,aAAK,KAAK,EAAE,YAAY,sBAAsB,CAAC;AAAA,MACnD;AAAA,IACJ;AAAA,IACA,KAAK,SAAS,MAAM;AAChB,YAAM,cAAc,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI;AAC/D,kBAAY,QAAQ,gBAAc,KAAK,OAAO,eAAe,UAAU,CAAC;AAAA,IAC5E;AAAA,IACA,OAAO,SAAS,MAAM;AAClB,YAAM,cAAc,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI;AAC/D,kBAAY,QAAQ,gBAAc,KAAK,OAAO,iBAAiB,UAAU,CAAC;AAAA,IAC9E;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,OAAO,SAAS,IAAI,aAAW,QAAQ,UAAU;AAAA,IACjE;AAAA,IACA,qCAAqC,SAAS,YAAY;AACtD,YAAM,UAAU,KAAK,OAAO,kCAAkC,SAAS,UAAU;AACjF,aAAO,UAAU,QAAQ,aAAa;AAAA,IAC1C;AAAA,IACA,YAAYL,QAAO,SAAS,QAAQ;AAChC,UAAI;AACJ,WAAK,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA,KAAkB,SAASA,QAAO,MAAM;AAC1D,OAAC,KAAK,OAAO,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAK,QAAQ,SAAS,IAAI,GAAG,GAAGA,MAAK;AAAA,IACvG;AAAA,IACA,oBAAoB,YAAY,cAAc,SAAS,CAAC,GAAG;AACvD,eAAS,OAAO,OAAO,EAAE,aAAa,KAAK,GAAG,MAAM;AACpD,WAAK,OAAO,eAAe,GAAG,UAAU,KAAK,YAAY,EAAE;AAC3D,WAAK,OAAO,IAAI,YAAY,OAAO,OAAO,CAAC,GAAG,MAAM,CAAC;AACrD,WAAK,OAAO,SAAS;AAAA,IACzB;AAAA,EACJ;AACA,WAAS,WAAW;AAChB,WAAO,IAAI,QAAQ,aAAW;AAC1B,UAAI,SAAS,cAAc,WAAW;AAClC,iBAAS,iBAAiB,oBAAoB,MAAM,QAAQ,CAAC;AAAA,MACjE,OACK;AACD,gBAAQ;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,WAAS,wBAAwB,aAAa;AAC1C,UAAM,UAAU,iCAAiC,aAAa,SAAS;AACvE,WAAO,QAAQ,OAAO,CAAC,YAAY,oBAAoB;AACnD,aAAO,OAAO,OAAO,YAAY,6BAA6B,eAAe,CAAC;AAAA,IAClF,GAAG,CAAC,CAAC;AAAA,EACT;AACA,WAAS,6BAA6B,KAAK;AACvC,WAAO;AAAA,MACH,CAAC,GAAG,GAAG,OAAO,GAAG;AAAA,QACb,MAAM;AACF,gBAAM,EAAE,QAAQ,IAAI;AACpB,cAAI,QAAQ,IAAI,GAAG,GAAG;AAClB,mBAAO,QAAQ,IAAI,GAAG;AAAA,UAC1B,OACK;AACD,kBAAM,YAAY,QAAQ,iBAAiB,GAAG;AAC9C,kBAAM,IAAI,MAAM,sBAAsB,SAAS,GAAG;AAAA,UACtD;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,CAAC,GAAG,GAAG,SAAS,GAAG;AAAA,QACf,MAAM;AACF,iBAAO,KAAK,QAAQ,OAAO,GAAG;AAAA,QAClC;AAAA,MACJ;AAAA,MACA,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,GAAG;AAAA,QAC5B,MAAM;AACF,iBAAO,KAAK,QAAQ,IAAI,GAAG;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,yBAAyB,aAAa;AAC3C,UAAM,UAAU,iCAAiC,aAAa,SAAS;AACvE,WAAO,QAAQ,OAAO,CAAC,YAAY,qBAAqB;AACpD,aAAO,OAAO,OAAO,YAAY,8BAA8B,gBAAgB,CAAC;AAAA,IACpF,GAAG,CAAC,CAAC;AAAA,EACT;AACA,WAAS,8BAA8B,MAAM;AACzC,WAAO;AAAA,MACH,CAAC,GAAG,IAAI,QAAQ,GAAG;AAAA,QACf,MAAM;AACF,gBAAM,SAAS,KAAK,QAAQ,KAAK,IAAI;AACrC,cAAI,QAAQ;AACR,mBAAO;AAAA,UACX,OACK;AACD,kBAAM,IAAI,MAAM,2BAA2B,IAAI,UAAU,KAAK,UAAU,cAAc;AAAA,UAC1F;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,CAAC,GAAG,IAAI,SAAS,GAAG;AAAA,QAChB,MAAM;AACF,iBAAO,KAAK,QAAQ,QAAQ,IAAI;AAAA,QACpC;AAAA,MACJ;AAAA,MACA,CAAC,MAAM,WAAW,IAAI,CAAC,QAAQ,GAAG;AAAA,QAC9B,MAAM;AACF,iBAAO,KAAK,QAAQ,IAAI,IAAI;AAAA,QAChC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,wBAAwB,aAAa;AAC1C,UAAM,uBAAuB,iCAAiC,aAAa,QAAQ;AACnF,UAAM,wBAAwB;AAAA,MAC1B,oBAAoB;AAAA,QAChB,MAAM;AACF,iBAAO,qBAAqB,OAAO,CAAC,QAAQ,wBAAwB;AAChE,kBAAM,kBAAkB,yBAAyB,mBAAmB;AACpE,kBAAM,gBAAgB,KAAK,KAAK,uBAAuB,gBAAgB,GAAG;AAC1E,mBAAO,OAAO,OAAO,QAAQ,EAAE,CAAC,aAAa,GAAG,gBAAgB,CAAC;AAAA,UACrE,GAAG,CAAC,CAAC;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,qBAAqB,OAAO,CAAC,YAAY,wBAAwB;AACpE,aAAO,OAAO,OAAO,YAAY,iCAAiC,mBAAmB,CAAC;AAAA,IAC1F,GAAG,qBAAqB;AAAA,EAC5B;AACA,WAAS,iCAAiC,qBAAqB;AAC3D,UAAM,aAAa,yBAAyB,mBAAmB;AAC/D,UAAM,EAAE,KAAK,MAAM,QAAQQ,OAAM,QAAQC,OAAM,IAAI;AACnD,WAAO;AAAA,MACH,CAAC,IAAI,GAAG;AAAA,QACJ,MAAM;AACF,gBAAM,QAAQ,KAAK,KAAK,IAAI,GAAG;AAC/B,cAAI,UAAU,MAAM;AAChB,mBAAOD,MAAK,KAAK;AAAA,UACrB,OACK;AACD,mBAAO,WAAW;AAAA,UACtB;AAAA,QACJ;AAAA,QACA,IAAI,OAAO;AACP,cAAI,UAAU,QAAW;AACrB,iBAAK,KAAK,OAAO,GAAG;AAAA,UACxB,OACK;AACD,iBAAK,KAAK,IAAI,KAAKC,OAAM,KAAK,CAAC;AAAA,UACnC;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,CAAC,MAAM,WAAW,IAAI,CAAC,EAAE,GAAG;AAAA,QACxB,MAAM;AACF,iBAAO,KAAK,KAAK,IAAI,GAAG,KAAK,WAAW;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,yBAAyB,CAAC,OAAO,cAAc,GAAG;AACvD,WAAO,yCAAyC,OAAO,cAAc;AAAA,EACzE;AACA,WAAS,uBAAuB,UAAU;AACtC,YAAQ,UAAU;AAAA,MACd,KAAK;AAAO,eAAO;AAAA,MACnB,KAAK;AAAS,eAAO;AAAA,MACrB,KAAK;AAAQ,eAAO;AAAA,MACpB,KAAK;AAAQ,eAAO;AAAA,MACpB,KAAK;AAAQ,eAAO;AAAA,IACxB;AAAA,EACJ;AACA,WAAS,sBAAsB,cAAc;AACzC,YAAQ,OAAO,cAAc;AAAA,MACzB,KAAK;AAAW,eAAO;AAAA,MACvB,KAAK;AAAU,eAAO;AAAA,MACtB,KAAK;AAAU,eAAO;AAAA,IAC1B;AACA,QAAI,MAAM,QAAQ,YAAY;AAC1B,aAAO;AACX,QAAI,OAAO,UAAU,SAAS,KAAK,YAAY,MAAM;AACjD,aAAO;AAAA,EACf;AACA,WAAS,qBAAqB,YAAY;AACtC,UAAM,iBAAiB,uBAAuB,WAAW,IAAI;AAC7D,QAAI,gBAAgB;AAChB,YAAM,mBAAmB,sBAAsB,WAAW,OAAO;AACjE,UAAI,mBAAmB,kBAAkB;AACrC,cAAM,IAAI,MAAM,SAAS,cAAc,qEAAqE,WAAW,OAAO,SAAS,gBAAgB,GAAG;AAAA,MAC9J;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,yBAAyB,gBAAgB;AAC9C,UAAM,iBAAiB,qBAAqB,cAAc;AAC1D,UAAM,uBAAuB,sBAAsB,cAAc;AACjE,UAAM,mBAAmB,uBAAuB,cAAc;AAC9D,UAAM,OAAO,kBAAkB,wBAAwB;AACvD,QAAI;AACA,aAAO;AACX,UAAM,IAAI,MAAM,uBAAuB,cAAc,GAAG;AAAA,EAC5D;AACA,WAAS,0BAA0B,gBAAgB;AAC/C,UAAM,WAAW,uBAAuB,cAAc;AACtD,QAAI;AACA,aAAO,oBAAoB,QAAQ;AACvC,UAAM,eAAe,eAAe;AACpC,QAAI,iBAAiB;AACjB,aAAO;AACX,WAAO;AAAA,EACX;AACA,WAAS,yCAAyC,OAAO,gBAAgB;AACrE,UAAM,MAAM,GAAG,UAAU,KAAK,CAAC;AAC/B,UAAM,OAAO,yBAAyB,cAAc;AACpD,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA,MAAM,SAAS,GAAG;AAAA,MAClB,IAAI,eAAe;AAAE,eAAO,0BAA0B,cAAc;AAAA,MAAG;AAAA,MACvE,IAAI,wBAAwB;AAAE,eAAO,sBAAsB,cAAc,MAAM;AAAA,MAAW;AAAA,MAC1F,QAAQ,QAAQ,IAAI;AAAA,MACpB,QAAQ,QAAQ,IAAI,KAAK,QAAQ;AAAA,IACrC;AAAA,EACJ;AACA,MAAM,sBAAsB;AAAA,IACxB,IAAI,QAAQ;AAAE,aAAO,CAAC;AAAA,IAAG;AAAA,IACzB,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,IAAI,SAAS;AAAE,aAAO,CAAC;AAAA,IAAG;AAAA,IAC1B,QAAQ;AAAA,EACZ;AACA,MAAM,UAAU;AAAA,IACZ,MAAM,OAAO;AACT,YAAM,QAAQ,KAAK,MAAM,KAAK;AAC9B,UAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACvB,cAAM,IAAI,UAAU,gBAAgB;AAAA,MACxC;AACA,aAAO;AAAA,IACX;AAAA,IACA,QAAQ,OAAO;AACX,aAAO,EAAE,SAAS,OAAO,SAAS;AAAA,IACtC;AAAA,IACA,OAAO,OAAO;AACV,aAAO,OAAO,KAAK;AAAA,IACvB;AAAA,IACA,OAAO,OAAO;AACV,YAAM,SAAS,KAAK,MAAM,KAAK;AAC/B,UAAI,WAAW,QAAQ,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,GAAG;AACvE,cAAM,IAAI,UAAU,iBAAiB;AAAA,MACzC;AACA,aAAO;AAAA,IACX;AAAA,IACA,OAAO,OAAO;AACV,aAAO;AAAA,IACX;AAAA,EACJ;AACA,MAAM,UAAU;AAAA,IACZ,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,EACZ;AACA,WAAS,UAAU,OAAO;AACtB,WAAO,KAAK,UAAU,KAAK;AAAA,EAC/B;AACA,WAAS,YAAY,OAAO;AACxB,WAAO,GAAG,KAAK;AAAA,EACnB;AAEA,MAAM,aAAN,MAAiB;AAAA,IACb,YAAY,SAAS;AACjB,WAAK,UAAU;AAAA,IACnB;AAAA,IACA,WAAW,aAAa;AACpB,aAAO;AAAA,IACX;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,IAAI,OAAO;AACP,aAAO,KAAK,MAAM;AAAA,IACtB;AAAA,IACA,aAAa;AAAA,IACb;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,aAAa;AAAA,IACb;AAAA,IACA,SAAS,WAAW,EAAE,SAAS,KAAK,SAAS,SAAS,CAAC,GAAG,SAAS,KAAK,YAAY,UAAU,MAAM,aAAa,KAAK,IAAI,CAAC,GAAG;AAC1H,YAAM,OAAO,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AACjD,YAAM,QAAQ,IAAI,YAAY,MAAM,EAAE,QAAQ,SAAS,WAAW,CAAC;AACnE,aAAO,cAAc,KAAK;AAC1B,aAAO;AAAA,IACX;AAAA,EACJ;AACA,aAAW,YAAY,CAAC,yBAAyB,0BAA0B,uBAAuB;AAClG,aAAW,UAAU,CAAC;AACtB,aAAW,SAAS,CAAC;;;ACn5DrB,MAAM,cAAc,YAAY,MAAM;AAGtC,cAAY,QAAQ;AACpB,SAAO,WAAa;;;ACJpB,MAAO,+BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,WAAW,QAAQ,QAAQ;AAAA,IAE7C,UAAU;AACR,WAAK,eAAe,QAAQ,CAAC,YAAY;AACvC,gBAAQ,UAAU,IAAI,QAAQ;AAAA,MAChC,CAAC;AAED,WAAK,cAAc,QAAQ,CAAC,QAAQ,UAAU;AAC5C,eAAO,aAAa,iBAAiB,OAAO;AAC5C,aAAK,YAAY,KAAK,EAAE,UAAU,OAAO,YAAY;AAAA,MACvD,CAAC;AAAA,IACH;AAAA,IAEA,OAAO,OAAO;AACZ,YAAM,QAAQ,SAAS,MAAM,cAAc,QAAQ,KAAK;AACxD,WAAK,eAAe,KAAK,EAAE,UAAU,OAAO,QAAQ;AACpD,WAAK,YAAY,KAAK,EAAE,UAAU,OAAO,YAAY;AAErD,YAAM,SAAS,MAAM;AACrB,YAAM,WAAW,OAAO,aAAa,eAAe,MAAM;AAC1D,aAAO,aAAa,iBAAiB,CAAC,QAAQ;AAAA,IAChD;AAAA,EACF;;;ACvBA,MAAO,8BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,mBAAmB,sBAAsB;AAAA,IAE3D,OAAO,SAAS;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAAA,IAEA,eAAe,OAAO;AACpB,WAAK,sBAAsB,UAAU,OAAO,eAAe;AAC3D,UAAI,KAAK,sBAAsB,UAAU,SAAS,eAAe,GAAG;AAClE,aAAK,2BAA2B,YAAY,KAAK;AAAA,MACnD,OAAO;AACL,aAAK,2BAA2B,YAAY,KAAK;AAAA,MACnD;AAAA,IACF;AAAA,EACF;;;AChBA,MAAO,uCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,UAAU;AAAA,IAC5B,OAAO,SAAS,EAAE,YAAY,QAAQ,aAAa,OAAO;AAAA,IAE1D,cAAc,OAAO;AACnB,YAAM,eAAe;AAErB,YAAM,cAAc,MAAM,cAAc,QAAQ;AAEhD,gBAAU,UAAU,UAAU,WAAW;AAEzC,WAAK,eAAe,YAAY,KAAK;AAAA,IACvC;AAAA,IAEA,UAAU,OAAO;AACf,WAAK,eAAe,YAAY,KAAK;AAAA,IACvC;AAAA,EACF;;;ACjBA,MAAO,iCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,aAAa,QAAQ,YAAY,WAAW;AAAA,IAC9D,OAAO,SAAS,EAAE,SAAS,QAAQ,eAAe,OAAO;AAAA,IAEzD,UAAU;AACR,WAAK,cAAc;AACnB,WAAK,cAAc;AACnB,WAAK,0BAA0B;AAAA,IACjC;AAAA,IAEA,MAAM;AACJ,YAAM,QAAQ,KAAK,eAAe,QAAQ,UAAU,IAAI;AACxD,YAAM,aAAY,oBAAI,KAAK,GAAE,QAAQ;AAErC,YAAM,iBAAiB,GAAG,EAAE,QAAQ,aAAW;AAC7C,mBAAW,QAAQ,QAAQ,YAAY;AACrC,cAAI,KAAK,MAAM,SAAS,YAAY,GAAG;AACrC,iBAAK,QAAQ,KAAK,MAAM,WAAW,cAAc,SAAS;AAAA,UAC5D;AAAA,QACF;AAAA,MACF,CAAC;AAED,WAAK,gBAAgB,YAAY,KAAK;AACtC,WAAK,cAAc;AACnB,WAAK,0BAA0B;AAE/B,YAAM,QAAQ,KAAK,aAAa;AAChC,YAAM,WAAW,MAAM,MAAM,SAAS,CAAC;AACvC,WAAK,WAAW,QAAQ;AAAA,IAC1B;AAAA,IAEA,OAAO,OAAO;AACZ,YAAM,OAAO,MAAM,OAAO,QAAQ,kCAAkC;AACpE,YAAM,eAAe,KAAK,cAAc,sBAAsB;AAE9D,UAAI,cAAc;AAChB,qBAAa,QAAQ;AACrB,aAAK,YAAY,IAAI;AACrB,aAAK,MAAM,UAAU;AAAA,MACvB,OAAO;AACL,aAAK,OAAO;AAAA,MACd;AAEA,WAAK,cAAc;AACnB,WAAK,0BAA0B;AAAA,IACjC;AAAA,IAEA,OAAO,OAAO;AACZ,YAAM,OAAO,MAAM,OAAO,QAAQ,kCAAkC;AACpE,YAAM,UAAU,KAAK,cAAc,qCAAqC;AACxE,YAAM,OAAO,KAAK,cAAc,kCAAkC;AAClE,YAAM,SAAS,MAAM;AACrB,YAAM,WAAW,OAAO,aAAa,eAAe,MAAM;AAE1D,cAAQ,UAAU,OAAO,QAAQ;AACjC,WAAK,UAAU,OAAO,YAAY;AAClC,aAAO,aAAa,iBAAiB,OAAO,CAAC,QAAQ,CAAC;AAAA,IACxD;AAAA;AAAA,IAIA,eAAe;AACb,aAAO,KAAK,YAAY,OAAO,UAAQ,KAAK,MAAM,YAAY,MAAM;AAAA,IACtE;AAAA,IAEA,gBAAgB;AACd,UAAI,SAAS;AACb,WAAK,YAAY,QAAQ,UAAQ;AAC/B,YAAI,KAAK,MAAM,YAAY,OAAQ;AAEnC,cAAM,QAAQ,KAAK,cAAc,kBAAkB;AACnD,YAAI,OAAO;AACT,gBAAM,cAAc,KAAK,mBAAmB,QAAQ,aAAa,MAAM;AAAA,QACzE;AAEA,cAAM,eAAe,KAAK,cAAc,mBAAmB;AAC3D,YAAI,cAAc;AAChB,uBAAa,UAAU,OAAO,UAAU,WAAW,CAAC;AAAA,QACtD;AAEA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,WAAW,MAAM;AACf,YAAM,UAAU,KAAK,cAAc,qCAAqC;AACxE,YAAM,OAAO,KAAK,cAAc,kCAAkC;AAClE,YAAM,SAAS,KAAK,cAAc,0CAA0C;AAE5E,UAAI,QAAS,SAAQ,UAAU,OAAO,QAAQ;AAC9C,UAAI,KAAM,MAAK,UAAU,IAAI,YAAY;AACzC,UAAI,OAAQ,QAAO,aAAa,iBAAiB,MAAM;AAAA,IACzD;AAAA,IAEA,aAAa,MAAM;AACjB,YAAM,UAAU,KAAK,cAAc,qCAAqC;AACxE,YAAM,OAAO,KAAK,cAAc,kCAAkC;AAClE,YAAM,SAAS,KAAK,cAAc,0CAA0C;AAE5E,UAAI,QAAS,SAAQ,UAAU,IAAI,QAAQ;AAC3C,UAAI,KAAM,MAAK,UAAU,OAAO,YAAY;AAC5C,UAAI,OAAQ,QAAO,aAAa,iBAAiB,OAAO;AAAA,IAC1D;AAAA,IAEA,gBAAgB;AACd,WAAK,aAAa,EAAE,QAAQ,CAAC,MAAM,UAAU;AAC3C,YAAI,UAAU,GAAG;AACf,eAAK,WAAW,IAAI;AAAA,QACtB,OAAO;AACL,eAAK,aAAa,IAAI;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,4BAA4B;AAC1B,UAAI,CAAC,KAAK,mBAAoB;AAE9B,YAAM,eAAe,KAAK,aAAa,EAAE;AACzC,WAAK,gBAAgB,UAAU,OAAO,UAAU,gBAAgB,KAAK,YAAY;AAAA,IACnF;AAAA,IAEA,YAAY,MAAM;AAChB,WAAK,iBAAiB,yBAAyB,EAAE,QAAQ,WAAS;AAChE,YAAI,MAAM,QAAQ,iBAAiB,OAAW;AAE9C,YAAI,MAAM,SAAS,cAAc,MAAM,SAAS,SAAS;AACvD,gBAAM,UAAU;AAAA,QAClB,OAAO;AACL,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;;;ACtIA,WAAS,4BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAI,KAAK;AACT,WAAS,2BAA2B,MAAM;AAAE,WAAO,eAAe,OAAO,MAAM;AAAA,EAAM;AAKrF,WAAS,kBAAkB,QAAQ,IAAI,aAAa;AAClD,UAAM,WAAW,CAAC;AAClB,WAAO,QAAQ,WAAS;AAKtB,UAAI,OAAO,UAAU,UAAU;AAC7B,eAAO,SAAS,KAAK,KAAK;AAAA,MAC5B;AACA,aAAO,GAAG,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAKC,IAAG,SAAS;AACvD,YAAI,QAAQ,IAAI;AACd,mBAAS,KAAK,GAAG;AAAA,QACnB;AAGA,YAAIA,KAAI,KAAK,SAAS,GAAG;AACvB,mBAAS,KAAK,WAAW;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,EACT;AAYA,WAASC,aAAY,QAAQ,SAAS;AACpC,UAAM,cAAc;AACpB,UAAM,kBAAkB;AACxB,QAAI,eAAe,CAAC,MAAM;AAC1B,QAAI,WAAW,KAAM,QAAO;AAC5B,eAAW,OAAO,OAAO,KAAK,OAAO,GAAG;AACtC,UAAI,QAAQ,KAAK;AAIf,YAAI,cAAc,QAAQ,GAAG;AAC7B,YAAI,OAAO,gBAAgB,UAAU;AACnC,wBAAc,YAAY,OAAO,OAAO,EAAE,aAAa,eAAe;AAAA,QACxE;AAIA,uBAAe,kBAAkB,cAAc,IAAI,OAAO,OAAO,GAAG,OAAO,GAAG,GAAG,WAAW;AAAA,MAC9F;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,MAAM,sBAAsB,SAAO;AACjC,UAAM,IAAI,MAAM,mBAAmB,GAAG,EAAE;AAAA,EAC1C;AAaA,MAAI,gBAA6B,2CAA2B,cAAc;AAC1E,MAAI,SAAsB,2CAA2B,OAAO;AAC5D,MAAqB,aAArB,MAAgC;AAAA,IAC9B,YAAY,SAAS,OAAO;AAC1B,UAAI;AAAA,QACF,eAAe;AAAA,MACjB,IAAI,UAAU,SAAS,CAAC,IAAI;AAC5B,aAAO,eAAe,MAAM,QAAQ;AAAA,QAClC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,eAAe;AAAA,QACzC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,WAAK,SAAS;AAAA,QACZ,SAAS,CAAC;AAAA,QACV,UAAUC,IAAG;AACX,cAAIA,OAAM,GAAG;AACX,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,UAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,gBAAQ,QAAQ,4BAA4B,MAAM,MAAM,EAAE,MAAM,GAAG,IAAI;AAAA,MACzE,OAAO;AACL,oCAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,OAAO;AAAA,MAC3D;AACA,kCAA4B,MAAM,aAAa,EAAE,aAAa,IAAI;AAAA,IACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,UAAU,KAAK,SAAS;AACtB,aAAO,KAAK,eAAe,KAAK,OAAO,EAAE,KAAK,EAAE;AAAA,IAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,eAAe,KAAK,SAAS;AAC3B,UAAI,SAAS,KAAK,OAAO,QAAQ,GAAG;AACpC,UAAI,UAAU,MAAM;AAClB,oCAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,GAAG;AACnE,iBAAS;AAAA,MACX;AACA,YAAM,iBAAiB,OAAO,WAAW;AACzC,UAAI,gBAAgB;AAClB,YAAI,WAAW,OAAO,QAAQ,gBAAgB,aAAa;AACzD,gBAAM,SAAS,KAAK,OAAO,UAAU,QAAQ,WAAW;AACxD,iBAAOD,aAAY,OAAO,MAAM,GAAG,OAAO;AAAA,QAC5C;AACA,cAAM,IAAI,MAAM,wFAAwF;AAAA,MAC1G;AACA,UAAI,OAAO,WAAW,UAAU;AAC9B,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AACA,aAAOA,aAAY,QAAQ,OAAO;AAAA,IACpC;AAAA,EACF;AACA,WAAS,QAAQ,QAAQ;AACvB,QAAI,EAAE,UAAU,QAAQ,OAAO,UAAU;AACvC;AAAA,IACF;AACA,UAAM,aAAa,KAAK;AACxB,WAAO,OAAO,KAAK,QAAQ;AAAA,MACzB,SAAS;AAAA,QACP,GAAG,WAAW;AAAA,QACd,GAAG,OAAO;AAAA,MACZ;AAAA,MACA,WAAW,OAAO,aAAa,WAAW;AAAA,IAC5C,CAAC;AAAA,EACH;;;ACpJA,iCAAe;;;ACRf,MAAI,cACF;AAWK,MAAI,SAAS,CAAC,OAAO,OAAO;AACjC,QAAIE,OAAK;AACT,QAAIC,KAAI;AACR,WAAOA,MAAK;AACV,MAAAD,QAAM,YAAa,KAAK,OAAO,IAAI,KAAM,CAAC;AAAA,IAC5C;AACA,WAAOA;AAAA,EACT;;;ADTA,wBAAqB;;;AEVrB,WAASE,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAGrF,MAAM,cAAc;AAAA,IAClB,WAAW;AAAA,EACb;AACA,MAAI,aAA0B,gBAAAC,4BAA2B,WAAW;AACpE,MAAI,WAAwB,gBAAAA,4BAA2B,SAAS;AAIhE,MAAM,eAAN,MAAmB;AAAA,IACjB,cAAc;AACZ,aAAO,eAAe,MAAM,UAAU;AAAA,QACpC,OAAO;AAAA,MACT,CAAC;AACD,WAAK,QAAQ,CAAC;AACd,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,UAAU;AAAA,QACV,OAAO,oBAAI,IAAI;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA,IACA,SAAS,OAAO;AACd,YAAM,YAAY;AAAA,QAChB,GAAG,KAAK;AAAA,MACV;AACA,YAAM,YAAY;AAAA,QAChB,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MACL;AACA,WAAK,QAAQ;AACb,MAAAF,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,WAAW,WAAW,KAAK;AAAA,IACnF;AAAA,IACA,UAAU,UAAU;AAClB,MAAAA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,IAAI,QAAQ;AACtE,aAAO,MAAM;AACX,QAAAA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAO,QAAQ;AAAA,MAC3E;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY;AACnB,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,WAAK,IAAI,IAAI,UAAU,IAAI;AAAA,IAC7B;AACA,IAAAA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,QAAQ,cAAY;AAC5E,eAAS,GAAG,IAAI;AAAA,IAClB,CAAC;AAAA,EACH;AACA,eAAa,UAAU,YAAY;AACnC,MAAO,cAAQ;;;ACnDA,WAAR,wBAAyC,cAAc;AAC5D,UAAM,UAAU,aAAa,YAAY,GAAG;AAE5C,QAAI,YAAY,MAAM,YAAY,aAAa,SAAS,GAAG;AACzD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AACA,WAAO;AAAA,MACL,MAAM,aAAa,MAAM,GAAG,OAAO;AAAA,MACnC,WAAW,aAAa,MAAM,UAAU,CAAC;AAAA,IAC3C;AAAA,EACF;;;ACXA,MAAO,oBAAQ;AAAA,IACb,WAAW;AAAA,IACX,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,KAAK;AAAA,EACP;;;ACxDe,WAAR,YAA6B,MAAM;AACxC,QAAI;AACJ,QAAI,KAAK,KAAM,QAAO,KAAK;AAC3B,UAAM,gBAAgB,KAAK,QAAQ,wBAAwB,wBAAwB,KAAK,IAAI,EAAE,cAAc,OAAO,SAAS,sBAAsB,YAAY,IAAI;AAClK,QAAI,iBAAiB,iBAAiB,mBAAW;AAE/C,aAAO,kBAAU,aAAa;AAAA,IAChC;AAEA,WAAO;AAAA,EACT;;;ACXA,WAAS,gBAAgB,WAAW;AAClC,WAAO,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE;AAAA,EAC5C;AACA,WAAS,eAAe,MAAM;AAC5B,QAAI,SAAS;AACb,WAAO,KAAK,QAAQ,eAAe,eAAa;AAC9C,gBAAU,IAAI,gBAAgB,SAAS,CAAC;AACxC,aAAO;AAAA,IACT,CAAC,IAAI;AAAA,EACP;AAMe,WAAR,eAAgC,MAAM,YAAY;AAIvD,QAAIG,OAAK,cAAc;AACvB,QAAI,OAAO,KAAK,SAAS,UAAU;AACjC,MAAAA,QAAM,IAAI,eAAe,KAAK,KAAK,YAAY,CAAC,CAAC;AAAA,IACnD;AACA,QAAI,KAAK,SAAS,QAAW;AAC3B,MAAAA,QAAM,IAAI,KAAK,IAAI;AAAA,IACrB;AACA,QAAI,KAAK,QAAQ,OAAO,KAAK,KAAK,iBAAiB,UAAU;AAC3D,MAAAA,QAAM,IAAI,eAAe,KAAK,KAAK,aAAa,YAAY,CAAC,CAAC;AAAA,IAChE;AACA,QAAI,KAAK,KAAK,SAAS,QAAW;AAChC,MAAAA,QAAM,IAAI,KAAK,KAAK,IAAI;AAAA,IAC1B;AACA,QAAI,KAAK,KAAK,iBAAiB,QAAW;AACxC,MAAAA,QAAM,IAAI,KAAK,KAAK,YAAY;AAAA,IAClC;AACA,WAAOA;AAAA,EACT;AAIA,WAAS,gBAAgB,MAAM;AAC7B,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,OAAQ,QAAO;AAE3C,UAAM,oBAAoB,oBAAI,IAAI,CAAC,OAAO,WAAW,SAAS,YAAY,UAAU,CAAC;AACrF,WAAO,kBAAkB,IAAI,KAAK,OAAO,QAAQ;AAAA,EACnD;AACO,WAAS,cAAc,MAAM,YAAY;AAC9C,QAAI,gBAAgB,IAAI,EAAG,QAAO,KAAK;AACvC,UAAM,WAAW,YAAY,IAAI;AACjC,WAAO,eAAe;AAAA,MACpB,GAAG;AAAA,MACH,MAAM;AAAA,IACR,GAAG,UAAU;AAAA,EACf;;;ACnDe,WAAR,uBAAwC,WAAW;AAExD,QAAI,aAAa,QAAQ,OAAO,cAAc,aAAa;AAEzD,kBAAY,UAAU;AAAA,IACxB;AAEA,QAAI,CAAC,UAAW,QAAO;AACvB,UAAMC,KAAI,mBAAmB,KAAK,SAAS;AAC3C,QAAI,CAACA,GAAG,QAAO;AACf,UAAM,cAAcA,GAAE,CAAC;AACvB,QAAI,CAAC,OAAO,KAAK,IAAI,YAAY,MAAM,GAAG;AAC1C,YAAQ,SAAS,OAAO,EAAE;AAC1B,YAAQ,SAAS,OAAO,EAAE;AAK1B,QAAI,QAAQ,MAAM,UAAU,MAAM,QAAQ,OAAO;AAC/C,aAAO;AAAA,IACT;AAIA,QAAI,QAAQ,MAAM,UAAU,MAAM,SAAS,OAAO;AAChD,aAAO;AAAA,IACT;AAGA,WAAO;AAAA,EACT;;;ACjCe,WAAR,YAA6B,UAAU,gBAAgB;AAC5D,QAAI,eAAe,MAAM;AACvB,aAAO,eAAe;AAAA,IACxB;AACA,QAAI,SAAS,MAAM,GAAG,EAAE,CAAC,MAAM,SAAS;AACtC,aAAO,GAAG,SAAS,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,IAC5D;AACA,WAAO;AAAA,EACT;;;ACLA,WAAS,IAAI,QAAQ;AACnB,WAAO,SAAS,KAAK,IAAI,MAAM,KAAK,OAAO,SAAS;AAAA,EACtD;AAKe,WAAR,eAAgC;AACrC,UAAM,OAAO,oBAAI,KAAK;AACtB,UAAM,QAAQ,IAAI,KAAK,SAAS,CAAC;AACjC,UAAM,UAAU,IAAI,KAAK,WAAW,CAAC;AACrC,UAAM,UAAU,IAAI,KAAK,WAAW,CAAC;AACrC,WAAO,GAAG,KAAK,IAAI,OAAO,IAAI,OAAO;AAAA,EACvC;;;ACXA,MAAM,mBAAmB;AAAA,IACvB,OAAO,MAAM;AAAA,IAAC;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,OAAO,WAAY;AACjB,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC7B;AACA,aAAO,QAAQ,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,IAAI;AAAA,IAC5D;AAAA,EACF;AAIA,MAAM,cAAc;AAAA,IAClB,OAAO,WAAY;AACjB,eAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,aAAK,KAAK,IAAI,UAAU,KAAK;AAAA,MAC/B;AACA,aAAO,QAAQ,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,IAAI;AAAA,IAC5D;AAAA,IACA,MAAM,WAAY;AAChB,eAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,aAAK,KAAK,IAAI,UAAU,KAAK;AAAA,MAC/B;AACA,aAAO,QAAQ,KAAK,WAAW,aAAa,CAAC,KAAK,GAAG,IAAI;AAAA,IAC3D;AAAA,IACA,OAAO,WAAY;AACjB,eAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,aAAK,KAAK,IAAI,UAAU,KAAK;AAAA,MAC/B;AACA,aAAO,QAAQ,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,IAAI;AAAA,IAC5D;AAAA,EACF;;;ACpCA,8BAA0B;AAC1B,0BAAkB;AAClB,MAAMC,kBAAiB;AAAA,IACrB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB,CAAC;AAAA,EACvB;AACA,MAAM,mBAAN,cAA+B,MAAM;AAAA,IACnC,YAAY,SAAS,OAAO;AAC1B,UAAI;AAAA,QACF,eAAe;AAAA,QACf;AAAA,MACF,IAAI,UAAU,SAAS,CAAC,IAAI;AAC5B,YAAM,OAAO;AACb,WAAK,gBAAgB;AACrB,WAAK,eAAe;AACpB,UAAI,QAAQ,KAAM,MAAK,OAAO;AAAA,IAChC;AAAA,EACF;AAEA,MAAM,aAAN,MAAiB;AAAA,IACf,YAAY,SAAS,MAAM;AACzB,WAAK,OAAO;AACZ,WAAK,UAAU,MAAM;AACnB,cAAM,OAAO,QAAQ;AACrB,YAAI,KAAK,aAAa,oBAAoB,QAAQ,CAAC,MAAM,QAAQ,KAAK,aAAa,gBAAgB,GAAG;AACpG,gBAAM,IAAI,UAAU,kDAAkD;AAAA,QACxE;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA;AAAA,IAGA,8BAA8B,eAAe,aAAa;AACxD,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,KAAK,QAAQ,EAAE;AACnB,UAAI,kBAAkB;AACpB,cAAM,gBAAgB,cAAc,OAAO,CAAAC,OAAK,CAACA,GAAE,OAAO;AAC1D,YAAI,cAAc,SAAS,YAAY,SAAS,kBAAkB;AAChE,gBAAM,IAAI,iBAAiB,GAAG,KAAK,KAAK,qBAAqB;AAAA,YAC3D,aAAa;AAAA,UACf,CAAC,CAAC,EAAE;AAAA,QACN;AAAA,MACF;AACA,UAAI,kBAAkB;AACpB,YAAI,iBAAiB,cAAc,OAAO,CAAC,OAAOA,OAAM,QAAQA,GAAE,MAAM,CAAC;AACzE,mBAAW,cAAc,aAAa;AACpC,cAAI,WAAW,QAAQ,MAAM;AAE3B,8BAAkB,WAAW;AAC7B,gBAAI,iBAAiB,kBAAkB;AACrC,oBAAM,IAAI,iBAAiB,KAAK,KAAK,eAAe;AAAA,gBAClD,UAAM,sBAAAC,SAAc,gBAAgB;AAAA,gBACpC,MAAM,WAAW;AAAA,cACnB,CAAC,CAAC;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,mBAAmB,MAAM;AACvB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK,QAAQ,EAAE;AACnB,UAAI,kBAAkB;AACpB,cAAM,oBAAoB,iBAAiB,KAAK,UAAQ;AAEtD,cAAI,KAAK,SAAS,GAAG,GAAG;AACtB,gBAAI,CAAC,KAAK,KAAM,QAAO;AACvB,uBAAO,kBAAAC,SAAM,KAAK,KAAK,QAAQ,SAAS,EAAE,GAAG,IAAI;AAAA,UACnD;AAGA,cAAI,KAAK,CAAC,MAAM,OAAO,KAAK,WAAW;AACrC,mBAAO,KAAK,UAAU,YAAY,MAAM,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,UACpE;AACA,iBAAO;AAAA,QACT,CAAC;AACD,YAAI,CAAC,mBAAmB;AACtB,gBAAM,yBAAyB,iBAAiB,KAAK,IAAI;AACzD,gBAAM,IAAI,iBAAiB,KAAK,KAAK,6BAA6B;AAAA,YAChE,OAAO;AAAA,UACT,CAAC,GAAG;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAGA,UAAI,eAAe,KAAK,QAAQ,QAAQ,KAAK,OAAO,aAAa;AAC/D,cAAM,IAAI,iBAAiB,KAAK,KAAK,eAAe;AAAA,UAClD,UAAM,sBAAAD,SAAc,WAAW;AAAA,UAC/B,MAAM,KAAK;AAAA,QACb,CAAC,GAAG;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAGA,UAAI,eAAe,KAAK,QAAQ,QAAQ,KAAK,OAAO,aAAa;AAC/D,cAAM,IAAI,iBAAiB,KAAK,KAAK,gBAAgB;AAAA,UACnD,UAAM,sBAAAA,SAAc,WAAW;AAAA,QACjC,CAAC,GAAG;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,SAAS,eAAe,aAAa;AACnC,kBAAY,QAAQ,gBAAc;AAChC,aAAK,mBAAmB,UAAU;AAAA,MACpC,CAAC;AACD,WAAK,8BAA8B,eAAe,WAAW;AAAA,IAC/D;AAAA,IACA,yBAAyB,OAAO;AAC9B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,QAAQ,EAAE;AACnB,UAAI,OAAO,KAAK,KAAK,EAAE,SAAS,kBAAkB;AAChD,cAAM,IAAI,iBAAiB,KAAK,KAAK,2BAA2B;AAAA,UAC9D,aAAa;AAAA,QACf,CAAC,CAAC;AAAA,MACJ;AAAA,IACF;AAAA,IACA,6BAA6B,MAAM;AACjC,YAAME,SAAQ,IAAI,iBAAiB,KAAK,KAAK,kCAAkC;AAAA,QAC7E,UAAU,KAAK;AAAA,MACjB,CAAC,CAAC;AACF,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,QAAQ,EAAE;AACnB,YAAM,gBAAgB,CAAC;AACvB,iBAAW,SAAS,oBAAoB;AACtC,YAAI,CAAC,OAAO,OAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI;AAC/D,wBAAc,KAAK,KAAK;AAAA,QAC1B;AAAA,MACF;AACA,aAAO;AAAA,QACL;AAAA,QACA,OAAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;;;ACtJA,MAAO,iBAAQ;AAAA,IACb,SAAS;AAAA,MACP,oBAAoB;AAAA,QAClB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,mBAAmB;AAAA,QACjB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,yBAAyB;AAAA,QACvB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb,0BAA0B;AAAA,MAC1B,gCAAgC;AAAA,MAChC,cAAc;AAAA,MACd,2BAA2B;AAAA,MAC3B,oBAAoB;AAAA,MACpB,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,0BAA0B;AAAA,MAC1B,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,MACtB,qBAAqB;AAAA;AAAA,MAErB,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,yBAAyB;AAAA,MACzB,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS;AAAA,MACT,cAAc;AAAA,MACd,uBAAuB;AAAA,MACvB,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,cAAc;AAAA,MACd,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,oBAAoB;AAAA,MACpB,aAAa;AAAA,QACX,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,8BAA8B;AAAA,IAChC;AAAA,EACF;;;AZ1DA,MAAI;AAAJ,MAAiB;AACjB,WAASC,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAgBrF,MAAME,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAEA,MAAM,wBAAwB,OAAO;AAAA,IACnC,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,gBAAgB;AAAA,EAClB;AAOA,MAAI,WAAwB,gBAAAD,4BAA2B,SAAS;AAChE,MAAI,cAA2B,gBAAAA,4BAA2B,YAAY;AACtE,MAAI,oBAAiC,gBAAAA,4BAA2B,kBAAkB;AAClF,MAAI,WAAwB,gBAAAA,4BAA2B,SAAS;AAChE,MAAI,iBAA8B,gBAAAA,4BAA2B,eAAe;AAC5E,MAAI,aAA0B,gBAAAA,4BAA2B,WAAW;AACpE,MAAI,kBAA+B,gBAAAA,4BAA2B,gBAAgB;AAC9E,MAAI,iBAA8B,gBAAAA,4BAA2B,eAAe;AAC5E,MAAI,iCAA8C,gBAAAA,4BAA2B,+BAA+B;AAC5G,MAAI,2BAAwC,gBAAAA,4BAA2B,yBAAyB;AAChG,MAAI,0BAAuC,gBAAAA,4BAA2B,wBAAwB;AAC9F,MAAI,iBAA8B,gBAAAA,4BAA2B,eAAe;AAC5E,MAAI,sBAAmC,gBAAAA,4BAA2B,oBAAoB;AACtF,MAAI,2BAAwC,gBAAAA,4BAA2B,yBAAyB;AAChG,MAAI,gBAA6B,gBAAAA,4BAA2B,cAAc;AAC1E,MAAI,sBAAmC,gBAAAA,4BAA2B,oBAAoB;AACtF,MAAI,qBAAkC,gBAAAA,4BAA2B,mBAAmB;AACpF,MAAI,gBAA6B,gBAAAA,4BAA2B,cAAc;AAC1E,MAAI,aAA0B,gBAAAA,4BAA2B,WAAW;AACpE,MAAI,gBAA6B,gBAAAA,4BAA2B,cAAc;AAC1E,MAAI,aAA0B,gBAAAA,4BAA2B,WAAW;AACpE,gBAAc,OAAO,IAAI,uBAAuB;AAChD,iBAAe,OAAO,IAAI,yBAAyB;AACnD,MAAME,QAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMT,YAAY,OAAO;AAMjB,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,OAAO;AAAA,MACT,CAAC;AAMD,aAAO,eAAe,MAAM,eAAe;AAAA,QACzC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,OAAO;AAAA,MACT,CAAC;AAOD,aAAO,eAAe,MAAM,eAAe;AAAA,QACzC,OAAO;AAAA,MACT,CAAC;AAKD,aAAO,eAAe,MAAM,eAAe;AAAA,QACzC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,0BAA0B;AAAA,QACpD,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,qBAAqB;AAAA,QAC/C,OAAO;AAAA,MACT,CAAC;AAID,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,yBAAyB;AAAA,QACnD,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,0BAA0B;AAAA,QACpD,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,gCAAgC;AAAA,QAC1D,OAAO;AAAA,MACT,CAAC;AAUD,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,UAAU;AAAA,QACpC,UAAU;AAAA,QACV,OAAO,uBAAO,OAAO,IAAI;AAAA,MAC3B,CAAC;AACD,aAAO,eAAe,MAAM,aAAa;AAAA,QACvC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,mBAAmB;AAAA,QAC7C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,UAAU;AAAA,QACpC,UAAU;AAAA,QACV,WAAO,yBAAAC,SAAG;AAAA,MACZ,CAAC;AACD,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,UAAU;AAAA,QACV,OAAO,oBAAI,IAAI;AAAA,MACjB,CAAC;AACD,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,UAAU;AAAA,QACV,OAAO,oBAAI,IAAI;AAAA,MACjB,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO,oBAAI,IAAI;AAAA,MACjB,CAAC;AAQD,WAAK,wBAAoB,gBAAAC,SAAS,CAAC,MAAM,SAAS;AAChD,cAAM,cAAc,KAAK,QAAQ,QAAQ,OAAO,SAAS,KAAK,EAAE;AAChE,YAAI,QAAQ,QAAQ,CAAC,aAAa;AAChC,eAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACpG;AAAA,QACF;AACA,YAAI,YAAY,SAAS,eAAe,KAAK;AAC3C,eAAK,IAAI,mEAAmE,KAAK,EAAE,EAAE;AACrF;AAAA,QACF;AAGA,cAAM,oBAAoB,OAAO,SAAS,KAAK,UAAU,KAAK,KAAK,aAAa;AAChF,aAAK,aAAa,KAAK,IAAI;AAAA,UACzB,UAAU;AAAA,YACR,GAAG,YAAY;AAAA,YACf,eAAe,KAAK;AAAA,YACpB,YAAY,KAAK;AAAA,YACjB,YAAY,oBAAoB,KAAK,MAAM,KAAK,gBAAgB,KAAK,aAAa,GAAG,IAAI;AAAA,UAC3F;AAAA,QACF,CAAC;AACD,aAAK,uBAAuB;AAAA,MAC9B,GAAG,KAAK;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC;AACD,aAAO,eAAe,MAAM,qBAAqB;AAAA,QAC/C,UAAU;AAAA,QACV,OAAO,KAAK,mBAAmB,KAAK,IAAI;AAAA,MAC1C,CAAC;AAWD,aAAO,eAAe,MAAM,oBAAoB;AAAA,QAC9C,UAAU;AAAA,QACV,OAAO,oBAAI,IAAI;AAAA,MACjB,CAAC;AACD,WAAK,gBAAgB;AACrB,YAAMC,kBAAiB;AAAA,QACrB,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,4BAA4B;AAAA,QAC5B,OAAO;AAAA,QACP,cAAcA;AAAA,QACd,MAAM,CAAC;AAAA,QACP,mBAAmB,CAAC,MAAM,UAAU,CAAC,OAAO,OAAO,OAAO,KAAK,EAAE;AAAA,QACjE,gBAAgB,WAAS;AAAA,QACzB,OAAO,IAAI,YAAa;AAAA,QACxB,QAAQ;AAAA,QACR,aAAa;AAAA,MACf;AAIA,WAAK,OAAO;AAAA,QACV,GAAGA;AAAA,QACH,GAAG;AAAA,QACH,cAAc;AAAA,UACZ,GAAGA,gBAAe;AAAA,UAClB,GAAI,SAAS,MAAM;AAAA,QACrB;AAAA,MACF;AAIA,UAAI,SAAS,MAAM,UAAU,MAAM,OAAO;AACxC,aAAK,IAAI,6KAA6K,SAAS;AAAA,MACjM,WAAW,SAAS,MAAM,OAAO;AAC/B,aAAK,KAAK,SAAS;AAAA,MACrB;AACA,WAAK,IAAI,eAAe,KAAK,YAAY,OAAO,EAAE;AAClD,WAAK,SAAS;AACd,WAAK,QAAQ,KAAK,KAAK;AACvB,WAAK,SAAS;AAAA,QACZ,GAAG,sBAAsB;AAAA,QACzB,SAAS,CAAC;AAAA,QACV,OAAO,CAAC;AAAA,QACR,gBAAgB,CAAC;AAAA,QACjB,cAAc;AAAA,UACZ,gBAAgB,uBAAuB;AAAA,UACvC,wBAAwB;AAAA,UACxB,kBAAkB;AAAA,QACpB;AAAA,QACA,MAAM;AAAA,UACJ,GAAG,KAAK,KAAK;AAAA,QACf;AAAA,QACA,MAAM,CAAC;AAAA,MACT,CAAC;AACD,MAAAP,6BAA4B,MAAM,WAAW,EAAE,WAAW,IAAI,IAAI,WAAW,MAAM,KAAK,MAAM,KAAK,IAAI;AACvG,MAAAA,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,IAAI,KAAK,MAAM,UAAU,CAAC,WAAW,WAAW,UAAU;AAC9H,aAAK,KAAK,gBAAgB,WAAW,WAAW,KAAK;AACrD,aAAK,UAAU,SAAS;AAAA,MAC1B,CAAC;AAGD,UAAI,KAAK,KAAK,SAAS,OAAO,WAAW,aAAa;AACpD,eAAO,KAAK,KAAK,EAAE,IAAI;AAAA,MACzB;AACA,MAAAA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE;AAAA,IAClE;AAAA,IACA,KAAK,OAAO;AACV,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AAC1G,aAAK,OAAO,CAAC,IAAI,UAAU,IAAI;AAAA,MACjC;AACA,MAAAA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,OAAO,GAAG,IAAI;AAAA,IAC3E;AAAA,IACA,GAAG,OAAO,UAAU;AAClB,MAAAA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,QAAQ;AACxE,aAAO;AAAA,IACT;AAAA,IACA,KAAK,OAAO,UAAU;AACpB,MAAAA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,KAAK,OAAO,QAAQ;AAC1E,aAAO;AAAA,IACT;AAAA,IACA,IAAI,OAAO,UAAU;AACnB,MAAAA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,OAAO,QAAQ;AACzE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAU,OAAO;AACf,WAAK,eAAe,YAAU;AAC5B,eAAO,OAAO,KAAK;AAAA,MACrB,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,SAAS,OAAO;AACd,WAAK,MAAM,SAAS,KAAK;AAAA,IAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,WAAW;AACT,aAAO,KAAK,MAAM,SAAS;AAAA,IAC7B;AAAA,IACA,gBAAgB,mBAAmB;AACjC,YAAM,qBAAqB,KAAK,SAAS,EAAE;AAC3C,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG,OAAO,YAAY,OAAO,QAAQ,iBAAiB,EAAE,IAAI,UAAQ;AAClE,gBAAI,CAAC,QAAQ,YAAY,IAAI;AAC7B,mBAAO,CAAC,QAAQ;AAAA,cACd,GAAG,mBAAmB,MAAM;AAAA,cAC5B,GAAG;AAAA,YACL,CAAC;AAAA,UACH,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,QAAQ,OAAO;AAC1B,UAAI,CAAC,KAAK,SAAS,EAAE,MAAM,MAAM,GAAG;AAClC,cAAM,IAAI,MAAM,4BAAuB,MAAM,qCAAqC;AAAA,MACpF;AACA,WAAK,gBAAgB;AAAA,QACnB,CAAC,MAAM,GAAG;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,IACA,WAAW;AACT,YAAM,eAAe,SAAO,KAAK,IAAI,wBAAwB,GAAG,IAAI,OAAO;AAC3E,YAAM,aAAa,IAAI,WAAW,CAAC,KAAK,eAAe,KAAK,KAAK,MAAM,GAAG;AAAA,QACxE;AAAA,MACF,CAAC;AACD,WAAK,OAAO,WAAW,UAAU,KAAK,UAAU;AAChD,WAAK,YAAY,WAAW,eAAe,KAAK,UAAU;AAC1D,WAAK,SAAS,WAAW;AAAA,IAC3B;AAAA,IACA,WAAW,SAAS;AAClB,WAAK,OAAO;AAAA,QACV,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,QACH,cAAc;AAAA,UACZ,GAAG,KAAK,KAAK;AAAA,UACb,GAAI,WAAW,QAAQ;AAAA,QACzB;AAAA,MACF;AACA,UAAI,QAAQ,MAAM;AAChB,aAAK,QAAQ,QAAQ,IAAI;AAAA,MAC3B;AACA,WAAK,SAAS;AACd,UAAI,QAAQ,QAAQ;AAClB,aAAK,eAAe,YAAU;AAC5B,iBAAO,WAAW,OAAO;AAAA,QAC3B,CAAC;AAAA,MACH;AAGA,WAAK,SAAS;AAAA,IAChB;AAAA;AAAA,IAGA,gBAAgB;AACd,YAAM,kBAAkB;AAAA,QACtB,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AACA,YAAM,QAAQ;AAAA,QACZ,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,YAAM,eAAe,CAAC;AACtB,aAAO,KAAK,KAAK,EAAE,QAAQ,YAAU;AACnC,qBAAa,MAAM,IAAI;AAAA,UACrB,GAAG,MAAM,MAAM;AAAA,UACf,UAAU;AAAA,YACR,GAAG,MAAM,MAAM,EAAE;AAAA,YACjB,GAAG;AAAA,UACL;AAAA,QACF;AAAA,MACF,CAAC;AACD,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,QACP,GAAG,sBAAsB;AAAA,MAC3B,CAAC;AACD,WAAK,KAAK,gBAAgB;AAAA,IAC5B;AAAA;AAAA,IAGA,qBAAqB;AACnB,WAAK,SAAS;AAAA,QACZ,GAAG,sBAAsB;AAAA,QACzB,OAAO,CAAC;AAAA,MACV,CAAC;AAAA,IACH;AAAA,IACA,gBAAgBQ,KAAI;AAClB,MAAAR,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,IAAIQ,GAAE;AAAA,IAC1E;AAAA,IACA,mBAAmBA,KAAI;AACrB,aAAOR,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,OAAOQ,GAAE;AAAA,IACpF;AAAA,IACA,iBAAiBA,KAAI;AACnB,MAAAR,6BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,IAAIQ,GAAE;AAAA,IAC5E;AAAA,IACA,oBAAoBA,KAAI;AACtB,aAAOR,6BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,OAAOQ,GAAE;AAAA,IACtF;AAAA,IACA,YAAYA,KAAI;AACd,MAAAR,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,IAAIQ,GAAE;AAAA,IAClE;AAAA,IACA,eAAeA,KAAI;AACjB,aAAOR,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAOQ,GAAE;AAAA,IAC5E;AAAA,IACA,QAAQ,MAAM;AACZ,YAAM,cAAc;AAAA,QAClB,GAAG,KAAK,SAAS,EAAE;AAAA,QACnB,GAAG;AAAA,MACL;AACA,YAAM,eAAe;AAAA,QACnB,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,aAAO,KAAK,YAAY,EAAE,QAAQ,YAAU;AAC1C,qBAAa,MAAM,IAAI;AAAA,UACrB,GAAG,aAAa,MAAM;AAAA,UACtB,MAAM;AAAA,YACJ,GAAG,aAAa,MAAM,EAAE;AAAA,YACxB,GAAG;AAAA,UACL;AAAA,QACF;AAAA,MACF,CAAC;AACD,WAAK,IAAI,kBAAkB;AAC3B,WAAK,IAAI,IAAI;AACb,WAAK,SAAS;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,YAAY,QAAQ,MAAM;AACxB,YAAM,eAAe;AAAA,QACnB,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,UAAI,CAAC,aAAa,MAAM,GAAG;AACzB,aAAK,IAAI,iEAAiE,MAAM;AAChF;AAAA,MACF;AACA,YAAM,UAAU;AAAA,QACd,GAAG,aAAa,MAAM,EAAE;AAAA,QACxB,GAAG;AAAA,MACL;AACA,mBAAa,MAAM,IAAI;AAAA,QACrB,GAAG,aAAa,MAAM;AAAA,QACtB,MAAM;AAAA,MACR;AACA,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAQ,QAAQ;AACd,aAAO,KAAK,SAAS,EAAE,MAAM,MAAM;AAAA,IACrC;AAAA;AAAA;AAAA;AAAA,IAKA,WAAW;AACT,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,aAAO,OAAO,OAAO,KAAK;AAAA,IAC5B;AAAA,IACA,cAAc,KAAK;AACjB,aAAO,IAAI,IAAI,CAAAP,SAAM,KAAK,QAAQA,IAAE,CAAC;AAAA,IACvC;AAAA,IACA,2BAA2B;AACzB,YAAM;AAAA,QACJ,OAAO;AAAA,QACP;AAAA,QACA,OAAAQ;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,YAAM,QAAQ,OAAO,OAAO,WAAW;AACvC,YAAM,kBAAkB,MAAM,OAAO,WAAS;AAC5C,YAAI;AAAA,UACF;AAAA,QACF,IAAI;AACJ,eAAO,CAAC,SAAS,kBAAkB,SAAS;AAAA,MAC9C,CAAC;AACD,YAAM,WAAW,MAAM,OAAO,UAAQ,CAAC,KAAK,SAAS,aAAa;AAClE,YAAM,eAAe,MAAM,OAAO,UAAQ,KAAK,SAAS,iBAAiB,KAAK,SAAS,cAAc,KAAK,SAAS,WAAW;AAC9H,YAAM,qBAAqB,MAAM,OAAO,UAAQ,KAAK,SAAS,aAAa;AAC3E,YAAM,cAAc,MAAM,OAAO,UAAQ,KAAK,QAAQ;AACtD,YAAM,gBAAgB,MAAM,OAAO,UAAQ,KAAK,SAAS,cAAc;AACvE,YAAM,eAAe,MAAM,OAAO,UAAQ,KAAK,KAAK;AACpD,YAAM,2BAA2B,gBAAgB,OAAO,UAAQ,CAAC,KAAK,QAAQ;AAC9E,YAAM,kBAAkB,MAAM,OAAO,UAAQ,KAAK,SAAS,cAAc,KAAK,SAAS,WAAW;AAClG,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,mBAAmB,SAAS;AAAA,QAC7C,eAAe,kBAAkB,OAAO,cAAc,WAAW,MAAM,UAAU,gBAAgB,WAAW;AAAA,QAC5G,cAAc,CAAC,CAACA,UAAS,aAAa,WAAW,MAAM;AAAA,QACvD,aAAa,gBAAgB,WAAW,KAAK,YAAY,WAAW,gBAAgB;AAAA,QACpF,oBAAoB,gBAAgB,SAAS;AAAA,QAC7C,aAAa,MAAM,KAAK,UAAQ,KAAK,OAAO;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,qBAAqB,MAAM,OAAO;AAChC,UAAI,UAAU,QAAQ;AACpB,gBAAQ,KAAK,SAAS;AAAA,MACxB;AACA,UAAI;AACF,QAAAT,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,SAAS,OAAO,CAAC,IAAI,CAAC;AAAA,MACpF,SAAS,KAAK;AACZ,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IACA,yBAAyB,QAAQ;AAC/B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,UAAI,MAAM,MAAM,KAAK,CAAC,MAAM,MAAM,EAAE,SAAS;AAC3C,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,QAAQ,MAAM;AACZ,MAAAA,6BAA4B,MAAM,uBAAuB,EAAE,uBAAuB,EAAE,IAAI;AACxF,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAIA,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE,CAAC,IAAI,CAAC;AAChG,YAAM,oBAAoB,OAAO,OAAO,CAAAS,WAASA,OAAM,aAAa;AACpE,MAAAT,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,iBAAiB;AACnF,UAAI,OAAO,SAAS,EAAG,OAAM,OAAO,CAAC;AACrC,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AACD,YAAM,CAAC,mBAAmB,IAAI;AAC9B,WAAK,KAAK,cAAc,mBAAmB;AAC3C,WAAK,KAAK,eAAe,eAAe;AACxC,WAAK,IAAI,eAAe,oBAAoB,IAAI,KAAK,oBAAoB,EAAE,gBAAgB,oBAAoB,IAAI,EAAE;AACrH,MAAAA,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,EAAE;AAC5E,aAAO,oBAAoB;AAAA,IAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,SAAS,iBAAiB;AACxB,MAAAA,6BAA4B,MAAM,uBAAuB,EAAE,uBAAuB,EAAE;AACpF,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAIA,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE,eAAe;AACzG,YAAM,oBAAoB,OAAO,OAAO,CAAAS,WAASA,OAAM,aAAa;AACpE,MAAAT,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,iBAAiB;AACnF,YAAM,uBAAuB,OAAO,OAAO,CAAAS,WAAS,CAACA,OAAM,aAAa;AACxE,UAAI,qBAAqB,SAAS,GAAG;AACnC,YAAI,UAAU;AACd,6BAAqB,QAAQ,cAAY;AACvC,qBAAW;AAAA,KAAQ,SAAS,OAAO;AAAA,QACrC,CAAC;AACD,aAAK,KAAK;AAAA,UACR,SAAS,KAAK,KAAK,sBAAsB;AAAA,YACvC,aAAa,qBAAqB;AAAA,UACpC,CAAC;AAAA,UACD,SAAS;AAAA,QACX,GAAG,SAAS,KAAK,KAAK,WAAW;AACjC,YAAI,OAAO,mBAAmB,YAAY;AACxC,gBAAM,IAAI,eAAe,sBAAsB,OAAO;AAAA,QACxD,OAAO;AACL,gBAAM,MAAM,IAAI,MAAM,OAAO;AAC7B,cAAI,SAAS;AACb,gBAAM;AAAA,QACR;AAAA,MACF;AAIA,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AACD,sBAAgB,QAAQ,UAAQ;AAC9B,aAAK,KAAK,cAAc,IAAI;AAAA,MAC9B,CAAC;AACD,WAAK,KAAK,eAAe,eAAe;AACxC,UAAI,gBAAgB,SAAS,GAAG;AAC9B,aAAK,IAAI,kBAAkB,gBAAgB,MAAM,QAAQ;AAAA,MAC3D,OAAO;AACL,eAAO,OAAO,eAAe,EAAE,QAAQ,UAAQ;AAC7C,eAAK,IAAI,eAAe,KAAK,IAAI;AAAA,OAAU,KAAK,EAAE;AAAA,SAAY,KAAK,IAAI,EAAE;AAAA,QAC3E,CAAC;AAAA,MACH;AACA,UAAI,gBAAgB,SAAS,GAAG;AAC9B,QAAAT,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,EAAE;AAAA,MAC9E;AAAA,IACF;AAAA,IACA,YAAY,SAAS,QAAQ;AAC3B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,YAAM,eAAe;AAAA,QACnB,GAAG;AAAA,MACL;AACA,YAAM,iBAAiB;AAAA,QACrB,GAAG;AAAA,MACL;AACA,YAAM,eAAe,uBAAO,OAAO,IAAI;AACvC,cAAQ,QAAQ,YAAU;AACxB,YAAI,MAAM,MAAM,GAAG;AACjB,uBAAa,MAAM,IAAI,MAAM,MAAM;AACnC,iBAAO,aAAa,MAAM;AAAA,QAC5B;AAAA,MACF,CAAC;AAGD,eAAS,iBAAiB,cAAc;AACtC,eAAO,aAAa,YAAY,MAAM;AAAA,MACxC;AACA,aAAO,KAAK,cAAc,EAAE,QAAQ,cAAY;AAC9C,cAAM,aAAa,eAAe,QAAQ,EAAE,QAAQ,OAAO,gBAAgB;AAG3E,YAAI,WAAW,WAAW,GAAG;AAC3B,iBAAO,eAAe,QAAQ;AAC9B;AAAA,QACF;AACA,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,SAAS;AAClB,YAAI,WAAW,WAAW,eAAe,QAAQ,EAAE,QAAQ,UAAU,CAAC,aAAa,wBAAwB;AACzG,gBAAM,IAAI,MAAM,oCAAoC;AAAA,QACtD;AACA,uBAAe,QAAQ,IAAI;AAAA,UACzB,GAAG,eAAe,QAAQ;AAAA,UAC1B,SAAS;AAAA,QACX;AAAA,MACF,CAAC;AACD,YAAM,cAAc;AAAA,QAClB,gBAAgB;AAAA,QAChB,OAAO;AAAA,MACT;AAIA,UAAI,OAAO,KAAK,YAAY,EAAE,WAAW,GAAG;AAC1C,oBAAY,iBAAiB;AAC7B,oBAAY,QAAQ;AACpB,oBAAY,iBAAiB;AAAA,MAC/B;AACA,WAAK,SAAS,WAAW;AACzB,WAAK,uBAAuB;AAC5B,YAAM,iBAAiB,OAAO,KAAK,YAAY;AAC/C,qBAAe,QAAQ,YAAU;AAC/B,aAAK,KAAK,gBAAgB,aAAa,MAAM,GAAG,MAAM;AAAA,MACxD,CAAC;AACD,UAAI,eAAe,SAAS,GAAG;AAC7B,aAAK,IAAI,WAAW,eAAe,MAAM,QAAQ;AAAA,MACnD,OAAO;AACL,aAAK,IAAI,kBAAkB,eAAe,KAAK,IAAI,CAAC,EAAE;AAAA,MACxD;AAAA,IACF;AAAA,IACA,WAAW,QAAQ,QAAQ;AACzB,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AACA,WAAK,YAAY,CAAC,MAAM,GAAG,MAAM;AAAA,IACnC;AAAA,IACA,YAAY,QAAQ;AAClB,UAAI,CAAC,KAAK,SAAS,EAAE,aAAa,oBAAoB,KAAK,QAAQ,MAAM,EAAE,gBAAgB;AACzF,eAAO;AAAA,MACT;AACA,YAAM,YAAY,KAAK,QAAQ,MAAM,EAAE,YAAY;AACnD,YAAM,WAAW,CAAC;AAClB,WAAK,aAAa,QAAQ;AAAA,QACxB;AAAA,MACF,CAAC;AACD,WAAK,KAAK,gBAAgB,QAAQ,QAAQ;AAC1C,aAAO;AAAA,IACT;AAAA,IACA,WAAW;AACT,YAAM,eAAe;AAAA,QACnB,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,YAAM,yBAAyB,OAAO,KAAK,YAAY,EAAE,OAAO,UAAQ;AACtE,eAAO,CAAC,aAAa,IAAI,EAAE,SAAS,kBAAkB,aAAa,IAAI,EAAE,SAAS;AAAA,MACpF,CAAC;AACD,6BAAuB,QAAQ,UAAQ;AACrC,cAAM,cAAc;AAAA,UAClB,GAAG,aAAa,IAAI;AAAA,UACpB,UAAU;AAAA,QACZ;AACA,qBAAa,IAAI,IAAI;AAAA,MACvB,CAAC;AACD,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AACD,WAAK,KAAK,WAAW;AAAA,IACvB;AAAA,IACA,YAAY;AACV,YAAM,eAAe;AAAA,QACnB,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,YAAM,yBAAyB,OAAO,KAAK,YAAY,EAAE,OAAO,UAAQ;AACtE,eAAO,CAAC,aAAa,IAAI,EAAE,SAAS,kBAAkB,aAAa,IAAI,EAAE,SAAS;AAAA,MACpF,CAAC;AACD,6BAAuB,QAAQ,UAAQ;AACrC,cAAM,cAAc;AAAA,UAClB,GAAG,aAAa,IAAI;AAAA,UACpB,UAAU;AAAA,UACV,OAAO;AAAA,QACT;AACA,qBAAa,IAAI,IAAI;AAAA,MACvB,CAAC;AACD,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AACD,WAAK,KAAK,YAAY;AAAA,IACxB;AAAA,IACA,WAAW;AACT,YAAM,eAAe;AAAA,QACnB,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,YAAM,eAAe,OAAO,KAAK,YAAY,EAAE,OAAO,UAAQ;AAC5D,eAAO,aAAa,IAAI,EAAE;AAAA,MAC5B,CAAC;AACD,mBAAa,QAAQ,UAAQ;AAC3B,cAAM,cAAc;AAAA,UAClB,GAAG,aAAa,IAAI;AAAA,UACpB,UAAU;AAAA,UACV,OAAO;AAAA,QACT;AACA,qBAAa,IAAI,IAAI;AAAA,MACvB,CAAC;AACD,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,MACT,CAAC;AACD,WAAK,KAAK,aAAa,YAAY;AACnC,UAAI,aAAa,WAAW,GAAG;AAC7B,eAAO,QAAQ,QAAQ;AAAA,UACrB,YAAY,CAAC;AAAA,UACb,QAAQ,CAAC;AAAA,QACX,CAAC;AAAA,MACH;AACA,YAAM,WAAWA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,cAAc;AAAA,QAC7F,qBAAqB;AAAA;AAAA,MACvB,CAAC;AAED,aAAOA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,QAAQ;AAAA,IAC3E;AAAA,IACA,UAAU,OAAO;AACf,UAAI;AAAA,QACF,SAAS;AAAA,MACX,IAAI,UAAU,SAAS,CAAC,IAAI;AAC5B,WAAK,KAAK,cAAc;AAAA,QACtB;AAAA,MACF,CAAC;AAGD,UAAI,WAAW,QAAQ;AACrB,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,SAAS;AAClB,cAAM,UAAU,OAAO,KAAK,KAAK;AACjC,YAAI,QAAQ,QAAQ;AAClB,eAAK,YAAY,SAAS,YAAY;AAAA,QACxC;AACA,aAAK,SAAS,sBAAsB,CAAC;AAAA,MAEvC;AAAA,IACF;AAAA,IAEA,YAAY,QAAQ;AAClB,WAAK,aAAa,QAAQ;AAAA,QACxB,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC;AACD,WAAK,KAAK,gBAAgB,MAAM;AAChC,YAAM,WAAWA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,CAAC,MAAM,GAAG;AAAA,QACzF,qBAAqB;AAAA;AAAA,MACvB,CAAC;AAED,aAAOA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,QAAQ;AAAA,IAC3E;AAAA,IACA,SAAS;AACP,WAAK,eAAe,YAAU;AAC5B,YAAI,OAAO,YAAY,OAAO,SAAS,QAAQ;AAC7C,iBAAO,SAAS,OAAO;AAAA,QACzB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,yBAAyB;AAGvB,YAAM,QAAQ,KAAK,SAAS;AAC5B,YAAM,aAAa,MAAM,OAAO,UAAQ;AACtC,eAAO,KAAK,SAAS,iBAAiB,KAAK,SAAS,cAAc,KAAK,SAAS;AAAA,MAClF,CAAC;AACD,UAAI,WAAW,WAAW,GAAG;AAC3B,aAAK,KAAK,YAAY,CAAC;AACvB,aAAK,SAAS;AAAA,UACZ,eAAe;AAAA,QACjB,CAAC;AACD;AAAA,MACF;AACA,YAAM,aAAa,WAAW,OAAO,UAAQ,KAAK,SAAS,cAAc,IAAI;AAC7E,YAAM,eAAe,WAAW,OAAO,UAAQ,KAAK,SAAS,cAAc,IAAI;AAC/E,UAAI,WAAW,WAAW,GAAG;AAC3B,cAAM,cAAc,WAAW,SAAS;AACxC,cAAM,kBAAkB,aAAa,OAAO,CAAC,KAAK,SAAS;AACzD,iBAAO,MAAM,KAAK,SAAS;AAAA,QAC7B,GAAG,CAAC;AACJ,cAAMU,iBAAgB,KAAK,MAAM,kBAAkB,cAAc,GAAG;AACpE,aAAK,SAAS;AAAA,UACZ,eAAAA;AAAA,QACF,CAAC;AACD;AAAA,MACF;AACA,UAAI,YAAY,WAAW,OAAO,CAAC,KAAK,SAAS;AAC/C,eAAO,MAAM,KAAK,SAAS;AAAA,MAC7B,GAAG,CAAC;AACJ,YAAM,cAAc,YAAY,WAAW;AAC3C,mBAAa,cAAc,aAAa;AACxC,UAAI,eAAe;AACnB,iBAAW,QAAQ,UAAQ;AACzB,wBAAgB,KAAK,SAAS;AAAA,MAChC,CAAC;AACD,mBAAa,QAAQ,UAAQ;AAC3B,wBAAgB,eAAe,KAAK,SAAS,cAAc,KAAK;AAAA,MAClE,CAAC;AACD,UAAI,gBAAgB,cAAc,IAAI,IAAI,KAAK,MAAM,eAAe,YAAY,GAAG;AAInF,UAAI,gBAAgB,KAAK;AACvB,wBAAgB;AAAA,MAClB;AACA,WAAK,SAAS;AAAA,QACZ;AAAA,MACF,CAAC;AACD,WAAK,KAAK,YAAY,aAAa;AAAA,IACrC;AAAA,IACA,qBAAqB;AACnB,YAAM,SAAS,OAAO,OAAO,UAAU,WAAW,cAAc,OAAO,UAAU,SAAS;AAC1F,UAAI,CAAC,QAAQ;AACX,aAAK,KAAK,YAAY;AACtB,aAAK,KAAK,KAAK,KAAK,sBAAsB,GAAG,SAAS,CAAC;AACvD,aAAK,aAAa;AAAA,MACpB,OAAO;AACL,aAAK,KAAK,WAAW;AACrB,YAAI,KAAK,YAAY;AACnB,eAAK,KAAK,aAAa;AACvB,eAAK,KAAK,KAAK,KAAK,qBAAqB,GAAG,WAAW,GAAI;AAC3D,eAAK,aAAa;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,IACA,QAAQ;AACN,aAAO,KAAK,KAAK;AAAA,IACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,IAAI,QAAQ,MAAM;AAChB,UAAI,OAAO,WAAW,YAAY;AAChC,cAAM,MAAM,oCAAoC,WAAW,OAAO,SAAS,OAAO,MAAM;AACxF,cAAM,IAAI,UAAU,GAAG;AAAA,MACzB;AAGA,YAAM,SAAS,IAAI,OAAO,MAAM,IAAI;AACpC,YAAM,WAAW,OAAO;AACxB,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C;AACA,UAAI,CAAC,OAAO,MAAM;AAChB,cAAM,IAAI,MAAM,8BAA8B;AAAA,MAChD;AACA,YAAM,sBAAsB,KAAK,UAAU,QAAQ;AACnD,UAAI,qBAAqB;AACvB,cAAM,MAAM,iCAAiC,oBAAoB,EAAE,qBAA0B,QAAQ;AAAA;AACrG,cAAM,IAAI,MAAM,GAAG;AAAA,MACrB;AACA,UAAI,OAAO,SAAS;AAClB,aAAK,IAAI,SAAS,QAAQ,KAAK,OAAO,OAAO,EAAE;AAAA,MACjD;AACA,UAAI,OAAO,QAAQV,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,GAAG;AACxE,QAAAA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,KAAK,MAAM;AAAA,MAChF,OAAO;AACL,QAAAA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM;AAAA,MAC9E;AACA,aAAO,QAAQ;AACf,WAAK,KAAK,gBAAgB,MAAM;AAChC,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,UAAUC,MAAI;AACZ,iBAAW,WAAW,OAAO,OAAOD,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,CAAC,GAAG;AAC1F,cAAM,cAAc,QAAQ,KAAK,YAAU,OAAO,OAAOC,IAAE;AAC3D,YAAI,eAAe,KAAM,QAAO;AAAA,MAClC;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,WAAW,EAAE,MAAM;AAClB,aAAOD,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI;AAAA,IACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,eAAe,QAAQ;AACrB,aAAO,OAAOA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,MAAM;AAAA,IAC7F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,aAAa,UAAU;AACrB,WAAK,IAAI,mBAAmB,SAAS,EAAE,EAAE;AACzC,WAAK,KAAK,iBAAiB,QAAQ;AACnC,UAAI,SAAS,WAAW;AACtB,iBAAS,UAAU;AAAA,MACrB;AACA,YAAM,OAAOA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,SAAS,IAAI;AAIhF,YAAM,QAAQ,KAAK,UAAU,UAAQ,KAAK,OAAO,SAAS,EAAE;AAC5D,UAAI,UAAU,IAAI;AAChB,aAAK,OAAO,OAAO,CAAC;AAAA,MACtB;AACA,YAAM,QAAQ,KAAK,SAAS;AAC5B,YAAM,eAAe;AAAA,QACnB,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,CAAC,SAAS,EAAE,GAAG;AAAA,QACjB;AAAA,MACF;AACA,WAAK,SAAS,YAAY;AAAA,IAC5B;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQ;AACZ,UAAI;AAAA,QACF;AAAA,MACF,IAAI,WAAW,SAAS,CAAC,IAAI;AAC7B,WAAK,IAAI,yBAAyB,KAAK,KAAK,EAAE,+CAA+C;AAC7F,WAAK,UAAU;AAAA,QACb;AAAA,MACF,CAAC;AACD,MAAAA,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,EAAE;AACxE,WAAK,eAAe,YAAU;AAC5B,aAAK,aAAa,MAAM;AAAA,MAC1B,CAAC;AACD,UAAI,OAAO,WAAW,eAAe,OAAO,qBAAqB;AAC/D,eAAO,oBAAoB,UAAUA,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,CAAC;AAChH,eAAO,oBAAoB,WAAWA,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,CAAC;AAAA,MACnH;AAAA,IACF;AAAA,IACA,WAAW;AACT,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,WAAK,SAAS;AAAA,QACZ,MAAM,KAAK,MAAM,CAAC;AAAA,MACpB,CAAC;AACD,WAAK,KAAK,aAAa;AAAA,IACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,KAAK,SAAS,MAAMW,WAAU;AAC5B,UAAI,SAAS,QAAQ;AACnB,eAAO;AAAA,MACT;AACA,UAAIA,cAAa,QAAQ;AACvB,QAAAA,YAAW;AAAA,MACb;AACA,YAAM,mBAAmB,OAAO,YAAY;AAC5C,WAAK,SAAS;AAAA,QACZ,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,MAAM;AAAA,UAC9B;AAAA,UACA,SAAS,mBAAmB,QAAQ,UAAU;AAAA,UAC9C,SAAS,mBAAmB,QAAQ,UAAU;AAAA,QAChD,CAAC;AAAA,MACH,CAAC;AACD,iBAAW,MAAM,KAAK,SAAS,GAAGA,SAAQ;AAC1C,WAAK,KAAK,cAAc;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,IAAI,SAAS,MAAM;AACjB,YAAM;AAAA,QACJ,QAAAC;AAAA,MACF,IAAI,KAAK;AACT,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,UAAAA,QAAO,MAAM,OAAO;AACpB;AAAA,QACF,KAAK;AACH,UAAAA,QAAO,KAAK,OAAO;AACnB;AAAA,QACF;AACE,UAAAA,QAAO,MAAM,OAAO;AACpB;AAAA,MACJ;AAAA,IACF;AAAA,IACA,sBAAsBX,MAAI,QAAQ;AAChC,MAAAD,6BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,EAAE,IAAIC,MAAI,MAAM;AAAA,IAC1F;AAAA;AAAA,IAGA,wBAAwB,MAAM;AAC5B,UAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,oDAAoD,KAAK,EAAE,EAAE;AAC/F,YAAM,gBAAgBD,6BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,KAAK,OAAO,eAAe;AAC/H,UAAI,iBAAiB,KAAM,OAAM,IAAI,MAAM,oBAAoB,KAAK,OAAO,eAAe,8BAA8B,KAAK,EAAE,GAAG;AAClI,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ,UAAU;AAChB,WAAK,IAAI,uCAAuC,QAAQ,GAAG;AAC3D,UAAI,CAAC,KAAK,SAAS,EAAE,eAAe,QAAQ,GAAG;AAC7C,QAAAA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,QAAQ;AACxE,eAAO,QAAQ,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,MACvD;AACA,aAAOA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,QAAQ;AAAA,IAC3E;AAAA,IACA,CAAC,YAAY,IAAI;AACf,aAAOA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,GAAG,SAAS;AAAA,IACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,cAAc,UAAU,MAAM;AAC5B,UAAI,CAACA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,QAAQ,GAAG;AACxE,aAAK,IAAI,2DAA2D,QAAQ,EAAE;AAC9E;AAAA,MACF;AACA,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,YAAM,gBAAgB;AAAA,QACpB,GAAG,eAAe,QAAQ;AAAA,QAC1B,QAAQ;AAAA,UACN,GAAG,eAAe,QAAQ,EAAE;AAAA,UAC5B,GAAG;AAAA,QACL;AAAA,MACF;AACA,WAAK,SAAS;AAAA,QACZ,gBAAgB;AAAA,UACd,GAAG;AAAA,UACH,CAAC,QAAQ,GAAG;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,SAAS;AACP,UAAI;AACJ,UAAI,GAAG,wBAAwBA,6BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,aAAa,QAAQ,sBAAsB,SAAS;AACvI,aAAK,IAAI,qCAAqC,SAAS;AAAA,MACzD;AACA,UAAI;AAAA,QACF;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,YAAM,uBAAuB,KAAK,KAAK,eAAe,KAAK;AAC3D,UAAI,yBAAyB,OAAO;AAClC,eAAO,QAAQ,OAAO,IAAI,MAAM,+DAA+D,CAAC;AAAA,MAClG;AACA,UAAI,wBAAwB,OAAO,yBAAyB,UAAU;AACpE,gBAAQ;AAGR,aAAK,SAAS;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,QAAQ,QAAQ,EAAE,KAAK,MAAMA,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,yBAAyB,KAAK,CAAC,EAAE,MAAM,SAAO;AAC5I,QAAAA,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC;AACvE,cAAM;AAAA,MACR,CAAC,EAAE,KAAK,MAAM;AACZ,YAAI,CAACA,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE,KAAK,GAAG;AACjG,gBAAM,IAAI,iBAAiB,KAAK,KAAK,0BAA0B,CAAC;AAAA,QAClE;AAAA,MACF,CAAC,EAAE,MAAM,SAAO;AAId,cAAM;AAAA,MACR,CAAC,EAAE,KAAK,MAAM;AACZ,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,SAAS;AAElB,cAAM,0BAA0B,OAAO,OAAO,cAAc,EAAE,QAAQ,UAAQ,KAAK,OAAO;AAC1F,cAAM,iBAAiB,CAAC;AACxB,eAAO,KAAK,KAAK,EAAE,QAAQ,YAAU;AACnC,gBAAM,OAAO,KAAK,QAAQ,MAAM;AAEhC,cAAI,CAAC,KAAK,SAAS,iBAAiB,wBAAwB,QAAQ,MAAM,MAAM,IAAI;AAClF,2BAAe,KAAK,KAAK,EAAE;AAAA,UAC7B;AAAA,QACF,CAAC;AACD,cAAM,WAAWA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,cAAc;AAC/F,eAAOA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,QAAQ;AAAA,MAC3E,CAAC,EAAE,MAAM,SAAO;AACd,aAAK,KAAK,SAAS,GAAG;AACtB,aAAK,IAAI,KAAK,OAAO;AACrB,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,EACF;AACA,WAAS,gBAAgB,QAAQ;AAC/B,eAAWS,UAAS,QAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAIA;AACJ,UAAI,eAAe;AACjB,aAAK,KAAK,sBAAsB,MAAMA,MAAK;AAAA,MAC7C,OAAO;AACL,aAAK,KAAK,SAASA,MAAK;AAAA,MAC1B;AACA,WAAK,IAAIA,QAAO,SAAS;AAAA,IAC3B;AACA,UAAM,mBAAmB,OAAO,OAAO,CAAAA,WAASA,OAAM,YAAY;AAGlE,UAAM,eAAe;AACrB,UAAM,cAAc,iBAAiB,MAAM,GAAG,YAAY;AAC1D,UAAM,mBAAmB,iBAAiB,MAAM,YAAY;AAC5D,gBAAY,QAAQ,WAAS;AAC3B,UAAI;AAAA,QACF;AAAA,QACA,UAAU;AAAA,MACZ,IAAI;AACJ,WAAK,KAAK;AAAA,QACR;AAAA,QACA;AAAA,MACF,GAAG,SAAS,KAAK,KAAK,WAAW;AAAA,IACnC,CAAC;AACD,QAAI,iBAAiB,SAAS,GAAG;AAC/B,WAAK,KAAK;AAAA,QACR,SAAS,KAAK,KAAK,gCAAgC;AAAA,UACjD,OAAO,iBAAiB;AAAA,QAC1B,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AACA,WAAS,gCAAgC,MAAM;AAC7C,UAAM;AAAA,MACJ;AAAA,MACA,OAAAA;AAAA,IACF,IAAIT,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,6BAA6B,IAAI;AACjG,QAAI,cAAc,SAAS,GAAG;AAC5B,WAAK,aAAa,KAAK,IAAI;AAAA,QACzB,2BAA2B;AAAA,MAC7B,CAAC;AACD,WAAK,IAAIS,OAAM,OAAO;AACtB,WAAK,KAAK,sBAAsB,MAAMA,MAAK;AAC3C,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,0BAA0B,OAAO;AACxC,QAAI,UAAU;AACd,eAAW,QAAQ,OAAO,OAAO,KAAK,GAAG;AACvC,UAAI,CAACT,6BAA4B,MAAM,8BAA8B,EAAE,8BAA8B,EAAE,IAAI,GAAG;AAC5G,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,yBAAyB,MAAM;AACtC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,KAAK,SAAS;AAClB,QAAI,mBAAmB,OAAO;AAC5B,YAAMS,SAAQ,IAAI,iBAAiB,KAAK,KAAK,oBAAoB,GAAG;AAAA,QAClE;AAAA,MACF,CAAC;AACD,MAAAT,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,CAACS,MAAK,CAAC;AACzE,YAAMA;AAAA,IACR;AAAA,EACF;AACA,WAAS,gBAAgB,sBAAsB;AAI7C,UAAM,iBAAiB,gCAAgC,OAAO;AAAA,MAC5D,MAAM,qBAAqB;AAAA,MAC3B,MAAM,qBAAqB;AAAA,MAC3B,MAAM,qBAAqB;AAAA,MAC3B,MAAM;AAAA,IACR,IAAI;AACJ,UAAM,WAAW,YAAY,cAAc;AAC3C,UAAM,WAAW,YAAY,UAAU,cAAc;AACrD,UAAM,gBAAgB,wBAAwB,QAAQ,EAAE;AACxD,UAAM,WAAW,QAAQ,eAAe,QAAQ;AAChD,UAAMR,OAAK,cAAc,cAAc;AACvC,UAAM,OAAO,eAAe,QAAQ,CAAC;AACrC,SAAK,OAAO;AACZ,SAAK,OAAO;AAGZ,UAAM,OAAO,OAAO,SAAS,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,OAAO;AACpF,WAAO;AAAA,MACL,QAAQ,eAAe,UAAU;AAAA,MACjC,IAAAA;AAAA,MACA,MAAM;AAAA,MACN,WAAW,iBAAiB;AAAA,MAC5B,MAAM;AAAA,QACJ,GAAG,KAAK,SAAS,EAAE;AAAA,QACnB,GAAG;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,MAAM,eAAe;AAAA,MACrB,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,eAAe,UAAU;AAAA,MACjC,SAAS,eAAe;AAAA,IAC1B;AAAA,EACF;AACA,WAAS,uBAAuB;AAC9B,QAAI,KAAK,KAAK,eAAe,CAAC,KAAK,sBAAsB;AACvD,WAAK,uBAAuB,WAAW,MAAM;AAC3C,aAAK,uBAAuB;AAC5B,aAAK,OAAO,EAAE,MAAM,SAAO;AACzB,cAAI,CAAC,IAAI,eAAe;AACtB,iBAAK,IAAI,IAAI,SAAS,IAAI,WAAW,GAAG;AAAA,UAC1C;AAAA,QACF,CAAC;AAAA,MACH,GAAG,CAAC;AAAA,IACN;AAAA,EACF;AACA,WAAS,0BAA0B,YAAY;AAC7C,UAAM;AAAA,MACJ,OAAO;AAAA,IACT,IAAI,KAAK,SAAS;AAGlB,UAAM,iBAAiB;AAAA,MACrB,GAAG;AAAA,IACL;AACA,UAAM,kBAAkB,CAAC;AACzB,UAAM,SAAS,CAAC;AAChB,eAAW,aAAa,YAAY;AAClC,UAAI;AACF,YAAI;AACJ,YAAI,UAAUD,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,SAAS;AAMzF,cAAM,WAAW,wBAAwB,cAAc,QAAQ,EAAE,MAAM,OAAO,SAAS,sBAAsB;AAC7G,YAAI,SAAS;AACX,gBAAM;AAAA,YACJ,SAASa;AAAA,YACT,GAAG;AAAA,UACL,IAAI,cAAc,QAAQ,EAAE;AAC5B,oBAAU;AAAA,YACR,GAAG;AAAA,YACH,MAAM,UAAU;AAAA,UAClB;AACA,eAAK,IAAI,iDAAiD,QAAQ,IAAI,KAAK,QAAQ,EAAE,EAAE;AAAA,QACzF;AACA,cAAM,0BAA0B,KAAK,KAAK,kBAAkB,SAAS,cAAc;AACnF,YAAI,CAAC,2BAA2B,KAAK,yBAAyB,QAAQ,EAAE,GAAG;AACzE,gBAAM,IAAI,iBAAiB,KAAK,KAAK,gBAAgB;AAAA,YACnD,UAAU,QAAQ;AAAA,UACpB,CAAC,GAAG;AAAA,YACF,MAAM;AAAA,UACR,CAAC;AAAA,QACH;AAGA,YAAI,4BAA4B,SAAS,CAAC,SAAS;AAEjD,gBAAM,IAAI,iBAAiB,iEAAiE;AAAA,YAC1F,cAAc;AAAA,YACd,MAAM;AAAA,UACR,CAAC;AAAA,QACH,WAAW,OAAO,4BAA4B,YAAY,4BAA4B,MAAM;AAC1F,oBAAU;AAAA,QACZ;AACA,QAAAb,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,mBAAmB,OAAO;AAGtF,uBAAe,QAAQ,EAAE,IAAI;AAC7B,wBAAgB,KAAK,OAAO;AAAA,MAC9B,SAAS,KAAK;AACZ,eAAO,KAAK,GAAG;AAAA,MACjB;AAAA,IACF;AACA,QAAI;AAGF,MAAAA,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,8BAA8B,OAAO,OAAO,aAAa,GAAG,eAAe;AAAA,IACzI,SAAS,KAAK;AACZ,aAAO,KAAK,GAAG;AAGf,aAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,iBAAiB,CAAC;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,WAAS,iBAAiB;AAMxB,UAAM,eAAe,CAACS,QAAO,MAAM,aAAa;AAC9C,UAAI,WAAWA,OAAM,WAAW;AAChC,UAAIA,OAAM,SAAS;AACjB,oBAAY,IAAIA,OAAM,OAAO;AAAA,MAC/B;AACA,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AACD,UAAI,QAAQ,QAAQ,KAAK,MAAM,KAAK,SAAS,EAAE,OAAO;AACpD,aAAK,aAAa,KAAK,IAAI;AAAA,UACzB,OAAO;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AACA,SAAK,GAAG,SAAS,YAAY;AAC7B,SAAK,GAAG,gBAAgB,CAAC,MAAMA,QAAO,aAAa;AACjD,mBAAaA,QAAO,MAAM,QAAQ;AAClC,UAAI,OAAOA,WAAU,YAAYA,OAAM,SAAS;AAC9C,aAAK,IAAIA,OAAM,SAAS,OAAO;AAC/B,cAAM,WAAW,IAAI,MAAM,KAAK,KAAK,kBAAkB;AAAA,UACrD,MAAM,QAAQ,OAAO,SAAS,KAAK;AAAA,QACrC,CAAC,CAAC;AACF,iBAAS,eAAe;AACxB,iBAAS,UAAUA,OAAM;AACzB,YAAIA,OAAM,SAAS;AACjB,mBAAS,WAAW,IAAIA,OAAM,OAAO;AAAA,QACvC;AACA,QAAAT,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,CAAC,QAAQ,CAAC;AAAA,MAC9E,OAAO;AACL,QAAAA,6BAA4B,MAAM,cAAc,EAAE,cAAc,EAAE,CAACS,MAAK,CAAC;AAAA,MAC3E;AAAA,IACF,CAAC;AACD,QAAI;AACJ,SAAK,GAAG,kBAAkB,CAACA,QAAO,UAAU;AAC1C,YAAM;AAAA,QACJ;AAAA,MACF,IAAIA;AACJ,YAAM,UAAU,MAAM,IAAI,UAAQ,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI;AAC3D,UAAI,CAAC,qCAAqC;AACxC,aAAK,KAAK;AAAA,UACR;AAAA,UACA;AAAA,QACF,GAAG,WAAW,KAAK,KAAK,WAAW;AACnC,8CAAsC,WAAW,MAAM;AACrD,gDAAsC;AAAA,QACxC,GAAG,KAAK,KAAK,WAAW;AAAA,MAC1B;AACA,WAAK,IAAI,GAAG,OAAO,IAAI,OAAO,GAAG,KAAK,GAAG,SAAS;AAAA,IACpD,CAAC;AACD,SAAK,GAAG,UAAU,MAAM;AACtB,WAAK,SAAS;AAAA,QACZ,OAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AACD,UAAM,kBAAkB,WAAS;AAC/B,YAAM,gBAAgB,MAAM,OAAO,UAAQ;AACzC,cAAM,SAAS,QAAQ,QAAQ,KAAK,QAAQ,KAAK,EAAE;AACnD,YAAI,CAAC,OAAQ,MAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACjH,eAAO;AAAA,MACT,CAAC;AACD,YAAM,aAAa,OAAO,YAAY,cAAc,IAAI,UAAQ,CAAC,KAAK,IAAI;AAAA,QACxE,UAAU;AAAA,UACR,eAAe,KAAK,IAAI;AAAA,UACxB,gBAAgB;AAAA,UAChB,YAAY;AAAA,UACZ,eAAe;AAAA,UACf,YAAY,KAAK;AAAA,QACnB;AAAA,MACF,CAAC,CAAC,CAAC;AACH,WAAK,gBAAgB,UAAU;AAAA,IACjC;AACA,SAAK,GAAG,gBAAgB,WAAS;AAC/B,YAAM,QAAQ,UAAQ;AAEpB,aAAK,KAAK,kBAAkB,IAAI;AAAA,MAClC,CAAC;AACD,sBAAgB,KAAK;AAAA,IACvB,CAAC;AACD,SAAK,GAAG,mBAAmB,KAAK,iBAAiB;AACjD,SAAK,GAAG,kBAAkB,CAAC,MAAM,eAAe;AAC9C,UAAI,QAAQ,QAAQ,CAAC,KAAK,QAAQ,KAAK,EAAE,GAAG;AAC1C,aAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACpG;AAAA,MACF;AACA,YAAM,kBAAkB,KAAK,QAAQ,KAAK,EAAE,EAAE;AAC9C,WAAK,aAAa,KAAK,IAAI;AAAA,QACzB,UAAU;AAAA,UACR,GAAG;AAAA,UACH,aAAaT,6BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,OAAO,IAAI;AAAA,YAC1F,MAAM;AAAA,UACR,IAAI;AAAA,UACJ,gBAAgB;AAAA,UAChB,YAAY;AAAA,UACZ,eAAe,gBAAgB;AAAA,QACjC;AAAA,QACA,UAAU;AAAA,QACV,WAAW,WAAW;AAAA,QACtB,UAAU;AAAA,MACZ,CAAC;AAID,UAAI,KAAK,QAAQ,MAAM;AACrB,aAAK,aAAa,KAAK,IAAI;AAAA,UACzB,MAAM,WAAW,iBAAiB,gBAAgB;AAAA,QACpD,CAAC;AAAA,MACH;AACA,WAAK,uBAAuB;AAAA,IAC9B,CAAC;AACD,SAAK,GAAG,uBAAuB,CAAC,MAAM,aAAa;AACjD,UAAI,QAAQ,QAAQ,CAAC,KAAK,QAAQ,KAAK,EAAE,GAAG;AAC1C,aAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACpG;AAAA,MACF;AACA,WAAK,aAAa,KAAK,IAAI;AAAA,QACzB,UAAU;AAAA,UACR,GAAG,KAAK,QAAQ,KAAK,EAAE,EAAE;AAAA,UACzB,YAAY;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,SAAK,GAAG,uBAAuB,UAAQ;AACrC,UAAI,QAAQ,QAAQ,CAAC,KAAK,QAAQ,KAAK,EAAE,GAAG;AAC1C,aAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACpG;AAAA,MACF;AACA,YAAM,QAAQ;AAAA,QACZ,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,YAAM,KAAK,EAAE,IAAI;AAAA,QACf,GAAG,MAAM,KAAK,EAAE;AAAA,QAChB,UAAU;AAAA,UACR,GAAG,MAAM,KAAK,EAAE,EAAE;AAAA,QACpB;AAAA,MACF;AACA,aAAO,MAAM,KAAK,EAAE,EAAE,SAAS;AAC/B,WAAK,SAAS;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,SAAK,GAAG,wBAAwB,CAAC,MAAM,aAAa;AAClD,UAAI,QAAQ,QAAQ,CAAC,KAAK,QAAQ,KAAK,EAAE,GAAG;AAC1C,aAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACpG;AAAA,MACF;AACA,WAAK,aAAa,KAAK,IAAI;AAAA,QACzB,UAAU;AAAA,UACR,GAAG,KAAK,SAAS,EAAE,MAAM,KAAK,EAAE,EAAE;AAAA,UAClC,aAAa;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,SAAK,GAAG,wBAAwB,UAAQ;AACtC,UAAI,QAAQ,QAAQ,CAAC,KAAK,QAAQ,KAAK,EAAE,GAAG;AAC1C,aAAK,IAAI,0DAA0D,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE;AACpG;AAAA,MACF;AACA,YAAM,QAAQ;AAAA,QACZ,GAAG,KAAK,SAAS,EAAE;AAAA,MACrB;AACA,YAAM,KAAK,EAAE,IAAI;AAAA,QACf,GAAG,MAAM,KAAK,EAAE;AAAA,QAChB,UAAU;AAAA,UACR,GAAG,MAAM,KAAK,EAAE,EAAE;AAAA,QACpB;AAAA,MACF;AACA,aAAO,MAAM,KAAK,EAAE,EAAE,SAAS;AAC/B,WAAK,SAAS;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,SAAK,GAAG,YAAY,MAAM;AAExB,WAAK,uBAAuB;AAAA,IAC9B,CAAC;AACD,SAAK,GAAG,gCAAgC,UAAQ;AAC9C,UAAI,MAAM;AACR,QAAAA,6BAA4B,MAAM,8BAA8B,EAAE,8BAA8B,EAAE,IAAI;AAAA,MACxG;AAAA,IACF,CAAC;AAGD,QAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB;AAC5D,aAAO,iBAAiB,UAAUA,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,CAAC;AAC7G,aAAO,iBAAiB,WAAWA,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,CAAC;AAC9G,iBAAWA,6BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,GAAG,GAAI;AAAA,IAC9F;AAAA,EACF;AACA,WAAS,eAAe,SAAS,MAAM;AACrC,QAAI,SAAS,QAAQ;AACnB,aAAO,CAAC;AAAA,IACV;AAEA,UAAM;AAAA,MACJ,sBAAsB;AAAA,IACxB,IAAI;AACJ,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,KAAK,SAAS;AAClB,QAAI,CAAC,kBAAkB,CAAC,qBAAqB;AAC3C,YAAM,IAAI,MAAM,gDAAgD;AAAA,IAClE;AACA,UAAM,WAAW,OAAO;AACxB,SAAK,KAAK,UAAU;AAAA,MAClB,IAAI;AAAA,MACJ;AAAA,IACF,CAAC;AACD,SAAK,SAAS;AAAA,MACZ,gBAAgB,KAAK,KAAK,+BAA+B,SAAS,KAAK,KAAK,yBAAyB;AAAA,MACrG,gBAAgB;AAAA,QACd,GAAG;AAAA,QACH,CAAC,QAAQ,GAAG;AAAA,UACV;AAAA,UACA,MAAM;AAAA,UACN,QAAQ,CAAC;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACA,WAAS,YAAY,UAAU;AAC7B,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,KAAK,SAAS;AAClB,WAAO,eAAe,QAAQ;AAAA,EAChC;AACA,WAAS,eAAe,UAAU;AAChC,UAAM,iBAAiB;AAAA,MACrB,GAAG,KAAK,SAAS,EAAE;AAAA,IACrB;AACA,WAAO,eAAe,QAAQ;AAC9B,SAAK,SAAS;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH;AACA,iBAAe,YAAY,UAAU;AACnC,UAAM,mBAAmB,MAAM;AAC7B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,SAAS;AAClB,aAAO,eAAe,QAAQ;AAAA,IAChC;AACA,QAAI,gBAAgB,iBAAiB;AACrC,UAAM,QAAQ,CAAC,GAAGA,6BAA4B,MAAM,cAAc,EAAE,cAAc,GAAG,GAAGA,6BAA4B,MAAM,UAAU,EAAE,UAAU,GAAG,GAAGA,6BAA4B,MAAM,eAAe,EAAE,eAAe,CAAC;AACzN,QAAI;AACF,eAAS,OAAO,cAAc,QAAQ,GAAG,OAAO,MAAM,QAAQ,QAAQ;AACpE,YAAI,CAAC,eAAe;AAClB;AAAA,QACF;AACA,cAAMQ,MAAK,MAAM,IAAI;AACrB,aAAK,SAAS;AAAA,UACZ,gBAAgB;AAAA,YACd,GAAG,KAAK,SAAS,EAAE;AAAA,YACnB,CAAC,QAAQ,GAAG;AAAA,cACV,GAAG;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAC;AACD,cAAM;AAAA,UACJ;AAAA,QACF,IAAI;AAIJ,cAAMA,IAAG,SAAS,QAAQ;AAG1B,wBAAgB,iBAAiB;AAAA,MACnC;AAAA,IACF,SAAS,KAAK;AACZ,MAAAR,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,QAAQ;AACxE,YAAM;AAAA,IACR;AAGA,QAAI,eAAe;AAWjB,oBAAc,QAAQ,QAAQ,YAAU;AACtC,cAAM,OAAO,KAAK,QAAQ,MAAM;AAChC,YAAI,QAAQ,KAAK,SAAS,aAAa;AACrC,eAAK,KAAK,wBAAwB,IAAI;AAAA,QACxC;AAAA,MACF,CAAC;AACD,YAAM,QAAQ,cAAc,QAAQ,IAAI,YAAU,KAAK,QAAQ,MAAM,CAAC;AACtE,YAAM,aAAa,MAAM,OAAO,UAAQ,CAAC,KAAK,KAAK;AACnD,YAAM,SAAS,MAAM,OAAO,UAAQ,KAAK,KAAK;AAC9C,YAAM,KAAK,cAAc,UAAU;AAAA,QACjC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAGD,sBAAgB,iBAAiB;AAAA,IACnC;AAKA,QAAI;AACJ,QAAI,eAAe;AACjB,eAAS,cAAc;AACvB,WAAK,KAAK,YAAY,MAAM;AAC5B,MAAAA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,QAAQ;AAAA,IAC1E;AACA,QAAI,UAAU,MAAM;AAClB,WAAK,IAAI,2DAA2D,QAAQ,EAAE;AAAA,IAChF;AACA,WAAO;AAAA,EACT;AACA,EAAAI,MAAK,UAAUD,aAAY;AAC3B,MAAO,eAAQC;;;Aa7sDFU,MC2BAC;AD3BAD,MEUPE;AFVOF,MGETG;AHFSH,MGkGAI;AHlGAJ,MIiLTK;AJjLSL,MI4LTM;AJ5LSN,MI8LPO;AJ9LOP,MIwNPQ;AJxNOR,MKCFS;ALDET,MAWAU,IAAgC,CAAA;AAXhCV,MAYAW,IAAY,CAAA;AAZZX,MAaAY,IACZ;AAdYZ,MCCAa,IAAUC,MAAMD;AAStB,WAASE,EAAOC,IAAKC,IAAAA;AAE3B,aAASR,MAAKQ,GAAOD,CAAAA,GAAIP,EAAAA,IAAKQ,GAAMR,EAAAA;AACpC,WAA6BO;EAC7B;AAAA,WAQeE,EAAWC,IAAAA;AAC1B,QAAIC,KAAaD,GAAKC;AAClBA,IAAAA,MAAYA,GAAWC,YAAYF,EAAAA;EACvC;AEZM,WAASG,EAAcC,IAAMN,IAAOO,IAAAA;AAC1C,QACCC,IACAC,IACAjB,IAHGkB,KAAkB,CAAA;AAItB,SAAKlB,MAAKQ,GACA,UAALR,KAAYgB,KAAMR,GAAMR,EAAAA,IACd,SAALA,KAAYiB,KAAMT,GAAMR,EAAAA,IAC5BkB,GAAgBlB,EAAAA,IAAKQ,GAAMR,EAAAA;AAUjC,QAPImB,UAAUC,SAAS,MACtBF,GAAgBH,WACfI,UAAUC,SAAS,IAAI5B,EAAM6B,KAAKF,WAAW,CAAA,IAAKJ,KAKjC,cAAA,OAARD,MAA2C,QAArBA,GAAKQ,aACrC,MAAKtB,MAAKc,GAAKQ,aAAAA,YACVJ,GAAgBlB,EAAAA,MACnBkB,GAAgBlB,EAAAA,IAAKc,GAAKQ,aAAatB,EAAAA;AAK1C,WAAOuB,EAAYT,IAAMI,IAAiBF,IAAKC,IAAK,IAAA;EACpD;AAceM,WAAAA,EAAYT,IAAMN,IAAOQ,IAAKC,IAAKO,IAAAA;AAIlD,QAAMC,KAAQ,EACbX,MAAAA,IACAN,OAAAA,IACAQ,KAAAA,IACAC,KAAAA,IACAS,KAAW,MACXC,IAAS,MACTC,KAAQ,GACRC,KAAM,MAKNC,KAAAA,QACAC,KAAY,MACZC,aAAAA,QACAC,KAAuB,QAAZT,KAAAA,EAAqB9B,IAAU8B,IAC1CU,KAAAA,IACAC,KAAQ,EAAA;AAMT,WAFgB,QAAZX,MAAqC,QAAjB/B,EAAQgC,SAAehC,EAAQgC,MAAMA,EAAAA,GAEtDA;EACP;AAAA,WAEeW,IAAAA;AACf,WAAO,EAAEC,SAAS,KAAA;EAClB;AAEeC,WAAAA,EAAS9B,IAAAA;AACxB,WAAOA,GAAMO;EACb;AC/EewB,WAAAA,EAAc/B,IAAOgC,IAAAA;AACpCC,SAAKjC,QAAQA,IACbiC,KAAKD,UAAUA;EACf;AA0EM,WAASE,EAAcjB,IAAOkB,IAAAA;AACpC,QAAkB,QAAdA,GAEH,QAAOlB,GAAAE,KACJe,EAAcjB,GAAeA,IAAAA,GAAAA,MAAe,CAAA,IAC5C;AAIJ,aADImB,IACGD,KAAalB,GAAAC,IAAgBN,QAAQuB,KAG3C,KAAe,SAFfC,KAAUnB,GAAAC,IAAgBiB,EAAAA,MAEa,QAAhBC,GAAAf,IAItB,QAAOe,GACPf;AAQF,WAA4B,cAAA,OAAdJ,GAAMX,OAAqB4B,EAAcjB,EAAAA,IAAS;EAChE;AA2CD,WAASoB,EAAwBpB,IAAAA;AAAjC,QAGWzB,IACJ8C;AAHN,QAA+B,SAA1BrB,KAAQA,GAAHE,OAAiD,QAApBF,GAAKM,KAAqB;AAEhE,WADAN,GAAKI,MAAQJ,GAAKM,IAAYgB,OAAO,MAC5B/C,KAAI,GAAGA,KAAIyB,GAAKC,IAAWN,QAAQpB,KAE3C,KAAa,SADT8C,KAAQrB,GAAAC,IAAgB1B,EAAAA,MACO,QAAd8C,GAAAjB,KAAoB;AACxCJ,QAAAA,GAAKI,MAAQJ,GAAKM,IAAYgB,OAAOD,GAArCjB;AACA;MACA;AAGF,aAAOgB,EAAwBpB,EAAAA;IAC/B;EACD;AAAA,WA4BeuB,EAAcC,IAAAA;AAAAA,KAAAA,CAE1BA,GAADnB,QACCmB,GAAAnB,MAAAA,SACDlC,EAAcsD,KAAKD,EAAAA,KAAAA,CAClBE,EAAAA,SACFtD,MAAiBJ,EAAQ2D,wBAEzBvD,IAAeJ,EAAQ2D,sBACNtD,GAAOqD,CAAAA;EAEzB;AASD,WAASA,IAAAA;AAAT,QACKF,IAMEI,IAzGkBC,IAQjBC,IAPHC,IACHC,IACAC,IACAC,IACAC;AAkGD,SAHAhE,EAAciE,KAAK9D,CAAAA,GAGXkD,KAAIrD,EAAckE,MAAAA,IACrBb,CAAAA,GAAAA,QACCI,KAAoBzD,EAAcwB,QAjGjCmC,KAAAA,QANNE,MADGD,MADoBF,KA0GNL,IAzGNhB,KAAZJ,KAGC8B,KAAc,CAAA,GACdC,KAAW,CAAA,IAFXF,KAAYJ,GAFbS,UAOOR,KAAWjD,EAAO,CAAD,GAAKkD,EAAAA,GACpBvB,MAAauB,GAAQvB,MAAa,GACtCxC,EAAQgC,SAAOhC,EAAQgC,MAAM8B,EAAAA,GAEjCS,EACCN,IACAH,IACAC,IACAF,GAJGW,KAAAA,WAKHP,GAAUQ,iBJ1Ie,KI2IzBV,GAAQrB,MAAyB,CAACsB,EAAAA,IAAU,MAC5CE,IACU,QAAVF,KAAiBf,EAAcc,EAAAA,IAAYC,IAAAA,CAAAA,EJ7IlB,KI8ItBD,GAAArB,MACHyB,EAAAA,GAGDL,GAAA5B,GAAAD,IAA2B6B,GAA3BrB,GAAAA,IAA8CqB,IAC9CY,EAAWR,IAAaJ,IAAUK,EAAAA,GAE9BL,GAAQ1B,OAAS4B,MACpBZ,EAAwBU,EAAAA,IA8EpB3D,EAAcwB,SAASiC,MAI1BzD,EAAciE,KAAK9D,CAAAA;AAItBoD,MAAAA,MAAyB;EACzB;AElNeiB,WAAAA,EACfV,IACAW,IACAC,IACAC,IACAC,IACAC,IACAC,IACAf,IACAF,IACAkB,IACAf,IAAAA;AAXeQ,QAaXpE,IAEHwD,IAEAoB,IAEAC,IAEAC,IAKGC,KAAeR,MAAkBA,GAAnB7C,OAAgDxB,GAE9D8E,KAAoBX,GAAajD;AAMrC,SAJAkD,GAAcxC,MAAY2B,IAC1BwB,EAA0BX,IAAgBD,IAAcU,EAAAA,GACxDtB,KAASa,GAAAA,KAEJtE,KAAI,GAAGA,KAAIgF,IAAmBhF,KAInB,UAHf4E,KAAaN,GAAc5C,IAAW1B,EAAAA,MAIhB,aAAA,OAAd4E,MACc,cAAA,OAAdA,OAQPpB,KAAAA,OADGoB,GAAAA,MACQ3E,IAEA8E,GAAYH,GAAD1C,GAAAA,KAAuBjC,GAI9C2E,GAAU1C,MAAUlC,IAGpBgE,EACCN,IACAkB,IACApB,IACAgB,IACAC,IACAC,IACAf,IACAF,IACAkB,IACAf,EAAAA,GAIDiB,KAASD,GAAT/C,KACI+C,GAAW3D,OAAOuC,GAASvC,OAAO2D,GAAW3D,QAC5CuC,GAASvC,OACZiE,EAAS1B,GAASvC,KAAK,MAAM2D,EAAAA,GAE9BhB,GAASV,KACR0B,GAAW3D,KACX2D,GAAU7C,OAAe8C,IACzBD,EAAAA,IAImB,QAAjBE,MAAmC,QAAVD,OAC5BC,KAAgBD,KN3GS,QM+GzBD,GAAUzC,OACVqB,GAAQ9B,QAAekD,GAAvBlD,MAEA+B,KAAS0B,EAAOP,IAAYnB,IAAQC,EAAAA,IAEV,cAAA,OAAnBkB,GAAW9D,QAAAA,WAClB8D,GAAA9C,MAKA2B,KAASmB,GACT9C,MAAU+C,OACVpB,KAASoB,GAAOO,cAQjBR,GAAU9C,MAAAA,QAGV8C,GAAUzC,OAAAA;AAaXmC,IAAAA,GAAAxC,MAA0B2B,IAC1Ba,GAAAzC,MAAsBiD;EACtB;AAOD,WAASG,EAA0BX,IAAgBD,IAAcU,IAAAA;AAAjE,QAEK/E,IAEA4E,IAEApB,IA2FG6B,IACAC,IA1FDN,KAAoBX,GAAajD,QACnCmE,KAAoBR,GAAY3D,QACnCoE,KAAuBD,IAEpBE,KAAO;AAGX,SADAnB,GAAA5C,MAA2B,CAAA,GACtB1B,KAAI,GAAGA,KAAIgF,IAAmBhF,KAsDhB,UA5CjB4E,KAAaN,GAAc5C,IAAW1B,EAAAA,IAJxB,SAHf4E,KAAaP,GAAarE,EAAAA,MAIJ,aAAA,OAAd4E,MACc,cAAA,OAAdA,KAEoC,OAMtB,YAAA,OAAdA,MACc,YAAA,OAAdA,MAEc,YAAA,OAAdA,MACPA,GAAW5C,eAAe0D,SAEiBnE,EAC1C,MACAqD,IACA,MACA,MACAA,EAAAA,IAESxE,EAAQwE,EAAAA,IACyBrD,EAC1Ce,GACA,EAAEvB,UAAU6D,GAAAA,GACZ,MACA,MACA,IAAA,IAAA,WAESA,GAAW5C,eAA6B4C,GAAAA,MAAoB,IAK3BrD,EAC1CqD,GAAW9D,MACX8D,GAAWpE,OACXoE,GAAW5D,KACX4D,GAAW3D,MAAM2D,GAAW3D,MAAM,MAClC2D,GAED3C,GAAAA,IAC2C2C,OA6B5CA,GAAAA,KAAqBN,IACrBM,GAAAA,MAAoBN,GAAA1C,MAAwB,GAGtC0D,KAAgBK,EACrBf,IACAG,IAHKM,KAAcrF,KAAIyF,IAKvBD,EAAAA,GAMDZ,GAAA1C,MAAoBoD,IAEpB9B,KAAW,MAAA,OACP8B,OAEHE,OADAhC,KAAWuB,GAAYO,EAAAA,OAGtB9B,GAAQrB,ON9QW,UMqRU,QAAZqB,MAA2C,SAAvBA,GAAAA,OAAAA,MAGlC8B,MACHG,MAI6B,cAAA,OAAnBb,GAAW9D,SACrB8D,GAAAzC,ONhSwB,UMkSfmD,OAAkBD,OACxBC,OAAkBD,KAAc,IACnCI,OACUH,KAAgBD,KACtBG,KAAuBR,KAAoBK,KAC9CI,MAAQH,KAAgBD,KAGxBI,OAIAA,KAFSH,KAAgBD,MACtBC,MAAiBD,KAAc,IAC3BC,KAAgBD,KAKjB,GAKJC,OAAkBtF,KAAIyF,OACzBb,GAAAzC,ONzTwB,YMmOzBqB,KAAWuB,GAAY/E,EAAAA,MACS,QAAhBwD,GAASxC,OAAewC,GAAxC3B,QACK2B,GAAA3B,OAAiByC,GAAjBxC,QACHwC,GAAAxC,MAA0BY,EAAcc,EAAAA,IAGzCoC,EAAQpC,IAAUA,IAAAA,KAAU,GAW5BuB,GAAY/E,EAAAA,IAAK,MACjBwF;AA6EH,QAAIA,GACH,MAAKxF,KAAI,GAAGA,KAAIuF,IAAmBvF,KAElB,UADhBwD,KAAWuB,GAAY/E,EAAAA,MACiC,MNnUpC,SMmUKwD,GAAQrB,SAC5BqB,GAAAA,OAAiBc,GAArBxC,QACCwC,GAAcxC,MAAYY,EAAcc,EAAAA,IAGzCoC,EAAQpC,IAAUA,EAAAA;EAIrB;AAQD,WAAS2B,EAAOU,IAAapC,IAAQC,IAAAA;AAArC,QAIM3C,IACKf;AAFV,QAA+B,cAAA,OAApB6F,GAAY/E,MAAoB;AAE1C,WADIC,KAAW8E,GAAHnE,KACH1B,KAAI,GAAGe,MAAYf,KAAIe,GAASK,QAAQpB,KAC5Ce,CAAAA,GAASf,EAAAA,MAKZe,GAASf,EAAAA,EAAT2B,KAAsBkE,IACtBpC,KAAS0B,EAAOpE,GAASf,EAAAA,GAAIyD,IAAQC,EAAAA;AAIvC,aAAOD;IACP;AAKD,WALWoC,GAAWhE,OAAS4B,OAC9BC,GAAUoC,aAAaD,GAAvBhE,KAAyC4B,MAAU,IAAA,GACnDA,KAASoC,GACThE,MAEM4B,MAAUA,GAAO2B;EACxB;AAQM,WAASW,EAAahF,IAAUiF,IAAAA;AAUtC,WATAA,KAAMA,MAAO,CAAA,GACG,QAAZjF,MAAuC,aAAA,OAAZA,OACpBX,EAAQW,EAAAA,IAClBA,GAASkF,KAAK,SAAAnD,IAAAA;AACbiD,QAAajD,IAAOkD,EAAAA;IACpB,CAAA,IAEDA,GAAI9C,KAAKnC,EAAAA,IAEHiF;EACP;AASD,WAASL,EACRf,IACAG,IACAM,IACAG,IAAAA;AAJD,QAMOxE,KAAM4D,GAAW5D,KACjBF,KAAO8D,GAAW9D,MACpBoF,KAAIb,KAAc,GAClBc,KAAId,KAAc,GAClB7B,KAAWuB,GAAYM,EAAAA;AAc3B,QACc,SAAb7B,MACCA,MAAYxC,MAAOwC,GAASxC,OAAOF,OAAS0C,GAAS1C,KAEtD,QAAOuE;AAAAA,QAPPG,MACa,QAAZhC,MAAoD,MN7ZhC,SM6ZCA,GAAAA,OAAmC,IAAI,GAQ7D,QAAO0C,MAAK,KAAKC,KAAIpB,GAAY3D,UAAQ;AACxC,UAAI8E,MAAK,GAAG;AAEX,aADA1C,KAAWuB,GAAYmB,EAAAA,MAGU,MN1ad,SM0ajB1C,GAAArB,QACDnB,MAAOwC,GAASxC,OAChBF,OAAS0C,GAAS1C,KAElB,QAAOoF;AAERA,QAAAA;MACA;AAED,UAAIC,KAAIpB,GAAY3D,QAAQ;AAE3B,aADAoC,KAAWuB,GAAYoB,EAAAA,MAGU,MNvbd,SMubjB3C,GAAArB,QACDnB,MAAOwC,GAASxC,OAChBF,OAAS0C,GAAS1C,KAElB,QAAOqF;AAERA,QAAAA;MACA;IACD;AAGF,WAAA;EACA;ACvcD,WAASC,EAASC,IAAOrF,IAAKsF,IAAAA;AACd,YAAXtF,GAAI,CAAA,IACPqF,GAAME,YAAYvF,IAAc,QAATsF,KAAgB,KAAKA,EAAAA,IAE5CD,GAAMrF,EAAAA,IADa,QAATsF,KACG,KACa,YAAA,OAATA,MAAqBnG,EAAmBqG,KAAKxF,EAAAA,IACjDsF,KAEAA,KAAQ;EAEtB;AAUM,WAASC,EAAYE,IAAKC,IAAMJ,IAAOK,IAAUlC,IAAAA;AAAjD,QACFmC;AAEJC,MAAG,KAAa,YAATH,GACN,KAAoB,YAAA,OAATJ,GACVG,CAAAA,GAAIJ,MAAMS,UAAUR;SACd;AAKN,UAJuB,YAAA,OAAZK,OACVF,GAAIJ,MAAMS,UAAUH,KAAW,KAG5BA,GACH,MAAKD,MAAQC,GACNL,CAAAA,MAASI,MAAQJ,MACtBF,EAASK,GAAIJ,OAAOK,IAAM,EAAA;AAK7B,UAAIJ,GACH,MAAKI,MAAQJ,GACPK,CAAAA,MAAYL,GAAMI,EAAAA,MAAUC,GAASD,EAAAA,KACzCN,EAASK,GAAIJ,OAAOK,IAAMJ,GAAMI,EAAAA,CAAAA;IAInC;aAGmB,QAAZA,GAAK,CAAA,KAA0B,QAAZA,GAAK,CAAA,EAChCE,CAAAA,KACCF,QAAUA,KAAOA,GAAKK,QAAQ,8BAA8B,IAAA,IAG9BL,KAA3BA,GAAKM,YAAAA,KAAiBP,KAAYC,GAAKM,YAAAA,EAAcxH,MAAM,CAAA,IACnDkH,GAAKlH,MAAM,CAAA,GAElBiH,GAALQ,MAAqBR,GAAGQ,IAAc,CAAA,IACtCR,GAAGQ,EAAYP,KAAOE,EAAAA,IAAcN,IAEhCA,KACEK,KAKJL,GAAMY,IAAYP,GAASO,KAJ3BZ,GAAMY,IAAYC,KAAKC,IAAAA,GAEvBX,GAAIY,iBAAiBX,IADLE,KAAaU,IAAoBC,GACbX,EAAAA,KAMrCH,GAAIe,oBAAoBd,IADRE,KAAaU,IAAoBC,GACVX,EAAAA;SAElC;AACN,UAAInC,GAIHiC,CAAAA,KAAOA,GAAKK,QAAQ,eAAe,GAAA,EAAKA,QAAQ,UAAU,GAAA;eAEjD,YAATL,MACS,aAATA,MACS,WAATA,MACS,WAATA,MACS,WAATA,MAGS,eAATA,MACS,eAATA,MACS,cAATA,MACS,cAATA,MACS,WAATA,MACAA,MAAQD,GAER,KAAA;AACCA,QAAAA,GAAIC,EAAAA,IAAiB,QAATJ,KAAgB,KAAKA;AAEjC,cAAMO;MACK,SAAHY,IAAAA;MAAG;AAUO,oBAAA,OAATnB,OAES,QAATA,MAAAA,UAAkBA,MAA+B,QAAZI,GAAK,CAAA,IAGpDD,GAAIiB,gBAAgBhB,EAAAA,IAFpBD,GAAIkB,aAAajB,IAAMJ,EAAAA;IAIxB;EACD;AAOD,WAASiB,EAAWE,IAAAA;AACnB,QAAMG,KAAenF,KAAAwE,EAAgBQ,GAAE3G,OAAAA,KAAO;AAM9C,QAAK2G,GAAEI,GAAAA;AAMA,UAAIJ,GAAEI,KAAeD,GAAaV,EACxC;IAAA,MAJAO,CAAAA,GAAEI,IAAcV,KAAKC,IAAAA;AAMtB,WAAOQ,GAAanI,EAAQqI,QAAQrI,EAAQqI,MAAML,EAAAA,IAAKA,EAAAA;EACvD;AAOD,WAASH,EAAkBG,IAAAA;AAC1B,WAAOhF,KAAAwE,EAAgBQ,GAAE3G,OAAAA,IAAO,EAAMrB,EAAQqI,QAAQrI,EAAQqI,MAAML,EAAAA,IAAKA,EAAAA;EACzE;ACxHM,WAASzD,EACfN,IACAH,IACAC,IACAgB,IACAC,IACAC,IACAf,IACAF,IACAkB,IACAf,IAAAA;AAVM,QAaFmE,IAkBE9E,IAAG+E,IAAOC,IAAUC,IAAUC,IAAUC,IACxCC,IAKAC,IACAC,IAuGOvI,IA4BPwI,IACHC,IASSzI,IA6BNqE,IAlMLqE,KAAUnF,GAASzC;AAIpB,QAAA,WAAIyC,GAASvB,YAA2B,QAAA;AR9CX,UQiDzBwB,GAAAA,QACHmB,KAAAA,CAAAA,ERpD0B,KQoDTnB,GAAQrB,MAEzBuC,KAAoB,CADpBjB,KAASF,GAAA1B,MAAgB2B,GAAhB3B,GAAAA,KAILkG,KAAMtI,EAAXmC,QAA2BmG,GAAIxE,EAAAA;AAE/BoF,MAAO,KAAsB,cAAA,OAAXD,GACjB,KAAA;AAgEC,UA9DIL,KAAW9E,GAAS/C,OAKpB8H,MADJP,KAAMW,GAAQE,gBACQpE,GAAcuD,GAApChG,GAAAA,GACIwG,KAAmBR,KACpBO,KACCA,GAAS9H,MAAM8F,QACfyB,GAFOpG,KAGR6C,IAGChB,GAAJzB,MAECqG,MADAnF,KAAIM,GAAAxB,MAAsByB,GAAtBzB,KACwBJ,KAAwBsB,GACpD4F,OAEI,eAAeH,MAAWA,GAAQI,UAAUC,SAE/CxF,GAAAxB,MAAsBkB,KAAI,IAAIyF,GAAQL,IAAUE,EAAAA,KAGhDhF,GAAQxB,MAAckB,KAAI,IAAIV,EAC7B8F,IACAE,EAAAA,GAEDtF,GAAEjB,cAAc0G,IAChBzF,GAAE8F,SAASC,IAERV,MAAUA,GAASW,IAAIhG,EAAAA,GAE3BA,GAAEzC,QAAQ6H,IACLpF,GAAEiG,UAAOjG,GAAEiG,QAAQ,CAAA,IACxBjG,GAAET,UAAU+F,IACZtF,GAAAgB,MAAmBO,IACnBwD,KAAQ/E,GAAAnB,MAAAA,MACRmB,GAACkG,MAAoB,CAAA,GACrBlG,GAACmG,MAAmB,CAAA,IAID,QAAhBnG,GAAAoG,QACHpG,GAAAoG,MAAepG,GAAEiG,QAGsB,QAApCR,GAAQY,6BACPrG,GAACoG,OAAepG,GAAEiG,UACrBjG,GAACoG,MAAc/I,EAAO,CAAD,GAAK2C,GAALoG,GAAAA,IAGtB/I,EACC2C,GACAyF,KAAAA,GAAQY,yBAAyBjB,IAAUpF,GAAAA,GAAAA,CAAAA,IAI7CgF,KAAWhF,GAAEzC,OACb0H,KAAWjF,GAAEiG,OACbjG,GAAAhB,MAAWsB,IAGPyE,GAEkC,SAApCU,GAAQY,4BACgB,QAAxBrG,GAAEsG,sBAEFtG,GAAEsG,mBAAAA,GAGwB,QAAvBtG,GAAEuG,qBACLvG,GAAAA,IAAmBC,KAAKD,GAAEuG,iBAAAA;WAErB;AASN,YAPqC,QAApCd,GAAQY,4BACRjB,OAAaJ,MACkB,QAA/BhF,GAAEwG,6BAEFxG,GAAEwG,0BAA0BpB,IAAUE,EAAAA,GAAAA,CAIrCtF,GACCA,QAA2B,QAA3BA,GAAEyG,yBAAAA,UACHzG,GAAEyG,sBACDrB,IACApF,GAFDoG,KAGCd,EAAAA,KAEDhF,GAAQtB,QAAeuB,GAPxBvB,MAQC;AAkBD,eAhBIsB,GAAQtB,QAAeuB,GAA3BvB,QAKCgB,GAAEzC,QAAQ6H,IACVpF,GAAEiG,QAAQjG,GAAVoG,KACApG,GAACnB,MAAAA,QAGFyB,GAAAA,MAAgBC,GAChBD,KAAAA,GAAA7B,MAAqB8B,GAArB9B,KACA6B,GAAA7B,IAAmBiI,QAAQ,SAAAlI,IAAAA;AACtBA,YAAAA,OAAOA,GAAAE,KAAgB4B;UAC3B,CAAA,GAEQvD,KAAI,GAAGA,KAAIiD,GAAAmG,IAAkBhI,QAAQpB,KAC7CiD,CAAAA,GAAAkG,IAAmBjG,KAAKD,GAACmG,IAAiBpJ,EAAAA,CAAAA;AAE3CiD,UAAAA,GAAAmG,MAAoB,CAAA,GAEhBnG,GAACkG,IAAkB/H,UACtBuC,GAAYT,KAAKD,EAAAA;AAGlB,gBAAM0F;QACN;AAE4B,gBAAzB1F,GAAE2G,uBACL3G,GAAE2G,oBAAoBvB,IAAUpF,GAAAA,KAAcsF,EAAAA,GAGnB,QAAxBtF,GAAE4G,sBACL5G,GAAAkG,IAAmBjG,KAAK,WAAA;AACvBD,UAAAA,GAAE4G,mBAAmB5B,IAAUC,IAAUC,EAAAA;QACzC,CAAA;MAEF;AASD,UAPAlF,GAAET,UAAU+F,IACZtF,GAAEzC,QAAQ6H,IACVpF,GAAAc,MAAeL,IACfT,GAACpB,MAAAA,OAEG2G,KAAa/I,EAAHqK,KACbrB,KAAQ,GACL,eAAeC,MAAWA,GAAQI,UAAUC,QAAQ;AAQvD,aAPA9F,GAAEiG,QAAQjG,GAAVoG,KACApG,GAACnB,MAAAA,OAEG0G,MAAYA,GAAWjF,EAAAA,GAE3BwE,KAAM9E,GAAE8F,OAAO9F,GAAEzC,OAAOyC,GAAEiG,OAAOjG,GAAET,OAAAA,GAE1BxC,KAAI,GAAGA,KAAIiD,GAAAmG,IAAkBhI,QAAQpB,KAC7CiD,CAAAA,GAACkG,IAAkBjG,KAAKD,GAACmG,IAAiBpJ,EAAAA,CAAAA;AAE3CiD,QAAAA,GAAAmG,MAAoB,CAAA;MACpB,MACA,IAAA;AACCnG,QAAAA,GAAAnB,MAAAA,OACI0G,MAAYA,GAAWjF,EAAAA,GAE3BwE,KAAM9E,GAAE8F,OAAO9F,GAAEzC,OAAOyC,GAAEiG,OAAOjG,GAAET,OAAAA,GAGnCS,GAAEiG,QAAQjG,GAAVoG;MAAAA,SACQpG,GAACnB,OAAAA,EAAa2G,KAAQ;AAIhCxF,MAAAA,GAAEiG,QAAQjG,GAAVoG,KAEyB,QAArBpG,GAAE8G,oBACLvF,KAAgBlE,EAAOA,EAAO,CAAD,GAAKkE,EAAAA,GAAgBvB,GAAE8G,gBAAAA,CAAAA,IAGhD/B,MAAsC,QAA7B/E,GAAE+G,4BACf7B,KAAWlF,GAAE+G,wBAAwB/B,IAAUC,EAAAA,IAOhD9D,EACCV,IACAtD,EAJGiE,KADI,QAAP0D,MAAeA,GAAIjH,SAASwB,KAAuB,QAAXyF,GAAI/G,MACL+G,GAAIvH,MAAMO,WAAWgH,EAAAA,IAIpC1D,KAAe,CAACA,EAAAA,GACxCd,IACAC,IACAgB,IACAC,IACAC,IACAf,IACAF,IACAkB,IACAf,EAAAA,GAGDX,GAAEF,OAAOQ,GAAT1B,KAGA0B,GAAQpB,OAAAA,MAEJc,GAACkG,IAAkB/H,UACtBuC,GAAYT,KAAKD,EAAAA,GAGdmF,OACHnF,GAAC4F,MAAiB5F,GAAAtB,KAAyB;IAkB5C,SAhBQ8F,IAAAA;AACRlE,MAAAA,GAAQtB,MAAa,MAEjB0C,MAAoC,QAArBD,MAClBnB,GAAQ1B,MAAQ4B,IAChBF,GAAApB,OAAmBwC,KAChBpF,MRhRqB,IQkRxBmF,GAAkBA,GAAkBuF,QAAQxG,EAAAA,CAAAA,IAAW,SAIvDF,GAAQ1B,MAAQ2B,GAAAA,KAChBD,GAAQ7B,MAAa8B,GACrB9B,MACDjC,EAAOoC,IAAa4F,IAAGlE,IAAUC,EAAAA;IACjC;QAEoB,SAArBkB,MACAnB,GAAQtB,QAAeuB,GAFjBvB,OAINsB,GAAA7B,MAAqB8B,GACrBD,KAAAA,GAAA1B,MAAgB2B,GAAhB3B,OAEA0B,GAAQ1B,MAAQqI,EACf1G,GACAD,KAAAA,IACAC,IACAgB,IACAC,IACAC,IACAf,IACAgB,IACAf,EAAAA;AAAAA,KAIGmE,KAAMtI,EAAQ0K,WAASpC,GAAIxE,EAAAA;EAChC;AAOM,WAASY,EAAWR,IAAayG,IAAMxG,IAAAA;AAC7CwG,IAAAA,GAAAtI,MAAAA;AAEA,aAAS9B,KAAI,GAAGA,KAAI4D,GAASxC,QAAQpB,KACpCkF,GAAStB,GAAS5D,EAAAA,GAAI4D,GAAAA,EAAW5D,EAAAA,GAAI4D,GAAAA,EAAW5D,EAAAA,CAAAA;AAG7CP,MAAJsC,OAAqBtC,EAAAsC,IAAgBqI,IAAMzG,EAAAA,GAE3CA,GAAYsC,KAAK,SAAAhD,IAAAA;AAChB,UAAA;AAECU,QAAAA,KAAcV,GAAdkG,KACAlG,GAACkG,MAAoB,CAAA,GACrBxF,GAAYsC,KAAK,SAAAoE,IAAAA;AAEhBA,UAAAA,GAAGhJ,KAAK4B,EAAAA;QACR,CAAA;MAGD,SAFQwE,IAAAA;AACRhI,UAAOoC,IAAa4F,IAAGxE,GAAvBhB,GAAAA;MACA;IACD,CAAA;EACD;AAiBD,WAASiI,EACRzD,IACAlD,IACAC,IACAgB,IACAC,IACAC,IACAf,IACAgB,IACAf,IAAAA;AATD,QAeK5D,IAEAsK,IAEAC,IAEAC,IACAlE,IACAmE,IACAC,IAbAzC,KAAWzE,GAAShD,OACpB6H,KAAW9E,GAAS/C,OACpBmK,KAAkCpH,GAASzC;AAgB/C,QAFiB,UAAb6J,OAAoBlG,KAAAA,OAEC,QAArBC;AACH,WAAK1E,KAAI,GAAGA,KAAI0E,GAAkBtD,QAAQpB,KAMzC,MALAsG,KAAQ5B,GAAkB1E,EAAAA,MAOzB,kBAAkBsG,MAAAA,CAAAA,CAAYqE,OAC7BA,KAAWrE,GAAMsE,cAAcD,KAA8B,MAAnBrE,GAAMqE,WAChD;AACDlE,QAAAA,KAAMH,IACN5B,GAAkB1E,EAAAA,IAAK;AACvB;MACA;;AAIH,QAAW,QAAPyG,IAAa;AAChB,UAAiB,SAAbkE,GACH,QAAOE,SAASC,eAAezC,EAAAA;AAI/B5B,MAAAA,KADGhC,KACGoG,SAASE,gBAAgB,8BAA8BJ,EAAAA,IAEvDE,SAAShK,cAAc8J,IAAUtC,GAAS2C,MAAM3C,EAAAA,GAIvD3D,KAAoB,MAGpBC,KAAAA;IACA;AAED,QAAiB,SAAbgG,GAEC1C,CAAAA,OAAaI,MAAc1D,MAAe8B,GAAIwE,SAAS5C,OAC1D5B,GAAIwE,OAAO5C;SAEN;AASN,UAPA3D,KAAoBA,MAAqBlF,EAAM6B,KAAKoF,GAAIyE,UAAAA,GAExDjD,KAAWzE,GAAShD,SAASP,GAAAA,CAKxB0E,MAAoC,QAArBD,GAEnB,MADAuD,KAAW,CAAA,GACNjI,KAAI,GAAGA,KAAIyG,GAAI0E,WAAW/J,QAAQpB,KAEtCiI,CAAAA,IADA3B,KAAQG,GAAI0E,WAAWnL,EAAAA,GACR0G,IAAAA,IAAQJ,GAAMA;AAI/B,WAAKtG,MAAKiI,GACT3B,CAAAA,KAAQ2B,GAASjI,EAAAA,GACR,cAALA,OACY,6BAALA,KACVuK,KAAUjE,KACM,UAANtG,MAAiBA,MAAKqI,MAChC9B,EAAYE,IAAKzG,IAAG,MAAMsG,IAAO7B,EAAAA;AAMnC,WAAKzE,MAAKqI,GACT/B,CAAAA,KAAQ+B,GAASrI,EAAAA,GACR,cAALA,KACHwK,KAAclE,KACC,6BAALtG,KACVsK,KAAUhE,KACK,WAALtG,KACVyK,KAAanE,KACE,aAALtG,KACV0K,KAAUpE,KAEJ,UAANtG,MACE2E,MAA+B,cAAA,OAAT2B,MACxB2B,GAASjI,EAAAA,MAAOsG,MAEhBC,EAAYE,IAAKzG,IAAGsG,IAAO2B,GAASjI,EAAAA,GAAIyE,EAAAA;AAK1C,UAAI6F,GAGD3F,CAAAA,MACC4F,OACAD,GAAAc,WAAmBb,GAAnBa,UACAd,GAAOc,WAAY3E,GAAI4E,eAEzB5E,GAAI4E,YAAYf,GAAhBc,SAGD7H,GAAA7B,MAAqB,CAAA;eAEjB6I,OAAS9D,GAAI4E,YAAY,KAE7BjH,EACCqC,IACArG,EAAQoK,EAAAA,IAAeA,KAAc,CAACA,EAAAA,GACtCjH,IACAC,IACAgB,IACAC,MAAsB,oBAAbkG,IACTjG,IACAf,IACAe,KACGA,GAAkB,CAAA,IAClBlB,GAAAA,OAAsBd,EAAcc,IAAU,CAAA,GACjDmB,IACAf,EAAAA,GAIwB,QAArBc,GACH,MAAK1E,KAAI0E,GAAkBtD,QAAQpB,OACN,SAAxB0E,GAAkB1E,EAAAA,KAAYS,EAAWiE,GAAkB1E,EAAAA,CAAAA;AAM7D2E,MAAAA,OACJ3E,KAAI,SAAA,WAEHyK,OAKCA,OAAehE,GAAIzG,EAAAA,KACL,eAAb2K,MAAAA,CAA4BF,MAIf,aAAbE,MAAyBF,OAAexC,GAASjI,EAAAA,MAEnDuG,EAAYE,IAAKzG,IAAGyK,IAAYxC,GAASjI,EAAAA,GAAAA,KAAI,GAG9CA,KAAI,WAAA,WACA0K,MAAyBA,OAAYjE,GAAIzG,EAAAA,KAC5CuG,EAAYE,IAAKzG,IAAG0K,IAASzC,GAASjI,EAAAA,GAAAA,KAAI;IAG5C;AAED,WAAOyG;EACP;AAQM,WAASvB,EAASjE,IAAKqF,IAAO7E,IAAAA;AACpC,QAAA;AACmB,oBAAA,OAAPR,KAAmBA,GAAIqF,EAAAA,IAC7BrF,GAAIoB,UAAUiE;IAGnB,SAFQmB,IAAAA;AACRhI,QAAAoC,IAAoB4F,IAAGhG,EAAAA;IACvB;EACD;AASemE,WAAAA,EAAQnE,IAAOoE,IAAayF,IAAAA;AAA5B1F,QACX2F,IAuBMvL;AAdV,QARIP,EAAQmG,WAASnG,EAAQmG,QAAQnE,EAAAA,IAEhC8J,KAAI9J,GAAMR,SACTsK,GAAElJ,WAAWkJ,GAAElJ,YAAYZ,GAAdI,OACjBqD,EAASqG,IAAG,MAAM1F,EAAAA,IAIU,SAAzB0F,KAAI9J,GAAHM,MAA8B;AACnC,UAAIwJ,GAAEC,qBACL,KAAA;AACCD,QAAAA,GAAEC,qBAAAA;MAGF,SAFQ/D,IAAAA;AACRhI,UAAAoC,IAAoB4F,IAAG5B,EAAAA;MACvB;AAGF0F,MAAAA,GAAExI,OAAOwI,GAACxH,MAAc,MACxBtC,GAAKM,MAAAA;IACL;AAED,QAAKwJ,KAAI9J,GAAHC,IACL,MAAS1B,KAAI,GAAGA,KAAIuL,GAAEnK,QAAQpB,KACzBuL,CAAAA,GAAEvL,EAAAA,KACL4F,EACC2F,GAAEvL,EAAAA,GACF6F,IACAyF,MAAoC,cAAA,OAAf7J,GAAMX,IAAAA;AAM1BwK,IAAAA,MAA4B,QAAd7J,GAAKI,OACvBpB,EAAWgB,GACXI,GAAAA,GAIDJ,GAAKE,KAAWF,GAAAI,MAAaJ,GAAKK,MAAAA;EAClC;AAGD,WAASkH,EAASxI,IAAO0I,IAAO1G,IAAAA;AAC/B,WAAOC,KAAKT,YAAYxB,IAAOgC,EAAAA;EAC/B;ACnlBeuG,WAAAA,EAAOtH,IAAOiC,IAAW+H,IAAAA;AAAzB1C,QAMXpE,IAOAnB,IAQAG,IACHC;AArBGnE,MAAeA,MAAAA,EAAAkC,GAAcF,IAAOiC,EAAAA,GAYpCF,MAPAmB,KAAoC,cAAA,OAAf8G,MAQtB,OACCA,MAAeA,GAAJ/J,OAA8BgC,GAAAA,KAMzCC,KAAc,CAAA,GACjBC,KAAW,CAAA,GACZI,EACCN,IAPDjC,MAAAA,CAAWkD,MAAe8G,MAAgB/H,IACzC7C,MAAAA,EAAcyB,GAAU,MAAM,CAACb,EAAAA,CAAAA,GAU/B+B,MAAYvD,GACZA,GAAAA,WACAyD,GAAUQ,iBAAAA,CACTS,MAAe8G,KACb,CAACA,EAAAA,IACDjI,KACA,OACAE,GAAUgI,aACVlM,EAAM6B,KAAKqC,GAAUwH,UAAAA,IACrB,MACHvH,IAAAA,CACCgB,MAAe8G,KACbA,KACAjI,KACAA,GACAE,MAAAA,GAAUgI,YACb/G,IACAf,EAAAA,GAIDO,EAAWR,IAAalC,IAAOmC,EAAAA;EAC/B;AASA,WC5De+H,EAAaC,IAAOC,IAAOC,IAAAA;AAAAA,QAEzCC,IACAC,IACAC,IAEGC,IALAC,KAAkBC,EAAO,CAAD,GAAKR,GAAMC,KAAAA;AAWvC,SAAKI,MAJDL,GAAMS,QAAQT,GAAMS,KAAKH,iBAC5BA,KAAeN,GAAMS,KAAKH,eAGjBL,GACA,UAALI,KAAYF,KAAMF,GAAMI,EAAAA,IACd,SAALA,KAAYD,KAAMH,GAAMI,EAAAA,IAEhCE,GAAgBF,EAAAA,IAAAA,WADRJ,GAAMI,EAAAA,KAAAA,WAAoBC,KACbA,GAAaD,EAAAA,IAEbJ,GAAMI,EAAAA;AAS7B,WALIK,UAAUC,SAAS,MACtBJ,GAAgBL,WACfQ,UAAUC,SAAS,IAAIC,EAAMC,KAAKH,WAAW,CAAA,IAAKR,KAG7CY,EACNd,GAAMS,MACNF,IACAJ,MAAOH,GAAMG,KACbC,MAAOJ,GAAMI,KACb,IAAA;EAED;ATlBYW,MAAQC,EAAUD,OCjBzBE,IAAU,EACfC,KSHM,SAAqBC,IAAOC,IAAOC,IAAUC,IAAAA;AAQnD,aANIC,IAEHC,IAEAC,IAEOL,KAAQA,GAAhBM,KACC,MAAKH,KAAYH,GAAHO,QAAAA,CAAyBJ,GAADG,GACrC,KAAA;AAcC,WAbAF,KAAOD,GAAUK,gBAE4B,QAAjCJ,GAAKK,6BAChBN,GAAUO,SAASN,GAAKK,yBAAyBV,EAAAA,CAAAA,GACjDM,KAAUF,GAAHQ,MAG2B,QAA/BR,GAAUS,sBACbT,GAAUS,kBAAkBb,IAAOG,MAAa,CAAhD,CAAA,GACAG,KAAUF,GACVQ,MAGGN,GACH,QAAQF,GAASU,MAAiBV;IAInC,SAFQW,IAAAA;AACRf,MAAAA,KAAQe;IACR;AAIH,UAAMf;EACN,EAAA,GRxCGgB,IAAU,GAgGDC,IAAiB,SAAAhB,IAAAA;AAC7BA,WAAS,QAATA,MAAsCiB,QAArBjB,GAAMQ;EADW,GCxEnCU,EAAcC,UAAUT,WAAW,SAAUU,IAAQC,IAAAA;AAEpD,QAAIC;AAEHA,IAAAA,KADsB,QAAnBC,KAAAC,OAA2BD,KAAAC,QAAoBD,KAAKE,QACnDF,KAAHC,MAEGD,KAAAC,MAAkBE,EAAO,CAAA,GAAIH,KAAKE,KAAAA,GAGlB,cAAA,OAAVL,OAGVA,KAASA,GAAOM,EAAO,CAAD,GAAKJ,EAAAA,GAAIC,KAAKI,KAAAA,IAGjCP,MACHM,EAAOJ,IAAGF,EAAAA,GAIG,QAAVA,MAEAG,KAAJK,QACKP,MACHE,KAAAM,IAAqBC,KAAKT,EAAAA,GAE3BU,EAAcR,IAAAA;EAEf,GAQDL,EAAcC,UAAUa,cAAc,SAAUX,IAAAA;AAC3CE,SAAAA,QAIHA,KAAAzB,MAAAA,MACIuB,MAAUE,KAAAU,IAAsBH,KAAKT,EAAAA,GACzCU,EAAcR,IAAAA;EAEf,GAYDL,EAAcC,UAAUe,SAASC,GA8F7BC,IAAgB,CAAA,GAadC,IACa,cAAA,OAAXC,UACJA,QAAQnB,UAAUoB,KAAKC,KAAKF,QAAQG,QAAAA,CAAAA,IACpCC,YAuBEC,IAAY,SAACC,IAAGC,IAAAA;AAAMD,WAAAA,GAAAhB,IAAAkB,MAAkBD,GAA5BjB,IAAAkB;EAAA,GAuBlBC,EAAOC,MAAkB,GC9OdC,IAAI;;;AOCA,WAAR,aAA8B,KAAK;AACxC,QAAI,OAAO,QAAQ,YAAY,QAAQ,KAAM,QAAO;AACpD,QAAI,EAAE,cAAc,KAAM,QAAO;AACjC,WAAO,IAAI,aAAa,KAAK;AAAA,EAC/B;;;ACNA,WAAS,eAAe,SAAS,SAAS;AACxC,QAAI,YAAY,QAAQ;AACtB,gBAAU;AAAA,IACZ;AACA,QAAI,OAAO,YAAY,UAAU;AAC/B,aAAO,QAAQ,cAAc,OAAO;AAAA,IACtC;AACA,QAAI,aAAa,OAAO,GAAG;AACzB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,MAAO,yBAAQ;;;ACTf,WAAS,iBAAiB,SAAS;AACjC,QAAI;AAOJ,WAAO,WAAW,CAAC,QAAQ,KAAK;AAE9B,gBAAU,QAAQ;AAAA,IACpB;AACA,YAAQ,WAAW,YAAY,OAAO,SAAS,SAAS;AAAA,EAC1D;AACA,MAAO,2BAAQ;;;ACRf,MAAqB,aAArB,MAAgC;AAAA,IAC9B,YAAY,MAAM,MAAM;AACtB,UAAI,SAAS,QAAQ;AACnB,eAAO,CAAC;AAAA,MACV;AACA,WAAK,OAAO;AACZ,WAAK,OAAO;AAAA,IACd;AAAA,IACA,iBAAiB;AACf,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,KAAK,SAAS;AACvB,aAAO,QAAQ,KAAK,EAAE,KAAK,CAAC;AAAA,IAC9B;AAAA,IACA,eAAe,QAAQ;AACrB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,KAAK,SAAS;AACvB,WAAK,KAAK,SAAS;AAAA,QACjB,SAAS;AAAA,UACP,GAAG;AAAA,UACH,CAAC,KAAK,EAAE,GAAG;AAAA,YACT,GAAG,QAAQ,KAAK,EAAE;AAAA,YAClB,GAAG;AAAA,UACL;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,WAAW,SAAS;AAClB,WAAK,OAAO;AAAA,QACV,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MACL;AACA,WAAK,eAAe;AACpB,WAAK,SAAS;AAAA,IAChB;AAAA,IACA,WAAW;AACT,YAAM,eAAe,SAAO,KAAK,KAAK,IAAI,wBAAwB,GAAG,IAAI,OAAO;AAChF,YAAM,aAAa,IAAI,WAAW,CAAC,KAAK,eAAe,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM,GAAG;AAAA,QAC1F;AAAA,MACF,CAAC;AACD,WAAK,OAAO,WAAW,UAAU,KAAK,UAAU;AAChD,WAAK,YAAY,WAAW,eAAe,KAAK,UAAU;AAC1D,WAAK,eAAe;AAAA,IACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,YAAY;AACV,YAAM,IAAI,MAAM,2EAA4E;AAAA,IAC9F;AAAA;AAAA,IAGA,UAAU;AAAA,IAAC;AAAA;AAAA,IAGX,YAAY;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQb,SAAS;AACP,YAAM,IAAI,MAAM,8DAA8D;AAAA,IAChF;AAAA;AAAA,IAGA,SAAS;AAAA,IAAC;AAAA;AAAA;AAAA,IAIV,cAAc;AAAA,IAAC;AAAA,EACjB;;;AC1FA,WAASC,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAYrF,WAAS,SAASE,KAAI;AACpB,QAAI,UAAU;AACd,QAAI,aAAa;AACjB,WAAO,WAAY;AACjB,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC7B;AACA,mBAAa;AACb,UAAI,CAAC,SAAS;AACZ,kBAAU,QAAQ,QAAQ,EAAE,KAAK,MAAM;AACrC,oBAAU;AAKV,iBAAOA,IAAG,GAAG,UAAU;AAAA,QACzB,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAQA,MAAI,YAAyB,gBAAAD,4BAA2B,UAAU;AAClE,MAAM,WAAN,MAAM,kBAAiB,WAAW;AAAA,IAChC,cAAc;AACZ,YAAM,GAAG,SAAS;AAClB,aAAO,eAAe,MAAM,WAAW;AAAA,QACrC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,gBAAgB,QAAQ;AACtB,UAAI;AACJ,UAAI,OAAO,WAAW,YAAY,kBAAkB,WAAU;AAE5D,uBAAe;AAAA,MACjB,WAAW,OAAO,WAAW,YAAY;AAEvC,cAAM,SAAS;AAEf,aAAK,KAAK,eAAe,CAAAE,OAAK;AAC5B,cAAIA,cAAa,QAAQ;AACvB,2BAAeA;AAAA,UACjB;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAM,QAAQ,QAAQ;AACpB,YAAM,mBAAmB,OAAO;AAChC,YAAM,gBAAgB,uBAAe,MAAM;AAC3C,UAAI,eAAe;AACjB,aAAK,gBAAgB;AAIrB,cAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,wBAAgB,UAAU,IAAI,WAAW;AAGzC,QAAAJ,6BAA4B,MAAM,SAAS,EAAE,SAAS,IAAI,SAAS,WAAS;AAI1E,cAAI,CAAC,KAAK,KAAK,UAAU,KAAK,EAAE,EAAG;AACnC,YAAO,KAAK,OAAO,KAAK,GAAG,eAAe;AAC1C,eAAK,YAAY;AAAA,QACnB,CAAC;AACD,aAAK,KAAK,IAAI,cAAc,gBAAgB,sBAAsB,MAAM,GAAG;AAC3E,YAAI,KAAK,KAAK,sBAAsB;AAIlC,wBAAc,YAAY;AAAA,QAC5B;AACA,UAAO,KAAK,OAAO,KAAK,KAAK,SAAS,CAAC,GAAG,eAAe;AACzD,aAAK,KAAK;AACV,sBAAc,YAAY,eAAe;AAGzC,wBAAgB,MAAM,KAAK,KAAK,aAAa,yBAAiB,eAAe,KAAK;AAClF,aAAK,QAAQ;AACb,eAAO,KAAK;AAAA,MACd;AACA,YAAM,eAAe,KAAK,gBAAgB,MAAM;AAChD,UAAI,cAAc;AAChB,aAAK,KAAK,IAAI,cAAc,gBAAgB,OAAO,aAAa,EAAE,EAAE;AACpE,aAAK,SAAS;AACd,aAAK,KAAK,aAAa,UAAU,MAAM;AACvC,aAAK,QAAQ;AACb,eAAO,KAAK;AAAA,MACd;AACA,WAAK,KAAK,IAAI,kBAAkB,gBAAgB,EAAE;AAClD,UAAI,UAAU,kCAAkC,gBAAgB;AAChE,UAAI,OAAO,WAAW,YAAY;AAChC,mBAAW;AAAA,MACb,OAAO;AACL,mBAAW;AAAA,MACb;AACA,YAAM,IAAI,MAAM,OAAO;AAAA,IACzB;AAAA,IACA,OAAO,OAAO;AACZ,UAAI,KAAK,MAAM,MAAM;AACnB,YAAI,uBAAuB;AAC3B,SAAC,yBAAyB,yBAAyBA,6BAA4B,MAAM,SAAS,GAAG,SAAS,MAAM,OAAO,SAAS,sBAAsB,KAAK,wBAAwB,KAAK;AAAA,MAC1L;AAAA,IACF;AAAA,IACA,UAAU;AACR,UAAI,KAAK,eAAe;AACtB,YAAI;AACJ,SAAC,WAAW,KAAK,OAAO,OAAO,SAAS,SAAS,OAAO;AAAA,MAC1D;AACA,WAAK,UAAU;AAAA,IACjB;AAAA;AAAA,IAGA,UAAU;AAAA,IAAC;AAAA;AAAA,IAGX,YAAY;AAAA,IAAC;AAAA,EACf;AACA,MAAO,mBAAQ;;;ACxIA,WAAR,UAA2B,UAAU,uBAAuB,UAAU,IAAI;AAC/E,QAAI,aAAa,KAAK,aAAa,sBAAuB,QAAO;AACjE,QAAI,OAAO,EAAG,QAAO;AACrB,WAAO,YAAY,wBAAwB,YAAY,MAAM,CAAC,KAAK;AAAA,EACrE;;;ACfA,MAAO,0BAAQ;AAAA,IACb,aAAa;AAAA,IACb,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,EAClB;;;ACNA,MAAAK,qBAAuB;;;ACDR,WAAR,4BAA6C,OAAO;AACzD,UAAM,SAAS,CAAC;AAChB,QAAI,OAAO;AACX,QAAI;AACJ,eAAW;AAAA,MACT;AAAA,IACF,KAAK,OAAO,OAAO,KAAK,GAAG;AACzB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI;AAGJ,UAAI,WAAW,SAAS,cAAc,cAAc;AAClD;AACA,SAAC;AAAA,UACC;AAAA,UACA;AAAA,QACF,IAAI,cAAc;AAAA,MACpB;AACA,WAAK,cAAc,OAAO,SAAS,WAAW,UAAU,cAAe,QAAO,KAAK,WAAW,KAAK;AACnG,WAAK,eAAe,OAAO,SAAS,YAAY,UAAU,cAAe,QAAO,KAAK,YAAY,KAAK;AAAA,IACxG;AACA,UAAM,QAAQ,OAAO,OAAO,CAAC,OAAO,kBAAkB;AACpD,aAAO,QAAQ,gBAAgB,OAAO;AAAA,IACxC,GAAG,CAAC;AACJ,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;;;AC9BA,0BAAuB;AACvB,MAAAC,yBAA0B;;;ACFX,WAAR,cAA+B,YAAY;AAChD,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI,IAAI;AAC9C,UAAM,UAAU,KAAK,MAAM,aAAa,EAAE,IAAI;AAC9C,UAAM,UAAU,KAAK,MAAM,aAAa,EAAE;AAC1C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;;;ACRe,WAAR,UAA2B,SAAS;AACzC,UAAM,OAAO,cAAc,OAAO;AAKlC,UAAM,WAAW,KAAK,UAAU,IAAI,KAAK,GAAG,KAAK,KAAK;AACtD,UAAM,aAAa,KAAK,YAAY,IAAI,KAAK,GAAG,KAAK,UAAU,IAAI,KAAK,UAAU,IAAI,KAAK,QAAQ,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE;AAClI,UAAM,aAAa,KAAK,UAAU,IAAI,KAAK,GAAG,KAAK,YAAY,IAAI,KAAK,UAAU,IAAI,KAAK,QAAQ,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE;AAClI,WAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU;AAAA,EAC9C;;;AFNA,MAAM,MAAM;AACZ,MAAM,YAAY,MAAM,IAAI,GAAG;AAC/B,WAAS,UAAU,OAAO;AACxB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,0BAAsB,kBAAAC,SAAW,gBAAgB,cAAc,4BAA4B,oCAAoC;AAAA,MACnI,sBAAsB,gBAAgB,wBAAgB;AAAA,IACxD,GAAG;AAAA,MACD,sCAAsC;AAAA,IACxC,CAAC;AACD,UAAM,gBAAgB,YAAY,mBAAmB,CAAC,iBAAiB,KAAK,mBAAmB;AAAA,MAC7F,aAAa;AAAA,IACf,CAAC,IAAI,KAAK,gBAAgB;AAAA,MACxB,aAAa;AAAA,IACf,CAAC;AACD,WAAO,EAAE,UAAU;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,cAAc,KAAK,gBAAgB;AAAA,QACjC,aAAa;AAAA,MACf,CAAC;AAAA,MACD,SAAS;AAAA,MACT,UAAU;AAAA,MACV,6BAA6B;AAAA,IAC/B,GAAG,aAAa;AAAA,EAClB;AACA,WAAS,SAAS,OAAO;AACvB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,UAAU;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,cAAc,KAAK,aAAa;AAAA,MAChC,SAAS,MAAM,KAAK,SAAS,EAAE,MAAM,MAAM;AAAA,MAE3C,CAAC;AAAA,MACD,6BAA6B;AAAA,MAC7B,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC;AAAA,EACpB;AACA,WAAS,UAAU,OAAO;AACxB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,UAAU;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,OAAO,KAAK,QAAQ;AAAA,MACpB,cAAc,KAAK,QAAQ;AAAA,MAC3B,SAAS,MAAM,KAAK,UAAU;AAAA,MAC9B,WAAW;AAAA,MACX,6BAA6B;AAAA,IAC/B,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,KAAK;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,GAAG,EAAE,UAAU;AAAA,MACb,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,MAAM;AAAA,MACN,GAAG;AAAA,IACL,CAAC,CAAC,CAAC,CAAC;AAAA,EACN;AACA,WAAS,kBAAkB,OAAO;AAChC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,QAAQ,cAAc,KAAK,QAAQ,IAAI,KAAK,OAAO;AACzD,aAAS,oBAAoB;AAC3B,UAAI,cAAe;AACnB,UAAI,CAAC,kBAAkB;AACrB,aAAK,UAAU;AACf;AAAA,MACF;AACA,UAAI,aAAa;AACf,aAAK,UAAU;AACf;AAAA,MACF;AACA,WAAK,SAAS;AAAA,IAChB;AACA,WAAO,EAAE,UAAU;AAAA,MACjB;AAAA,MACA,cAAc;AAAA,MACd,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,6BAA6B;AAAA,IAC/B,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,KAAK;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,GAAG,EAAE,UAAU;AAAA,MACb,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,MAAM;AAAA,MACN,GAAG,cAAc,4BAA4B;AAAA,IAC/C,CAAC,CAAC,CAAC,CAAC;AAAA,EACN;AACA,WAAS,QAAQ,OAAO;AACtB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,UAAU;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,MACT,6BAA6B;AAAA,IAC/B,GAAG,KAAK,MAAM,CAAC;AAAA,EACjB;AACA,WAAS,iBAAiB;AACxB,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,IACV,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,sBAAsB,OAAO;AACpC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,MAAM;AACZ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,gBAAgB,IAAI,GAAG,SAAS,gBAAgB,GAAG,KAAK,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,MAAM,IAAI,OAAO;AAAA,EAC1G;AACA,WAAS,gBAAgB,OAAO;AAC9B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,6BAA6B,aAAa;AAChD,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,8BAA8B,KAAK,wBAAwB;AAAA,MAC5D;AAAA,MACA,aAAa;AAAA,IACf,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,WAAW;AAAA,IACb,GAAG,8BAA8B,UAAU,GAAG,KAAK,uBAAuB;AAAA,MACxE,cAAU,uBAAAC,SAAc,iBAAiB;AAAA,MACzC,WAAO,uBAAAA,SAAc,SAAS;AAAA,IAChC,CAAC,GAAG,UAAU,GAAG,KAAK,aAAa;AAAA,MACjC,MAAM,UAAU,QAAQ;AAAA,IAC1B,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,gBAAgB,OAAO;AAC9B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,KAAK,wBAAwB;AAAA,MAC9B;AAAA,MACA,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,sBAAsB,OAAO;AACpC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,0BAAsB,kBAAAD,SAAW,gBAAgB,cAAc,4BAA4B,4CAA4C;AAC7I,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,KAAK,mBAAmB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC,GAAG,EAAE,UAAU;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,MACX,cAAc,KAAK,gBAAgB;AAAA,QACjC,aAAa;AAAA,MACf,CAAC;AAAA,MACD,SAAS;AAAA,IACX,GAAG,KAAK,QAAQ,CAAC,CAAC;AAAA,EACpB;AACA,WAAS,qBAAqB,OAAO;AACnC,UAAM;AAAA,MACJ;AAAA,MACA,wBAAAE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,4BAA4B,YAAY;AAC9C,QAAI,CAAC,mBAAmB,eAAe;AACrC,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,cAAc,KAAK,QAAQ,IAAI,KAAK,WAAW;AAC7D,aAAS,wBAAwB;AAC/B,UAAI,CAAC,eAAe,CAAC,6BAA6B,qBAAqB;AACrE,YAAIA,yBAAwB;AAC1B,iBAAO,EAAE,iBAAiB;AAAA,YACxB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AACA,eAAO,EAAE,iBAAiB;AAAA,UACxB;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AACA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,cAAc;AAAA,MACd;AAAA,IACF,GAAG,CAAC,cAAc,EAAE,gBAAgB,IAAI,IAAI,MAAM,EAAE,OAAO;AAAA,MACzD,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAGA,0BAAyB,GAAG,KAAK,KAAK,aAAa,MAAM,KAAK,GAAG,sBAAsB,GAAG,4BAA4B,EAAE,uBAAuB;AAAA,MAChJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,IAAI,IAAI,CAAC;AAAA,EACZ;AACA,WAAS,oBAAoB,OAAO;AAClC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,MAAM;AAAA,MACN,OAAO,KAAK,UAAU;AAAA,IACxB,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC;AAAA,EACzB;AACA,WAAS,iBAAiB,OAAO;AAC/B,UAAM;AAAA,MACJ,OAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,aAAS,oBAAoB;AAC3B,YAAM,eAAe,GAAG,KAAK,cAAc,CAAC;AAAA;AAAA,GAASA,MAAK;AAE1D,YAAM,YAAY;AAAA,IACpB;AACA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,OAAO,KAAK,cAAc;AAAA,IAC5B,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MACZ,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,KAAK,cAAc,GAAG,EAAE,UAAU;AAAA,MACnC,WAAW;AAAA,MACX,cAAc,KAAK,kBAAkB;AAAA,MACrC,0BAA0B;AAAA,MAC1B,sBAAsB;AAAA,MACtB,SAAS;AAAA,MACT,MAAM;AAAA,IACR,GAAG,GAAG,CAAC,GAAG,EAAE,iBAAiB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC,CAAC;AAAA,EACL;;;AFpWA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEW,WAAR,UAA2B,OAAO;AACvC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,aAAS,mBAAmB;AAC1B,cAAQ,aAAa;AAAA,QACnB,KAAK;AAAA,QACL,KAAK,qBACH;AACE,gBAAM,WAAW,4BAA4B,KAAK;AAClD,cAAI,SAAS,SAAS,eAAe;AACnC,mBAAO,SAAS,QAAQ;AAAA,UAC1B;AACA,iBAAO;AAAA,QACT;AAAA,QACF,KAAK,aACH;AACE,iBAAO;AAAA,QACT;AAAA,QACF,KAAK,iBACH;AACE,cAAI,CAACA,yBAAwB;AAC3B,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QACF;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AACA,aAAS,qBAAqB;AAC5B,cAAQ,aAAa;AAAA,QACnB,KAAK;AAAA,QACL,KAAK,qBACH;AACE,gBAAM;AAAA,YACJ;AAAA,UACF,IAAI,4BAA4B,KAAK;AACrC,iBAAO,SAAS;AAAA,QAClB;AAAA,QACF,KAAK,iBACH;AACE,cAAI,CAACA,yBAAwB;AAC3B,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QACF;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AACA,aAAS,cAAc;AACrB,UAAI,gBAAgB;AAClB,eAAO;AAAA,MACT;AACA,cAAQ,aAAa;AAAA,QACnB,KAAK;AACH,iBAAO,oBAAoB,aAAa;AAAA,QAC1C,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AACA,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,WAAW,YAAY;AAC7B,UAAM,QAAQ,iBAAiB,OAAO,gBAAgB;AACtD,UAAM,gBAAgB,CAACD,UAAS,YAAY,CAAC,sBAAsB,CAAC,eAAe,kBAAkB,CAAC;AACtG,UAAM,gBAAgB,CAAC,oBAAoB,gBAAgB,iBAAiB,gBAAgB;AAC5F,UAAM,qBAAqB,oBAAoB,CAAC,yBAAyB,gBAAgB;AACzF,UAAM,eAAeA,UAAS,CAAC,iBAAiB,CAAC;AACjD,UAAM,cAAc,qBAAqB,gBAAgB;AACzD,UAAM,yBAAqB,mBAAAE,SAAW,2BAA2B;AAAA,MAC/D,oBAAoB,mBAAmB;AAAA,IACzC,CAAC;AACD,UAAM,0BAAsB,mBAAAA,SAAW,kBAAkB,MAAM,WAAW,IAAI;AAAA,MAC5E,cAAc;AAAA,IAChB,CAAC;AACD,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,eAAe;AAAA,IACjB,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL,OAAO,GAAG,KAAK;AAAA,MACjB;AAAA,MACA,MAAM;AAAA,MACN,cAAc,GAAG,KAAK;AAAA,MACtB,kBAAkB,GAAG,KAAK;AAAA,MAC1B,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACnB,CAAC,IAAI,MAAM;AACT,cAAQ,aAAa;AAAA,QACnB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,EAAE,uBAAuB;AAAA,YAC9B,UAAU,4BAA4B,KAAK;AAAA,UAC7C,CAAC;AAAA,QACH,KAAK;AACH,iBAAO,EAAE,qBAAqB;AAAA,YAC5B;AAAA,UACF,CAAC;AAAA,QACH,KAAK;AACH,iBAAO,EAAE,kBAAkB;AAAA,YACzB,OAAOF;AAAA,YACP;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH,KAAK;AACH,iBAAO,EAAE,sBAAsB;AAAA,YAC7B;AAAA,YACA,wBAAwBC;AAAA,YACxB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AACE,iBAAO;AAAA,MACX;AAAA,IACF,GAAG,GAAG,EAAE,OAAO;AAAA,MACb,WAAW;AAAA,IACb,GAAG,kBAAkB,gBAAgB,EAAE,WAAW;AAAA,MAChD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,IAAI,MAAM,eAAe,EAAE,UAAU;AAAA,MACpC;AAAA,MACA;AAAA,IACF,CAAC,IAAI,MAAM,qBAAqB,EAAE,mBAAmB;AAAA,MACnD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,IAAI,MAAM,gBAAgB,EAAE,WAAW;AAAA,MACtC;AAAA,MACA;AAAA,IACF,CAAC,IAAI,MAAM,cAAc,EAAE,SAAS;AAAA,MAClC;AAAA,MACA;AAAA,IACF,CAAC,IAAI,IAAI,CAAC;AAAA,EACZ;AACA,YAAU,eAAe;AAAA,IACvB,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,EACvB;;;AK/MA,MAAOE,kBAAQ;AAAA,IACb,SAAS;AAAA;AAAA,MAEP,WAAW;AAAA;AAAA,MAEX,UAAU;AAAA;AAAA,MAEV,cAAc;AAAA;AAAA,MAEd,QAAQ;AAAA;AAAA,MAER,OAAO;AAAA;AAAA,MAEP,QAAQ;AAAA;AAAA,MAER,OAAO;AAAA;AAAA,MAEP,QAAQ;AAAA;AAAA,MAER,MAAM;AAAA;AAAA,MAEN,sBAAsB;AAAA,QACpB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA;AAAA,MAEA,qBAAqB;AAAA;AAAA,MAErB,WAAW;AAAA;AAAA,MAEX,cAAc;AAAA,QACZ,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA;AAAA;AAAA,MAGA,iBAAiB;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,iBAAiB;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,kBAAkB;AAAA,IACpB;AAAA,EACF;;;AChDA,WAASC,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAQrF,MAAME,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAEA,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB;AAC1B,WAAS,kBAAkBC,QAAO,eAAe,gBAAgB,OAAO;AACtE,QAAIA,QAAO;AACT,aAAO,wBAAgB;AAAA,IACzB;AACA,QAAI,eAAe;AACjB,aAAO,wBAAgB;AAAA,IACzB;AACA,QAAI,gBAAgB;AAClB,aAAO,wBAAgB;AAAA,IACzB;AACA,QAAI,QAAQ,wBAAgB;AAC5B,UAAM,UAAU,OAAO,KAAK,KAAK;AACjC,aAASC,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACvC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,MAAM,QAAQA,EAAC,CAAC;AAEpB,UAAI,SAAS,iBAAiB,CAAC,SAAS,gBAAgB;AACtD,eAAO,wBAAgB;AAAA,MACzB;AAGA,UAAI,SAAS,YAAY;AACvB,gBAAQ,wBAAgB;AAAA,MAC1B;AAGA,UAAI,SAAS,eAAe,UAAU,wBAAgB,qBAAqB;AACzE,gBAAQ,wBAAgB;AAAA,MAC1B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGA,MAAMC,kBAAiB;AAAA,IACrB,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,EACrB;AAMA,MAAI,kBAA+B,gBAAAJ,4BAA2B,gBAAgB;AAC9E,MAAI,yBAAsC,gBAAAA,4BAA2B,uBAAuB;AAC5F,MAAI,iBAA8B,gBAAAA,4BAA2B,eAAe;AAC5E,MAAI,eAA4B,gBAAAA,4BAA2B,aAAa;AACxE,MAAI,oBAAiC,gBAAAA,4BAA2B,kBAAkB;AAClF,MAAI,iBAA8B,gBAAAA,4BAA2B,eAAe;AAC5E,MAAqBK,aAArB,cAAuC,iBAAS;AAAA,IAC9C,YAAY,MAAM,MAAM;AACtB,YAAM,MAAM;AAAA,QACV,GAAGD;AAAA,QACH,GAAG;AAAA,MACL,CAAC;AACD,aAAO,eAAe,MAAM,mBAAmB;AAAA,QAC7C,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,wBAAwB;AAAA,QAClD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,cAAc;AAAA,QACxC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,WAAK,cAAc,MAAM;AACvB,eAAO,KAAK,KAAK,OAAO,EAAE,MAAM,MAAM;AAAA,QAEtC,CAAC;AAAA,MACH;AACA,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,UAAU;AAAA,QACV,OAAO,MAAM;AACX,gBAAM;AAAA,YACJ;AAAA,UACF,IAAI,KAAK,KAAK,SAAS;AACvB,UAAAN,6BAA4B,MAAM,cAAc,EAAE,cAAc,IAAI;AACpE,UAAAA,6BAA4B,MAAM,YAAY,EAAE,YAAY,IAAI;AAChE,cAAI,gBAAgB;AAClB,YAAAA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,IAAI,OAAO,OAAO,eAAe,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS;AAC3I,kBAAI;AAAA,gBACF;AAAA,cACF,IAAI;AACJ,qBAAO,KAAK,SAAS;AAAA,YACvB,GAAG,CAAC;AAKJ,iBAAK,KAAK,KAAK,mBAAmB;AAClC;AAAA,UACF;AACA,UAAAA,6BAA4B,MAAM,eAAe,EAAE,eAAe,IAAI,YAAY,IAAI;AACtF,UAAAA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,IAAI;AAAA,QACtF;AAAA,MACF,CAAC;AACD,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AACb,WAAK,OAAO;AACZ,WAAK,gBAAgBQ;AACrB,WAAK,SAAS;AACd,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,WAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AAAA,IACvC;AAAA,IACA,OAAO,OAAO;AACZ,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAAJ;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK,KAAK,yBAAyB;AAKvC,YAAM,sBAAsB,iBAAiB,OAAO,OAAO,KAAK,IAAI;AACpE,YAAM,mBAAmB,CAAC,CAAC,aAAa;AACxC,YAAMK,0BAAyB,aAAa,mBAAmB;AAC/D,UAAI,YAAY;AAChB,UAAI,oBAAoB;AACxB,mBAAa,QAAQ,UAAQ;AAC3B,qBAAa,KAAK,SAAS,cAAc;AACzC,6BAAqB,KAAK,SAAS,iBAAiB;AAAA,MACtD,CAAC;AACD,YAAM,WAAWT,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,EAAE;AAAA,QACvF,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW,YAAY;AAAA,MACzB,CAAC;AACD,aAAO,UAAY;AAAA,QACjB,OAAAI;AAAA,QACA,aAAa,kBAAkBA,QAAO,eAAe,gBAAgB,MAAM,SAAS,CAAC,CAAC;AAAA,QACtF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,cAAc;AAAA,QACxB,UAAU,oBAAoB;AAAA,QAC9B,YAAY,aAAa;AAAA,QACzB;AAAA,QACA;AAAA,QACA,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,QACX,aAAa,KAAK;AAAA,QAClB,mBAAmB,KAAK,KAAK;AAAA,QAC7B;AAAA,QACA,wBAAAK;AAAA,QACA,qBAAqB,KAAK,KAAK;AAAA,QAC/B,kBAAkB,KAAK,KAAK;AAAA,QAC5B,iBAAiB,KAAK,KAAK;AAAA,QAC3B,uBAAuB,KAAK,KAAK;AAAA,QACjC,kBAAkB,KAAK,KAAK;AAAA,QAC5B,iBAAiB,KAAK,KAAK;AAAA;AAAA,QAE3B,eAAe,KAAK;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,IACA,UAAU;AAER,YAAM,UAAU,KAAK;AACrB,YAAM,YAAY,yBAAiB,OAAO;AAC1C,UAAI,CAAC,WAAW;AACd,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAAA,IACA,UAAU;AACR,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,QAAQ;AACV,aAAK,MAAM,QAAQ,IAAI;AAAA,MACzB;AACA,WAAK,KAAK,GAAG,UAAUT,6BAA4B,MAAM,cAAc,EAAE,cAAc,CAAC;AAIxF,MAAAA,6BAA4B,MAAM,eAAe,EAAE,eAAe,IAAI,YAAY,IAAI;AACtF,MAAAA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,CAAC,IAAI,SAAS,KAAK,KAAK,SAAS,eAAe,CAAC;AAAA,IACnK;AAAA,IACA,YAAY;AACV,WAAK,QAAQ;AACb,WAAK,KAAK,IAAI,UAAUA,6BAA4B,MAAM,cAAc,EAAE,cAAc,CAAC;AAAA,IAC3F;AAAA,EACF;AACA,WAAS,mBAAmB,YAAY;AACtC,QAAI,uBAAuB;AAC3B,QAAI,WAAW,UAAU,KAAK,WAAW,cAAc,GAAG;AACxD,aAAO;AAAA,IACT;AAGA,KAAC,0BAA0B,wBAAwBA,6BAA4B,MAAM,eAAe,GAAG,eAAe,MAAM,OAAO,yBAAyB,sBAAsB,eAAe,IAAI,YAAY,IAAI;AACrN,UAAM,KAAK,YAAY,IAAI,IAAIA,6BAA4B,MAAM,eAAe,EAAE,eAAe;AACjG,QAAI,OAAO,GAAG;AACZ,UAAI;AACJ,aAAO,KAAK,QAAQ,yBAAyBA,6BAA4B,MAAM,YAAY,EAAE,YAAY,MAAM,OAAO,yBAAyB,KAAK,GAAG,IAAI;AAAA,IAC7J;AACA,UAAM,6BAA6B,WAAW,WAAWA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB;AACzI,IAAAA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,IAAI,WAAW;AAI/F,QAAI,8BAA8B,GAAG;AACnC,UAAI;AACJ,aAAO,KAAK,QAAQ,yBAAyBA,6BAA4B,MAAM,YAAY,EAAE,YAAY,MAAM,OAAO,yBAAyB,KAAK,GAAG,IAAI;AAAA,IAC7J;AACA,UAAM,eAAe,6BAA6B;AAClD,UAAM,gBAAgBA,6BAA4B,MAAM,cAAc,EAAE,cAAc,KAAK,OAAO,eAAe,UAAU,cAAcA,6BAA4B,MAAM,cAAc,EAAE,cAAc,GAAG,qBAAqB,EAAE;AACnO,IAAAA,6BAA4B,MAAM,cAAc,EAAE,cAAc,IAAI;AACpE,UAAM,aAAa,WAAW,YAAY;AAC1C,UAAM,qBAAqB,KAAK,IAAIA,6BAA4B,MAAM,YAAY,EAAE,YAAY,IAAI,IAAI,CAAC;AACzG,UAAM,cAAcA,6BAA4B,MAAM,YAAY,EAAE,YAAY,KAAK,OAAO,aAAa,UAAU,YAAY,oBAAoB,mBAAmB,EAAE;AACxK,IAAAA,6BAA4B,MAAM,YAAY,EAAE,YAAY,IAAI;AAChE,IAAAA,6BAA4B,MAAM,eAAe,EAAE,eAAe,IAAI,YAAY,IAAI;AACtF,WAAO,KAAK,MAAM,cAAc,GAAG,IAAI;AAAA,EACzC;AACA,EAAAO,WAAU,UAAUJ,aAAY;;;AC5QhC,MAAM,gBAAgB;AACtB,MAAqB,SAArB,cAAoC,EAAU;AAAA,IAC5C,cAAc;AACZ,YAAM,GAAG,SAAS;AAClB,WAAK,MAAM,EAAU;AAAA,IACvB;AAAA,IACA,mBAAmB,UAAU;AAC3B,WAAK,IAAI,QAAQ,MAAM,UAAU;AACjC,WAAK,IAAI,QAAQ,MAAM,YAAY;AACnC,iBAAW,UAAU,aAAa;AAAA,IACpC;AAAA,IACA,mBAAmB,UAAU;AAC3B,WAAK,IAAI,QAAQ,MAAM,UAAU;AACjC,WAAK,IAAI,QAAQ,MAAM,YAAY;AACnC,iBAAW,UAAU,aAAa;AAAA,IACpC;AAAA,IACA,SAAS;AACP,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,QACX,KAAK,KAAK;AAAA,MACZ,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;;;ACjBA,WAAS,OAAO,KAAK,OAAO;AAC1B,WAAO,OAAO,OAAO,KAAK,KAAK;AAAA,EACjC;AACA,WAAS,OAAO,OAAO,UAAU;AAC/B,QAAI;AACJ,YAAQ,aAAa,SAAS,OAAO,SAAS,MAAM,QAAQ,OAAO,aAAa;AAAA,EAClF;AACA,WAAS,QAAQ,WAAW,MAAM;AAChC,UAAM,QAAQ,UAAU,mBAAmB,UAAU,iBAAiB,CAAC;AACvE,WAAO,MAAM,IAAI,MAAM,MAAM,IAAI,IAAI,CAAAO,OAAK;AACxC,gBAAU,KAAK,IAAI,IAAIA;AAAA,IACzB;AAAA,EACF;AACA,WAAS,gBAAgB,UAAU;AACjC,UAAM,MAAM,CAAC;AACb,aAASC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,UAAI,SAASA,EAAC,KAAK,MAAM;AACvB,cAAM,MAAM,OAAO,SAASA,EAAC,GAAGA,GAAE,SAAS,EAAE,CAAC;AAC9C,YAAI,GAAG,IAAI,SAASA,EAAC;AAAA,MACvB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,mBAAmB,MAAM,MAAM;AACtC,WAAO,QAAQ,CAAC;AAChB,WAAO,QAAQ,CAAC;AAChB,UAAM,iBAAiB,SAAO,KAAK,eAAe,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG;AAI7E,UAAM,kBAAkB,CAAC;AACzB,QAAI,cAAc,CAAC;AACnB,eAAW,WAAW,MAAM;AAC1B,UAAI,KAAK,eAAe,OAAO,GAAG;AAChC,YAAI,YAAY,QAAQ;AACtB,0BAAgB,OAAO,IAAI;AAC3B,wBAAc,CAAC;AAAA,QACjB;AAAA,MACF,OAAO;AACL,oBAAY,KAAK,OAAO;AAAA,MAC1B;AAAA,IACF;AACA,UAAM,eAAe,CAAC;AACtB,eAAW,WAAW,MAAM;AAC1B,UAAI,gBAAgB,eAAe,OAAO,GAAG;AAC3C,iBAASA,KAAI,GAAGA,KAAI,gBAAgB,OAAO,EAAE,QAAQA,MAAK;AACxD,gBAAM,iBAAiB,gBAAgB,OAAO,EAAEA,EAAC;AACjD,uBAAa,gBAAgB,OAAO,EAAEA,EAAC,CAAC,IAAI,eAAe,cAAc;AAAA,QAC3E;AAAA,MACF;AACA,mBAAa,OAAO,IAAI,eAAe,OAAO;AAAA,IAChD;AAGA,aAASA,KAAI,GAAGA,KAAI,YAAY,QAAQA,MAAK;AAC3C,mBAAa,YAAYA,EAAC,CAAC,IAAI,eAAe,YAAYA,EAAC,CAAC;AAAA,IAC9D;AACA,WAAO;AAAA,EACT;AACA,MAAM,WAAW,CAAAA,OAAKA;AACtB,MAAM,kBAAN,cAA8B,EAAU;AAAA,IACtC,YAAY,OAAO,SAAS;AAC1B,YAAM,OAAO,OAAO;AACpB,WAAK,OAAO,CAAC;AACb,WAAK,QAAQ;AAAA,QACX,UAAU,gBAAgB,EAAa,EAAa,KAAK,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AAAA,MACjF;AACA,WAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AACjD,WAAK,eAAe,KAAK,aAAa,KAAK,IAAI;AAC/C,WAAK,eAAe,KAAK,aAAa,KAAK,IAAI;AAAA,IACjD;AAAA,IACA,qBAAqB;AACnB,WAAK,6BAA6B,CAAC;AACnC,WAAK,mBAAmB,CAAC;AACzB,WAAK,cAAc,CAAC;AACpB,WAAK,cAAc,CAAC;AAAA,IACtB;AAAA,IACA,oBAAoB;AAClB,YAAM,sBAAsB,KAAK,MAAM;AACvC,iBAAW,OAAO,qBAAqB;AACrC,YAAI,oBAAoB,GAAG,GAAG;AAE5B,eAAK,cAAc,GAAG;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,IACA,0BAA0B,WAAW;AACnC,YAAM,mBAAmB,gBAAgB,EAAa,UAAU,QAAQ,KAAK,CAAC,CAAC;AAC/E,YAAM,mBAAmB,KAAK,MAAM;AACpC,WAAK,SAAS,gBAAc;AAAA,QAC1B,UAAU,mBAAmB,UAAU,UAAU,gBAAgB;AAAA,MACnE,EAAE;AACF,UAAI;AACJ,WAAK,OAAO,kBAAkB;AAC5B,YAAI,iBAAiB,eAAe,GAAG,GAAG;AACxC,gBAAM,UAAU,oBAAoB,iBAAiB,eAAe,GAAG;AAEvE,cAAI,iBAAiB,GAAG,KAAK,WAAW,KAAK,2BAA2B,GAAG,GAAG;AAC5E,iBAAK,YAAY,KAAK,GAAG;AACzB,iBAAK,iBAAiB,KAAK,GAAG;AAAA,UAChC,WAAW,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,2BAA2B,GAAG,GAAG;AACrF,iBAAK,YAAY,KAAK,GAAG;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AACA,WAAK,OAAO,kBAAkB;AAC5B,YAAI,iBAAiB,eAAe,GAAG,GAAG;AACxC,gBAAM,UAAU,oBAAoB,iBAAiB,eAAe,GAAG;AACvE,cAAI,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,2BAA2B,GAAG,GAAG;AAC9E,iBAAK,YAAY,KAAK,GAAG;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,qBAAqB;AACnB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,WAAK,cAAc,CAAC;AACpB,kBAAY,QAAQ,KAAK,YAAY;AACrC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,WAAK,cAAc,CAAC;AACpB,kBAAY,QAAQ,KAAK,YAAY;AAAA,IACvC;AAAA,IACA,aAAa,KAAK;AAChB,YAAM,MAAM,KAAK,iBAAiB,QAAQ,GAAG;AAC7C,UAAI,QAAQ,IAAI;AACd,aAAK,iBAAiB,OAAO,KAAK,CAAC;AAAA,MACrC;AAAA,IACF;AAAA,IACA,cAAc,KAAK;AACjB,WAAK,2BAA2B,GAAG,IAAI;AACvC,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI,aAAa,QAAQ,UAAU,qBAAqB;AACtD,kBAAU,oBAAoB,KAAK,qBAAqB,KAAK,MAAM,GAAG,CAAC;AAAA,MACzE,OAAO;AACL,aAAK,qBAAqB,GAAG;AAAA,MAC/B;AAAA,IACF;AAAA,IACA,qBAAqB,KAAK;AACxB,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI,aAAa,QAAQ,UAAU,oBAAoB;AACrD,kBAAU,mBAAmB;AAAA,MAC/B;AACA,aAAO,KAAK,2BAA2B,GAAG;AAC1C,WAAK,aAAa,GAAG;AACrB,YAAM,sBAAsB,gBAAgB,EAAa,KAAK,MAAM,QAAQ,KAAK,CAAC,CAAC;AACnF,UAAI,CAAC,uBAAuB,CAAC,oBAAoB,eAAe,GAAG,GAAG;AAEpE,aAAK,aAAa,GAAG;AAAA,MACvB;AAAA,IACF;AAAA,IACA,aAAa,KAAK;AAChB,WAAK,2BAA2B,GAAG,IAAI;AACvC,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI,aAAa,QAAQ,UAAU,oBAAoB;AACrD,kBAAU,mBAAmB,KAAK,oBAAoB,KAAK,MAAM,GAAG,CAAC;AAAA,MACvE,OAAO;AACL,aAAK,oBAAoB,GAAG;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,oBAAoB,KAAK;AACvB,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI,aAAa,QAAQ,UAAU,mBAAmB;AACpD,kBAAU,kBAAkB;AAAA,MAC9B;AACA,aAAO,KAAK,2BAA2B,GAAG;AAC1C,WAAK,aAAa,GAAG;AACrB,YAAM,sBAAsB,gBAAgB,EAAa,KAAK,MAAM,QAAQ,KAAK,CAAC,CAAC;AACnF,UAAI,CAAC,uBAAuB,CAAC,oBAAoB,eAAe,GAAG,GAAG;AAEpE,aAAK,aAAa,GAAG;AAAA,MACvB;AAAA,IACF;AAAA,IACA,aAAa,KAAK;AAGhB,YAAM,MAAM,KAAK,iBAAiB,QAAQ,GAAG;AAC7C,UAAI,QAAQ,IAAI;AACd;AAAA,MACF;AACA,WAAK,2BAA2B,GAAG,IAAI;AACvC,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI,aAAa,QAAQ,UAAU,oBAAoB;AACrD,kBAAU,mBAAmB,KAAK,mBAAmB,KAAK,MAAM,GAAG,CAAC;AAAA,MACtE,OAAO;AAIL,aAAK,mBAAmB,GAAG;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,mBAAmB,KAAK;AAGtB,YAAM,MAAM,KAAK,iBAAiB,QAAQ,GAAG;AAC7C,UAAI,QAAQ,IAAI;AACd;AAAA,MACF;AACA,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI,aAAa,QAAQ,UAAU,mBAAmB;AACpD,kBAAU,kBAAkB;AAAA,MAC9B;AACA,aAAO,KAAK,2BAA2B,GAAG;AAC1C,YAAM,sBAAsB,gBAAgB,EAAa,KAAK,MAAM,QAAQ,KAAK,CAAC,CAAC;AACnF,UAAI,uBAAuB,oBAAoB,eAAe,GAAG,GAAG;AAElE,aAAK,aAAa,GAAG;AAAA,MACvB,OAAO;AACL,cAAM,WAAW,OAAO,CAAC,GAAG,KAAK,MAAM,QAAQ;AAC/C,eAAO,SAAS,GAAG;AACnB,aAAK,SAAS;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,OAAO,MAAM,OAAO;AAClB,UAAI;AAAA,QACF;AAAA,QACA;AAAA,QACA,gBAAAC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,IAAI;AACJ,UAAI;AAAA,QACF;AAAA,MACF,IAAI;AAGJ,YAAM,mBAAmB,OAAO,QAAQ,QAAQ,EAAE,IAAI,WAAS;AAC7D,YAAI,CAAC,KAAK,KAAK,IAAI;AACnB,YAAI,CAAC,MAAO,QAAO;AACnB,cAAM,MAAM,QAAQ,MAAM,GAAG;AAC7B,eAAO,EAAa,aAAa,KAAK,GAAG;AAAA,UACvC;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,CAAC,EAAE,OAAO,OAAO;AACjB,aAAO,EAAE,WAAW,OAAO,gBAAgB;AAAA,IAC7C;AAAA,EACF;AACA,kBAAgB,eAAe;AAAA,IAC7B,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AACA,MAAO,0BAAQ;;;AC5Pf,MAAMC,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAQA,MAAqB,WAArB,cAAsC,iBAAS;AAAA,IAC7C,YAAY,MAAM,MAAM;AACtB,YAAM,MAAM,IAAI;AAChB,WAAK,SAAS,WAAS;AACrB,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,QACb,GAAG,EAAE,yBAAiB,MAAM,MAAM,KAAK,IAAI,UAAQ,EAAE,QAAQ;AAAA,UAC3D,KAAK,KAAK;AAAA,QACZ,GAAG,EAAE,KAAK;AAAA,UACR,MAAM;AAAA,QACR,GAAG,KAAK,SAAS,KAAK,KAAK,WAAW,EAAE,QAAQ;AAAA,UAC9C,cAAc,KAAK;AAAA,UACnB,0BAA0B;AAAA,UAC1B,sBAAsB;AAAA,UACtB,MAAM;AAAA,UACN,SAAS;AAAA;AAAA,YAET,MAAM,GAAG,KAAK,OAAO;AAAA;AAAA,GAAS,KAAK,OAAO,EAAE;AAAA;AAAA,QAC9C,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,MACb;AACA,WAAK,OAAO;AACZ,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AAAA,IACf;AAAA,IACA,UAAU;AACR,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,QAAQ;AACV,aAAK,MAAM,QAAQ,IAAI;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AACA,WAAS,UAAUA,aAAY;;;ACpD/B,MAAM,mBAAmB;AACzB,WAAS,cAAc,SAAS,MAAM,QAAQ;AAC5C,QAAI,MAAM;AAEV,UAAM,cAAc,iBAAiB,KAAK,OAAO;AAGjD,UAAM,YAAY,QAAQ,iBAAiB,KAAK,aAAa,OAAO,iBAAiB,eAAe,OAAO,SAAS,YAAY,CAAC,MAAM,OAAO,OAAO;AACrJ,QAAI;AACJ,SAAK,eAAe,OAAO,SAAS,YAAY,CAAC,MAAM,MAAM;AAC3D,YAAM,SAAS,KAAK,mBAAmB,YAAY,CAAC,CAAC,CAAC;AACtD,YAAM,QAAQ,IAAI,WAAW,OAAO,MAAM;AAC1C,eAASC,KAAI,GAAGA,KAAI,OAAO,QAAQA,MAAK;AACtC,cAAMA,EAAC,IAAI,OAAO,WAAWA,EAAC;AAAA,MAChC;AACA,aAAO,CAAC,KAAK;AAAA,IACf,YAAY,eAAe,OAAO,SAAS,YAAY,CAAC,MAAM,MAAM;AAClE,aAAO,CAAC,mBAAmB,YAAY,CAAC,CAAC,CAAC;AAAA,IAC5C;AAGA,QAAI,QAAQ;AACV,aAAO,IAAI,KAAK,MAAM,KAAK,QAAQ,IAAI;AAAA,QACrC,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AACA,WAAO,IAAI,KAAK,MAAM;AAAA,MACpB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,MAAO,wBAAQ;;;AC3BA,WAAR,YAA6B,KAAK;AACvC,WAAO,IAAI,WAAW,OAAO;AAAA,EAC/B;;;ACLe,WAAR,mBAAoC,UAAU;AACnD,QAAI,CAAC,SAAU,QAAO;AAEtB,WAAO,sDAAsD,KAAK,QAAQ;AAAA,EAC5E;;;ACJA,WAASC,GAAEA,IAAEC,IAAEC,IAAE;AAAC,WAAOD,MAAKD,KAAE,OAAO,eAAeA,IAAEC,IAAE,EAAC,OAAMC,IAAE,YAAW,MAAG,cAAa,MAAG,UAAS,KAAE,CAAC,IAAEF,GAAEC,EAAC,IAAEC,IAAEF;AAAA,EAAC;AAAC,MAAIC,KAAE,eAAa,OAAO,OAAK,OAAK;AAAO,MAAMC,KAAE,eAAa,OAAO;AAA5B,MAAsCC,KAAED,MAAG,eAAa,OAAO;AAA/D,MAAgFE,KAAE,EAAE,eAAa,OAAO,UAAQ,eAAa,OAAO,WAAS,CAAC,QAAQ,YAAU,CAAC,QAAQ,SAAS;AAAlL,MAAwLC,KAAEJ,GAAE;AAA5L,MAAmMK,KAAE,CAAC,CAACD;AAAvM,MAAyME,KAAE,CAAAP,OAAG,WAASA;AAAE,WAASQ,GAAER,IAAE;AAAC,WAAO,WAASA,OAAIA,cAAa,MAAI,MAAIA,GAAE,OAAK,MAAI,OAAO,OAAOA,EAAC,EAAE,OAAOO,EAAC,EAAE;AAAA,EAAO;AAAC,WAASE,GAAET,IAAE;AAAC,QAAIC,KAAE,IAAI,MAAMD,EAAC;AAAE,UAAM,OAAOC,GAAE,OAAMA;AAAA,EAAC;AAAC,WAASS,GAAEV,IAAE;AAAC,QAAIC,MAAE,SAASD,IAAE;AAAC,UAAIC,KAAE;AAAE,aAAOD,GAAE,KAAK,YAAUC,MAAG,OAAMD,GAAE,KAAK,YAAUC,MAAG,OAAMD,GAAE,cAAYC,MAAG,OAAMD,GAAE,gBAAcC,MAAG,OAAMD,GAAE,IAAI,YAAUC,MAAG,MAAKD,GAAE,QAAQ,YAAUC,MAAG,MAAKD,GAAE,KAAK,YAAUC,MAAG,OAAMA,KAAE;AAAA,IAAI,GAAED,EAAC;AAAE,WAAOA,GAAE,KAAK,YAAUC,MAAG,KAAID,GAAE,IAAI,YAAUC,MAAG,MAAKD,GAAE,KAAK,YAAUC,MAAG,OAAMD,GAAE,IAAI,YAAUC,MAAG,MAAKA;AAAA,EAAC;AAAC,MAAMU,KAAE,CAAAX,OAAG,OAAO,aAAa,MAAM,MAAKA,EAAC;AAA3C,MAA6CY,KAAE,eAAa,OAAO,cAAY,IAAI,YAAY,OAAO,IAAE;AAAO,MAAMC,KAAN,MAAM,GAAC;AAAA,IAAC,OAAO,KAAKb,IAAEC,IAAE;AAAC,aAAOD,cAAa,QAAMA,GAAE,OAAKC,KAAED,KAAE,IAAI,GAAEA,IAAE,QAAO,QAAOC,EAAC;AAAA,IAAC;AAAA,IAAC,YAAYD,IAAEC,KAAE,GAAEC,IAAEC,IAAE;AAAC,UAAG,aAAW,OAAOA,OAAI,KAAK,KAAGA,KAAG,MAAM,QAAQH,EAAC,MAAIA,KAAE,IAAI,WAAWA,EAAC,IAAG,MAAIA,GAAE,MAAK,aAAW,GAAE,KAAK,aAAW;AAAA,eAAUA,cAAa,aAAY;AAAC,mBAASE,OAAIA,KAAEF,GAAE,aAAWC;AAAG,YAAIE,KAAE,IAAI,SAASH,IAAEC,IAAEC,EAAC;AAAE,aAAK,cAAcC,EAAC;AAAA,MAAC,WAASH,cAAa,cAAYA,cAAa,YAAUA,cAAa,IAAE;AAAC,mBAASE,OAAIA,KAAEF,GAAE,aAAWC,MAAIA,MAAGD,GAAE,cAAYE,KAAEF,GAAE,aAAWA,GAAE,cAAYS,GAAE,0DAA0D;AAAE,YAAIN,KAAE,IAAI,SAASH,GAAE,QAAOC,IAAEC,EAAC;AAAE,aAAK,cAAcC,EAAC;AAAA,MAAC,WAAS,YAAU,OAAOH,IAAE;AAAC,YAAIC,KAAE,IAAI,SAAS,IAAI,YAAYD,EAAC,CAAC;AAAE,aAAK,cAAcC,EAAC;AAAA,MAAC,MAAM,CAAAQ,GAAE,4CAA0CT,EAAC;AAAA,IAAC;AAAA,IAAC,iBAAiBA,IAAE;AAAC,WAAK,cAAc,IAAI,SAASA,EAAC,CAAC;AAAA,IAAC;AAAA,IAAC,YAAYA,IAAE;AAAC,WAAK,cAAc,IAAI,SAASA,GAAE,QAAOA,GAAE,YAAWA,GAAE,UAAU,CAAC;AAAA,IAAC;AAAA,IAAC,cAAcA,IAAE;AAAC,WAAK,WAASA,IAAE,KAAK,SAAOA,GAAE,QAAO,KAAK,aAAWA,GAAE,YAAW,KAAK,aAAWA,GAAE;AAAA,IAAU;AAAA,IAAC,aAAaA,IAAE;AAAC,aAAO,KAAK,aAAWA;AAAA,IAAC;AAAA,IAAC,IAAIA,IAAEC,IAAEC,KAAE,IAAE;AAAC,aAAOF,cAAa,YAAUA,cAAa,KAAEA,KAAE,IAAI,WAAWA,GAAE,QAAOA,GAAE,YAAWA,GAAE,UAAU,IAAEA,cAAa,gBAAcA,KAAE,IAAI,WAAWA,EAAC,IAAGA,cAAa,cAAYS,GAAE,0CAA0C,GAAE,KAAK,QAAQ,EAAE,IAAIT,IAAEC,EAAC,GAAE,IAAIC,GAAE,MAAKD,IAAED,GAAE,UAAU;AAAA,IAAC;AAAA,IAAC,SAASA,IAAEC,IAAE;AAAC,aAAOA,KAAEA,MAAG,KAAK,aAAaD,EAAC,GAAE,IAAI,GAAE,MAAKA,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,UAAS;AAAC,aAAO,IAAI,WAAW,KAAK,QAAO,KAAK,YAAW,KAAK,UAAU;AAAA,IAAC;AAAA,IAAC,cAAcD,IAAEC,IAAE;AAAC,aAAO,IAAI,WAAW,KAAK,QAAO,KAAK,aAAWD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,UAAUD,KAAE,GAAEC,KAAE,KAAK,YAAW;AAAC,UAAIC,KAAE,KAAK,cAAcF,IAAEC,EAAC;AAAE,aAAOE,KAAED,IAAEU,KAAEA,GAAE,OAAOT,EAAC,IAAEG,KAAE,OAAO,KAAKH,EAAC,EAAE,SAAS,MAAM,IAAE,mBAAmB,OAAOQ,GAAER,EAAC,CAAC,CAAC;AAAE,UAAIA;AAAA,IAAC;AAAA,IAAC,gBAAgBH,KAAE,GAAEC,KAAE,KAAK,YAAW;AAAC,UAAIC,KAAE,KAAK,cAAcF,IAAEC,EAAC;AAAE,aAAOU,GAAET,EAAC;AAAA,IAAC;AAAA,IAAC,iBAAiBF,KAAE,GAAEC,KAAE,KAAK,YAAW;AAAC,YAAMC,KAAE,CAAC;AAAE,eAAQC,KAAE,GAAEA,KAAEF,MAAGD,KAAEG,KAAE,KAAK,YAAWA,MAAG,EAAE,CAAAD,GAAE,KAAK,KAAK,UAAUF,KAAEG,EAAC,CAAC;AAAE,aAAOQ,GAAET,EAAC;AAAA,IAAC;AAAA,IAAC,QAAQF,IAAE;AAAC,aAAO,KAAK,SAAS,QAAQA,EAAC;AAAA,IAAC;AAAA,IAAC,SAASA,IAAE;AAAC,aAAO,KAAK,SAAS,SAASA,EAAC;AAAA,IAAC;AAAA,IAAC,SAASA,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,SAASD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,SAASD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,SAASD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,UAAUD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,UAAUD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,UAAUD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,UAAUD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,WAAWD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,WAAWD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,WAAWD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,WAAWD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,SAASD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,WAAWD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,UAAUD,IAAEC,KAAE,KAAK,IAAG;AAAC,aAAO,KAAK,SAAS,WAAWD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,aAAaD,IAAEC,IAAEC,IAAE;AAAC,cAAOD,IAAE;AAAA,QAAC,KAAK;AAAE,iBAAO,KAAK,SAASD,IAAEE,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAO,KAAK,UAAUF,IAAEE,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAO,KAAK,UAAUF,IAAEE,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAO,KAAK,aAAW,KAAK,UAAUF,IAAEE,EAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,QAAQF,IAAEC,IAAEC,IAAE;AAAC,cAAOD,IAAE;AAAA,QAAC,KAAK;AAAE,iBAAO,KAAK,SAASD,IAAEE,EAAC;AAAA,QAAE,KAAK;AAAG,iBAAO,KAAK,UAAUF,IAAEE,EAAC;AAAA,QAAE,KAAK;AAAG,iBAAO,KAAK,UAAUF,IAAEE,EAAC;AAAA,QAAE,KAAK;AAAG,iBAAO,KAAK,aAAW,KAAK,UAAUF,IAAEE,EAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,SAASF,IAAE;AAAC,aAAO,KAAK,SAAS,SAASA,IAAE,KAAK,YAAY,IAAI;AAAA,IAAC;AAAA,IAAC,cAAa;AAAA,IAAC;AAAA,EAAC;AAAC,WAASc,GAAEd,IAAEC,IAAE;AAAC,IAAAQ,GAAE,GAAGT,EAAC,KAAKC,EAAC,kDAAkD;AAAA,EAAC;AAAC,MAAMc,KAAN,cAAgB,IAAG;AAAA,IAAC,YAAYf,IAAE;AAAC,YAAM,GAAE,KAAK,OAAKA;AAAA,IAAC;AAAA,IAAC,IAAIA,IAAEC,IAAE;AAAC,aAAO,KAAK,IAAID,EAAC,KAAGc,GAAE,KAAK,MAAKd,EAAC,GAAEC,OAAID,MAAKC,OAAG,SAASD,IAAEC,IAAE;AAAC,QAAAQ,GAAE,WAAWT,EAAC,KAAKC,EAAC,IAAI;AAAA,MAAC,GAAE,KAAK,MAAKD,EAAC,GAAEC,GAAED,EAAC,EAAE,WAASc,GAAE,KAAK,MAAKd,EAAC,IAAG,MAAM,IAAIA,EAAC;AAAA,IAAC;AAAA,IAAC,UAAS;AAAC,aAAO,MAAM,KAAK,KAAK,KAAK,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,MAAIgB,KAAE,IAAID,GAAE,aAAa;AAAzB,MAA2BE,KAAE,IAAIF,GAAE,gBAAgB;AAAnD,MAAqDG,KAAE,IAAIH,GAAE,aAAa;AAAE,MAAII,KAAElB,GAAE;AAAM,WAASmB,GAAEpB,IAAEC,IAAE;AAAC,YAAOE,KAAEH,IAAG,WAAW,OAAO,KAAGG,GAAE,SAAO,MAAIkB,GAAErB,IAAEC,IAAE,QAAQ,IAAEG,MAAGJ,GAAE,SAAS,KAAK,IAAEsB,GAAEtB,IAAEC,IAAE,OAAMsB,EAAC,IAAEnB,KAAEiB,GAAErB,IAAEC,IAAE,IAAI,IAAEC,KAAEoB,GAAEtB,IAAEC,IAAE,OAAMsB,EAAC,IAAE,KAAKd,GAAE,wBAAwB;AAAE,QAAIN;AAAA,EAAC;AAAC,iBAAemB,GAAEtB,IAAEC,IAAEC,IAAEC,IAAE;AAAC,WAAOe,GAAE,IAAIhB,EAAC,IAAEmB,GAAErB,IAAEC,IAAEC,EAAC,IAAEC,MAAE,eAAeH,IAAEC,IAAE;AAAC,UAAIC,KAAE,MAAMD,GAAED,EAAC;AAAE,aAAO,IAAIa,GAAEX,EAAC;AAAA,IAAC,GAAEF,IAAEG,EAAC,IAAE,KAAKM,GAAE,UAAUP,EAAC,gBAAgB;AAAA,EAAC;AAAC,iBAAemB,GAAErB,IAAEC,IAAEC,IAAE;AAAC,QAAIC,KAAE,KAAIe,GAAE,IAAIhB,EAAC,GAAGF,IAAEC,EAAC;AAAE,WAAO,MAAME,GAAE,KAAK,GAAEA;AAAA,EAAC;AAAC,MAAMoB,KAAE,CAAAvB,OAAGmB,GAAEnB,EAAC,EAAE,MAAM,CAAAA,OAAGA,GAAE,YAAY,EAAE;AAAzC,MAA2CwB,KAAE,CAAAxB,OAAG,IAAI,SAAS,CAACC,IAAEC,OAAI;AAAC,QAAIC,KAAE,IAAI;AAAW,IAAAA,GAAE,YAAU,MAAIF,GAAEE,GAAE,UAAQ,IAAI,aAAW,GAAEA,GAAE,UAAQD,IAAEC,GAAE,kBAAkBH,EAAC;AAAA,EAAC,EAAE;AAAE,MAAM,IAAN,cAAgB,IAAG;AAAA,IAAC,IAAI,UAAS;AAAC,aAAO,KAAK,YAAU,KAAK,UAAQ,MAAM,KAAK,KAAK,KAAK,CAAC,IAAG,KAAK;AAAA,IAAO;AAAA,IAAC,IAAI,YAAW;AAAC,aAAO,KAAK,cAAY,KAAK,YAAU,MAAM,KAAK,KAAK,OAAO,CAAC,IAAG,KAAK;AAAA,IAAS;AAAA,EAAC;AAAC,WAASyB,GAAEzB,IAAEC,IAAEC,IAAE;AAAC,QAAIC,KAAE,IAAI;AAAE,aAAO,CAACH,IAAEC,EAAC,KAAIC,GAAE,CAAAC,GAAE,IAAIH,IAAEC,EAAC;AAAE,QAAG,MAAM,QAAQA,EAAC,EAAE,UAAQC,MAAKD,GAAE,CAAAD,GAAE,IAAIE,IAAEC,EAAC;AAAA,QAAO,CAAAH,GAAE,IAAIC,IAAEE,EAAC;AAAE,WAAOA;AAAA,EAAC;AAAC,WAASuB,GAAE1B,IAAEC,IAAEC,IAAE;AAAC,QAAIC,IAAEC,KAAEJ,GAAE,IAAIC,EAAC;AAAE,SAAIE,MAAKD,GAAE,CAAAE,GAAE,IAAID,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,EAAC;AAAC,MAAM,IAAE,oBAAI;AAAZ,MAAgB,IAAE,oBAAI;AAAtB,MAA0BwB,KAAE,oBAAI;AAAhC,MAAoCC,KAAE,CAAC,WAAU,kBAAiB,sBAAqB,yBAAwB,aAAY,YAAY;AAAvI,MAAyIC,KAAE,CAAC,QAAO,OAAM,OAAM,QAAO,MAAM;AAA5K,MAA8KC,KAAE,CAAC,QAAO,GAAGD,EAAC;AAA5L,MAA8LE,KAAE,CAAC,QAAO,QAAO,QAAO,OAAM,SAAS;AAArO,MAAuO,IAAE,CAAC,GAAGD,IAAE,GAAGC,EAAC;AAAnP,MAAqPC,KAAE,CAAC,aAAY,aAAa;AAAjR,MAAmRC,KAAE,CAAC,iBAAgB,mBAAkB,gBAAe,cAAc;AAArV,MAAuVC,KAAE,CAAC,GAAGD,IAAE,YAAW,eAAc,cAAc;AAAE,MAAME,KAAN,MAAO;AAAA,IAAC,IAAI,YAAW;AAAC,aAAO,KAAK,iBAAe,KAAK,mBAAiB,KAAK;AAAA,IAAY;AAAA,EAAC;AAAC,MAAMC,KAAN,cAAgBD,GAAC;AAAA,IAAC,IAAI,SAAQ;AAAC,aAAO,KAAK,WAAS,KAAK,KAAK,OAAK;AAAA,IAAC;AAAA,IAAC,YAAYlC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,UAAG,MAAM,GAAEJ,GAAE,MAAK,WAAU,KAAE,GAAEA,GAAE,MAAK,QAAO,oBAAI,KAAG,GAAEA,GAAE,MAAK,QAAO,oBAAI,KAAG,GAAEA,GAAE,MAAK,QAAO,oBAAI,KAAG,GAAEA,GAAE,MAAK,iBAAgB,KAAE,GAAEA,GAAE,MAAK,mBAAkB,KAAE,GAAEA,GAAE,MAAK,gBAAe,KAAE,GAAE,KAAK,MAAIC,IAAE,KAAK,UAAQC,IAAE,KAAK,QAAM,KAAK,SAAQ,KAAK,kBAAkBE,EAAC,GAAE,KAAK,gBAAc2B,GAAE,SAAS9B,EAAC,GAAE,KAAK,kBAAgB,KAAK,OAAK,EAAE,IAAIA,EAAC,IAAG,WAASE,GAAE,KAAG,MAAM,QAAQA,EAAC,EAAE,MAAK,QAAM,KAAK,UAAQ,MAAG,KAAK,iBAAeA,GAAE,SAAO,KAAG,KAAK,gBAAgBA,IAAE,KAAK,IAAI;AAAA,eAAU,YAAU,OAAOA,IAAE;AAAC,YAAG,KAAK,UAAQ,MAAG,KAAK,QAAM,UAAKA,GAAE,OAAM,KAAK,eAAc;AAAC,cAAG,EAAC,MAAKH,IAAE,MAAKC,GAAC,IAAEE;AAAE,UAAAH,MAAGA,GAAE,SAAO,KAAG,KAAK,gBAAgBA,IAAE,KAAK,IAAI,GAAEC,MAAGA,GAAE,SAAO,KAAG,KAAK,gBAAgBA,IAAE,KAAK,IAAI;AAAA,QAAC;AAAC,aAAK,kBAAkBE,EAAC;AAAA,MAAC,MAAK,UAAKA,MAAG,UAAKA,KAAE,KAAK,QAAM,KAAK,UAAQA,KAAEM,GAAE,6BAA6BN,EAAC,EAAE;AAAA,IAAC;AAAA,IAAC,kBAAkBH,IAAE;AAAC,UAAIC,IAAEC;AAAE,WAAID,MAAKgC,GAAE,CAAA/B,KAAEF,GAAEC,EAAC,GAAE,WAASC,OAAI,KAAKD,EAAC,IAAEC;AAAA,IAAE;AAAA,IAAC,gBAAgBF,IAAEC,IAAE;AAAC,UAAG,KAAK,MAAK;AAAC,YAAIC,IAAEC,IAAE,EAAC,SAAQC,IAAE,WAAUC,GAAC,IAAE,KAAK;AAAK,aAAIH,MAAKF,GAAE,aAAU,OAAOE,MAAGC,KAAEE,GAAE,QAAQH,EAAC,GAAE,OAAKC,OAAIA,KAAEC,GAAE,QAAQ,OAAOF,EAAC,CAAC,IAAG,OAAKC,MAAGF,GAAE,IAAI,OAAOG,GAAED,EAAC,CAAC,CAAC,KAAGF,GAAE,IAAIC,EAAC;AAAA,MAAC,MAAM,UAAQA,MAAKF,GAAE,CAAAC,GAAE,IAAIC,EAAC;AAAA,IAAC;AAAA,IAAC,kBAAiB;AAAC,OAAC,KAAK,WAAS,KAAK,KAAK,OAAK,KAAG,KAAK,UAAQ,MAAG,EAAE,KAAK,MAAK,KAAK,IAAI,KAAG,KAAK,WAAS,KAAK,KAAK,OAAK,KAAG,EAAE,KAAK,MAAK,KAAK,IAAI;AAAA,IAAC;AAAA,EAAC;AAAC,MAAImC,KAAE,EAAC,MAAK,OAAG,MAAK,MAAG,KAAI,OAAG,KAAI,OAAG,MAAK,OAAG,MAAK,MAAG,MAAK,OAAG,MAAK,MAAG,KAAI,MAAG,SAAQ,OAAG,MAAK,QAAO,WAAU,OAAG,aAAY,OAAG,cAAa,OAAG,MAAK,CAAC,GAAE,MAAK,CAAC,GAAE,eAAc,MAAG,iBAAgB,MAAG,cAAa,MAAG,UAAS,MAAG,aAAY,MAAG,cAAa,MAAG,SAAQ,MAAG,gBAAe,QAAO,oBAAmB,KAAI,uBAAsB,OAAM,WAAU,OAAM,YAAW,EAAC;AAA9W,MAAgXC,KAAE,oBAAI;AAAI,MAAM,IAAN,cAAgBH,GAAC;AAAA,IAAC,OAAO,UAAUnC,IAAE;AAAC,UAAIC,KAAEqC,GAAE,IAAItC,EAAC;AAAE,aAAO,WAASC,OAAIA,KAAE,IAAI,KAAKD,EAAC,GAAEsC,GAAE,IAAItC,IAAEC,EAAC,IAAGA;AAAA,IAAC;AAAA,IAAC,YAAYD,IAAE;AAAC,YAAM,GAAE,SAAKA,KAAE,KAAK,cAAc,IAAE,WAASA,KAAE,KAAK,mBAAmB,IAAE,MAAM,QAAQA,EAAC,IAAE,KAAK,eAAeA,EAAC,IAAE,YAAU,OAAOA,KAAE,KAAK,gBAAgBA,EAAC,IAAES,GAAE,4BAA4BT,EAAC,EAAE,GAAE,WAAS,KAAK,mBAAiB,KAAK,iBAAeE,KAAE,KAAK,wBAAsB,KAAK,qBAAoB,KAAK,gBAAc,KAAK,KAAK,UAAQ,QAAI,KAAK,wBAAwB,GAAE,KAAK,2BAA2B,GAAE,KAAK,mBAAmB;AAAA,IAAC;AAAA,IAAC,qBAAoB;AAAC,UAAIF;AAAE,WAAIA,MAAK4B,GAAE,MAAK5B,EAAC,IAAEqC,GAAErC,EAAC;AAAE,WAAIA,MAAKkC,GAAE,MAAKlC,EAAC,IAAEqC,GAAErC,EAAC;AAAE,WAAIA,MAAKgC,GAAE,MAAKhC,EAAC,IAAEqC,GAAErC,EAAC;AAAE,WAAIA,MAAK,EAAE,MAAKA,EAAC,IAAE,IAAIoC,GAAEpC,IAAEqC,GAAErC,EAAC,GAAE,QAAO,IAAI;AAAA,IAAC;AAAA,IAAC,gBAAe;AAAC,UAAIA;AAAE,WAAIA,MAAK4B,GAAE,MAAK5B,EAAC,IAAEqC,GAAErC,EAAC;AAAE,WAAIA,MAAKkC,GAAE,MAAKlC,EAAC,IAAEqC,GAAErC,EAAC;AAAE,WAAIA,MAAKgC,GAAE,MAAKhC,EAAC,IAAE;AAAG,WAAIA,MAAK,EAAE,MAAKA,EAAC,IAAE,IAAIoC,GAAEpC,IAAE,MAAG,QAAO,IAAI;AAAA,IAAC;AAAA,IAAC,eAAeA,IAAE;AAAC,UAAIC;AAAE,WAAIA,MAAK2B,GAAE,MAAK3B,EAAC,IAAEoC,GAAEpC,EAAC;AAAE,WAAIA,MAAKiC,GAAE,MAAKjC,EAAC,IAAEoC,GAAEpC,EAAC;AAAE,WAAIA,MAAK+B,GAAE,MAAK/B,EAAC,IAAEoC,GAAEpC,EAAC;AAAE,WAAIA,MAAK,EAAE,MAAKA,EAAC,IAAE,IAAImC,GAAEnC,IAAE,OAAG,QAAO,IAAI;AAAE,WAAK,mBAAmBD,IAAE,QAAO+B,EAAC;AAAA,IAAC;AAAA,IAAC,gBAAgB/B,IAAE;AAAC,UAAIC;AAAE,WAAIA,OAAK8B,GAAE,OAAKA,GAAE,QAAMA,GAAE,OAAMA,GAAE,OAAKA,GAAE,QAAMA,GAAE,WAAU,OAAO,OAAO,MAAK/B,EAAC,GAAE4B,IAAG,MAAK3B,EAAC,IAAE,EAAED,GAAEC,EAAC,GAAEoC,GAAEpC,EAAC,CAAC;AAAE,WAAIA,MAAKiC,GAAE,MAAKjC,EAAC,IAAE,EAAED,GAAEC,EAAC,GAAEoC,GAAEpC,EAAC,CAAC;AAAE,WAAIA,MAAK+B,GAAE,MAAK/B,EAAC,IAAE,EAAED,GAAEC,EAAC,GAAEoC,GAAEpC,EAAC,CAAC;AAAE,WAAIA,MAAK6B,GAAE,MAAK7B,EAAC,IAAE,IAAImC,GAAEnC,IAAEoC,GAAEpC,EAAC,GAAED,GAAEC,EAAC,GAAE,IAAI;AAAE,WAAIA,MAAK8B,GAAE,MAAK9B,EAAC,IAAE,IAAImC,GAAEnC,IAAEoC,GAAEpC,EAAC,GAAED,GAAEC,EAAC,GAAE,KAAK,IAAI;AAAE,WAAK,mBAAmBD,GAAE,MAAKA,GAAE,MAAK+B,IAAE,CAAC,GAAE,SAAK/B,GAAE,OAAK,KAAK,oBAAoB+B,IAAE,IAAE,IAAE,UAAK/B,GAAE,OAAK,KAAK,yBAAyB+B,IAAE/B,EAAC,IAAE,MAAM,QAAQA,GAAE,IAAI,IAAE,KAAK,mBAAmBA,GAAE,MAAK,QAAO+B,EAAC,IAAE,YAAU,OAAO/B,GAAE,QAAM,KAAK,mBAAmBA,GAAE,KAAK,MAAKA,GAAE,KAAK,MAAK+B,EAAC;AAAA,IAAC;AAAA,IAAC,oBAAoB/B,IAAEC,IAAE;AAAC,eAAQC,MAAKF,GAAE,MAAKE,EAAC,EAAE,UAAQD;AAAA,IAAC;AAAA,IAAC,yBAAyBD,IAAEC,IAAE;AAAC,eAAQC,MAAKF,IAAE;AAAC,YAAIA,KAAEC,GAAEC,EAAC;AAAE,aAAKA,EAAC,EAAE,UAAQ,UAAKF,MAAG,WAASA;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,mBAAmBA,IAAEC,IAAEC,IAAEC,KAAED,IAAE;AAAC,UAAGF,MAAGA,GAAE,QAAO;AAAC,iBAAQA,MAAKG,GAAE,MAAKH,EAAC,EAAE,UAAQ;AAAG,YAAIC,KAAE,EAAED,IAAEE,EAAC;AAAE,iBAAO,CAACF,IAAEE,EAAC,KAAID,GAAE,GAAE,KAAKD,EAAC,EAAE,MAAKE,EAAC,GAAE,KAAKF,EAAC,EAAE,UAAQ;AAAA,MAAE,WAASC,MAAGA,GAAE,QAAO;AAAC,YAAID,KAAE,EAAEC,IAAEC,EAAC;AAAE,iBAAO,CAACD,IAAEC,EAAC,KAAIF,GAAE,GAAE,KAAKC,EAAC,EAAE,MAAKC,EAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,0BAAyB;AAAC,UAAG,EAAC,MAAKF,IAAE,MAAKC,IAAE,KAAIC,IAAE,MAAKC,IAAE,KAAIC,GAAC,IAAE;AAAK,WAAK,YAAUH,GAAE,KAAK,IAAI,KAAK,IAAEA,GAAE,KAAK,IAAI,KAAK,GAAE,KAAK,cAAYA,GAAE,KAAK,IAAI,KAAK,IAAEA,GAAE,KAAK,IAAI,KAAK,GAAEC,GAAE,WAASF,GAAE,KAAK,IAAI,GAAG,GAAEG,GAAE,WAASH,GAAE,KAAK,IAAI,KAAK,GAAEI,GAAE,WAASJ,GAAE,KAAK,IAAI,KAAK;AAAA,IAAC;AAAA,IAAC,6BAA4B;AAAC,UAAG,EAAC,MAAKA,IAAE,MAAKC,IAAE,KAAIC,IAAE,SAAQC,GAAC,IAAE;AAAK,MAAAA,GAAE,WAASF,GAAE,KAAK,IAAI,KAAK,GAAED,GAAE,KAAK,IAAI,KAAK,IAAGC,GAAE,UAAQD,GAAE,KAAK,IAAI,KAAK,GAAEE,GAAE,UAAQF,GAAE,KAAK,IAAI,KAAK,GAAE,KAAK,KAAK,UAAQ+B,GAAE,MAAM,CAAA/B,OAAG,SAAK,KAAKA,EAAC,EAAE,QAAQ,KAAG,KAAK,aAAW,KAAK;AAAY,eAAQA,MAAK+B,GAAE,MAAK/B,EAAC,EAAE,gBAAgB;AAAA,IAAC;AAAA,IAAC,IAAI,WAAU;AAAC,aAAM,CAAC6B,GAAE,KAAK,CAAA7B,OAAG,KAAKA,EAAC,EAAE,QAAQ,EAAE,MAAM,CAAAA,OAAG,SAAKA,GAAE,KAAG,KAAK,KAAK;AAAA,IAAO;AAAA,IAAC,qBAAoB;AAAC,eAAQA,MAAK8B,GAAE,MAAK9B,EAAC,EAAE,WAAS,CAACiB,GAAE,IAAIjB,EAAC,KAAGc,GAAE,kBAAiBd,EAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAAS,EAAEA,IAAEC,IAAE;AAAC,QAAIC,IAAEC,IAAEC,IAAEC,IAAEC,KAAE,CAAC;AAAE,SAAIF,MAAKH,IAAE;AAAC,WAAII,OAAKH,KAAE,EAAE,IAAIE,EAAC,GAAED,KAAE,CAAC,GAAED,IAAG,EAACF,GAAE,SAASK,GAAE,CAAC,CAAC,KAAGL,GAAE,SAASK,GAAE,CAAC,CAAC,MAAIF,GAAE,KAAKE,GAAE,CAAC,CAAC;AAAE,MAAAF,GAAE,UAAQG,GAAE,KAAK,CAACF,IAAED,EAAC,CAAC;AAAA,IAAC;AAAC,WAAOG;AAAA,EAAC;AAAC,WAAS,EAAEN,IAAEC,IAAE;AAAC,WAAO,WAASD,KAAEA,KAAE,WAASC,KAAEA,KAAE;AAAA,EAAM;AAAC,WAAS,EAAED,IAAEC,IAAE;AAAC,aAAQC,MAAKD,GAAE,CAAAD,GAAE,IAAIE,EAAC;AAAA,EAAC;AAAC,EAAAF,GAAE,GAAE,WAAUqC,EAAC;AAAE,MAAME,KAAN,MAAO;AAAA,IAAC,YAAYtC,IAAE;AAAC,MAAAD,GAAE,MAAK,WAAU,CAAC,CAAC,GAAEA,GAAE,MAAK,UAAS,CAAC,CAAC,GAAEA,GAAE,MAAK,UAAS,CAAC,CAAC,GAAEA,GAAE,MAAK,iBAAgB,CAAAA,OAAG,KAAK,OAAO,KAAKA,EAAC,EAAE,GAAE,KAAK,UAAQ,EAAE,UAAUC,EAAC;AAAA,IAAC;AAAA,IAAC,MAAM,KAAKD,IAAE;AAAC,WAAK,OAAK,OAAM,SAASA,IAAEC,IAAE;AAAC,eAAM,YAAU,OAAOD,KAAEoB,GAAEpB,IAAEC,EAAC,IAAEC,MAAG,CAACC,MAAGH,cAAa,mBAAiBoB,GAAEpB,GAAE,KAAIC,EAAC,IAAED,cAAa,cAAYA,cAAa,eAAaA,cAAa,WAAS,IAAIa,GAAEb,EAAC,IAAEE,MAAGF,cAAa,OAAKsB,GAAEtB,IAAEC,IAAE,QAAOuB,EAAC,IAAE,KAAKf,GAAE,wBAAwB;AAAA,MAAC,GAAET,IAAE,KAAK,OAAO;AAAA,IAAC;AAAA,IAAC,QAAO;AAAC,UAAG,KAAK,WAAW;AAAO,UAAG,EAAC,MAAKA,GAAC,IAAE,MAAKC,KAAED,GAAE,UAAU,CAAC;AAAE,eAAO,CAACE,IAAEC,EAAC,KAAIa,GAAE,KAAGb,GAAE,UAAUH,IAAEC,EAAC,EAAE,QAAO,KAAK,aAAW,IAAIE,GAAE,KAAK,SAAQ,KAAK,MAAK,KAAK,OAAO,GAAEH,GAAEE,EAAC,IAAE;AAAG,WAAK,KAAK,SAAO,KAAK,KAAK,MAAM,GAAEO,GAAE,qBAAqB;AAAA,IAAC;AAAA,IAAC,MAAM,QAAO;AAAC,UAAG,EAAC,QAAOT,IAAE,QAAOC,GAAC,IAAE;AAAK,aAAO,KAAK,MAAM,GAAE,KAAK,QAAQ,gBAAc,MAAM,KAAK,eAAe,EAAE,MAAM,KAAK,YAAY,GAAEA,GAAE,KAAK,GAAG,KAAK,WAAW,MAAM,KAAG,MAAM,KAAK,eAAe,GAAE,KAAK,KAAK,SAAO,KAAK,KAAK,MAAM,GAAE,KAAK,QAAQ,gBAAcA,GAAE,SAAO,MAAID,GAAE,SAAOC,KAAGO,GAAEN,KAAEF,EAAC,IAAE,SAAOE;AAAE,UAAIA;AAAA,IAAC;AAAA,IAAC,MAAM,iBAAgB;AAAC,UAAG,EAAC,QAAOF,GAAC,IAAE;AAAK,YAAM,KAAK,WAAW,MAAM;AAAE,UAAIC,KAAE,OAAO,OAAO,KAAK,OAAO,EAAE,KAAK,OAAMA,OAAG;AAAC,YAAIC,KAAE,MAAMD,GAAE,MAAM;AAAE,QAAAA,GAAE,eAAeD,IAAEE,EAAC;AAAA,MAAC,EAAE;AAAE,WAAK,QAAQ,iBAAeD,KAAEA,GAAE,KAAK,CAAAD,OAAGA,GAAE,MAAM,KAAK,YAAY,EAAE,IAAG,MAAM,QAAQ,IAAIC,EAAC;AAAA,IAAC;AAAA,IAAC,MAAM,mBAAkB;AAAC,WAAK,MAAM;AAAE,UAAG,EAAC,SAAQD,IAAE,MAAKC,GAAC,IAAE,MAAKC,KAAEe,GAAE,IAAI,QAAOjB,EAAC;AAAE,UAAIG;AAAE,UAAGF,GAAE,OAAKE,KAAE,EAAC,OAAM,GAAE,MAAK,OAAM,IAAEF,GAAE,SAAOE,KAAE,MAAM,KAAK,WAAW,iBAAiB,MAAM,IAAG,WAASA,GAAE;AAAO,UAAIC,KAAE,MAAM,KAAK,WAAW,mBAAmBD,EAAC,GAAEE,KAAE,KAAK,QAAQ,OAAK,IAAIH,GAAEE,IAAEJ,IAAEC,EAAC,GAAEK,KAAE,MAAMD,GAAE,iBAAiB;AAAE,aAAOJ,GAAE,SAAOA,GAAE,MAAM,GAAEK;AAAA,IAAC;AAAA,EAAC;AAAC,iBAAe,EAAEN,IAAEC,IAAE;AAAC,QAAIC,KAAE,IAAIqC,GAAEtC,EAAC;AAAE,WAAO,MAAMC,GAAE,KAAKF,EAAC,GAAEE,GAAE,MAAM;AAAA,EAAC;AAAC,MAAI,IAAE,OAAO,OAAO,EAAC,WAAU,MAAK,OAAM,GAAE,OAAMqC,IAAE,aAAYvB,IAAE,gBAAeC,IAAE,aAAYC,IAAE,SAAQ,GAAE,WAAU,GAAE,aAAYS,IAAE,kBAAiBF,IAAE,kBAAiBC,IAAE,uBAAsBH,IAAE,uBAAsBC,IAAE,cAAaI,IAAE,eAAcC,IAAE,UAASC,IAAE,YAAWC,IAAE,mBAAkB,GAAE,kBAAiBC,IAAE,cAAaC,IAAE,eAAcC,IAAE,SAAQ,EAAC,CAAC;AAAE,MAAM,IAAN,MAAO;AAAA,IAAC,OAAO,aAAalC,IAAEC,IAAE;AAAC,UAAIC,KAAEF,GAAE,UAAUC,KAAE,CAAC,IAAE,GAAEE,KAAE,cAAY,OAAO,KAAK,eAAa,KAAK,aAAaH,IAAEC,IAAEC,EAAC,IAAE,KAAK,cAAaE,KAAEH,KAAEE,IAAEE,KAAEH,KAAEC;AAAE,aAAM,EAAC,QAAOF,IAAE,QAAOC,IAAE,cAAaC,IAAE,OAAMC,IAAE,MAAKC,IAAE,KAAID,KAAEC,GAAC;AAAA,IAAC;AAAA,IAAC,OAAO,MAAML,IAAEC,KAAE,CAAC,GAAE;AAAC,aAAO,IAAI,KAAKD,IAAE,IAAI,EAAE,EAAC,CAAC,KAAK,IAAI,GAAEC,GAAC,CAAC,GAAED,EAAC,EAAE,MAAM;AAAA,IAAC;AAAA,IAAC,eAAeA,IAAE;AAAC,aAAOA,cAAaa,KAAEb,KAAE,IAAIa,GAAEb,EAAC;AAAA,IAAC;AAAA,IAAC,YAAYC,IAAEC,KAAE,CAAC,GAAEC,IAAE;AAAC,MAAAH,GAAE,MAAK,UAAS,CAAC,CAAC,GAAEA,GAAE,MAAK,OAAM,oBAAI,KAAG,GAAEA,GAAE,MAAK,gBAAe,CAAAA,OAAG;AAAC,YAAG,CAAC,KAAK,QAAQ,aAAa,OAAMA;AAAE,aAAK,OAAO,KAAKA,GAAE,OAAO;AAAA,MAAC,EAAE,GAAE,KAAK,QAAM,KAAK,eAAeC,EAAC,GAAE,KAAK,OAAKE,IAAE,KAAK,OAAK,KAAK,YAAY,MAAK,KAAK,gBAAc,KAAK,UAAQD,IAAE,KAAK,eAAaA,GAAE,KAAK,IAAI,GAAE,KAAK,eAAa,KAAK,gBAAc,KAAK,aAAa;AAAA,IAAS;AAAA,IAAC,YAAW;AAAC,WAAK,iBAAe,KAAK,aAAW,KAAK,eAAe,KAAK,KAAI,KAAK,IAAI;AAAA,IAAE;AAAA,IAAC,IAAI,SAAQ;AAAC,aAAO,KAAK,aAAW,KAAK,aAAW,KAAK,MAAI,OAAO,YAAY,KAAK,GAAG,IAAE;AAAA,IAAM;AAAA,IAAC,eAAeF,IAAEC,IAAE;AAAC,UAAIC,KAAEyB,GAAE,IAAI1B,EAAC,GAAEE,KAAE,EAAE,IAAIF,EAAC,GAAEG,KAAE,EAAE,IAAIH,EAAC,GAAEI,KAAE,KAAK,QAAQJ,EAAC,GAAEK,KAAED,GAAE,gBAAc,CAAC,CAACH,IAAEK,KAAEF,GAAE,mBAAiB,CAAC,CAACF,IAAEK,KAAEH,GAAE,iBAAe,CAAC,CAACD,IAAEK,KAAE,CAAC;AAAE,eAAO,CAACR,IAAEI,EAAC,KAAIL,GAAE,CAAAM,MAAGJ,GAAE,IAAID,EAAC,IAAEI,KAAEH,GAAE,IAAID,EAAC,EAAEI,EAAC,IAAEE,MAAGJ,GAAE,IAAIF,EAAC,MAAII,KAAE,KAAK,eAAeA,IAAEF,GAAE,IAAIF,EAAC,CAAC,IAAGO,MAAGJ,GAAE,IAAIH,EAAC,MAAIA,KAAEG,GAAE,IAAIH,EAAC,KAAGA,KAAGQ,GAAER,EAAC,IAAEI;AAAE,aAAOI;AAAA,IAAC;AAAA,IAAC,eAAeT,IAAEC,IAAE;AAAC,aAAOA,GAAED,EAAC,KAAGC,GAAE,WAASD;AAAA,IAAC;AAAA,IAAC,eAAeA,IAAEC,IAAE;AAAC,WAAK,qBAAqBD,IAAE,KAAK,YAAY,MAAKC,EAAC;AAAA,IAAC;AAAA,IAAC,qBAAqBD,IAAEC,IAAEC,IAAE;AAAC,UAAG,KAAK,cAAc,YAAY,QAAO,OAAO,OAAOF,IAAEE,EAAC;AAAE,MAAAF,GAAEC,EAAC,IAAE,OAAO,OAAOD,GAAEC,EAAC,GAAEC,EAAC,IAAEF,GAAEC,EAAC,IAAEC;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAF,GAAE,GAAE,gBAAe,CAAC,GAAEA,GAAE,GAAE,QAAO,MAAM,GAAEA,GAAE,GAAE,gBAAe,KAAE,GAAEA,GAAE,GAAE,cAAa,MAAI,MAAG;AAAE,WAASwC,GAAExC,IAAE;AAAC,WAAO,QAAMA,MAAG,QAAMA,MAAG,QAAMA,MAAG,QAAMA,MAAG,QAAMA,MAAG,QAAMA,MAAG,QAAMA;AAAA,EAAC;AAAC,WAAS,EAAEA,IAAE;AAAC,WAAOA,MAAG,OAAKA,MAAG;AAAA,EAAG;AAAC,WAAS,EAAEA,IAAEC,IAAEC,IAAE;AAAC,aAAO,CAACC,IAAEC,EAAC,KAAIa,GAAE,KAAGb,GAAE,UAAUJ,IAAEC,IAAEC,EAAC,EAAE,QAAOC;AAAA,EAAC;AAAC,MAAMsC,MAAN,cAAiB,MAAK;AAAA,IAAC,YAAYxC,IAAEC,IAAEC,IAAE;AAAC,MAAAH,GAAE,MAAK,UAAS,CAAC,CAAC,GAAEA,GAAE,MAAK,uBAAsB,OAAMA,OAAG;AAAC,YAAIC,KAAED,GAAE,OAAME,KAAEF,GAAE,QAAM;AAAM,YAAG,KAAK,KAAK,QAAQ,KAAG,KAAK,KAAK,UAAUC,IAAEC,EAAC,EAAE,CAAAF,GAAE,QAAM,KAAK,KAAK,SAASC,IAAEC,EAAC;AAAA,YAAO,KAAG;AAAC,UAAAF,GAAE,QAAM,MAAM,KAAK,KAAK,UAAUC,IAAEC,EAAC;AAAA,QAAC,SAAOD,IAAE;AAAC,UAAAQ,GAAE,0BAA0B,KAAK,UAAUT,EAAC,CAAC,KAAKC,GAAE,OAAO,EAAE;AAAA,QAAC;AAAA,YAAM,MAAK,KAAK,aAAWA,KAAEC,KAAEF,GAAE,QAAM,KAAK,KAAK,SAASC,IAAEC,EAAC,IAAE,WAASF,GAAE,OAAKA,GAAE,QAAM,KAAK,KAAK,SAASC,EAAC,IAAEQ,GAAE,0BAAwB,KAAK,UAAUT,EAAC,CAAC;AAAE,eAAOA,GAAE;AAAA,MAAK,EAAE,GAAE,KAAK,iBAAe,KAAK,cAAcC,EAAC,GAAE,KAAK,UAAQA,IAAE,KAAK,OAAKC,IAAE,KAAK,UAAQC;AAAA,IAAC;AAAA,IAAC,cAAcH,IAAEC,IAAE;AAAC,WAAK,QAAQD,EAAC,EAAE,WAAS,KAAK,aAAaA,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,aAAaD,IAAEC,IAAE;AAAC,UAAIC,KAAE,KAAIe,GAAE,IAAIjB,EAAC,GAAGC,IAAE,KAAK,SAAQ,KAAK,IAAI;AAAE,aAAO,KAAK,QAAQD,EAAC,IAAEE;AAAA,IAAC;AAAA,IAAC,cAAcF,IAAE;AAAC,eAAQC,MAAKD,IAAE;AAAC,YAAG,EAAC,MAAKA,IAAE,OAAME,GAAC,IAAED,IAAEE,KAAE,KAAK,QAAQH,EAAC;AAAE,YAAGG,MAAGA,GAAE,SAAQ;AAAC,cAAIF,KAAE,KAAK,QAAQD,EAAC;AAAE,UAAAC,MAAGA,GAAE,UAAQA,MAAG,KAAK,aAAaD,IAAEE,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,MAAM,aAAaF,IAAE;AAAC,UAAIC,KAAED,GAAE,IAAI,KAAK,kBAAkB;AAAE,YAAM,QAAQ,IAAIC,EAAC;AAAA,IAAC;AAAA,EAAC,EAAC;AAAA,IAAC,eAAeA,IAAE;AAAC,YAAM,GAAGA,EAAC,GAAED,GAAE,MAAK,eAAc,CAAC,CAAC,GAAEA,GAAE,MAAK,gBAAe,CAAC,CAAC,GAAEA,GAAE,MAAK,mBAAkB,CAAC,CAAC;AAAA,IAAC;AAAA,IAAC,OAAO,UAAUA,IAAEC,IAAE;AAAC,aAAO,UAAQA;AAAA,IAAC;AAAA,IAAC,MAAM,QAAO;AAAC,YAAM,KAAK,gBAAgB,GAAE,MAAM,KAAK,aAAa,KAAK,WAAW,GAAE,KAAK,mBAAmB,GAAE,KAAK,cAAc,KAAK,qBAAmB,KAAK,WAAW;AAAA,IAAC;AAAA,IAAC,uBAAuBD,IAAE;AAAC,eAAKA,MAAG,KAAK,UAAQ,MAAG,KAAK,SAAO,IAAI,IAAIiB,GAAE,QAAQ,CAAC,MAAIjB,KAAE,WAASA,KAAEiB,GAAE,QAAQ,EAAE,QAAQ,CAAAjB,OAAG,KAAK,QAAQA,EAAC,EAAE,QAAQ,IAAEA,GAAE,QAAQ,CAAAA,OAAG,KAAK,QAAQA,EAAC,EAAE,WAASiB,GAAE,IAAIjB,EAAC,EAAE,GAAE,KAAK,UAAQ,OAAG,KAAK,YAAU,IAAI,IAAIA,EAAC,GAAE,KAAK,SAAO,IAAI,IAAIA,EAAC,IAAG,KAAK,yBAAuB;AAAA,IAAE;AAAA,IAAC,MAAM,gBAAgBA,KAAE,GAAEC,IAAE;AAAC,WAAK,uBAAuBA,EAAC;AAAE,UAAG,EAAC,MAAKC,IAAE,SAAQC,IAAE,QAAOC,IAAE,WAAUC,GAAC,IAAE;AAAK,UAAG,CAACF,MAAG,KAAK,KAAK,YAAUA,KAAE,MAAM,KAAKC,EAAC,EAAE,MAAM,CAAAJ,OAAG;AAAC,YAAIC,KAAEgB,GAAE,IAAIjB,EAAC,GAAEE,KAAE,KAAK,QAAQF,EAAC;AAAE,eAAOC,GAAE,gBAAcC,GAAE;AAAA,MAAY,EAAE,GAAEC,MAAG,MAAM,KAAK,KAAK,UAAU,IAAGH,KAAE,KAAK,uBAAuBA,IAAEE,GAAE,UAAU,GAAE,CAAC,KAAK,QAAQ,YAAUA,GAAE,SAAQ;AAAC,YAAID,KAAE;AAAG,eAAKI,GAAE,OAAK,KAAG,CAACJ,OAAIC,GAAE,oBAAkB,KAAK,2BAAyB;AAAC,cAAG,EAAC,iBAAgBC,GAAC,IAAED,IAAEE,KAAE,KAAK,YAAY,MAAM,CAAAJ,OAAG,CAAC,KAAK,KAAK,UAAUA,GAAE,UAAQA,GAAE,OAAMA,GAAE,UAAQA,GAAE,IAAI,EAAE;AAAE,cAAGC,KAAED,KAAEG,MAAG,CAACC,KAAE,CAAC,MAAMF,GAAE,cAAcF,EAAC,IAAE,CAAC,MAAME,GAAE,cAAcC,EAAC,GAAE,YAAUH,KAAE,KAAK,uBAAuBA,IAAEE,GAAE,UAAU,GAAG;AAAA,QAAM;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,uBAAuBF,IAAEC,IAAE;AAAC,MAAAA,MAAG;AAAE,UAAIC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAE,EAAC,MAAKC,IAAE,SAAQC,IAAE,QAAOC,IAAE,WAAUC,IAAE,SAAQC,GAAC,IAAE;AAAK,aAAKZ,KAAEC,IAAED,KAAI,KAAG,QAAMQ,GAAE,SAASR,EAAC;AAAE,YAAGE,KAAEM,GAAE,SAASR,KAAE,CAAC,GAAE,EAAEE,EAAC,GAAE;AAAC,cAAGC,KAAEK,GAAE,UAAUR,KAAE,CAAC,GAAEI,KAAE,EAAEI,IAAER,IAAEG,EAAC,GAAEC,MAAGM,GAAE,IAAIN,EAAC,MAAIC,KAAEY,GAAE,IAAIb,EAAC,GAAEE,KAAED,GAAE,aAAaG,IAAER,EAAC,GAAEO,KAAEK,GAAER,EAAC,GAAEE,GAAE,OAAKF,IAAE,KAAK,YAAY,KAAKE,EAAC,GAAE,CAACG,OAAIJ,GAAE,gBAAcE,GAAE,gBAAc,KAAK,yBAAuBD,GAAE,cAAYA,GAAE,YAAW,KAAK,0BAAwBK,GAAE,OAAOP,EAAC,KAAGO,GAAE,OAAOP,EAAC,GAAE,MAAIO,GAAE,OAAO;AAAM,UAAAC,GAAE,0BAAwBN,KAAE,EAAE,aAAaE,IAAER,EAAC,GAAEM,GAAE,SAAOJ,IAAE,KAAK,gBAAgB,KAAKI,EAAC,IAAGN,MAAGG,KAAE;AAAA,QAAC,WAASqC,GAAEtC,EAAC,GAAE;AAAC,cAAGC,KAAEK,GAAE,UAAUR,KAAE,CAAC,GAAE,QAAME,MAAG,UAAKU,GAAE,aAAa;AAAO,UAAAA,GAAE,sBAAoB,KAAK,aAAa,KAAK,EAAC,QAAOZ,IAAE,QAAOG,IAAE,QAAOD,GAAC,CAAC,GAAEF,MAAGG,KAAE;AAAA,QAAC;AAAA;AAAC,aAAOH;AAAA,IAAC;AAAA,IAAC,qBAAoB;AAAC,UAAG,CAAC,KAAK,YAAY,MAAM,CAAAA,OAAGA,GAAE,aAAa,EAAE;AAAO,UAAIA,MAAE,SAASA,IAAEC,IAAE;AAAC,YAAIC,IAAEC,IAAEC,IAAEC,KAAE,oBAAI;AAAI,iBAAQC,KAAE,GAAEA,KAAEN,GAAE,QAAOM,KAAI,CAAAJ,KAAEF,GAAEM,EAAC,GAAEH,KAAED,GAAED,EAAC,GAAEI,GAAE,IAAIF,EAAC,IAAEC,KAAEC,GAAE,IAAIF,EAAC,IAAEE,GAAE,IAAIF,IAAEC,KAAE,CAAC,CAAC,GAAEA,GAAE,KAAKF,EAAC;AAAE,eAAO,MAAM,KAAKG,EAAC;AAAA,MAAC,GAAE,KAAK,aAAY,MAAM;AAAE,WAAK,oBAAkBL,GAAE,KAAK,CAAC,CAACA,IAAEC,EAAC,MAAI;AAAC,YAAIC,KAAEe,GAAE,IAAIjB,IAAE,KAAK,OAAO;AAAE,YAAGE,GAAE,qBAAoB;AAAC,iBAAM,EAAC,MAAKF,IAAE,OAAME,GAAE,oBAAoBD,EAAC,EAAC;AAAA,QAAC;AAAC,eAAOA,GAAE,CAAC;AAAA,MAAC,EAAE;AAAA,IAAC;AAAA,IAAC,WAAWD,IAAE;AAAC,aAAO,KAAK,YAAY,MAAM,CAAAC,OAAGA,GAAE,SAAOD,GAAE;AAAA,IAAC;AAAA,IAAC,MAAM,iBAAiBA,IAAE;AAAC,UAAIC,KAAE,KAAK,WAAWD,EAAC;AAAE,aAAO,WAASC,OAAI,MAAM,KAAK,gBAAgB,GAAE,CAACD,EAAC,CAAC,GAAEC,KAAE,KAAK,WAAWD,EAAC,IAAGC;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAD,GAAEyC,KAAG,QAAO,MAAM,GAAEzB,GAAE,IAAI,QAAOyB,GAAE;AAAE,MAAM,KAAG,CAAC,QAAO,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC;AAAE,MAAM,KAAN,cAAiB,EAAC;AAAA,IAAC,cAAa;AAAC,UAAIzC,KAAE,KAAK,MAAM,UAAU;AAAE,gBAAQA,KAAE,KAAK,KAAG,OAAG,UAAQA,OAAI,KAAK,KAAG,QAAI,KAAK,MAAM,KAAG,KAAK,IAAG,KAAK,eAAa;AAAA,IAAE;AAAA,IAAC,UAAUA,IAAEC,IAAEC,KAAE,oBAAI,OAAI;AAAC,UAAG,EAAC,MAAKC,IAAE,MAAKC,GAAC,IAAE,KAAK,QAAQH,EAAC;AAAE,MAAAE,KAAE,IAAI,IAAIA,EAAC;AAAE,UAAIE,KAAEF,GAAE,OAAK,GAAEG,KAAE,MAAIF,GAAE,MAAKG,KAAE,KAAK,MAAM,UAAUP,EAAC;AAAE,MAAAA,MAAG;AAAE,eAAQQ,KAAE,GAAEA,KAAED,IAAEC,MAAI;AAAC,YAAID,KAAE,KAAK,MAAM,UAAUP,EAAC;AAAE,YAAGK,IAAE;AAAC,cAAGF,GAAE,IAAII,EAAC,MAAIL,GAAE,IAAIK,IAAE,KAAK,SAASP,IAAEO,IAAEN,EAAC,CAAC,GAAEE,GAAE,OAAOI,EAAC,GAAE,MAAIJ,GAAE,MAAM;AAAA,QAAK,MAAK,EAACG,MAAGF,GAAE,IAAIG,EAAC,KAAGL,GAAE,IAAIK,IAAE,KAAK,SAASP,IAAEO,IAAEN,EAAC,CAAC;AAAE,QAAAD,MAAG;AAAA,MAAE;AAAC,aAAOE;AAAA,IAAC;AAAA,IAAC,SAASF,IAAEC,IAAEC,IAAE;AAAC,UAAG,EAAC,OAAMC,GAAC,IAAE,MAAKC,KAAED,GAAE,UAAUH,KAAE,CAAC,GAAEK,KAAEF,GAAE,UAAUH,KAAE,CAAC,GAAEM,KAAE,GAAGF,EAAC;AAAE,UAAGE,KAAED,MAAG,IAAEL,MAAG,IAAEA,KAAEG,GAAE,UAAUH,KAAE,CAAC,IAAGI,KAAE,KAAGA,KAAE,OAAKK,GAAE,mCAAmCP,GAAE,YAAY,CAAC,UAAUD,GAAE,SAAS,EAAE,CAAC,WAAWG,EAAC,YAAYJ,EAAC,EAAE,GAAEA,KAAEG,GAAE,cAAYM,GAAE,qCAAqCP,GAAE,YAAY,CAAC,UAAUD,GAAE,SAAS,EAAE,CAAC,WAAWG,EAAC,YAAYJ,EAAC,6BAA6BG,GAAE,UAAU,EAAE,GAAE,MAAIC,GAAE,QAAOD,GAAE,cAAcH,IAAEK,EAAC;AAAE,UAAG,MAAID,GAAE,QAAM,QAAMG,MAAE,SAASP,IAAE;AAAC,eAAKA,GAAE,SAAS,IAAI,IAAG,CAAAA,KAAEA,GAAE,MAAM,GAAE,EAAE;AAAE,eAAOA;AAAA,MAAC,GAAEO,KAAEJ,GAAE,UAAUH,IAAEK,EAAC,CAAC,EAAE,KAAK,KAAG,SAAOE;AAAE,UAAIA;AAAE,UAAG,MAAIH,GAAE,QAAOD,GAAE,cAAcH,IAAEK,EAAC;AAAE,UAAG,MAAIA,GAAE,QAAO,KAAK,cAAcD,IAAEJ,EAAC;AAAE;AAAC,YAAIC,KAAE,MAAI,SAASD,IAAE;AAAC,kBAAOA,IAAE;AAAA,YAAC,KAAK;AAAE,qBAAO;AAAA,YAAW,KAAK;AAAE,qBAAO;AAAA,YAAY,KAAK;AAAE,qBAAO;AAAA,YAAY,KAAK;AAAE,qBAAO;AAAA,YAAM,KAAK;AAAE,qBAAO;AAAA,YAAU,KAAK;AAAE,qBAAO;AAAA,YAAW,KAAK;AAAE,qBAAO;AAAA,YAAW,KAAK;AAAG,qBAAO;AAAA,YAAM,KAAK;AAAG,qBAAO;AAAA,YAAa,KAAK;AAAG,qBAAO;AAAA,YAAa;AAAQ,qBAAO;AAAA,UAAK;AAAA,QAAC,GAAEI,EAAC,GAAGC,EAAC,GAAEH,KAAEI;AAAE,iBAAQH,KAAE,GAAEA,KAAEE,IAAEF,KAAI,CAAAF,GAAEE,EAAC,IAAE,KAAK,cAAcC,IAAEJ,EAAC,GAAEA,MAAGE;AAAE,eAAOD;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,cAAcD,IAAEC,IAAE;AAAC,UAAG,EAAC,OAAMC,GAAC,IAAE;AAAK,cAAOF,IAAE;AAAA,QAAC,KAAK;AAAE,iBAAOE,GAAE,SAASD,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAOC,GAAE,UAAUD,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAOC,GAAE,UAAUD,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAOC,GAAE,UAAUD,EAAC,IAAEC,GAAE,UAAUD,KAAE,CAAC;AAAA,QAAE,KAAK;AAAE,iBAAOC,GAAE,QAAQD,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAOC,GAAE,SAASD,EAAC;AAAA,QAAE,KAAK;AAAE,iBAAOC,GAAE,SAASD,EAAC;AAAA,QAAE,KAAK;AAAG,iBAAOC,GAAE,SAASD,EAAC,IAAEC,GAAE,SAASD,KAAE,CAAC;AAAA,QAAE,KAAK;AAAG,iBAAOC,GAAE,SAASD,EAAC;AAAA,QAAE,KAAK;AAAG,iBAAOC,GAAE,UAAUD,EAAC;AAAA,QAAE,KAAK;AAAG,iBAAOC,GAAE,UAAUD,EAAC;AAAA,QAAE;AAAQ,UAAAQ,GAAE,qBAAqBT,EAAC,EAAE;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,MAAM,KAAN,cAAiB,GAAE;AAAA,IAAC,OAAO,UAAUA,IAAEC,IAAE;AAAC,aAAO,QAAMD,GAAE,SAASC,KAAE,CAAC,KAAG,eAAaD,GAAE,UAAUC,KAAE,CAAC,KAAG,MAAID,GAAE,UAAUC,KAAE,CAAC;AAAA,IAAC;AAAA,IAAC,MAAM,QAAO;AAAC,WAAK,YAAY;AAAE,UAAG,EAAC,SAAQD,GAAC,IAAE;AAAK,aAAOA,GAAE,KAAK,WAAS,MAAM,KAAK,eAAe,GAAEA,GAAE,KAAK,WAAS,MAAM,KAAK,UAAU,gBAAgB,GAAEA,GAAE,IAAI,WAAS,MAAM,KAAK,UAAU,eAAe,GAAEA,GAAE,QAAQ,WAAS,MAAM,KAAK,UAAU,mBAAmB,GAAEA,GAAE,KAAK,WAAS,MAAM,KAAK,UAAU,qBAAqB,GAAE,KAAK,aAAa;AAAA,IAAC;AAAA,IAAC,UAAUA,IAAE;AAAC,UAAIC,KAAE,KAAKD,EAAC,EAAE;AAAE,aAAO,WAASC,GAAE,UAAQA,KAAEA,GAAE,MAAM,KAAK,WAAW,IAAGA;AAAA,IAAC;AAAA,IAAC,iBAAgB;AAAC,iBAAS,KAAK,eAAa,KAAK,aAAW,KAAK,MAAM,UAAU,CAAC;AAAA,IAAE;AAAA,IAAC,iBAAgB;AAAC,UAAG,WAAS,KAAK,YAAW;AAAC,aAAK,eAAe;AAAE,YAAID,KAAE,KAAK,MAAM,UAAU,KAAK,UAAU,GAAEC,KAAE,KAAK,aAAW,IAAE,KAAGD;AAAE,aAAK,aAAW,KAAK,MAAM,UAAUC,EAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,WAAWD,IAAEC,IAAE;AAAC,UAAIC,KAAE,oBAAI;AAAI,aAAO,KAAKD,EAAC,IAAEC,IAAE,KAAK,UAAUF,IAAEC,IAAEC,EAAC,GAAEA;AAAA,IAAC;AAAA,IAAC,MAAM,iBAAgB;AAAC,UAAG,KAAK,KAAK;AAAO,UAAG,EAAC,MAAKF,GAAC,IAAE;AAAK,WAAK,eAAe,GAAE,KAAK,aAAW,KAAGS,GAAE,qBAAqB,GAAE,CAACT,GAAE,WAAS,KAAK,aAAWA,GAAE,cAAYS,GAAE;AAAA,mBAA4D,KAAK,UAAU,sBAAsBT,GAAE,UAAU,EAAE,GAAEA,GAAE,QAAM,MAAMA,GAAE,YAAY,KAAK,YAAWU,GAAE,KAAK,OAAO,CAAC;AAAE,UAAIT,KAAE,KAAK,WAAW,KAAK,YAAW,MAAM;AAAE,aAAO,MAAIA,GAAE,QAAM,KAAK,aAAWA,GAAE,IAAI,KAAK,GAAE,KAAK,gBAAcA,GAAE,IAAI,KAAK,GAAE,KAAK,YAAUA,GAAE,IAAI,KAAK,GAAE,KAAK,MAAIA,GAAE,IAAI,GAAG,GAAE,KAAK,OAAKA,GAAE,IAAI,KAAK,GAAE,KAAK,MAAIA,GAAE,IAAI,KAAK,GAAE,KAAK,QAAQ,aAAWA,GAAE,OAAO,KAAK,GAAEA,GAAE,OAAO,KAAK,GAAEA,GAAE,OAAO,KAAK,GAAEA,GAAE,OAAO,GAAG,GAAEA,GAAE,OAAO,KAAK,GAAEA,GAAE,OAAO,KAAK,IAAGA,MAAG;AAAA,IAAM;AAAA,IAAC,MAAM,iBAAgB;AAAC,UAAG,KAAK,KAAK;AAAO,UAAG,KAAK,QAAM,MAAM,KAAK,eAAe,GAAE,WAAS,KAAK,WAAW;AAAO,WAAK,KAAK,QAAM,MAAM,KAAK,KAAK,YAAY,KAAK,YAAWS,GAAE,KAAK,OAAO,CAAC;AAAE,UAAIV,KAAE,KAAK,WAAW,KAAK,YAAW,MAAM;AAAE,aAAO,KAAK,kBAAgB,KAAK,gBAAcA,GAAE,IAAI,KAAK,IAAG,KAAK,YAAUA,GAAE,IAAI,KAAK,GAAE,KAAK,cAAYA,GAAE,IAAI,KAAK,GAAE,KAAK,QAAQ,aAAWA,GAAE,OAAO,KAAK,GAAEA,GAAE,OAAO,KAAK,GAAEA,GAAE,OAAO,KAAK,IAAG,KAAK,OAAOA,IAAE,KAAK,GAAE,KAAK,OAAOA,IAAE,KAAK,GAAEA;AAAA,IAAC;AAAA,IAAC,OAAOA,IAAEC,IAAE;AAAC,UAAIC,KAAEF,GAAE,IAAIC,EAAC;AAAE,MAAAC,MAAG,MAAIA,GAAE,UAAQF,GAAE,IAAIC,IAAEC,GAAE,CAAC,CAAC;AAAA,IAAC;AAAA,IAAC,MAAM,gBAAe;AAAC,UAAG,KAAK,IAAI;AAAO,UAAG,KAAK,QAAM,MAAM,KAAK,eAAe,GAAE,WAAS,KAAK,UAAU;AAAO,UAAIF,KAAE,KAAK,WAAW,KAAK,WAAU,KAAK;AAAE,aAAOA,MAAGA,GAAE,IAAI,CAAC,KAAGA,GAAE,IAAI,CAAC,MAAIA,GAAE,IAAI,YAAW,GAAG,GAAGA,GAAE,IAAI,CAAC,GAAEA,GAAE,IAAI,CAAC,CAAC,CAAC,GAAEA,GAAE,IAAI,aAAY,GAAG,GAAGA,GAAE,IAAI,CAAC,GAAEA,GAAE,IAAI,CAAC,CAAC,CAAC,IAAGA;AAAA,IAAC;AAAA,IAAC,MAAM,oBAAmB;AAAC,UAAG,CAAC,KAAK,YAAU,KAAK,QAAM,MAAM,KAAK,eAAe,GAAE,WAAS,KAAK,iBAAe,KAAK,QAAM,MAAM,KAAK,eAAe,GAAE,WAAS,KAAK,eAAe,QAAO,KAAK,WAAW,KAAK,eAAc,SAAS;AAAA,IAAC;AAAA,IAAC,MAAM,oBAAoBA,KAAE,OAAG;AAAC,UAAG,CAAC,KAAK,QAAM,CAAC,KAAK,eAAa,CAAC,KAAK,QAAQ,eAAaA,IAAG,QAAO,KAAK,eAAe,GAAE,KAAK,aAAW,MAAI,KAAK,WAAW,KAAK,YAAW,MAAM,GAAE,KAAK,aAAW,OAAI,KAAK;AAAA,IAAI;AAAA,IAAC,MAAM,mBAAkB;AAAC,UAAG,KAAK,gBAAc,KAAK,YAAY,GAAE,KAAK,cAAY,MAAM,KAAK,oBAAoB,IAAE,GAAE,WAAS,KAAK,KAAK;AAAO,UAAIA,KAAE,KAAK,KAAK,IAAI,GAAG,GAAEC,KAAE,KAAK,KAAK,IAAI,GAAG;AAAE,aAAO,KAAK,MAAM,cAAcD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,IAAI,QAAO;AAAC,aAAO,KAAK;AAAA,IAAI;AAAA,IAAC,IAAI,YAAW;AAAC,aAAO,KAAK;AAAA,IAAI;AAAA,IAAC,eAAc;AAAC,UAAID,IAAEC,IAAEC,IAAEC,KAAE,CAAC;AAAE,WAAIF,MAAK8B,GAAE,KAAG/B,KAAE,KAAKC,EAAC,GAAE,CAACO,GAAER,EAAC,EAAE,KAAGE,KAAE,KAAK,eAAa,KAAK,eAAeF,IAAEC,EAAC,IAAE,OAAO,YAAYD,EAAC,GAAE,KAAK,QAAQ,aAAY;AAAC,YAAG,WAASC,GAAE;AAAS,eAAO,OAAOE,IAAED,EAAC;AAAA,MAAC,MAAM,CAAAC,GAAEF,EAAC,IAAEC;AAAE,aAAO,KAAK,cAAYC,GAAE,YAAU,KAAK,YAAW,KAAK,gBAAcA,GAAE,cAAY,KAAK,cAAaA;AAAA,IAAC;AAAA,IAAC,eAAeH,IAAEC,IAAE;AAAC,UAAG,KAAK,cAAc,YAAY,QAAO,OAAOD,IAAEC,EAAC;AAAA,UAAO,UAAO,CAACC,IAAEC,EAAC,KAAI,OAAO,QAAQF,EAAC,EAAE,MAAK,qBAAqBD,IAAEE,IAAEC,EAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAAS,GAAGH,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAIC,KAAEJ,KAAEC,KAAE,KAAGC,KAAE;AAAK,WAAM,QAAMC,MAAG,QAAMA,OAAIC,MAAG,KAAIA;AAAA,EAAC;AAAC,EAAAJ,GAAE,IAAG,QAAO,MAAM,GAAEA,GAAE,IAAG,gBAAe,EAAE,GAAEiB,GAAE,IAAI,QAAO,EAAE;AAAE,MAAI,KAAG,OAAO,OAAO,EAAC,WAAU,MAAK,SAAQ,GAAE,OAAMsB,IAAE,aAAYvB,IAAE,gBAAeC,IAAE,aAAYC,IAAE,SAAQ,GAAE,WAAU,GAAE,aAAYS,IAAE,kBAAiBF,IAAE,kBAAiBC,IAAE,uBAAsBH,IAAE,uBAAsBC,IAAE,cAAaI,IAAE,eAAcC,IAAE,UAASC,IAAE,YAAWC,IAAE,mBAAkB,GAAE,kBAAiBC,IAAE,cAAaC,IAAE,eAAcC,IAAE,SAAQ,GAAE,OAAM,EAAC,CAAC;AAAE,MAAM,KAAG,EAAC,MAAK,OAAG,MAAK,OAAG,MAAK,OAAG,KAAI,OAAG,SAAQ,OAAG,UAAS,OAAG,cAAa,MAAG,eAAc,OAAG,iBAAgB,OAAG,aAAY,MAAE;AAAlI,MAAoI,KAAG,OAAO,OAAO,CAAC,GAAE,IAAG,EAAC,gBAAe,KAAI,KAAI,CAAC,GAAE,GAAE,GAAE,CAAC,EAAC,CAAC;AAA4J,MAAM,KAAG,OAAO,OAAO,CAAC,GAAE,IAAG,EAAC,MAAK,OAAG,MAAK,MAAG,aAAY,MAAE,CAAC;AAAqO,MAAM,KAAG,OAAO,OAAO,CAAC,GAAE,IAAG,EAAC,gBAAe,KAAI,MAAK,CAAC,GAAG,EAAC,CAAC;AAAE,iBAAe,GAAGQ,IAAE;AAAC,QAAIC,KAAE,IAAIC,GAAE,EAAE;AAAE,UAAMD,GAAE,KAAKD,EAAC;AAAE,QAAIG,KAAE,MAAMF,GAAE,MAAM;AAAE,QAAGE,MAAGA,GAAE,KAAK,QAAOA,GAAE,KAAK,GAAG;AAAA,EAAC;AAAC,MAAM,KAAG,OAAO,OAAO,EAAC,GAAE,EAAC,kBAAiB,OAAG,QAAO,GAAE,QAAO,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAE,EAAC,kBAAiB,OAAG,QAAO,IAAG,QAAO,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAE,EAAC,kBAAiB,OAAG,QAAO,GAAE,QAAO,GAAE,KAAI,KAAI,KAAI,MAAI,KAAK,KAAG,IAAG,GAAE,GAAE,EAAC,kBAAiB,OAAG,QAAO,IAAG,QAAO,GAAE,KAAI,KAAI,KAAI,MAAI,KAAK,KAAG,IAAG,GAAE,GAAE,EAAC,kBAAiB,MAAG,QAAO,GAAE,QAAO,IAAG,KAAI,IAAG,KAAI,KAAG,KAAK,KAAG,IAAG,GAAE,GAAE,EAAC,kBAAiB,MAAG,QAAO,GAAE,QAAO,GAAE,KAAI,IAAG,KAAI,KAAG,KAAK,KAAG,IAAG,GAAE,GAAE,EAAC,kBAAiB,MAAG,QAAO,GAAE,QAAO,IAAG,KAAI,KAAI,KAAI,MAAI,KAAK,KAAG,IAAG,GAAE,GAAE,EAAC,kBAAiB,MAAG,QAAO,GAAE,QAAO,GAAE,KAAI,KAAI,KAAI,MAAI,KAAK,KAAG,IAAG,EAAC,CAAC;AAAE,MAAI,KAAG;AAAP,MAAU,KAAG;AAAG,MAAG,YAAU,OAAO,WAAU;AAAC,QAAIH,KAAE,UAAU;AAAU,QAAGA,GAAE,SAAS,MAAM,KAAGA,GAAE,SAAS,QAAQ,GAAE;AAAC,UAAIC,KAAED,GAAE,MAAM,gBAAgB;AAAE,UAAGC,IAAE;AAAC,YAAG,CAAC,EAACD,IAAEG,EAAC,IAAEF,IAAEG,KAAE,OAAOJ,EAAC,IAAE,MAAG,OAAOG,EAAC;AAAE,aAAGC,KAAE,MAAK,KAAG;AAAA,MAAE;AAAA,IAAC,WAASJ,GAAE,SAAS,SAAS,GAAE;AAAC,UAAG,CAAC,EAACC,EAAC,IAAED,GAAE,MAAM,kBAAkB;AAAE,WAAG,KAAG,OAAOC,EAAC,IAAE;AAAA,IAAE;AAAC,QAAGD,GAAE,SAAS,SAAS,GAAE;AAAC,UAAG,CAAC,EAACC,EAAC,IAAED,GAAE,MAAM,eAAe;AAAE,WAAG,KAAG,OAAOC,EAAC,IAAE;AAAA,IAAE,WAASD,GAAE,SAAS,UAAU,GAAE;AAAC,UAAG,CAAC,EAACC,EAAC,IAAED,GAAE,MAAM,gBAAgB;AAAE,WAAG,KAAG,OAAOC,EAAC,IAAE;AAAA,IAAE;AAAA,EAAC;AAAC,iBAAe,GAAGD,IAAE;AAAC,QAAIC,KAAE,MAAM,GAAGD,EAAC;AAAE,WAAO,OAAO,OAAO,EAAC,QAAO,IAAG,KAAI,GAAE,GAAE,GAAGC,EAAC,CAAC;AAAA,EAAC;AAAC,MAAM,KAAN,cAAiBI,GAAC;AAAA,IAAC,eAAeJ,IAAE;AAAC,YAAM,GAAGA,EAAC,GAAED,GAAE,MAAK,UAAS,IAAI,IAAE,GAAE,MAAI,KAAK,cAAY,KAAK,OAAO,IAAI,GAAE,KAAK,UAAU;AAAA,IAAC;AAAA,IAAC,WAAWA,IAAEC,IAAEE,IAAE;AAAC,UAAG,MAAIH,MAAG,MAAI,KAAK,cAAYG,IAAE;AAAC,YAAIH,KAAE,IAAI,SAASG,GAAE,UAAQA,IAAEA,GAAE,YAAWA,GAAE,UAAU;AAAE,aAAK,cAAcH,EAAC;AAAA,MAAC,OAAK;AAAC,YAAIG,KAAEH,KAAEC;AAAE,YAAGE,KAAE,KAAK,YAAW;AAAC,cAAG,EAAC,UAASH,GAAC,IAAE,KAAK,QAAQG,EAAC;AAAE,eAAK,cAAcH,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,QAAQA,IAAE;AAAC,UAAIC;AAAE,MAAAA,KAAEK,KAAEC,GAAE,YAAYP,EAAC,IAAE,IAAI,WAAWA,EAAC;AAAE,UAAIG,KAAE,IAAI,SAASF,GAAE,QAAOA,GAAE,YAAWA,GAAE,UAAU;AAAE,aAAOA,GAAE,IAAI,IAAI,WAAW,KAAK,QAAO,KAAK,YAAW,KAAK,UAAU,GAAE,CAAC,GAAE,EAAC,UAASA,IAAE,UAASE,GAAC;AAAA,IAAC;AAAA,IAAC,SAASH,IAAEC,IAAEE,KAAE,OAAG;AAAC,aAAOF,KAAEA,MAAG,KAAK,aAAaD,EAAC,GAAEG,MAAG,KAAK,WAAWH,IAAEC,EAAC,GAAE,KAAK,OAAO,IAAID,IAAEC,EAAC,GAAE,MAAM,SAASD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,IAAID,IAAEC,IAAEE,KAAE,OAAG;AAAC,MAAAA,MAAG,KAAK,WAAWF,IAAED,GAAE,YAAWA,EAAC;AAAE,UAAII,KAAE,MAAM,IAAIJ,IAAEC,EAAC;AAAE,aAAO,KAAK,OAAO,IAAIA,IAAEG,GAAE,UAAU,GAAEA;AAAA,IAAC;AAAA,IAAC,MAAM,YAAYJ,IAAEC,IAAE;AAAC,WAAK,YAAU,KAAK,OAAO,UAAUD,IAAEC,EAAC,KAAG,MAAM,KAAK,UAAUD,IAAEC,EAAC;AAAA,IAAE;AAAA,IAAC,UAAUD,IAAEC,IAAE;AAAC,aAAO,KAAK,OAAO,UAAUD,IAAEC,EAAC;AAAA,IAAC;AAAA,EAAC;AAAC,MAAM,KAAN,MAAQ;AAAA,IAAC,cAAa;AAAC,MAAAD,GAAE,MAAK,QAAO,CAAC,CAAC;AAAA,IAAC;AAAA,IAAC,IAAI,SAAQ;AAAC,aAAO,KAAK,KAAK;AAAA,IAAM;AAAA,IAAC,IAAIA,IAAEC,IAAEE,KAAE,GAAE;AAAC,UAAIC,KAAEJ,KAAEC,IAAEO,KAAE,KAAK,KAAK,QAAQ,CAAAP,OAAG,GAAGD,IAAEC,GAAE,QAAOG,EAAC,KAAG,GAAGJ,IAAEC,GAAE,KAAIG,EAAC,EAAE;AAAE,UAAGI,GAAE,SAAO,GAAE;AAAC,QAAAR,KAAE,KAAK,IAAIA,IAAE,GAAGQ,GAAE,KAAK,CAAAR,OAAGA,GAAE,OAAO,CAAC,GAAEI,KAAE,KAAK,IAAIA,IAAE,GAAGI,GAAE,KAAK,CAAAR,OAAGA,GAAE,IAAI,CAAC,GAAEC,KAAEG,KAAEJ;AAAE,YAAIG,KAAEK,GAAE,MAAM;AAAE,QAAAL,GAAE,SAAOH,IAAEG,GAAE,SAAOF,IAAEE,GAAE,MAAIC,IAAE,KAAK,OAAK,KAAK,KAAK,QAAQ,CAAAJ,OAAG,CAACQ,GAAE,SAASR,EAAC,EAAE;AAAA,MAAC,MAAM,MAAK,KAAK,KAAK,EAAC,QAAOA,IAAE,QAAOC,IAAE,KAAIG,GAAC,CAAC;AAAA,IAAC;AAAA,IAAC,UAAUJ,IAAEC,IAAE;AAAC,UAAIE,KAAEH,KAAEC;AAAE,aAAO,KAAK,KAAK,MAAM,CAAAA,OAAGA,GAAE,UAAQD,MAAGG,MAAGF,GAAE,IAAI;AAAA,IAAC;AAAA,EAAC;AAAC,WAAS,GAAGD,IAAEC,IAAEE,IAAE;AAAC,WAAOH,MAAGC,MAAGA,MAAGE;AAAA,EAAC;AAAC,MAAM,KAAN,cAAiB,GAAE;AAAA,IAAC,YAAYF,IAAEE,IAAE;AAAC,YAAM,CAAC,GAAEH,GAAE,MAAK,cAAa,CAAC,GAAE,KAAK,QAAMC,IAAE,KAAK,UAAQE;AAAA,IAAC;AAAA,IAAC,MAAM,YAAW;AAAC,WAAK,UAAQ,OAAG,MAAM,KAAK,UAAU,KAAK,eAAe;AAAA,IAAC;AAAA,IAAC,MAAM,cAAa;AAAC,WAAK,UAAQ,MAAG,MAAM,KAAK,UAAU,GAAE,KAAK,QAAQ,cAAc;AAAA,IAAC;AAAA,IAAC,MAAM,cAAcH,KAAE,KAAK,iBAAgB;AAAC,UAAG,KAAK,UAAU,QAAO,KAAK,cAAa;AAAG,UAAIC,KAAE,KAAK,QAAQ,WAAUE,KAAE,MAAM,KAAK,UAAUH,IAAEC,EAAC;AAAE,aAAM,CAAC,CAACE,MAAGA,GAAE,eAAaF;AAAA,IAAC;AAAA,IAAC,MAAM,UAAUD,IAAEC,IAAE;AAAC,UAAG,KAAK,cAAa,OAAKA,KAAE,KAAK,gBAAgBD,IAAEC,EAAC,GAAG,QAAO,KAAK,WAAWD,IAAEC,EAAC;AAAA,IAAC;AAAA,IAAC,gBAAgBD,IAAEC,IAAE;AAAC,aAAO,WAAS,KAAK,QAAMD,KAAEC,KAAE,KAAK,OAAK,KAAK,IAAI,GAAE,KAAK,OAAKD,EAAC,IAAEC;AAAA,IAAC;AAAA,IAAC,IAAI,kBAAiB;AAAC,UAAG,MAAI,KAAK,OAAO,KAAK,OAAO,QAAO,KAAK,OAAO,KAAK,CAAC,EAAE;AAAA,IAAM;AAAA,IAAC,IAAI,mBAAkB;AAAC,aAAO,KAAK,aAAW,KAAK,QAAQ;AAAA,IAAU;AAAA,IAAC,IAAI,YAAW;AAAC,aAAO,WAAS,KAAK,QAAM,KAAK,oBAAkB,KAAK;AAAA,IAAI;AAAA,IAAC,OAAM;AAAC,aAAO,KAAK,QAAQ,UAAQ,KAAK,YAAY,IAAE,KAAK,UAAU;AAAA,IAAC;AAAA,IAAC,QAAO;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAQ,GAAE,IAAI,QAAO,cAAc,GAAE;AAAA,IAAC,MAAM,YAAW;AAAC,WAAK,UAAQ;AAAG,UAAIT,KAAE,MAAMU,GAAE,KAAK,KAAK;AAAE,WAAK,iBAAiBV,EAAC;AAAA,IAAC;AAAA,IAAC,cAAa;AAAC,aAAO,KAAK,UAAQ,MAAG,KAAK,OAAK,KAAK,MAAM,MAAK,MAAM,YAAY;AAAA,IAAC;AAAA,IAAC,MAAM,WAAWA,IAAEC,IAAE;AAAC,UAAIE,KAAEF,KAAED,KAAEC,KAAE,QAAOG,KAAE,KAAK,MAAM,MAAMJ,IAAEG,EAAC,GAAEK,KAAE,MAAME,GAAEN,EAAC;AAAE,aAAO,KAAK,IAAII,IAAER,IAAE,IAAE;AAAA,IAAC;AAAA,EAAC,CAAC;;;ACAvu3B,MAAOW,kBAAQ;AAAA,IACb,SAAS;AAAA,MACP,sBAAsB;AAAA,IACxB;AAAA,EACF;;;ACEA,MAAMC,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAOA,WAAS,aAAa,QAAQ,MAAM,SAAS;AAC3C,QAAI;AACF,aAAO,WAAW,IAAI,EAAE,aAAa,GAAG,GAAG,GAAG,CAAC;AAAA,IACjD,SAAS,KAAK;AACZ,UAAI,IAAI,SAAS,IAAI;AACnB,eAAO,QAAQ,OAAO,IAAI,MAAM,4DAA4D,CAAC;AAAA,MAC/F;AAAA,IACF;AACA,QAAI,OAAO,QAAQ;AACjB,aAAO,IAAI,QAAQ,aAAW;AAC5B,eAAO,OAAO,SAAS,MAAM,OAAO;AAAA,MACtC,CAAC,EAAE,KAAK,UAAQ;AACd,YAAI,SAAS,MAAM;AACjB,gBAAM,IAAI,MAAM,4DAA4D;AAAA,QAC9E;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AACA,WAAO,QAAQ,QAAQ,EAAE,KAAK,MAAM;AAClC,aAAO,sBAAc,OAAO,UAAU,MAAM,OAAO,GAAG,CAAC,CAAC;AAAA,IAC1D,CAAC,EAAE,KAAK,UAAQ;AACd,UAAI,SAAS,MAAM;AACjB,cAAM,IAAI,MAAM,iDAAiD;AAAA,MACnE;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACA,WAAS,YAAY,OAAO,WAAW;AACrC,QAAIC,KAAI,MAAM;AACd,QAAIC,KAAI,MAAM;AACd,QAAI,UAAU,QAAQ,MAAM,UAAU,QAAQ,KAAK;AACjD,MAAAD,KAAI,MAAM;AACV,MAAAC,KAAI,MAAM;AAAA,IACZ;AACA,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,QAAQD;AACf,WAAO,SAASC;AAChB,UAAM,UAAU,OAAO,WAAW,IAAI;AACtC,YAAQ,UAAUD,KAAI,GAAGC,KAAI,CAAC;AAC9B,QAAI,UAAU,QAAQ;AACpB,cAAQ,OAAO,UAAU,GAAG;AAC5B,cAAQ,MAAM,UAAU,QAAQ,UAAU,MAAM;AAAA,IAClD;AACA,YAAQ,UAAU,OAAO,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,MAAM;AACvF,WAAO;AAAA,EACT;AAMA,WAAS,QAAQ,OAAO;AAGtB,UAAM,QAAQ,MAAM,QAAQ,MAAM;AAClC,UAAM,YAAY;AAClB,UAAM,UAAU;AAEhB,QAAI,OAAO,KAAK,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC;AAClD,QAAI,OAAO,KAAK,MAAM,YAAY,KAAK,KAAK,YAAY,KAAK,CAAC;AAC9D,QAAI,OAAO,SAAS;AAClB,aAAO;AACP,aAAO,KAAK,MAAM,OAAO,KAAK;AAAA,IAChC;AACA,QAAI,OAAO,SAAS;AAClB,aAAO;AACP,aAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,IAChC;AACA,QAAI,MAAM,QAAQ,MAAM;AACtB,YAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,aAAO,QAAQ;AACf,aAAO,SAAS;AAChB,aAAO,WAAW,IAAI,EAAE,UAAU,OAAO,GAAG,GAAG,MAAM,IAAI;AACzD,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAMA,MAAqB,qBAArB,cAAgD,iBAAS;AAAA,IACvD,YAAY,MAAM,MAAM;AACtB,YAAM,MAAM,IAAI;AAChB,WAAK,cAAc,UAAQ;AACzB,YAAI,CAAC,KAAK,WAAW,KAAK,QAAQ,mBAAmB,KAAK,IAAI,KAAK,CAAC,KAAK,UAAU;AACjF,eAAK,WAAW,KAAK,EAAE;AAAA,QACzB;AAAA,MACF;AAIA,WAAK,kBAAkB,UAAQ;AAC7B,cAAM,QAAQ,KAAK,MAAM,QAAQ,KAAK,EAAE;AACxC,YAAI,UAAU,IAAI;AAChB,eAAK,MAAM,OAAO,OAAO,CAAC;AAAA,QAC5B;AAAA,MACF;AAIA,WAAK,gBAAgB,UAAQ;AAC3B,cAAM,QAAQ,KAAK,MAAM,QAAQ,KAAK,EAAE;AACxC,YAAI,UAAU,IAAI;AAChB,eAAK,MAAM,OAAO,OAAO,CAAC;AAAA,QAC5B;AAGA,YAAI,KAAK,WAAW,YAAY,KAAK,OAAO,GAAG;AAC7C,cAAI,gBAAgB,KAAK,OAAO;AAAA,QAClC;AAAA,MACF;AACA,WAAK,aAAa,MAAM;AACtB,cAAM,gBAAgB,KAAK,KAAK,SAAS,EAAE,OAAO,UAAQ,KAAK,UAAU;AACzE,sBAAc,QAAQ,UAAQ;AAE5B,cAAI,CAAC,KAAK,WAAW,YAAY,KAAK,OAAO,GAAG;AAC9C,iBAAK,WAAW,KAAK,EAAE;AAAA,UACzB;AAAA,QACF,CAAC;AAAA,MACH;AACA,WAAK,oBAAoB,MAAM;AAC7B,aAAK,QAAQ,CAAC;AAAA,MAChB;AACA,WAAK,wBAAwB,aAAW;AACtC,gBAAQ,QAAQ,YAAU;AACxB,gBAAM,OAAO,KAAK,KAAK,QAAQ,MAAM;AACrC,eAAK,KAAK,KAAK,uBAAuB,MAAM;AAAA,YAC1C,MAAM;AAAA,YACN,SAAS,KAAK,KAAK,sBAAsB;AAAA,UAC3C,CAAC;AAAA,QACH,CAAC;AACD,cAAM,+BAA+B,MAAM;AACzC,kBAAQ,QAAQ,YAAU;AACxB,kBAAM,OAAO,KAAK,KAAK,QAAQ,MAAM;AACrC,iBAAK,KAAK,KAAK,uBAAuB,IAAI;AAAA,UAC5C,CAAC;AAAA,QACH;AACA,eAAO,IAAI,QAAQ,aAAW;AAC5B,cAAI,KAAK,iBAAiB;AACxB,iBAAK,KAAK,KAAK,2BAA2B,MAAM;AAC9C,2CAA6B;AAC7B,sBAAQ;AAAA,YACV,CAAC;AAAA,UACH,OAAO;AACL,yCAA6B;AAC7B,oBAAQ;AAAA,UACV;AAAA,QACF,CAAC;AAAA,MACH;AACA,WAAK,OAAO;AACZ,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AACb,WAAK,QAAQ,CAAC;AACd,WAAK,kBAAkB;AACvB,WAAK,4BAA4B;AACjC,WAAK,gBAAgB,KAAK,KAAK,iBAAiB;AAChD,WAAK,gBAAgBC;AACrB,YAAMC,kBAAiB;AAAA,QACrB,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,+BAA+B;AAAA,QAC/B,MAAM;AAAA,MACR;AACA,WAAK,OAAO;AAAA,QACV,GAAGA;AAAA,QACH,GAAG;AAAA,MACL;AACA,WAAK,SAAS;AACd,UAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,+BAA+B;AAC7D,cAAM,IAAI,MAAM,wJAAwJ;AAAA,MAC1K;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,gBAAgB,MAAM,aAAa,cAAc;AAC/C,YAAM,cAAc,IAAI,gBAAgB,KAAK,IAAI;AACjD,YAAM,SAAS,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC9C,cAAM,QAAQ,IAAI,MAAM;AACxB,cAAM,MAAM;AACZ,cAAM,iBAAiB,QAAQ,MAAM;AACnC,cAAI,gBAAgB,WAAW;AAC/B,kBAAQ,KAAK;AAAA,QACf,CAAC;AACD,cAAM,iBAAiB,SAAS,WAAS;AACvC,cAAI,gBAAgB,WAAW;AAC/B,iBAAO,MAAM,SAAS,IAAI,MAAM,4BAA4B,CAAC;AAAA,QAC/D,CAAC;AAAA,MACH,CAAC;AACD,YAAM,qBAAqB,GAAS,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5D,aAAO,QAAQ,IAAI,CAAC,QAAQ,kBAAkB,CAAC,EAAE,KAAK,UAAQ;AAC5D,YAAI,CAAC,OAAO,WAAW,IAAI;AAC3B,cAAM,aAAa,KAAK,0BAA0B,OAAO,aAAa,cAAc,YAAY,GAAG;AACnG,cAAM,eAAe,YAAY,OAAO,WAAW;AACnD,cAAM,eAAe,KAAK,YAAY,cAAc,WAAW,OAAO,WAAW,MAAM;AACvF,eAAO,aAAa,cAAc,KAAK,eAAe,EAAE;AAAA,MAC1D,CAAC,EAAE,KAAK,UAAQ;AACd,eAAO,IAAI,gBAAgB,IAAI;AAAA,MACjC,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,0BAA0B,KAAK,OAAO,QAAQ,UAAU;AAEtD,UAAI,SAAS,IAAI,QAAQ,IAAI;AAC7B,UAAI,aAAa,MAAM,aAAa,KAAK;AACvC,iBAAS,IAAI,SAAS,IAAI;AAAA,MAC5B;AACA,UAAI,SAAS,MAAM;AACjB,eAAO;AAAA,UACL;AAAA,UACA,QAAQ,KAAK,MAAM,QAAQ,MAAM;AAAA,QACnC;AAAA,MACF;AACA,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,UACL,OAAO,KAAK,MAAM,SAAS,MAAM;AAAA,UACjC;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,QACL,OAAO,KAAK;AAAA,QACZ,QAAQ,KAAK,MAAM,KAAK,4BAA4B,MAAM;AAAA,MAC5D;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,YAAY,OAAO,aAAa,cAAc;AAI5C,UAAI,MAAM,QAAQ,KAAK;AACvB,UAAI,QAAQ,KAAK,KAAK,KAAK,KAAK,IAAI,QAAQ,WAAW,CAAC;AACxD,UAAI,QAAQ,GAAG;AACb,gBAAQ;AAAA,MACV;AACA,UAAI,KAAK,cAAc,MAAM,QAAQ;AACrC,UAAI,KAAK,eAAe,MAAM,QAAQ;AACtC,YAAMC,KAAI;AACV,aAAO,SAAS;AACd,cAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,eAAO,QAAQ;AACf,eAAO,SAAS;AAChB,eAAO,WAAW,IAAI,EAAE,UAAU,KAAK,GAAG,GAAG,IAAI,EAAE;AACnD,cAAM;AACN,aAAK,KAAK,MAAM,KAAKA,EAAC;AACtB,aAAK,KAAK,MAAM,KAAKA,EAAC;AAAA,MACxB;AACA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc,QAAQ,SAAS;AAC7B,WAAK,KAAK,aAAa,QAAQ;AAAA,QAC7B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,WAAW,MAAM;AACf,WAAK,MAAM,KAAK,IAAI;AACpB,UAAI,KAAK,oBAAoB,OAAO;AAClC,aAAK,aAAa;AAAA,MACpB;AAAA,IACF;AAAA,IACA,eAAe;AACb,WAAK,kBAAkB;AACvB,UAAI,KAAK,MAAM,SAAS,GAAG;AACzB,cAAM,UAAU,KAAK,KAAK,QAAQ,KAAK,MAAM,MAAM,CAAC;AACpD,YAAI,CAAC,SAAS;AACZ,eAAK,KAAK,IAAI,uIAAuI,OAAO;AAC5J,iBAAO,QAAQ,QAAQ;AAAA,QACzB;AACA,eAAO,KAAK,iBAAiB,OAAO,EAAE,MAAM,MAAM;AAAA,QAAC,CAAC,EACnD,KAAK,MAAM,KAAK,aAAa,CAAC;AAAA,MACjC;AACA,WAAK,kBAAkB;AACvB,WAAK,KAAK,IAAI,8CAA8C;AAC5D,WAAK,KAAK,KAAK,yBAAyB;AACxC,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAAA,IACA,iBAAiB,MAAM;AACrB,UAAI,mBAAmB,KAAK,IAAI,KAAK,CAAC,KAAK,UAAU;AACnD,eAAO,KAAK,gBAAgB,MAAM,KAAK,KAAK,gBAAgB,KAAK,KAAK,eAAe,EAAE,KAAK,aAAW;AACrG,eAAK,cAAc,KAAK,IAAI,OAAO;AACnC,eAAK,KAAK,IAAI,gDAAgD,KAAK,EAAE,EAAE;AACvE,eAAK,KAAK,KAAK,uBAAuB,KAAK,KAAK,QAAQ,KAAK,EAAE,GAAG,OAAO;AAAA,QAC3E,CAAC,EAAE,MAAM,SAAO;AACd,eAAK,KAAK,IAAI,6CAA6C,KAAK,EAAE,KAAK,SAAS;AAChF,eAAK,KAAK,IAAI,KAAK,SAAS;AAC5B,eAAK,KAAK,KAAK,mBAAmB,KAAK,KAAK,QAAQ,KAAK,EAAE,GAAG,GAAG;AAAA,QACnE,CAAC;AAAA,MACH;AACA,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAAA,IACA,UAAU;AACR,WAAK,KAAK,GAAG,gBAAgB,KAAK,aAAa;AAC/C,WAAK,KAAK,GAAG,cAAc,KAAK,iBAAiB;AACjD,UAAI,KAAK,KAAK,MAAM;AAClB,aAAK,KAAK,GAAG,qBAAqB,KAAK,WAAW;AAClD,aAAK,KAAK,GAAG,oBAAoB,KAAK,eAAe;AAAA,MACvD,OAAO;AACL,aAAK,KAAK,GAAG,qBAAqB,KAAK,WAAW;AAClD,aAAK,KAAK,GAAG,cAAc,KAAK,WAAW;AAC3C,aAAK,KAAK,GAAG,YAAY,KAAK,UAAU;AAAA,MAC1C;AACA,UAAI,KAAK,KAAK,+BAA+B;AAC3C,aAAK,KAAK,gBAAgB,KAAK,qBAAqB;AAAA,MACtD;AAAA,IACF;AAAA,IACA,YAAY;AACV,WAAK,KAAK,IAAI,gBAAgB,KAAK,aAAa;AAChD,WAAK,KAAK,IAAI,cAAc,KAAK,iBAAiB;AAClD,UAAI,KAAK,KAAK,MAAM;AAClB,aAAK,KAAK,IAAI,qBAAqB,KAAK,WAAW;AACnD,aAAK,KAAK,IAAI,oBAAoB,KAAK,eAAe;AAAA,MACxD,OAAO;AACL,aAAK,KAAK,IAAI,qBAAqB,KAAK,WAAW;AACnD,aAAK,KAAK,IAAI,cAAc,KAAK,WAAW;AAC5C,aAAK,KAAK,IAAI,YAAY,KAAK,UAAU;AAAA,MAC3C;AACA,UAAI,KAAK,KAAK,+BAA+B;AAC3C,aAAK,KAAK,mBAAmB,KAAK,qBAAqB;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AACA,qBAAmB,UAAUL,aAAY;;;ACnWzC,WAAS,mBAAmB,SAAS;AACnC,QAAI,OAAO,YAAY,UAAU;AAC/B,YAAM,WAAW,SAAS,iBAAiB,OAAO;AAClD,aAAO,SAAS,WAAW,IAAI,OAAO,MAAM,KAAK,QAAQ;AAAA,IAC3D;AACA,QAAI,OAAO,YAAY,YAAY,aAAa,OAAO,GAAG;AACxD,aAAO,CAAC,OAAO;AAAA,IACjB;AACA,WAAO;AAAA,EACT;AACA,MAAO,6BAAQ;;;ACXf,MAAO,kBAAQ,MAAM;;;ACAN,WAAR,oCAAqD,iBAAiB,YAAY,cAAc,MAAM;AAC3G,QAAI;AAAA,MACF;AAAA,IACF,IAAI;AACJ,oBAAgB;AAAA,MAAY,aAAW;AACrC,cAAM,aAAa,CAAC,GAAG,YAAY,GAAG,OAAO;AAG7C,YAAI,QAAQ,QAAQ;AAClB,yBAAe,MAAM;AACnB,gDAAoC,iBAAiB,YAAY,cAAc;AAAA,cAC7E;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AAAA,QAEH,OAAO;AACL,oBAAU,UAAU;AAAA,QACtB;AAAA,MACF;AAAA;AAAA,MAEA,CAAAM,WAAS;AACP,qBAAaA,MAAK;AAClB,kBAAU,UAAU;AAAA,MACtB;AAAA,IAAC;AAAA,EACH;;;ACtBA,WAAS,+BAA+B,OAAO,cAAc;AAC3D,QAAI,SAAS,KAAM,QAAO;AAC1B,WAAO;AAAA,MACL;AAAA;AAAA,QAEA,MAAM,SAAS,SAAS,MAAM,cAAc,cAAc;AAAA;AAAA,MAC1D,MAAM,MAAM;AAAA,MACZ,UAAU;AACR,eAAO,IAAI,QAAQ,CAAC,SAAS,WAAW,MAAM,KAAK,SAAS,MAAM,CAAC;AAAA,MACrE;AAAA,MACA,OAAO,SAAS;AAEd,cAAM,kBAAkB,MAAM,aAAa;AAC3C,cAAM,UAAU,MAAM,IAAI,QAAQ,aAAW;AAC3C,8CAAoC,iBAAiB,CAAC,GAAG,cAAc;AAAA,YACrE,WAAW,gBAAc,QAAQ,WAAW,IAAI,UAAQ,+BAA+B,MAAM,YAAY,CAAC,CAAC;AAAA,UAC7G,CAAC;AAAA,QACH,CAAC;AACD,eAAO;AAAA,MACT;AAAA,MACA,aAAa;AAAA,IACf;AAAA,EACF;AACA,WAAS,uCAAuC,OAAO,cAAc,gBAAgB;AACnF,QAAI;AACF,UAAI,mBAAmB,QAAQ;AAC7B,yBAAiB;AAAA,MACnB;AACA,cAAO,mBAAmB;AACxB,cAAM,sBAAsB,MAAM,GAAG,YAAY,IAAI,MAAM,IAAI;AAG/D,YAAI,MAAM,SAAS,QAAQ;AACzB,gBAAM,OAAO,MAAM,MAAM,QAAQ;AACjC,cAAI,QAAQ,MAAM;AAChB;AACA,iBAAK,eAAe,eAAe,oBAAoB,IAAI;AAC3D,kBAAM;AAAA,UACR,WAAW,kBAAkB,KAAM,OAAM;AAAA,QAC3C,WAAW,MAAM,SAAS,aAAa;AACrC,2BAAiB,UAAU,MAAM,OAAO,GAAG;AAEzC,mBAAO,uCAAuC,QAAQ,eAAe,oBAAoB,IAAI,MAAM,IAAI;AAAA,UACzG;AAAA,QACF,WAAW,kBAAkB,KAAM,OAAM;AAAA,MAC3C,GAAE;AAAA,IACJ,SAASC,IAAG;AACV,aAAO,QAAQ,OAAOA,EAAC;AAAA,IACzB;AAAA,EACF;AASA,kBAAO,yBAAiD,cAAc,cAAc;AAIlF,UAAM,oBAAoB,MAAM,QAAQ,IAAI,MAAM,KAAK,aAAa,OAAO,OAAM,SAAQ;AACvF,UAAI;AACJ,UAAI;AAWJ,YAAM,aAAa,MAAM,OAAO,KAAK,eAAe,aAAa,KAAK,WAAW,IAAI,KAAK,iBAAiB;AAE3G,OAAC,oBAAoB,qBAAqB,OAAO,oBAAoB,mBAAmB,+BAA+B,WAAW,GAAG,YAAY;AACjJ,aAAO;AAAA,QACL;AAAA,QACA,gBAAgB,KAAK,UAAU;AAAA;AAAA,MACjC;AAAA,IACF,CAAC,CAAC;AACF,eAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF,KAAK,mBAAmB;AAEtB,UAAI,oBAAoB,MAAM;AAC5B,YAAI;AACF,iBAAO,uCAAuC,kBAAkB,IAAI,cAAc;AAAA,QACpF,SAAS,KAAK;AAIZ,cAAI,kBAAkB,MAAM;AAC1B,kBAAM;AAAA,UACR,OAAO;AACL,yBAAa,GAAG;AAAA,UAClB;AAAA,QACF;AAAA,MACF,WAAW,kBAAkB,KAAM,OAAM;AAAA,IAC3C;AAAA,EACF;;;ACzGe,WAAR,YAA6B,cAAc;AAChD,UAAM,QAAQ,gBAAQ,aAAa,KAAK;AACxC,WAAO,QAAQ,QAAQ,KAAK;AAAA,EAC9B;;;ACYA,iBAAO,gBAAuC,cAAc,SAAS;AACnE,QAAI;AAEJ,UAAM,gBAAgB,wBAAwB,WAAW,OAAO,SAAS,QAAQ,iBAAiB,OAAO,wBAAwB,SAAS;AAC1I,QAAI;AACF,YAAM,cAAc,CAAC;AACrB,uBAAiB,QAAQ,yBAAoB,cAAc,YAAY,GAAG;AACxE,oBAAY,KAAK,IAAI;AAAA,MACvB;AACA,aAAO;AAAA,IAET,QAAQ;AACN,aAAO,YAAY,YAAY;AAAA,IACjC;AAAA,EACF;;;AChCA,qBAAyB;;;ACAlB,MAAM,eAAN,cAA2B,MAAM;AAAA,IACvC,YAAY,SAAS;AACpB,YAAM,OAAO;AACb,WAAK,OAAO;AAAA,IACb;AAAA,EACD;AAMO,MAAM,aAAN,cAAyB,MAAM;AAAA,IACrC,YAAY,SAAS;AACpB,YAAM;AACN,WAAK,OAAO;AACZ,WAAK,UAAU;AAAA,IAChB;AAAA,EACD;AAKA,MAAM,kBAAkB,kBAAgB,WAAW,iBAAiB,SACnE,IAAI,WAAW,YAAY,IAC3B,IAAI,aAAa,YAAY;AAK9B,MAAM,mBAAmB,YAAU;AAClC,UAAM,SAAS,OAAO,WAAW,SAChC,gBAAgB,6BAA6B,IAC7C,OAAO;AAER,WAAO,kBAAkB,QAAQ,SAAS,gBAAgB,MAAM;AAAA,EACjE;AAEe,WAAR,SAA0B,SAAS,cAAc,UAAU,SAAS;AAC1E,QAAI;AAEJ,UAAM,oBAAoB,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC1D,UAAI,OAAO,iBAAiB,YAAY,KAAK,KAAK,YAAY,MAAM,GAAG;AACtE,cAAM,IAAI,UAAU,4DAA4D,YAAY,IAAI;AAAA,MACjG;AAEA,UAAI,iBAAiB,OAAO,mBAAmB;AAC9C,gBAAQ,OAAO;AACf;AAAA,MACD;AAEA,gBAAU;AAAA,QACT,cAAc,EAAC,YAAY,aAAY;AAAA,QACvC,GAAG;AAAA,MACJ;AAEA,UAAI,QAAQ,QAAQ;AACnB,cAAM,EAAC,OAAM,IAAI;AACjB,YAAI,OAAO,SAAS;AACnB,iBAAO,iBAAiB,MAAM,CAAC;AAAA,QAChC;AAEA,eAAO,iBAAiB,SAAS,MAAM;AACtC,iBAAO,iBAAiB,MAAM,CAAC;AAAA,QAChC,CAAC;AAAA,MACF;AAEA,cAAQ,QAAQ,aAAa,WAAW,KAAK,QAAW,MAAM;AAC7D,YAAI,OAAO,aAAa,YAAY;AACnC,cAAI;AACH,oBAAQ,SAAS,CAAC;AAAA,UACnB,SAASC,QAAO;AACf,mBAAOA,MAAK;AAAA,UACb;AAEA;AAAA,QACD;AAEA,cAAM,UAAU,OAAO,aAAa,WAAW,WAAW,2BAA2B,YAAY;AACjG,cAAM,eAAe,oBAAoB,QAAQ,WAAW,IAAI,aAAa,OAAO;AAEpF,YAAI,OAAO,QAAQ,WAAW,YAAY;AACzC,kBAAQ,OAAO;AAAA,QAChB;AAEA,eAAO,YAAY;AAAA,MACpB,GAAG,YAAY;AAEf,OAAC,YAAY;AACZ,YAAI;AACH,kBAAQ,MAAM,OAAO;AAAA,QACtB,SAASA,QAAO;AACf,iBAAOA,MAAK;AAAA,QACb,UAAE;AACD,kBAAQ,aAAa,aAAa,KAAK,QAAW,KAAK;AAAA,QACxD;AAAA,MACD,GAAG;AAAA,IACJ,CAAC;AAED,sBAAkB,QAAQ,MAAM;AAC/B,mBAAa,KAAK;AAClB,cAAQ;AAAA,IACT;AAEA,WAAO;AAAA,EACR;;;ACtGe,WAAR,WAA4B,OAAO,OAAO,YAAY;AACzD,QAAI,QAAQ;AACZ,QAAI,QAAQ,MAAM;AAClB,WAAO,QAAQ,GAAG;AACd,YAAM,OAAO,KAAK,MAAM,QAAQ,CAAC;AACjC,UAAI,KAAK,QAAQ;AACjB,UAAI,WAAW,MAAM,EAAE,GAAG,KAAK,KAAK,GAAG;AACnC,gBAAQ,EAAE;AACV,iBAAS,OAAO;AAAA,MACpB,OACK;AACD,gBAAQ;AAAA,MACZ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;;;ACjBA,MAAI,yBAAkE,SAAU,UAAU,OAAO,MAAMC,IAAG;AACtG,QAAI,SAAS,OAAO,CAACA,GAAG,OAAM,IAAI,UAAU,+CAA+C;AAC3F,QAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAACA,KAAI,CAAC,MAAM,IAAI,QAAQ,EAAG,OAAM,IAAI,UAAU,0EAA0E;AACjL,WAAO,SAAS,MAAMA,KAAI,SAAS,MAAMA,GAAE,KAAK,QAAQ,IAAIA,KAAIA,GAAE,QAAQ,MAAM,IAAI,QAAQ;AAAA,EAChG;AACA,MAAI;AAEJ,MAAM,gBAAN,MAAoB;AAAA,IAChB,cAAc;AACV,2BAAqB,IAAI,MAAM,CAAC,CAAC;AAAA,IACrC;AAAA,IACA,QAAQ,KAAK,SAAS;AAClB,gBAAU;AAAA,QACN,UAAU;AAAA,QACV,GAAG;AAAA,MACP;AACA,YAAM,UAAU;AAAA,QACZ,UAAU,QAAQ;AAAA,QAClB;AAAA,MACJ;AACA,UAAI,KAAK,QAAQ,uBAAuB,MAAM,sBAAsB,GAAG,EAAE,KAAK,OAAO,CAAC,EAAE,YAAY,QAAQ,UAAU;AAClH,+BAAuB,MAAM,sBAAsB,GAAG,EAAE,KAAK,OAAO;AACpE;AAAA,MACJ;AACA,YAAM,QAAQ,WAAW,uBAAuB,MAAM,sBAAsB,GAAG,GAAG,SAAS,CAACC,IAAGC,OAAMA,GAAE,WAAWD,GAAE,QAAQ;AAC5H,6BAAuB,MAAM,sBAAsB,GAAG,EAAE,OAAO,OAAO,GAAG,OAAO;AAAA,IACpF;AAAA,IACA,UAAU;AACN,YAAM,OAAO,uBAAuB,MAAM,sBAAsB,GAAG,EAAE,MAAM;AAC3E,aAAO,SAAS,QAAQ,SAAS,SAAS,SAAS,KAAK;AAAA,IAC5D;AAAA,IACA,OAAO,SAAS;AACZ,aAAO,uBAAuB,MAAM,sBAAsB,GAAG,EAAE,OAAO,CAAC,YAAY,QAAQ,aAAa,QAAQ,QAAQ,EAAE,IAAI,CAAC,YAAY,QAAQ,GAAG;AAAA,IAC1J;AAAA,IACA,IAAI,OAAO;AACP,aAAO,uBAAuB,MAAM,sBAAsB,GAAG,EAAE;AAAA,IACnE;AAAA,EACJ;AACA,yBAAuB,oBAAI,QAAQ;AACnC,MAAO,yBAAQ;;;ACvCf,MAAI,yBAAkE,SAAU,UAAU,OAAO,OAAO,MAAME,IAAG;AAC7G,QAAI,SAAS,IAAK,OAAM,IAAI,UAAU,gCAAgC;AACtE,QAAI,SAAS,OAAO,CAACA,GAAG,OAAM,IAAI,UAAU,+CAA+C;AAC3F,QAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAACA,KAAI,CAAC,MAAM,IAAI,QAAQ,EAAG,OAAM,IAAI,UAAU,yEAAyE;AAChL,WAAQ,SAAS,MAAMA,GAAE,KAAK,UAAU,KAAK,IAAIA,KAAIA,GAAE,QAAQ,QAAQ,MAAM,IAAI,UAAU,KAAK,GAAI;AAAA,EACxG;AACA,MAAIC,0BAAkE,SAAU,UAAU,OAAO,MAAMD,IAAG;AACtG,QAAI,SAAS,OAAO,CAACA,GAAG,OAAM,IAAI,UAAU,+CAA+C;AAC3F,QAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAACA,KAAI,CAAC,MAAM,IAAI,QAAQ,EAAG,OAAM,IAAI,UAAU,0EAA0E;AACjL,WAAO,SAAS,MAAMA,KAAI,SAAS,MAAMA,GAAE,KAAK,QAAQ,IAAIA,KAAIA,GAAE,QAAQ,MAAM,IAAI,QAAQ;AAAA,EAChG;AACA,MAAI;AAAJ,MAAuB;AAAvB,MAA0D;AAA1D,MAAqF;AAArF,MAA4G;AAA5G,MAAiI;AAAjI,MAAmJ;AAAnJ,MAAwK;AAAxK,MAA4L;AAA5L,MAA+M;AAA/M,MAA8N;AAA9N,MAAkP;AAAlP,MAAmQ;AAAnQ,MAAwR;AAAxR,MAA0S;AAA1S,MAAkU;AAAlU,MAAwW;AAAxW,MAAgZ;AAAhZ,MAA8Z;AAA9Z,MAAwb;AAAxb,MAAsd;AAAtd,MAAif;AAAjf,MAAqhB;AAArhB,MAAyiB;AAAziB,MAA+jB;AAA/jB,MAAqlB;AAO9kB,MAAME,cAAN,cAAyB,MAAM;AAAA,EACtC;AAIA,MAAM,SAAN,cAAqB,aAAAC,QAAa;AAAA;AAAA,IAE9B,YAAY,SAAS;AACjB,UAAI,IAAI,IAAI,IAAI;AAChB,YAAM;AACN,wBAAkB,IAAI,IAAI;AAC1B,wCAAkC,IAAI,MAAM,MAAM;AAClD,gCAA0B,IAAI,MAAM,MAAM;AAC1C,4BAAsB,IAAI,MAAM,CAAC;AACjC,0BAAoB,IAAI,MAAM,MAAM;AACpC,uBAAiB,IAAI,MAAM,MAAM;AACjC,0BAAoB,IAAI,MAAM,CAAC;AAC/B,yBAAmB,IAAI,MAAM,MAAM;AACnC,wBAAkB,IAAI,MAAM,MAAM;AAClC,oBAAc,IAAI,MAAM,MAAM;AAC9B,yBAAmB,IAAI,MAAM,MAAM;AACnC,sBAAgB,IAAI,MAAM,CAAC;AAE3B,0BAAoB,IAAI,MAAM,MAAM;AACpC,uBAAiB,IAAI,MAAM,MAAM;AACjC,6BAAuB,IAAI,MAAM,MAAM;AAMvC,aAAO,eAAe,MAAM,WAAW;AAAA,QACnC,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,UAAU;AAAA,QACV,OAAO;AAAA,MACX,CAAC;AAED,gBAAU;AAAA,QACN,2BAA2B;AAAA,QAC3B,aAAa,OAAO;AAAA,QACpB,UAAU;AAAA,QACV,aAAa,OAAO;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,GAAG;AAAA,MACP;AACA,UAAI,EAAE,OAAO,QAAQ,gBAAgB,YAAY,QAAQ,eAAe,IAAI;AACxE,cAAM,IAAI,UAAU,iEAAiE,MAAM,KAAK,QAAQ,iBAAiB,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAS,OAAO,QAAQ,OAAO,SAAS,KAAK,EAAE,OAAO,OAAO,QAAQ,WAAW,GAAG;AAAA,MACpP;AACA,UAAI,QAAQ,aAAa,UAAa,EAAE,OAAO,SAAS,QAAQ,QAAQ,KAAK,QAAQ,YAAY,IAAI;AACjG,cAAM,IAAI,UAAU,4DAA4D,MAAM,KAAK,QAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAS,OAAO,QAAQ,OAAO,SAAS,KAAK,EAAE,OAAO,OAAO,QAAQ,QAAQ,GAAG;AAAA,MACzO;AACA,6BAAuB,MAAM,mCAAmC,QAAQ,2BAA2B,GAAG;AACtG,6BAAuB,MAAM,2BAA2B,QAAQ,gBAAgB,OAAO,qBAAqB,QAAQ,aAAa,GAAG,GAAG;AACvI,6BAAuB,MAAM,qBAAqB,QAAQ,aAAa,GAAG;AAC1E,6BAAuB,MAAM,kBAAkB,QAAQ,UAAU,GAAG;AACpE,6BAAuB,MAAM,eAAe,IAAI,QAAQ,WAAW,GAAG,GAAG;AACzE,6BAAuB,MAAM,oBAAoB,QAAQ,YAAY,GAAG;AACxE,WAAK,cAAc,QAAQ;AAC3B,WAAK,UAAU,QAAQ;AACvB,6BAAuB,MAAM,wBAAwB,QAAQ,mBAAmB,MAAM,GAAG;AACzF,6BAAuB,MAAM,kBAAkB,QAAQ,cAAc,OAAO,GAAG;AAAA,IACnF;AAAA,IACA,IAAI,cAAc;AACd,aAAOF,wBAAuB,MAAM,qBAAqB,GAAG;AAAA,IAChE;AAAA,IACA,IAAI,YAAY,gBAAgB;AAC5B,UAAI,EAAE,OAAO,mBAAmB,YAAY,kBAAkB,IAAI;AAC9D,cAAM,IAAI,UAAU,gEAAgE,cAAc,OAAO,OAAO,cAAc,GAAG;AAAA,MACrI;AACA,6BAAuB,MAAM,qBAAqB,gBAAgB,GAAG;AACrE,MAAAA,wBAAuB,MAAM,mBAAmB,KAAK,oBAAoB,EAAE,KAAK,IAAI;AAAA,IACxF;AAAA,IACA,MAAM,IAAI,WAAW,UAAU,CAAC,GAAG;AAC/B,gBAAU;AAAA,QACN,SAAS,KAAK;AAAA,QACd,gBAAgBA,wBAAuB,MAAM,wBAAwB,GAAG;AAAA,QACxE,GAAG;AAAA,MACP;AACA,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,QAAAA,wBAAuB,MAAM,eAAe,GAAG,EAAE,QAAQ,YAAY;AACjE,cAAI;AACJ,cAAI,IAAI;AACR,iCAAuB,MAAM,kBAAkB,KAAKA,wBAAuB,MAAM,iBAAiB,GAAG,GAAG,MAAM,KAAK,GAAG;AACtH,iCAAuB,MAAM,wBAAwB,KAAKA,wBAAuB,MAAM,uBAAuB,GAAG,GAAG,MAAM,KAAK,GAAG;AAClI,cAAI;AAEA,iBAAK,KAAK,QAAQ,YAAY,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAS;AAEvE,oBAAM,IAAIC,YAAW,uBAAuB;AAAA,YAChD;AACA,gBAAI,YAAY,UAAU,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACpD,gBAAI,QAAQ,SAAS;AACjB,0BAAY,SAAS,QAAQ,QAAQ,SAAS,GAAG,QAAQ,OAAO;AAAA,YACpE;AACA,gBAAI,QAAQ,QAAQ;AAChB,0BAAY,QAAQ,KAAK,CAAC,WAAWD,wBAAuB,MAAM,mBAAmB,KAAK,oBAAoB,EAAE,KAAK,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,YAC/I;AACA,kBAAM,SAAS,MAAM;AACrB,oBAAQ,MAAM;AACd,iBAAK,KAAK,aAAa,MAAM;AAAA,UACjC,SACOG,QAAO;AACV,gBAAIA,kBAAiB,gBAAgB,CAAC,QAAQ,gBAAgB;AAC1D,sBAAQ;AACR;AAAA,YACJ;AACA,mBAAOA,MAAK;AACZ,iBAAK,KAAK,SAASA,MAAK;AAAA,UAC5B,UACA;AACI,YAAAH,wBAAuB,MAAM,mBAAmB,KAAK,YAAY,EAAE,KAAK,IAAI;AAAA,UAChF;AAAA,QACJ,GAAG,OAAO;AACV,aAAK,KAAK,KAAK;AACf,QAAAA,wBAAuB,MAAM,mBAAmB,KAAK,yBAAyB,EAAE,KAAK,IAAI;AAAA,MAC7F,CAAC;AAAA,IACL;AAAA,IACA,MAAM,OAAO,WAAW,SAAS;AAC7B,aAAO,QAAQ,IAAI,UAAU,IAAI,OAAO,cAAc,KAAK,IAAI,WAAW,OAAO,CAAC,CAAC;AAAA,IACvF;AAAA;AAAA;AAAA;AAAA,IAIA,QAAQ;AACJ,UAAI,CAACA,wBAAuB,MAAM,kBAAkB,GAAG,GAAG;AACtD,eAAO;AAAA,MACX;AACA,6BAAuB,MAAM,kBAAkB,OAAO,GAAG;AACzD,MAAAA,wBAAuB,MAAM,mBAAmB,KAAK,oBAAoB,EAAE,KAAK,IAAI;AACpF,aAAO;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAIA,QAAQ;AACJ,6BAAuB,MAAM,kBAAkB,MAAM,GAAG;AAAA,IAC5D;AAAA;AAAA;AAAA;AAAA,IAIA,QAAQ;AACJ,6BAAuB,MAAM,eAAe,KAAKA,wBAAuB,MAAM,oBAAoB,GAAG,GAAG,GAAG,GAAG;AAAA,IAClH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAM,UAAU;AAEZ,UAAIA,wBAAuB,MAAM,eAAe,GAAG,EAAE,SAAS,GAAG;AAC7D;AAAA,MACJ;AACA,YAAMA,wBAAuB,MAAM,mBAAmB,KAAK,eAAe,EAAE,KAAK,MAAM,OAAO;AAAA,IAClG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,MAAM,eAAe,OAAO;AAExB,UAAIA,wBAAuB,MAAM,eAAe,GAAG,EAAE,OAAO,OAAO;AAC/D;AAAA,MACJ;AACA,YAAMA,wBAAuB,MAAM,mBAAmB,KAAK,eAAe,EAAE,KAAK,MAAM,QAAQ,MAAMA,wBAAuB,MAAM,eAAe,GAAG,EAAE,OAAO,KAAK;AAAA,IACtK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAM,SAAS;AAEX,UAAIA,wBAAuB,MAAM,iBAAiB,GAAG,MAAM,KAAKA,wBAAuB,MAAM,eAAe,GAAG,EAAE,SAAS,GAAG;AACzH;AAAA,MACJ;AACA,YAAMA,wBAAuB,MAAM,mBAAmB,KAAK,eAAe,EAAE,KAAK,MAAM,MAAM;AAAA,IACjG;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,OAAO;AACP,aAAOA,wBAAuB,MAAM,eAAe,GAAG,EAAE;AAAA,IAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,OAAO,SAAS;AAEZ,aAAOA,wBAAuB,MAAM,eAAe,GAAG,EAAE,OAAO,OAAO,EAAE;AAAA,IAC5E;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,UAAU;AACV,aAAOA,wBAAuB,MAAM,iBAAiB,GAAG;AAAA,IAC5D;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,WAAW;AACX,aAAOA,wBAAuB,MAAM,kBAAkB,GAAG;AAAA,IAC7D;AAAA,EACJ;AACA,sCAAoC,oBAAI,QAAQ,GAAG,4BAA4B,oBAAI,QAAQ,GAAG,wBAAwB,oBAAI,QAAQ,GAAG,sBAAsB,oBAAI,QAAQ,GAAG,mBAAmB,oBAAI,QAAQ,GAAG,sBAAsB,oBAAI,QAAQ,GAAG,qBAAqB,oBAAI,QAAQ,GAAG,oBAAoB,oBAAI,QAAQ,GAAG,gBAAgB,oBAAI,QAAQ,GAAG,qBAAqB,oBAAI,QAAQ,GAAG,kBAAkB,oBAAI,QAAQ,GAAG,sBAAsB,oBAAI,QAAQ,GAAG,mBAAmB,oBAAI,QAAQ,GAAG,yBAAyB,oBAAI,QAAQ,GAAG,oBAAoB,oBAAI,QAAQ,GAAG,uCAAuC,SAASI,wCAAuC;AACjoB,WAAOJ,wBAAuB,MAAM,2BAA2B,GAAG,KAAKA,wBAAuB,MAAM,uBAAuB,GAAG,IAAIA,wBAAuB,MAAM,qBAAqB,GAAG;AAAA,EAC3L,GAAG,yCAAyC,SAASK,0CAAyC;AAC1F,WAAOL,wBAAuB,MAAM,iBAAiB,GAAG,IAAIA,wBAAuB,MAAM,qBAAqB,GAAG;AAAA,EACrH,GAAG,eAAe,SAASM,gBAAe;AACtC,QAAI;AACJ,2BAAuB,MAAM,kBAAkB,KAAKN,wBAAuB,MAAM,iBAAiB,GAAG,GAAG,MAAM,KAAK,GAAG;AACtH,IAAAA,wBAAuB,MAAM,mBAAmB,KAAK,yBAAyB,EAAE,KAAK,IAAI;AACzF,SAAK,KAAK,MAAM;AAAA,EACpB,GAAG,2BAA2B,SAASO,4BAA2B;AAC9D,IAAAP,wBAAuB,MAAM,mBAAmB,KAAK,kBAAkB,EAAE,KAAK,IAAI;AAClF,IAAAA,wBAAuB,MAAM,mBAAmB,KAAK,kCAAkC,EAAE,KAAK,IAAI;AAClG,2BAAuB,MAAM,mBAAmB,QAAW,GAAG;AAAA,EAClE,GAAG,+BAA+B,SAASQ,gCAA+B;AACtE,UAAMC,OAAM,KAAK,IAAI;AACrB,QAAIT,wBAAuB,MAAM,oBAAoB,GAAG,MAAM,QAAW;AACrE,YAAM,QAAQA,wBAAuB,MAAM,qBAAqB,GAAG,IAAIS;AACvE,UAAI,QAAQ,GAAG;AAGX,+BAAuB,MAAM,uBAAwBT,wBAAuB,MAAM,mCAAmC,GAAG,IAAKA,wBAAuB,MAAM,iBAAiB,GAAG,IAAI,GAAG,GAAG;AAAA,MAC5L,OACK;AAED,YAAIA,wBAAuB,MAAM,mBAAmB,GAAG,MAAM,QAAW;AACpE,iCAAuB,MAAM,mBAAmB,WAAW,MAAM;AAC7D,YAAAA,wBAAuB,MAAM,mBAAmB,KAAK,wBAAwB,EAAE,KAAK,IAAI;AAAA,UAC5F,GAAG,KAAK,GAAG,GAAG;AAAA,QAClB;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX,GAAG,4BAA4B,SAASU,6BAA4B;AAChE,QAAIV,wBAAuB,MAAM,eAAe,GAAG,EAAE,SAAS,GAAG;AAG7D,UAAIA,wBAAuB,MAAM,oBAAoB,GAAG,GAAG;AACvD,sBAAcA,wBAAuB,MAAM,oBAAoB,GAAG,CAAC;AAAA,MACvE;AACA,6BAAuB,MAAM,oBAAoB,QAAW,GAAG;AAC/D,WAAK,KAAK,OAAO;AACjB,UAAIA,wBAAuB,MAAM,iBAAiB,GAAG,MAAM,GAAG;AAC1D,aAAK,KAAK,MAAM;AAAA,MACpB;AACA,aAAO;AAAA,IACX;AACA,QAAI,CAACA,wBAAuB,MAAM,kBAAkB,GAAG,GAAG;AACtD,YAAM,wBAAwB,CAACA,wBAAuB,MAAM,mBAAmB,KAAK,4BAA4B;AAChH,UAAIA,wBAAuB,MAAM,mBAAmB,KAAK,oCAAoC,KAAKA,wBAAuB,MAAM,mBAAmB,KAAK,sCAAsC,GAAG;AAC5L,cAAM,MAAMA,wBAAuB,MAAM,eAAe,GAAG,EAAE,QAAQ;AACrE,YAAI,CAAC,KAAK;AACN,iBAAO;AAAA,QACX;AACA,aAAK,KAAK,QAAQ;AAClB,YAAI;AACJ,YAAI,uBAAuB;AACvB,UAAAA,wBAAuB,MAAM,mBAAmB,KAAK,kCAAkC,EAAE,KAAK,IAAI;AAAA,QACtG;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX,GAAG,qCAAqC,SAASW,sCAAqC;AAClF,QAAIX,wBAAuB,MAAM,2BAA2B,GAAG,KAAKA,wBAAuB,MAAM,oBAAoB,GAAG,MAAM,QAAW;AACrI;AAAA,IACJ;AACA,2BAAuB,MAAM,oBAAoB,YAAY,MAAM;AAC/D,MAAAA,wBAAuB,MAAM,mBAAmB,KAAK,kBAAkB,EAAE,KAAK,IAAI;AAAA,IACtF,GAAGA,wBAAuB,MAAM,kBAAkB,GAAG,CAAC,GAAG,GAAG;AAC5D,2BAAuB,MAAM,qBAAqB,KAAK,IAAI,IAAIA,wBAAuB,MAAM,kBAAkB,GAAG,GAAG,GAAG;AAAA,EAC3H,GAAG,qBAAqB,SAASY,sBAAqB;AAClD,QAAIZ,wBAAuB,MAAM,uBAAuB,GAAG,MAAM,KAAKA,wBAAuB,MAAM,iBAAiB,GAAG,MAAM,KAAKA,wBAAuB,MAAM,oBAAoB,GAAG,GAAG;AACrL,oBAAcA,wBAAuB,MAAM,oBAAoB,GAAG,CAAC;AACnE,6BAAuB,MAAM,oBAAoB,QAAW,GAAG;AAAA,IACnE;AACA,2BAAuB,MAAM,uBAAuBA,wBAAuB,MAAM,mCAAmC,GAAG,IAAIA,wBAAuB,MAAM,iBAAiB,GAAG,IAAI,GAAG,GAAG;AACtL,IAAAA,wBAAuB,MAAM,mBAAmB,KAAK,oBAAoB,EAAE,KAAK,IAAI;AAAA,EACxF,GAAG,uBAAuB,SAASa,wBAAuB;AAEtD,WAAOb,wBAAuB,MAAM,mBAAmB,KAAK,yBAAyB,EAAE,KAAK,IAAI,GAAG;AAAA,IAAE;AAAA,EACzG,GAAG,uBAAuB,eAAec,sBAAqB,QAAQ;AAClE,WAAO,IAAI,QAAQ,CAAC,UAAU,WAAW;AACrC,aAAO,iBAAiB,SAAS,MAAM;AAGnC,eAAO,IAAIb,YAAW,uBAAuB,CAAC;AAAA,MAClD,GAAG,EAAE,MAAM,KAAK,CAAC;AAAA,IACrB,CAAC;AAAA,EACL,GAAG,kBAAkB,eAAec,iBAAgB,OAAO,QAAQ;AAC/D,WAAO,IAAI,QAAQ,aAAW;AAC1B,YAAM,WAAW,MAAM;AACnB,YAAI,UAAU,CAAC,OAAO,GAAG;AACrB;AAAA,QACJ;AACA,aAAK,IAAI,OAAO,QAAQ;AACxB,gBAAQ;AAAA,MACZ;AACA,WAAK,GAAG,OAAO,QAAQ;AAAA,IAC3B,CAAC;AAAA,EACL;AACA,MAAO,eAAQ;;;ACvUf,MAAIC;AAAJ,MAGIC;AAHJ,MAMIC;AANJ,MAuBIC;AAvBJ,MASIC,KAAc;AATlB,MAYIC,KAAoB,CAAA;AAZxB,MAcIC,KAAQ,CAAA;AAdZ,MAgBIC,KAAgBC,EAApBC;AAhBA,MAiBIC,KAAkBF,EAAtBG;AAjBA,MAkBIC,KAAeJ,EAAQK;AAlB3B,MAmBIC,KAAYN,EAAhBO;AAnBA,MAoBIC,KAAmBR,EAAQS;AAqG/B,WAASC,GAAaC,IAAOC,IAAAA;AACxBZ,MAAea,OAClBb,EAAAa,IAAcpB,IAAkBkB,IAAOf,MAAegB,EAAAA,GAEvDhB,KAAc;AAOd,QAAMkB,KACLrB,GAAgBsB,QACftB,GAAgBsB,MAAW,EAC3BC,IAAO,CAAA,GACPH,KAAiB,CAAA,EAAA;AAMnB,WAHIF,MAASG,GAAKE,GAAOC,UACxBH,GAAAE,GAAYE,KAAK,EAAEC,KAAerB,GAAAA,CAAAA,GAE5BgB,GAAAA,GAAYH,EAAAA;EACnB;AAKM,WAASS,GAASC,IAAAA;AAExB,WADAzB,KAAc,GACP0B,GAAWC,IAAgBF,EAAAA;EAClC;AAQeC,WAAAA,GAAWE,IAASH,IAAcI,IAAAA;AAEjD,QAAMC,KAAYhB,GAAalB,MAAgB,CAAA;AAE/C,QADAkC,GAAUC,IAAWH,IAAAA,CAChBE,GAALnB,QACCmB,GAAAV,KAAmB,CACjBS,KAAiDA,GAAKJ,EAAAA,IAA/CE,GAAAA,QAA0BF,EAAAA,GAElC,SAAAO,IAAAA;AACC,UAAMC,KAAeH,GAAAI,MAClBJ,GAASI,IAAY,CAAA,IACrBJ,GAASV,GAAQ,CAAA,GACde,KAAYL,GAAUC,EAASE,IAAcD,EAAAA;AAE/CC,MAAAA,OAAiBE,OACpBL,GAASI,MAAc,CAACC,IAAWL,GAASV,GAAQ,CAAA,CAAA,GACpDU,GAASnB,IAAYyB,SAAS,CAA9B,CAAA;IAED,CAAA,GAGFN,GAAAnB,MAAuBd,IAAAA,CAElBA,GAAiBwC,IAAkB;AAgC9BC,UAAAA,KAAT,SAAyBC,IAAGC,IAAGC,IAAAA;AAC9B,YAAA,CAAKX,GAADnB,IAAAQ,IAA+B,QAAA;AAEnC,YAAMuB,KAAaZ,GAASnB,IAA0BgC,IAAAA,GAAAA,OACrD,SAAAC,IAAAA;AAAKA,iBAAAA,GAAJjC;QAAA,CAAA;AAKF,YAHsB+B,GAAWG,MAAM,SAAAD,IAAAA;AAAK,iBAAA,CAACA,GAADV;QAAJ,CAAA,EAIvC,QAAA,CAAOY,MAAUA,GAAQC,KAAKC,MAAMT,IAAGC,IAAGC,EAAAA;AAM3C,YAAIQ,KAAAA;AAUJ,eATAP,GAAWQ,QAAQ,SAAAC,IAAAA;AAClB,cAAIA,GAAAA,KAAqB;AACxB,gBAAMlB,KAAekB,GAAAA,GAAgB,CAAA;AACrCA,YAAAA,GAAQ/B,KAAU+B,GAClBA,KAAAA,GAAAjB,MAAAA,QACID,OAAiBkB,GAAQ/B,GAAQ,CAAA,MAAI6B,KAAAA;UACzC;QACD,CAAA,GAAA,EAAA,CAEMA,MAAgBnB,GAASnB,IAAYyC,UAAUb,QAAAA,CACnDO,MACCA,GAAQC,KAAKC,MAAMT,IAAGC,IAAGC,EAAAA;MAG7B;AA9DD5C,MAAAA,GAAiBwC,IAAAA;AACjB,UAAIS,KAAUjD,GAAiBwD,uBACzBC,KAAUzD,GAAiB0D;AAKjC1D,MAAAA,GAAiB0D,sBAAsB,SAAUhB,IAAGC,IAAGC,IAAAA;AACtD,YAAIO,KAAaQ,KAAA;AAChB,cAAIC,KAAMX;AAEVA,UAAAA,KAAAA,QACAR,GAAgBC,IAAGC,IAAGC,EAAAA,GACtBK,KAAUW;QACV;AAEGH,QAAAA,MAASA,GAAQP,KAAKC,MAAMT,IAAGC,IAAGC,EAAAA;MACtC,GA+CD5C,GAAiBwD,wBAAwBf;IACzC;AAGF,WAAOR,GAAAI,OAAwBJ,GAAxBV;EACP;AAMesC,WAAAA,GAAUC,IAAUC,IAAAA;AAEnC,QAAMC,KAAQ/C,GAAalB,MAAgB,CAAA;AAAA,KACtCQ,EAAD0D,OAAyBC,GAAYF,GAAD1C,KAAcyC,EAAAA,MACrDC,GAAKzC,KAAUuC,IACfE,GAAMG,IAAeJ,IAErB/D,GAAAsB,IAAAF,IAAyCK,KAAKuC,EAAAA;EAE/C;AAyCA,WAMeI,GAAQC,IAASC,IAAAA;AAEhC,QAAMC,KAAQC,GAAaC,MAAgB,CAAA;AAC3C,WAAIC,GAAYH,GAAaD,KAAAA,EAAAA,KAC5BC,GAAKI,MAAiBN,GAAAA,GACtBE,GAAMK,IAAeN,IACrBC,GAAAM,MAAiBR,IACVE,GAAPI,OAGMJ,GAAPO;EACA;AAAA,WAMeC,GAAYC,IAAUV,IAAAA;AAErC,WADAW,KAAc,GACPb,GAAQ,WAAA;AAAA,aAAMY;IAAN,GAAgBV,EAAAA;EAC/B;AA4ED,WAASY,KAAAA;AAER,aADIC,IACIA,KAAYC,GAAkBC,MAAAA,IACrC,KAAKF,GAAwBG,OAACH,GAA9BI,IACA,KAAA;AACCJ,MAAAA,GAAAI,IAAAC,IAAkCC,QAAQC,EAAAA,GAC1CP,GAASI,IAAAA,IAAyBE,QAAQE,EAAAA,GAC1CR,GAASI,IAAAA,MAA2B,CAAA;IAIpC,SAHQK,IAAAA;AACRT,MAAAA,GAAAI,IAAAC,MAAoC,CAAA,GACpCK,EAAOC,IAAaF,IAAGT,GACvBY,GAAAA;IAAA;EAEF;AA9YDF,IAAOG,MAAS,SAAAC,IAAAA;AACfC,IAAAA,KAAmB,MACfC,MAAeA,GAAcF,EAAAA;EACjC,GAEDJ,EAAAO,MAAkB,SAAAH,IAAAA;AACbI,IAAAA,MAAiBA,GAAgBJ,EAAAA,GAGrCK,KAAe;AAEf,QAAMC,MAHNL,KAAmBD,GAAnBO,KAGWjB;AACPgB,IAAAA,OACCE,OAAsBP,MACzBK,GAAAA,MAAwB,CAAA,GACxBL,GAAAV,MAAoC,CAAA,GACpCe,GAAAG,GAAYjB,QAAQ,SAAAkB,IAAAA;AACfA,MAAAA,GAAJC,QACCD,GAAAD,KAAkBC,GAAlBC,MAEDD,GAAAA,MAAyBE,IACzBF,GAAAC,MAAsBD,GAASG,IAAAA;IAC/B,CAAA,MAEDP,GAAKf,IAAiBC,QAAQC,EAAAA,GAC9Ba,GAAAf,IAAsBC,QAAQE,EAAAA,GAC9BY,GAAAf,MAAwB,CAAA,GACxBc,KAAe,KAGjBG,KAAoBP;EACpB,GAEDL,EAAQkB,SAAS,SAAAd,IAAAA;AACZe,IAAAA,MAAcA,GAAaf,EAAAA;AAE/B,QAAMgB,KAAIhB,GAAHO;AACHS,IAAAA,MAAKA,GAAT1B,QACK0B,GAAC1B,IAAyB2B,IAAAA,WA4YR,MA5Y2B9B,GAAkB+B,KAAKF,EAAAA,KA4Y7CG,OAAYvB,EAAQwB,2BAC/CD,KAAUvB,EAAQwB,0BACNC,IAAgBpC,EAAAA,IA7Y5B+B,GAAC1B,IAAAA,GAAeE,QAAQ,SAAAkB,IAAAA;AACnBA,MAAAA,GAASG,MACZH,GAAApB,MAAiBoB,GAASG,IAEvBH,GAAAA,QAA2BE,OAC9BF,GAAQD,KAAUC,GAAlBY,MAEDZ,GAASG,IAAAA,QACTH,GAAQY,MAAiBV;IACzB,CAAA,IAEFJ,KAAoBP,KAAmB;EACvC,GAEDL,EAAAW,MAAkB,SAACP,IAAOuB,IAAAA;AACzBA,IAAAA,GAAYC,KAAK,SAAAtC,IAAAA;AAChB,UAAA;AACCA,QAAAA,GAASK,IAAkBC,QAAQC,EAAAA,GACnCP,GAAAA,MAA6BA,GAAAK,IAA2BkC,OAAO,SAAAC,IAAAA;AAAE,iBAAA,CAChEA,GAAAjB,MAAYf,GAAagC,EAAAA;QADuC,CAAA;MASjE,SANQ/B,IAAAA;AACR4B,QAAAA,GAAYC,KAAK,SAAAR,IAAAA;AACZA,UAAAA,GAAoBA,QAAAA,GAAAzB,MAAqB,CAAA;QAC7C,CAAA,GACDgC,KAAc,CAAA,GACd3B,EAAOC,IAAaF,IAAGT,GACvBY,GAAAA;MAAA;IACD,CAAA,GAEG6B,MAAWA,GAAU3B,IAAOuB,EAAAA;EAChC,GAED3B,EAAQgC,UAAU,SAAA5B,IAAAA;AACb6B,IAAAA,MAAkBA,GAAiB7B,EAAAA;AAEvC,QAEK8B,IAFCd,KAAIhB,GAAVO;AACIS,IAAAA,MAAKA,GAAT1B,QAEC0B,GAAC1B,IAAeE,GAAAA,QAAQ,SAAAuC,IAAAA;AACvB,UAAA;AACCtC,QAAAA,GAAcsC,EAAAA;MAGd,SAFQpC,IAAAA;AACRmC,QAAAA,KAAanC;MACb;IACD,CAAA,GACDqB,GAAC1B,MAAAA,QACGwC,MAAYlC,EAAAC,IAAoBiC,IAAYd,GAAhClB,GAAAA;EAEjB;AAwTD,MAAIkC,KAA0C,cAAA,OAAzBZ;AAYrB,WAASC,GAAeY,IAAAA;AACvB,QAOIC,IAPEC,KAAO,WAAA;AACZC,mBAAaC,EAAAA,GACTL,MAASM,qBAAqBJ,EAAAA,GAClCK,WAAWN,EAAAA;IACX,GACKI,KAAUE,WAAWJ,IAraR,GAAA;AAwafH,IAAAA,OACHE,KAAMd,sBAAsBe,EAAAA;EAE7B;AAmBD,WAAS1C,GAAc+C,IAAAA;AAGtB,QAAMC,KAAOxC,IACTyC,KAAUF,GAAdjC;AACsB,kBAAA,OAAXmC,OACVF,GAAAjC,MAAAA,QACAmC,GAAAA,IAGDzC,KAAmBwC;EACnB;AAMD,WAAS/C,GAAa8C,IAAAA;AAGrB,QAAMC,KAAOxC;AACbuC,IAAAA,GAAAjC,MAAgBiC,GAAI/B,GAAAA,GACpBR,KAAmBwC;EACnB;AAMD,WAASE,GAAYC,IAASC,IAAAA;AAC7B,WAAA,CACED,MACDA,GAAQ3B,WAAW4B,GAAQ5B,UAC3B4B,GAAQrB,KAAK,SAACsB,IAAKC,IAAAA;AAAUD,aAAAA,OAAQF,GAAQG,EAAAA;IAAhC,CAAA;EAEd;AAED,WAASC,GAAeF,IAAKG,IAAAA;AAC5B,WAAmB,cAAA,OAALA,KAAkBA,GAAEH,EAAAA,IAAOG;EACzC;;;AC3fD,WAAS,aAAa;AACpB,WAAO,EAAE,OAAO;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,IACT,GAAG,EAAE,KAAK;AAAA,MACR,MAAM;AAAA,MACN,aAAa;AAAA,IACf,GAAG,EAAE,UAAU;AAAA,MACb,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,IACL,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,YAAY,MAAM;AACzB,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAGJ,UAAM,gBAAgB,eAAe;AACrC,UAAM,WAAWC,GAAY,CAAAC,OAAK;AAChC,MAAAA,GAAE,eAAe;AACjB,aAAO;AAAA,IACT,GAAG,CAAC,MAAM,CAAC;AACX,WAAO,EAAE,QAAQ;AAAA,MACf;AAAA,IACF,GAAG,gBAAgB,EAAE,UAAU;AAAA,MAC7B,MAAM;AAAA,MACN,WAAW;AAAA,MACX,6BAA6B;AAAA,IAC/B,GAAG,EAAE,YAAY,IAAI,GAAG,KAAK,kBAAkB,CAAC,IAAI,EAAE,UAAU;AAAA,MAC9D,MAAM;AAAA,MACN,WAAW;AAAA,MACX,6BAA6B;AAAA,IAC/B,GAAG,KAAK,oBAAoB;AAAA,MAC1B;AAAA,IACF,CAAC,CAAC,CAAC;AAAA,EACL;AACA,MAAM,oBAAoB,WAAS;AACjC,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,aAAa;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACe,WAAR,SAA0B,OAAO;AACtC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa;AAAA,IACf,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO;AAAA,MACzB,WAAW;AAAA,IACb,GAAG,KAAK,yBAAyB;AAAA,MAC/B;AAAA,IACF,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MACZ,WAAW;AAAA,IACb,GAAG,WAAW;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IACV,CAAC,CAAC,CAAC;AAAA,EACL;;;ACpGe,WAAR,KAAsB,MAAM;AACjC,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,GAAU,MAAM,EAAE,QAAQ;AAAA,MACjC,WAAW;AAAA,MACX,KAAK;AAAA,IACP,GAAG,QAAQ,GAAG,EAAE,UAAU;AAAA,MACxB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,KAAK;AAAA,IACP,GAAG,KAAK,QAAQ,CAAC,CAAC;AAAA,EACpB;;;ACfA,MAAM,aAAa,WAAS;AAC1B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,GAAU,MAAM,EAAE,UAAU;AAAA,MACnC,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,IACX,GAAG,KAAK,GAAG,CAAC,SAAS,QAAQ,EAAE;AAAA,EACjC;AACe,WAAR,YAA6B,OAAO;AACzC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,eAAe,GAAG,YAAY,IAAI,CAAC,WAAWC,OAAM,EAAE,YAAY;AAAA,MACnE,KAAK,UAAU;AAAA,MACf,WAAW,MAAM,UAAU,UAAU,aAAa,UAAU,IAAI;AAAA,MAChE,OAAOA,OAAM,IAAI,QAAQ,UAAU;AAAA,MACnC,QAAQA,KAAI,MAAM,YAAY;AAAA,IAChC,CAAC,CAAC,CAAC;AAAA,EACL;;;AC1Be,WAAR,OAAwB,OAAO;AACpC,WAAO,EAAE,GAAU,MAAM,MAAM,mBAAmB,EAAE,aAAa;AAAA,MAC/D,WAAW,MAAM;AAAA,MACjB,aAAa,MAAM;AAAA,MACnB,iBAAiB,MAAM,cAAc,MAAM,WAAW;AAAA,MACtD,OAAO,MAAM;AAAA,IACf,CAAC,GAAG,EAAE,MAAM;AAAA,MACV,QAAQ,MAAM;AAAA,MACd,UAAU,MAAM;AAAA,MAChB,MAAM,MAAM;AAAA,IACd,CAAC,CAAC;AAAA,EACJ;;;ACbA,MAAAC,qBAAuB;;;ACDR,WAAR,qBAAsC,MAAM;AACjD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM,KAAK;AAAA,MACX,WAAW,KAAK,OAAO,wBAAwB,KAAK,IAAI,EAAE,YAAY;AAAA,IACxE;AAAA,EACF;;;ACPA,WAAS,WAAW;AAAE,eAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,QAAQ;AAAE,eAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AAAE,YAAI,SAAS,UAAUA,EAAC;AAAG,iBAAS,OAAO,QAAQ;AAAE,cAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,GAAG;AAAE,mBAAO,GAAG,IAAI,OAAO,GAAG;AAAA,UAAG;AAAA,QAAE;AAAA,MAAE;AAAE,aAAO;AAAA,IAAQ;AAAG,WAAO,SAAS,MAAM,MAAM,SAAS;AAAA,EAAG;AA8BlV,MAAM,cAAc;AAAA,IAClB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IAKV,OAAO;AAAA,IACP,WAAW;AAAA,EACb;AACA,MAAM,gBAAgB;AAAA,IACpB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMN,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACA,MAAM,cAAN,cAA0B,EAAU;AAAA,IAClC,YAAY,OAAO;AACjB,YAAM,KAAK;AAIX,WAAK,eAAe,MAAM;AACxB,aAAK,SAAS;AAAA,UACZ,QAAQ,KAAK,KAAK;AAAA,QACpB,CAAC;AAAA,MACH;AACA,WAAK,eAAe,MAAM;AACxB,aAAK,OAAO;AAAA,MACd;AACA,WAAK,eAAe;AACpB,WAAK,QAAQ;AAAA,QACX,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,oBAAoB;AAClB,WAAK,OAAO;AACZ,aAAO,iBAAiB,UAAU,KAAK,YAAY;AAAA,IACrD;AAAA;AAAA;AAAA,IAIA,sBAAsB;AACpB,UAAI,KAAK,KAAK,SAAS,SAAS,aAAa,GAAG;AAC9C,aAAK,eAAe,SAAS;AAAA,MAC/B;AAAA,IACF;AAAA,IACA,qBAAqB;AAEnB,UAAI,KAAK,gBAAgB,KAAK,aAAa,cAAc,SAAS,kBAAkB,KAAK,cAAc;AACrG,aAAK,aAAa,MAAM;AAAA,MAC1B;AACA,WAAK,eAAe;AACpB,WAAK,OAAO;AAAA,IACd;AAAA,IACA,uBAAuB;AACrB,aAAO,oBAAoB,UAAU,KAAK,YAAY;AAAA,IACxD;AAAA,IACA,SAAS;AACP,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,WAAW,KAAK,KAAK,cAAc;AACrC,aAAK,SAAS;AAAA,UACZ,QAAQ,KAAK,KAAK;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,OAAO,MAAM;AACX,UAAI;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,GAAG;AAAA,MACL,IAAI;AACJ,YAAM;AAAA,QACJ,QAAAC;AAAA,QACA;AAAA,MACF,IAAI,KAAK;AAET,UAAIC,SAAQ,KAAK,MAAMD,UAAS,SAAS;AAGzC,UAAI,kBAAkB,KAAK,MAAM,SAAS,SAAS;AAInD,UAAI,eAAe;AACjB,QAAAC,SAAQ,KAAK,IAAI,GAAGA,SAAQA,SAAQ,aAAa;AACjD,2BAAmB;AAAA,MACrB;AAGA,YAAMC,OAAMD,SAAQ,kBAAkB;AAGtC,YAAM,YAAY,KAAK,MAAMA,QAAOC,IAAG;AACvC,YAAM,aAAa;AAAA,QACjB,GAAG;AAAA,QACH,QAAQ,KAAK,SAAS;AAAA,MACxB;AACA,YAAM,eAAe;AAAA,QACnB,GAAG;AAAA,QACH,KAAKD,SAAQ;AAAA,MACf;AAIA;AAAA;AAAA,QAEE,EAAE,OAAO,SAAS;AAAA,UAChB,UAAU,KAAK;AAAA,QACjB,GAAG,KAAK,GAAG,EAAE,OAAO;AAAA,UAClB,MAAM;AAAA,UACN,OAAO;AAAA,QACT,GAAG,EAAE,OAAO;AAAA,UACV,MAAM;AAAA,UACN,OAAO;AAAA,QACT,GAAG,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC;AAAA;AAAA,IAEjC;AAAA,EACF;AACA,MAAO,sBAAQ;;;AC3JA,WAAR,kBAAmC,OAAO;AAC/C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,CAAC,YAAY,aAAa,IAAIE,GAAS,cAAc,OAAO,aAAa,EAAE;AAGjF,UAAM,oBAAoBC,GAAY,QAAM;AAC1C,SAAG,eAAe;AAClB,aAAO,UAAU;AAAA,IACnB,GAAG,CAAC,QAAQ,UAAU,CAAC;AACvB,UAAM,cAAcA,GAAY,QAAM;AACpC,YAAM,aAAa,GAAG,OAAO;AAC7B,oBAAc,UAAU;AACxB,UAAI,cAAe,QAAO,UAAU;AAAA,IACtC,GAAG,CAAC,eAAe,eAAe,MAAM,CAAC;AACzC,UAAM,cAAc,MAAM;AACxB,oBAAc,EAAE;AAChB,UAAI,YAAa,aAAY;AAAA,IAC/B;AACA,UAAM,CAAC,IAAI,IAAID,GAAS,MAAM;AAC5B,YAAM,SAAS,SAAS,cAAc,MAAM;AAC5C,aAAO,aAAa,YAAY,IAAI;AACpC,aAAO,KAAK,OAAO;AACnB,aAAO;AAAA,IACT,CAAC;AACD,IAAAE,GAAU,MAAM;AACd,eAAS,KAAK,YAAY,IAAI;AAC9B,WAAK,iBAAiB,UAAU,iBAAiB;AACjD,aAAO,MAAM;AACX,aAAK,oBAAoB,UAAU,iBAAiB;AACpD,iBAAS,KAAK,YAAY,IAAI;AAAA,MAChC;AAAA,IACF,GAAG,CAAC,MAAM,iBAAiB,CAAC;AAC5B,WAAO,EAAE,GAAU,MAAM,EAAE,SAAS;AAAA,MAClC,WAAW,gBAAgB,cAAc;AAAA,MACzC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,aAAa;AAAA,MACb,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM,KAAK;AAAA,MACX,6BAA6B;AAAA,IAC/B,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO;AAAA,MAC1B,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,CAAC,cAAc,cAAc,EAAE,UAAU;AAAA,MAC5C,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,MACd,OAAO;AAAA,MACP,SAAS;AAAA,IACX,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,UAAU;AAAA,MAC9B,WAAW,8CAA8C,kBAAkB;AAAA,MAC3E,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,IACb,GAAG,WAAW,CAAC;AAAA,EACjB;;;AClFe,WAAR,cAA+B,MAAM;AAC1C,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,UAAU;AAAA,MACb,WAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM;AAAA,IACR,GAAG,KAAK,WAAW;AAAA,MACjB,aAAa;AAAA,IACf,CAAC,CAAC,GAAG,EAAE,UAAU;AAAA,MACf,WAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM;AAAA,IACR,GAAG,KAAK,QAAQ,CAAC,CAAC;AAAA,EACpB;;;AClBA,MAAAC,qBAAuB;;;ACDvB,WAAS,WAAW;AAClB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,aAAa;AACpB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,QACL,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,YAAY;AACnB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,IACL,CAAC,CAAC;AAAA,EACJ;AACe,WAAR,SAA0B,OAAO;AACtC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,QAAI,mBAAmB,KAAM,QAAO;AACpC,YAAQ,gBAAgB;AAAA,MACtB,KAAK;AACH,eAAO,EAAE,UAAU,IAAI;AAAA,MACzB,KAAK;AACH,eAAO,EAAE,YAAY,IAAI;AAAA,MAC3B,KAAK;AACH,eAAO,EAAE,WAAW,IAAI;AAAA,MAC1B,SACE;AACE,cAAM;AAAA,UACJ;AAAA,QACF,IAAI;AACJ,eAAO,EAAE,OAAO;AAAA,UACd,KAAK;AAAA,UACL;AAAA,UAGA,gBAAgB;AAAA,UAChB,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ;AAAA,QACV,CAAC;AAAA,MACH;AAAA,IACJ;AAAA,EACF;;;ACtEA,MAAAC,qBAAuB;AACvB,WAAS,aAAa,OAAO;AAC3B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAAC;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,wBAAoB,mBAAAC,SAAW,gBAAgB,qCAAqC,2CAA2C;AAAA,MACnI,iDAAiD;AAAA,IACnD,CAAC;AACD,WAAO,EAAE,MAAM;AAAA,MACb;AAAA,MACA,OAAO,aAAa,oBAAoB,OAAO,SAAS,iBAAiB,UAAU;AAAA,IACrF,GAAG,EAAE,SAAS;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,MACV,WAAW;AAAA,MAGX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,IAAID;AAAA,MACJ,SAAS;AAAA,MACT,UAAU;AAAA,MACV,6BAA6B;AAAA,IAC/B,CAAC,GAAG,EAAE,SAAS;AAAA,MACb,SAASA;AAAA,MACT,cAAc;AAAA,MACd,WAAW;AAAA,IACb,GAAG,YAAY,cAAc,OAAO,QAAQ,CAAC;AAAA,EAC/C;AACA,MAAO,iBAAQ;;;AC/BA,WAAR,SAA0B,OAAO;AACtC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAAE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,MAAM;AAAA,MACb;AAAA,MACA,OAAO,aAAa,oBAAoB,OAAO,SAAS,iBAAiB,UAAU;AAAA,IACrF,GAAG,CAAC,qBAAqB,EAAE,SAAS;AAAA,MAClC,MAAM;AAAA,MACN,WAAW,kDAAkD,YAAY,kDAAkD,EAAE;AAAA,MAC7H,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MAGb,MAAM;AAAA,MACN,IAAIA;AAAA,MACJ,SAAS;AAAA,MACT,cAAc,SAAS,SAAS,OAAO,KAAK,2BAA2B;AAAA,QACrE,MAAM;AAAA,MACR,CAAC;AAAA,MACD,UAAU;AAAA,MACV,6BAA6B;AAAA,IAC/B,CAAC,IAAI,MAAM,SAAS;AAAA;AAAA,MAEpB,EAAE,SAAS;AAAA,QACT,SAASA;AAAA,QACT,WAAW;AAAA,MACb,GAAG,EAAE,OAAO;AAAA,QACV,WAAW;AAAA,MACb,GAAG,UAAU,GAAG,cAAc,KAAK;AAAA,QAEjC,EAAE,UAAU;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc,KAAK,mBAAmB;AAAA,QACpC,MAAM;AAAA,MACR,CAAC;AAAA,IACH,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,UAAU,GAAG,cAAc,EAAE,QAAQ,MAAM,KAAK,CAAC,CAAC;AAAA,EACvD;;;AHlEA,WAASC,YAAW;AAAE,IAAAA,YAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,QAAQ;AAAE,eAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AAAE,YAAI,SAAS,UAAUA,EAAC;AAAG,iBAAS,OAAO,QAAQ;AAAE,cAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,GAAG;AAAE,mBAAO,GAAG,IAAI,OAAO,GAAG;AAAA,UAAG;AAAA,QAAE;AAAA,MAAE;AAAE,aAAO;AAAA,IAAQ;AAAG,WAAOD,UAAS,MAAM,MAAM,SAAS;AAAA,EAAG;AAOnU,WAAR,KAAsB,OAAO;AAClC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,iBAAiB,YAAY;AACnC,UAAM,gBAAY,mBAAAE,SAAW,4BAA4B;AAAA,MACvD,sCAAsC;AAAA,IACxC,GAAG;AAAA,MACD,sCAAsC;AAAA,IACxC,GAAG;AAAA,MACD,uCAAuC,mBAAmB;AAAA,IAC5D,CAAC;AACD,UAAM,aAAa,EAAE,UAAU;AAAA,MAC7B;AAAA,IACF,CAAC;AACD,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,eAAO,EAAE,gBAAcF,UAAS,CAAC,GAAG,OAAO;AAAA,UACzC;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA,MACJ,KAAK;AACH,eAAO,EAAE,UAAUA,UAAS,CAAC,GAAG,OAAO;AAAA,UACrC;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA,MACJ,KAAK;AACH,eAAO,EAAE,gBAAcA,UAAS,CAAC,GAAG,OAAO;AAAA,UACzC;AAAA,UACA;AAAA,QACF,CAAC,GAAG,EAAE,KAAK;AAAA,UACT,MAAM,GAAG,OAAO,GAAG;AAAA,UACnB,QAAQ;AAAA,UACR,KAAK;AAAA,UACL,WAAW;AAAA,UACX,UAAU;AAAA,QACZ,GAAG,OAAO,IAAI,CAAC;AAAA,MACjB;AACE,cAAM,IAAI,MAAM,yBAAyB,QAAQ,EAAE;AAAA,IACvD;AAAA,EACF;;;ALxCA,MAAM,qBAAqB;AAC3B,WAASG,UAAS,OAAO;AACvB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAAC;AAAA,IACF,IAAI;AACJ,QAAIA,GAAE,UAAU;AACd,aAAO,KAAK;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAIA,GAAE;AAAA,QACN,OAAOA,GAAE;AAAA,QACT,aAAa,MAAMA,GAAE;AAAA,QACrB,WAAW,UAAUA,EAAC;AAAA,QACtB,gBAAgB,WAAS,eAAe,OAAOA,EAAC;AAAA,QAChD;AAAA,QACA,MAAM;AAAA;AAAA,QAEN,YAAY;AAAA,QACZ,oBAAoBA,GAAE,OAAO;AAAA;AAAA,QAE7B,mBAAmB,MAAM,cAAcA,EAAC;AAAA,MAC1C,CAAC;AAAA,IACH;AACA,UAAM,mBAAmB,qBAAqB,qBAAqBA,EAAC,GAAG,CAAC,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAC1G,WAAO,KAAK;AAAA,MACV,IAAIA,GAAE;AAAA,MACN,OAAOA,GAAE;AAAA,MACT,QAAQA,GAAE;AAAA,MACV,aAAa,MAAMA,GAAE;AAAA,MACrB,WAAW,UAAUA,EAAC;AAAA,MACtB,gBAAgB,WAAS,eAAe,OAAOA,EAAC;AAAA,MAChD,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN,YAAY,QAAQ,gBAAgB,KAAK,CAAC,UAAUA,EAAC;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,QAAQ,OAAO;AACtB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,WAAW,iBAAiB;AAClC,UAAM,OAAOC,GAAQ,MAAM,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,SAAS,KAAK,CAAC;AACnE,WAAO,EAAE,OAAO;AAAA,MACd,eAAW,mBAAAC,SAAW,wBAAwB,kCAAkC,QAAQ,EAAE;AAAA,IAC5F,GAAG,mBAAmB,EAAE,OAAO;AAAA,MAC7B,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,eAAW,mBAAAA,SAAW,kCAAkC,CAAC,mBAAmB,wCAAwC;AAAA,IACtH,GAAG,eAAe,CAAC,GAAG,oBAAoB,EAAE,OAAO;AAAA,MACjD,OAAO;AAAA,IACT,GAAG,EAAE,mBAAmB;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,IACF,CAAC,CAAC,IAAI,MAAM;AACV,UAAI,WAAW;AACb,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,QACb,GAAG,EAAE,QAAQ,MAAM,KAAK,SAAS,CAAC,CAAC;AAAA,MACrC;AACA,UAAI,CAAC,QAAQ,UAAU,CAAC,MAAM,QAAQ;AACpC,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,QACb,GAAG,cAAc;AAAA,MACnB;AACA,UAAI,cAAc;AAChB,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,QACb,GAAG,EAAE,MAAM;AAAA,UACT,WAAW;AAAA,QACb,GAAG,EAAE,qBAAa;AAAA,UAChB,MAAM;AAAA,UACN,WAAW,CAAAF,OAAK,EAAED,WAAU;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,GAAGC;AAAA,UACL,CAAC;AAAA,UACD,WAAW;AAAA,QACb,CAAC,CAAC,CAAC;AAAA,MACL;AACA,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,MACb,GAAG,EAAE,MAAM;AAAA,QACT,WAAW;AAAA,QACX,UAAU;AAAA,QACV,MAAM;AAAA,QAGN,UAAU;AAAA,MACZ,GAAG,KAAK,IAAI,CAAAA,OAAK,EAAED,WAAU;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAGC;AAAA,MACL,CAAC,CAAC,CAAC,CAAC;AAAA,IACN,GAAG,GAAG,WAAW,KAAK,EAAE,eAAe;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;AACA,MAAO,kBAAQ;;;AS7Kf,MAAqB,eAArB,cAA0C,EAAU;AAAA,IAClD,uBAAuB;AACrB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,gBAAU;AAAA,IACZ;AAAA,IACA,SAAS;AACP,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,aAAO,EAAa,QAAQ,EAAE,CAAC;AAAA,IACjC;AAAA,EACF;;;ACNA,MAAqBG,QAArB,MAA0B;AAAA,IACxB,YAAY,QAAQ,MAAM;AACxB,WAAK,cAAc,WAAS;AAC1B,cAAM,QAAQ,KAAK,OAAO,eAAe;AACzC,YAAI,CAAC,MAAM,eAAe,MAAM,gBAAgB,IAAI;AAClD,iBAAO;AAAA,QACT;AACA,eAAO,MAAM,OAAO,YAAU;AAC5B,iBAAO,OAAO,KAAK,YAAY,EAAE,QAAQ,MAAM,YAAY,YAAY,CAAC,MAAM;AAAA,QAChF,CAAC;AAAA,MACH;AACA,WAAK,sBAAsB,CAAAC,OAAK;AAC9B,aAAK,oBAAoBA,GAAE;AAAA,MAC7B;AAQA,WAAK,iBAAiB,CAACA,IAAG,SAAS;AACjC,QAAAA,GAAE,gBAAgB;AAClB,QAAAA,GAAE,eAAe;AACjB,QAAAA,GAAE,cAAc,MAAM;AACtB,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,KAAK,OAAO,eAAe;AAC/B,cAAM,QAAQ,KAAK,YAAY,QAAQ,OAAO,KAAK,CAAC;AAGpD,YAAI,KAAK,gBAAgB,KAAK,mBAAmB;AAC/C,gBAAM;AAAA,YACJ,kBAAAC;AAAA,UACF,IAAI,KAAK,OAAO,eAAe;AAC/B,gBAAM,YAAY,MAAM,QAAQ,KAAK,YAAY;AACjD,gBAAM,eAAe,MAAM,QAAQ,IAAI;AACvC,gBAAM,eAAe,YAAY,eAAe,MAAM,MAAM,WAAW,eAAe,CAAC,IAAI,MAAM,MAAM,cAAc,YAAY,CAAC;AAClI,gBAAM,sBAAsB,CAAC;AAI7B,qBAAW,QAAQ,cAAc;AAC/B,kBAAM;AAAA,cACJ;AAAA,YACF,IAAI,KAAK;AACT,kBAAM,mBAAmB,KAAK,qBAAqB,qBAAqB,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,GAAG,GAAG,mBAAmB,CAAC;AAC3H,gBAAI,CAAC,kBAAkB;AACrB,kCAAoB,KAAK,IAAI;AAAA,YAC/B,OAAO;AACL,mBAAK,KAAK;AAAA,gBACR,SAAS,iBAAiB;AAAA,cAC5B,GAAG,SAAS,KAAK,KAAK,WAAW;AAAA,YACnC;AAAA,UACF;AACA,eAAK,OAAO,eAAe;AAAA,YACzB,kBAAkB,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAGA,mBAAkB,GAAG,mBAAmB,CAAC,CAAC;AAAA,UAC9E,CAAC;AACD;AAAA,QACF;AACA,aAAK,eAAe;AACpB,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,OAAO,eAAe;AAC/B,YAAI,KAAK,UAAU,IAAI,GAAG;AACxB,eAAK,OAAO,eAAe;AAAA,YACzB,kBAAkB,iBAAiB,OAAO,UAAQ,KAAK,OAAO,KAAK,EAAE;AAAA,UACvE,CAAC;AAAA,QACH,OAAO;AACL,eAAK,OAAO,eAAe;AAAA,YACzB,kBAAkB,iBAAiB,OAAO,CAAC,IAAI,CAAC;AAAA,UAClD,CAAC;AAAA,QACH;AAAA,MACF;AACA,WAAK,YAAY,UAAQ;AACvB,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,OAAO,eAAe;AAG/B,eAAO,iBAAiB,KAAK,UAAQ,KAAK,OAAO,KAAK,EAAE;AAAA,MAC1D;AACA,WAAK,SAAS;AACd,WAAK,WAAW,KAAK;AACrB,WAAK,OAAO;AACZ,WAAK,mBAAmB;AACxB,WAAK,iBAAiB,KAAK,eAAe,KAAK,IAAI;AACnD,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,WAAK,iBAAiB,KAAK,eAAe,KAAK,IAAI;AACnD,WAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AAAA,IACnD;AAAA,IACA,iBAAiB;AACf,WAAK,OAAO,eAAe;AAAA,QACzB,gBAAgB;AAAA,MAClB,CAAC;AACD,WAAK,OAAO,cAAc;AAAA,IAC5B;AAAA,IACA,mBAAmB,OAAO;AACxB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,MAAM;AACV,YAAM,iBAAiB,gBAAgB,YAAY;AACnD,aAAO,iBAAiB,MAAM,CAAC,KAAK;AAAA,IACtC;AAAA,IACA,iBAAiB;AACf,WAAK,OAAO,eAAe;AAAA,QACzB,kBAAkB,CAAC;AAAA,QACnB,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,gBAAgB;AACd,WAAK,eAAe;AACpB,YAAM,YAAY,KAAK,OAAO,KAAK,UAAU,WAAW;AACxD,UAAI,WAAW;AAGb,kBAAU,cAAc;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,YAAYC,QAAO;AACjB,UAAI;AACJ,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,YAAM,UAAU,KAAK,KAAK,gBAAgB;AAC1C,WAAK,IAAIA,OAAM,SAAS,CAAC;AACzB,UAAIA,OAAM,iBAAiB,eAAeA,OAAM,UAAU,OAAO,SAAS,aAAa,UAAU,cAAc;AAG7G;AAAA,MACF;AACA,WAAK,KAAK;AAAA,QACR;AAAA,QACA,SAASA,OAAM,SAAS;AAAA,MAC1B,GAAG,SAAS,GAAI;AAAA,IAClB;AAAA,IACA,wBAAwB;AACtB,WAAK,kBAAkB,KAAK,SAAS;AACrC,WAAK,OAAO,KAAK,sBAAsB,KAAK,iBAAiB,KAAK,QAAQ;AAAA,IAC5E;AAAA;AAAA,IAGA,WAAW,MAAM;AACf,YAAM,UAAU;AAAA,QACd,IAAI,KAAK;AAAA,QACT,QAAQ,KAAK,OAAO;AAAA,QACpB,MAAM,KAAK,QAAQ,KAAK;AAAA,QACxB,MAAM,KAAK;AAAA,QACX,UAAU;AAAA;AAAA,QAEV,MAAM;AAAA;AAAA,QAEN,MAAM,CAAC;AAAA,QACP,MAAM;AAAA,UACJ,QAAQ,KAAK;AAAA,QACf;AAAA,QACA,QAAQ;AAAA,UACN,cAAc,KAAK,OAAO,KAAK;AAAA;AAAA,UAE/B,KAAK,GAAG,KAAK,SAAS,QAAQ,KAAK,WAAW,CAAC;AAAA,UAC/C,MAAM;AAAA,YACJ,QAAQ,KAAK;AAAA,UACf;AAAA,UACA,cAAc,KAAK,SAAS;AAAA,UAC5B,UAAU,KAAK,SAAS;AAAA,UACxB,iBAAiB,KAAK;AAAA,QACxB;AAAA,MACF;AACA,YAAM,WAAW,YAAY,OAAO;AAGpC,UAAI,YAAY,mBAAmB,QAAQ,GAAG;AAC5C,gBAAQ,UAAU,KAAK;AAAA,MACzB;AACA,UAAI,KAAK,QAAQ;AACf,YAAI,KAAK,OAAO,QAAQ,KAAM,SAAQ,KAAK,aAAa,OAAO,KAAK,OAAO,IAAI;AAC/E,YAAI,KAAK,OAAO,IAAK,SAAQ,KAAK,YAAY,KAAK,OAAO;AAAA,MAC5D;AAGA,UAAI,KAAK,cAAc,KAAM,SAAQ,KAAK,eAAe,KAAK,aAAa,GAAG,KAAK,UAAU,IAAI,QAAQ,IAAI,KAAK;AAElH,UAAI,KAAK,cAAc,KAAM,SAAQ,KAAK,eAAe,KAAK,aAAa,IAAI,KAAK,UAAU,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI;AACnI,aAAO;AAAA,IACT;AAAA,IACA,WAAW,SAAS;AAClB,WAAK,OAAO,eAAe;AAAA,QACzB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;;;ACzMA,WAASC,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAYrF,MAAME,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AACA,WAAS,kBAAkB,aAAa;AACtC,WAAO,YAAY,MAAM,CAAC,EAAE,IAAI,eAAa,UAAU,IAAI,EAAE,KAAK,GAAG;AAAA,EACvE;AACA,WAAS,YAAY,MAAM,WAAW;AACpC,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,GAAG,IAAI,IAAI,SAAS;AAAA,EAC7B;AACO,WAAS,oBAAoB;AAClC,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC;AAAA,EACJ;AACA,MAAMC,kBAAiB;AAAA,IACrB,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,cAAc;AAAA,EAChB;AACA,MAAI,mBAAgC,gBAAAF,4BAA2B,iBAAiB;AAChF,MAAI,aAA0B,gBAAAA,4BAA2B,WAAW;AACpE,MAAI,QAAqB,gBAAAA,4BAA2B,MAAM;AAC1D,MAAI,uBAAoC,gBAAAA,4BAA2B,qBAAqB;AACxF,MAAI,2BAAwC,gBAAAA,4BAA2B,yBAAyB;AAIhG,MAAqB,eAArB,cAA0CG,MAAK;AAAA,IAC7C,YAAY,QAAQ,MAAM;AACxB,YAAM,QAAQ;AAAA,QACZ,GAAGD;AAAA,QACH,GAAG;AAAA,MACL,CAAC;AAGD,aAAO,eAAe,MAAM,0BAA0B;AAAA,QACpD,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,sBAAsB;AAAA,QAChD,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,OAAO;AAAA,QACjC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,kBAAkB;AAAA,QAC5C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,WAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,WAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AACjD,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,WAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,WAAK,eAAe,KAAK,aAAa,KAAK,IAAI;AAC/C,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAG7C,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAGnC,WAAK,OAAO,eAAe;AAAA,QACzB,eAAe;AAAA;AAAA,QAEf,OAAO,CAAC;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,QACd,aAAa;AAAA,QACb,iBAAiB;AAAA,QACjB,kBAAkB,CAAC;AAAA,MACrB,CAAC;AACD,WAAK,sBAAsB;AAAA,IAC7B;AAAA;AAAA,IAGA,WAAW;AAAA,IAEX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAM,UAAU,aAAa,MAAM;AACjC,WAAK,WAAW,IAAI;AACpB,UAAI;AACF,cAAMJ,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAM,WAAU;AAC9E,eAAK,eAAe;AACpB,cAAI;AAAA,YACF;AAAA,UACF,IAAI,KAAK,OAAO,eAAe;AAC/B,gBAAM,QAAQ,YAAY,UAAU,SAAO,gBAAgB,IAAI,WAAW;AAC1E,cAAI,UAAU,IAAI;AAEhB,0BAAc,YAAY,MAAM,GAAG,QAAQ,CAAC;AAAA,UAC9C,OAAO;AAEL,0BAAc,CAAC,GAAG,aAAa;AAAA,cAC7B;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH;AACA,eAAK,eAAe;AACpB,cAAI,QAAQ,CAAC;AACb,cAAI,UAAU,CAAC;AACf,aAAG;AACD,kBAAM;AAAA,cACJ,OAAO;AAAA,cACP,SAAS;AAAA,YACX,IAAI,MAAMA,6BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAE;AAAA,cACtF;AAAA,cACA;AAAA,YACF,CAAC;AACD,oBAAQ,MAAM,OAAO,QAAQ;AAC7B,sBAAU,QAAQ,OAAO,UAAU;AACnC,iBAAK,WAAW,KAAK,OAAO,KAAK,KAAK,gBAAgB;AAAA,cACpD,UAAU,MAAM,SAAS,QAAQ;AAAA,YACnC,CAAC,CAAC;AAAA,UACJ,SAAS,KAAK,KAAK,gBAAgB,KAAK;AACxC,eAAK,OAAO,eAAe;AAAA,YACzB;AAAA,YACA;AAAA,YACA;AAAA,YACA,aAAa;AAAA,UACf,CAAC;AAAA,QACH,CAAC;AAAA,MACH,SAAS,KAAK;AAGZ,aAAK,OAAO,OAAO,SAAS,IAAI,UAAU,sBAAsB;AAC9D,eAAK,OAAO,KAAK,KAAK;AAAA,YACpB,SAAS,KAAK,OAAO,KAAK,KAAK,IAAI,OAAO;AAAA,UAC5C,GAAG,WAAW,GAAI;AAClB;AAAA,QACF;AACA,aAAK,YAAY,GAAG;AAAA,MACtB,UAAE;AACA,aAAK,WAAW,KAAK;AAAA,MACvB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc,QAAQ;AACpB,WAAK,UAAU,OAAO,aAAa,OAAO,IAAI;AAC9C,WAAK,eAAe;AAAA,IACtB;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAS;AACb,UAAI;AACF,cAAMA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAM,WAAU;AAC9E,gBAAM,MAAM,MAAM,KAAK,SAAS,OAAO;AAAA,YACrC;AAAA,UACF,CAAC;AAED,cAAI,IAAI,IAAI;AACV,gBAAI,CAAC,IAAI,SAAS;AAChB,oBAAM,UAAU,KAAK,OAAO,KAAK,KAAK,4BAA4B;AAAA,gBAChE,UAAU,KAAK,OAAO;AAAA,gBACtB,KAAK,IAAI;AAAA,cACX,CAAC;AACD,mBAAK,OAAO,KAAK,KAAK,SAAS,QAAQ,GAAI;AAAA,YAC7C;AACA,kBAAM,WAAW;AAAA,cACf,eAAe;AAAA,cACf,OAAO,CAAC;AAAA,cACR,SAAS,CAAC;AAAA,cACV,aAAa,CAAC;AAAA,cACd,aAAa;AAAA,YACf;AACA,iBAAK,OAAO,eAAe,QAAQ;AAAA,UACrC;AAAA,QACF,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,aAAK,YAAY,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,IACA,YAAY,OAAO;AACjB,WAAK,OAAO,eAAe;AAAA,QACzB,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,cAAc;AACZ,WAAK,OAAO,eAAe;AAAA,QACzB,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,MAAM,WAAW,cAAc;AAC7B,UAAI;AACF,cAAMA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAM,WAAU;AAC9E,eAAK,WAAW,IAAI;AACpB,gBAAM,KAAK,SAAS,MAAM;AAAA,YACxB;AAAA,YACA;AAAA,UACF,CAAC;AACD,eAAK,OAAO,eAAe;AAAA,YACzB,eAAe;AAAA,UACjB,CAAC;AACD,eAAK,eAAe;AAAA,QACtB,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,YAAI,IAAI,SAAS,sBAAsB;AACrC,eAAK,OAAO,KAAK,KAAK;AAAA,YACpB,SAAS,KAAK,OAAO,KAAK,KAAK,IAAI,OAAO;AAAA,UAC5C,GAAG,WAAW,GAAI;AAClB;AAAA,QACF;AACA,aAAK,OAAO,KAAK,IAAI,iBAAiB,IAAI,OAAO,EAAE;AAAA,MACrD,UAAE;AACA,aAAK,WAAW,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,IACA,MAAM,aAAa,OAAO;AACxB,UAAI,KAAK,mBAAmB,KAAK,KAAK,KAAK,cAAc;AACvD,aAAK,mBAAmB;AACxB,YAAI;AACF,gBAAMA,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAM,WAAU;AAC9E,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,YACF,IAAI,KAAK,OAAO,eAAe;AAC/B,kBAAM;AAAA,cACJ,OAAO;AAAA,cACP,SAAS;AAAA,YACX,IAAI,MAAMA,6BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAE;AAAA,cACtF;AAAA,cACA;AAAA,YACF,CAAC;AACD,kBAAM,gBAAgB,MAAM,OAAO,QAAQ;AAC3C,kBAAM,kBAAkB,QAAQ,OAAO,UAAU;AACjD,iBAAK,OAAO,eAAe;AAAA,cACzB,SAAS;AAAA,cACT,OAAO;AAAA,YACT,CAAC;AAAA,UACH,CAAC;AAAA,QACH,SAASM,QAAO;AACd,eAAK,YAAYA,MAAK;AAAA,QACxB,UAAE;AACA,eAAK,mBAAmB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,cAAc;AAClB,WAAK,WAAW,IAAI;AACpB,UAAI;AACF,cAAMN,6BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE,OAAM,WAAU;AAC9E,gBAAM;AAAA,YACJ;AAAA,UACF,IAAI,KAAK,OAAO,eAAe;AAC/B,gBAAM,WAAW,CAAC;AAClB,gBAAM,WAAW,CAAC;AAClB,qBAAW,gBAAgB,kBAAkB;AAC3C,kBAAM;AAAA,cACJ;AAAA,YACF,IAAI;AACJ,kBAAM,iBAAiB,cAAY;AAAA,cACjC,GAAG;AAAA;AAAA;AAAA,cAGH,YAAY,QAAQ,WAAW,QAAQ,aAAa,YAAY,EAAE,EAAE,QAAQ,OAAO,EAAE;AAAA,YACvF;AACA,gBAAI,aAAa,UAAU;AACzB,kBAAI,UAAU;AACd,kBAAI,cAAc;AAClB,oBAAM,QAAQ,IAAI,aAAO;AAAA,gBACvB,aAAa;AAAA,cACf,CAAC;AACD,oBAAM,UAAU,WAAS;AACvB,2BAAW,WAAW,OAAO;AAC3B,wBAAM,UAAU,KAAK,WAAW,OAAO;AACvC,wBAAMC,OAAK,cAAc,OAAO;AAKhC,sBAAI,CAAC,KAAK,OAAO,KAAK,yBAAyBA,IAAE,GAAG;AAClD,6BAAS,KAAK,eAAe,OAAO,CAAC;AACrC;AACA,yBAAK,WAAW,KAAK,OAAO,KAAK,KAAK,iBAAiB;AAAA,sBACrD,UAAU;AAAA,oBACZ,CAAC,CAAC;AAAA,kBACJ;AACA,4BAAU;AAAA,gBACZ;AAAA,cACF;AACA,oBAAMD,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE;AAAA,gBAC1F;AAAA,gBACA,YAAY,YAAY,aAAa,YAAY,aAAa,IAAI;AAAA,gBAClE,YAAY,aAAa;AAAA,gBACzB;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,CAAC;AACD,oBAAM,MAAM,OAAO;AACnB,kBAAI;AACJ,kBAAI,SAAS;AACX,0BAAU,KAAK,OAAO,KAAK,KAAK,kBAAkB;AAAA,cACpD,WAAW,gBAAgB,GAAG;AAC5B,0BAAU,KAAK,OAAO,KAAK,KAAK,sBAAsB;AAAA,kBACpD,QAAQ,aAAa;AAAA,gBACvB,CAAC;AAAA,cACH,OAAO;AAIL,0BAAU,KAAK,OAAO,KAAK,KAAK,eAAe;AAAA,kBAC7C,aAAa;AAAA,kBACb,QAAQ,aAAa;AAAA,gBACvB,CAAC;AAAA,cACH;AACA,uBAAS,KAAK,OAAO;AAAA,YACvB,OAAO;AACL,uBAAS,KAAK,eAAe,YAAY,CAAC;AAAA,YAC5C;AAAA,UACF;AAOA,eAAK,OAAO,KAAK,IAAI,qCAAqC;AAC1D,eAAK,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,YAIjB,SAAS,IAAI,UAAQ,KAAK,WAAW,MAAM,KAAK,eAAe,CAAC;AAAA,UAAC;AACjE,eAAK,OAAO,eAAe;AAAA,YACzB,aAAa;AAAA,UACf,CAAC;AACD,mBAAS,QAAQ,aAAW,KAAK,OAAO,KAAK,KAAK,OAAO,CAAC;AAC1D,eAAK,eAAe;AAAA,QACtB,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,aAAK,YAAY,GAAG;AAAA,MACtB,UAAE;AACA,aAAK,WAAW,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,IACA,OAAO,OAAO,aAAa;AACzB,UAAI,QAAQ;AACZ,UAAI,gBAAgB,QAAQ;AAC1B,sBAAc,CAAC;AAAA,MACjB;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,KAAK,OAAO,eAAe;AAC/B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,OAAO;AAChB,UAAI,CAAC,gBAAgB;AACnB,aAAK,eAAe;AAAA,MACtB;AACA,YAAM,oBAAoB;AAAA,QACxB,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MACL;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK,OAAO,eAAe;AAC/B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,WAAW,gBAAgB;AACjC,YAAM,aAAa,KAAK,OAAO,QAAQ;AACvC,YAAM,cAAc;AAAA,QAClB,iBAAiB,kBAAkB;AAAA,QACnC,WAAW,KAAK;AAAA,QAChB,aAAa,KAAK,OAAO,eAAe,EAAE;AAAA,QAC1C;AAAA,QACA,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ,KAAK;AAAA,QACb,UAAU,KAAK;AAAA,QACf;AAAA,MACF;AACA,YAAM,eAAe;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,WAAW,YAAY,KAAK,IAAI;AAAA,QACvC,SAAS,WAAW,YAAY,OAAO,IAAI;AAAA,QAC3C,eAAe,KAAK;AAAA,QACpB,WAAW,KAAK;AAAA,QAChB,cAAc,KAAK,KAAK;AAAA;AAAA,QAExB,kBAAkB,kBAAkB;AAAA,QACpC,QAAQ,KAAK;AAAA,QACb,aAAa,KAAK;AAAA,QAClB,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,kBAAkB,KAAK,QAAQ;AAAA,QAC/B,kBAAkB,KAAK,aAAa;AAAA,QACpC,gBAAgB,KAAK,cAAc;AAAA,QACnC,QAAQ,KAAK;AAAA,QACb,cAAc,KAAK;AAAA,QACnB,MAAM,KAAK;AAAA,QACX,QAAQ,KAAK;AAAA;AAAA,QAEb,iBAAiB,EAAE,QAAQ,WAAW;AAAA,QACtC,OAAO,KAAK,OAAO;AAAA,QACnB,UAAU,kBAAkB;AAAA,QAC5B,YAAY,kBAAkB;AAAA,QAC9B,iBAAiB,kBAAkB;AAAA,QACnC;AAAA,QACA,MAAM,KAAK,OAAO,KAAK;AAAA,QACvB,WAAW,KAAK,OAAO,KAAK,SAAS;AAAA,QACrC,sBAAsB,WAAY;AAChC,iBAAO,MAAM,OAAO,KAAK,qBAAqB,GAAG,SAAS;AAAA,QAC5D;AAAA,QACA,WAAW;AAAA,MACb;AACA,UAAI,kBAAkB,OAAO;AAC3B,eAAO,EAAE,cAAc;AAAA,UACrB,WAAW,KAAK;AAAA,QAClB,GAAG,EAAE,UAAU;AAAA,UACb,YAAY,KAAK,OAAO;AAAA,UACxB;AAAA,UACA,YAAY,KAAK;AAAA,UACjB,MAAM,KAAK,OAAO,KAAK;AAAA,UACvB,YAAY,KAAK,KAAK;AAAA,UACtB;AAAA,QACF,CAAC,CAAC;AAAA,MACJ;AACA,aAAO,EAAE,cAAc;AAAA,QACrB,WAAW,KAAK;AAAA,MAClB,GAAG,EAAE,iBAAS,YAAY,CAAC;AAAA,IAC7B;AAAA,EACF;AACA,iBAAe,YAAY,IAAI;AAC7B,QAAI;AAEJ,KAAC,wBAAwBA,6BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,MAAM,QAAQ,sBAAsB,MAAM;AACvI,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,IAAAA,6BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,IAAI;AACxE,UAAM,gBAAgB,MAAM;AAC1B,sBAAgB,MAAM;AACtB,WAAK,eAAe;AAAA,IACtB;AACA,QAAI;AAIF,WAAK,OAAO,KAAK,GAAG,yBAAyB,aAAa;AAC1D,WAAK,OAAO,KAAK,GAAG,cAAc,aAAa;AAC/C,YAAM,GAAG,gBAAgB,MAAM;AAAA,IACjC,UAAE;AAIA,WAAK,OAAO,KAAK,IAAI,yBAAyB,aAAa;AAC3D,WAAK,OAAO,KAAK,IAAI,cAAc,aAAa;AAChD,MAAAA,6BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,IAAI;AAAA,IAC1E;AAAA,EACF;AACA,iBAAe,OAAO,MAAM;AAC1B,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,MAAM,KAAK,SAAS,KAAK,aAAa;AAAA,MACxC;AAAA,IACF,CAAC;AACD,SAAK,WAAW,YAAY,KAAK;AACjC,WAAO;AAAA,MACL,OAAO,MAAM,IAAI,WAAS;AAAA,QACxB,GAAG;AAAA,QACH;AAAA,MACF,EAAE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,iBAAe,sBAAsB,OAAO;AAC1C,QAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,aAAa,kBAAkB,WAAW;AAChD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,MAAMA,6BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE;AAAA,MACxD,aAAa,KAAK;AAAA,MAClB;AAAA,MACA;AAAA,IACF,CAAC;AACD,SAAK,eAAe;AACpB,UAAM,QAAQ,CAAC;AACf,UAAM,UAAU,CAAC;AACjB,UAAM,QAAQ,UAAQ;AACpB,UAAI,KAAK,UAAU;AACjB,gBAAQ,KAAK,IAAI;AAAA,MACnB,OAAO;AACL,cAAM,KAAK,IAAI;AAAA,MACjB;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,iBAAe,0BAA0B,OAAO;AAC9C,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI,UAAU;AACd,WAAO,SAAS;AACd,YAAM,MAAM,MAAMA,6BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE;AAAA,QAChE,aAAa;AAAA,QACb;AAAA,QACA;AAAA,MACF,CAAC;AACD,gBAAU,IAAI;AACd,YAAM,QAAQ,IAAI,MAAM,OAAO,UAAQ,CAAC,KAAK,QAAQ;AACrD,YAAM,UAAU,IAAI,MAAM,OAAO,UAAQ,KAAK,QAAQ;AACtD,cAAQ,KAAK;AAGb,YAAM,WAAW,QAAQ,IAAI,OAAM,WAAU,MAAM,IAAI,YAAYA,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE;AAAA,QACvJ,aAAa,OAAO;AAAA,QACpB,YAAY,YAAY,YAAY,OAAO,IAAI;AAAA,QAC/C,YAAY,YAAY,YAAY,OAAO,IAAI;AAAA,QAC/C;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,CAAC,CAAC;AACH,YAAM,QAAQ,IAAI,QAAQ;AAAA,IAC5B;AAAA,EACF;AACA,eAAa,UAAUG,aAAY;;;AClkBnC,WAASI,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AASrF,MAAME,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AACA,MAAM,eAAe;AAAA,IACnB,aAAa;AAAA,IACb,OAAO,CAAC;AAAA,IACR,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,aAAa;AAAA,IACb,kBAAkB,CAAC;AAAA,IACnB,YAAY;AAAA,EACd;AACA,MAAMC,kBAAiB;AAAA,IACrB,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,iBAAiB;AAAA,EACnB;AACA,MAAI,2BAAwC,gBAAAF,4BAA2B,yBAAyB;AAKhG,MAAqB,qBAArB,cAAgDG,MAAK;AAAA,IACnD,YAAY,QAAQ,MAAM;AACxB,YAAM,QAAQ;AAAA,QACZ,GAAGD;AAAA,QACH,GAAG;AAAA,MACL,CAAC;AACD,aAAO,eAAe,MAAM,0BAA0B;AAAA,QACpD,OAAO;AAAA,MACT,CAAC;AACD,WAAK,gBAAgB;AACrB,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,WAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI;AACvD,WAAK,eAAe,KAAK,aAAa,KAAK,IAAI;AAC/C,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,WAAK,OAAO,eAAe,YAAY;AACvC,WAAK,sBAAsB;AAAA,IAC7B;AAAA;AAAA,IAGA,WAAW;AAAA,IAEX;AAAA,IACA,mBAAmB;AACjB,WAAK,OAAO,eAAe,YAAY;AAAA,IACzC;AAAA,IACA,MAAM,OAAO,OAAO;AAClB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,OAAO,eAAe;AAC/B,UAAI,SAAS,UAAU,YAAY;AAEjC;AAAA,MACF;AACA,WAAK,WAAW,IAAI;AACpB,UAAI;AACF,cAAM,MAAM,MAAM,KAAK,SAAS,OAAO,KAAK;AAC5C,QAAAJ,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAAA,MAC/F,SAAS,KAAK;AACZ,aAAK,YAAY,GAAG;AAAA,MACtB,UAAE;AACA,aAAK,WAAW,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,IACA,cAAc;AACZ,WAAK,OAAO,eAAe;AAAA,QACzB,kBAAkB,CAAC;AAAA,QACnB,OAAO,CAAC;AAAA,QACR,YAAY;AAAA,MACd,CAAC;AAAA,IACH;AAAA,IACA,MAAM,aAAa,OAAO;AACxB,YAAM,QAAQ,KAAK,iBAAiB;AACpC,UAAI,KAAK,mBAAmB,KAAK,KAAK,OAAO;AAC3C,aAAK,mBAAmB;AACxB,YAAI;AACF,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,UACF,IAAI,KAAK,OAAO,eAAe;AAC/B,gBAAM,WAAW,MAAM,KAAK,SAAS,OAAO,YAAY,KAAK;AAC7D,UAAAA,6BAA4B,MAAM,wBAAwB,EAAE,wBAAwB,EAAE,UAAU,KAAK;AAAA,QACvG,SAASM,QAAO;AACd,eAAK,YAAYA,MAAK;AAAA,QACxB,UAAE;AACA,eAAK,mBAAmB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,cAAc;AACZ,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,OAAO,eAAe;AAC/B,WAAK,OAAO,KAAK,IAAI,qCAAqC;AAC1D,WAAK,OAAO,KAAK,SAAS,iBAAiB,IAAI,UAAQ,KAAK,WAAW,IAAI,CAAC,CAAC;AAC7E,WAAK,iBAAiB;AAAA,IACxB;AAAA,IACA,OAAO,OAAO,aAAa;AACzB,UAAI,QAAQ;AACZ,UAAI,gBAAgB,QAAQ;AAC1B,sBAAc,CAAC;AAAA,MACjB;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK,OAAO,eAAe;AAC/B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,OAAO;AAChB,UAAI,CAAC,gBAAgB;AACnB,aAAK,eAAe;AAAA,MACtB;AACA,YAAM,oBAAoB;AAAA,QACxB,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MACL;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK,OAAO,eAAe;AAC/B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,WAAW,gBAAgB;AACjC,YAAM,eAAe;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,WAAW,YAAY,KAAK,IAAI;AAAA,QACvC,SAAS,WAAW,YAAY,OAAO,IAAI;AAAA,QAC3C,cAAc,KAAK;AAAA,QACnB,MAAM,KAAK;AAAA,QACX,QAAQ,KAAK;AAAA;AAAA,QAEb,kBAAkB,kBAAkB;AAAA,QACpC,QAAQ,KAAK;AAAA,QACb,aAAa,KAAK;AAAA,QAClB;AAAA,QACA,eAAe;AAAA,QACf,kBAAkB,KAAK,QAAQ;AAAA,QAC/B,kBAAkB,KAAK,aAAa;AAAA,QACpC,gBAAgB,KAAK,iBAAiB;AAAA,QACtC,OAAO,KAAK,OAAO;AAAA,QACnB,UAAU,kBAAkB;AAAA,QAC5B,YAAY,kBAAkB;AAAA,QAC9B,YAAY,kBAAkB;AAAA,QAC9B,WAAW;AAAA,QACX,iBAAiB,kBAAkB;AAAA,QACnC,YAAY,KAAK,OAAO;AAAA,QACxB;AAAA,QACA,WAAW,KAAK,OAAO,KAAK,SAAS;AAAA,QACrC,sBAAsB,WAAY;AAChC,iBAAO,MAAM,OAAO,KAAK,qBAAqB,GAAG,SAAS;AAAA,QAC5D;AAAA,MACF;AACA,UAAI,aAAa;AACf,eAAO,EAAE,cAAc;AAAA,UACrB,WAAW,KAAK;AAAA,QAClB,GAAG,EAAE,OAAO;AAAA,UACV,WAAW;AAAA,QACb,GAAG,EAAE,mBAAmB;AAAA,UACtB,QAAQ,KAAK;AAAA,UACb,YAAY,KAAK,mBAAmB;AAAA,UACpC,aAAa,KAAK,cAAc;AAAA,UAChC,gBAAgB;AAAA,UAChB,oBAAoB;AAAA,UACpB,YAAY;AAAA,QACd,CAAC,CAAC,CAAC;AAAA,MACL;AACA,aAAO,EAAE,cAAc;AAAA,QACrB,WAAW,KAAK;AAAA,MAClB,GAAG,EAAE,iBAAS,YAAY,CAAC;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,0BAA0B,KAAK,OAAO;AAC7C,SAAK,gBAAgB,IAAI;AACzB,QAAI,MAAM,QAAQ,UAAQ;AACxB,YAAM,KAAK,IAAI;AAAA,IACjB,CAAC;AACD,SAAK,OAAO,eAAe;AAAA,MACzB,kBAAkB,CAAC;AAAA,MACnB,aAAa;AAAA,MACb;AAAA,MACA,YAAY,IAAI;AAAA,IAClB,CAAC;AAAA,EACH;AACA,qBAAmB,UAAUH,aAAY;;;ACjNzC,MAAI,YAAY,OAAO,SACnB,SAAS,SAAS,OAAO;AACrB,WAAO,OAAO,UAAU,YAAY,UAAU;AAAA,EAClD;AACJ,WAAS,QAAQ,OAAO,QAAQ;AAC5B,QAAI,UAAU,QAAQ;AAClB,aAAO;AAAA,IACX;AACA,QAAI,UAAU,KAAK,KAAK,UAAU,MAAM,GAAG;AACvC,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACA,WAAS,eAAe,WAAW,YAAY;AAC3C,QAAI,UAAU,WAAW,WAAW,QAAQ;AACxC,aAAO;AAAA,IACX;AACA,aAASI,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACvC,UAAI,CAAC,QAAQ,UAAUA,EAAC,GAAG,WAAWA,EAAC,CAAC,GAAG;AACvC,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAEA,WAAS,WAAW,UAAUC,UAAS;AACnC,QAAIA,aAAY,QAAQ;AAAE,MAAAA,WAAU;AAAA,IAAgB;AACpD,QAAI,QAAQ;AACZ,aAAS,WAAW;AAChB,UAAI,UAAU,CAAC;AACf,eAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC1C,gBAAQ,EAAE,IAAI,UAAU,EAAE;AAAA,MAC9B;AACA,UAAI,SAAS,MAAM,aAAa,QAAQA,SAAQ,SAAS,MAAM,QAAQ,GAAG;AACtE,eAAO,MAAM;AAAA,MACjB;AACA,UAAI,aAAa,SAAS,MAAM,MAAM,OAAO;AAC7C,cAAQ;AAAA,QACJ;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,MACd;AACA,aAAO;AAAA,IACX;AACA,aAAS,QAAQ,SAAS,QAAQ;AAC9B,cAAQ;AAAA,IACZ;AACA,WAAO;AAAA,EACX;;;AChDA,MAAO,6BAAQ,CAAC,gEAAgE,mEAAmE,yDAAyD,0DAA0D,4DAA4D,0DAA0D,+DAA+D,+DAA+D,8DAA8D,0EAA0E,iEAAiE;;;ACGprB,WAAR,mBAAoC,aAAa,mBAAmB;AACzE,QAAI,mBAAmB;AACrB,YAAM,YAAY,YAAY,cAAc,yBAAyB,iBAAiB,IAAI;AAE1F,UAAI,UAAW,QAAO;AAAA,IACxB;AACA,WAAO;AAAA,EACT;;;ACPA,WAAS,iBAAiB,OAAO,OAAO;AACtC,UAAM,OAAO,MAAM,CAAC;AACpB,QAAI,MAAM;AACR,WAAK,MAAM;AACX,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AACA,WAAS,gBAAgB,OAAO,OAAO;AACrC,UAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,QAAI,MAAM;AACR,WAAK,MAAM;AACX,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AAQA,WAAS,iBAAiB,iBAAiB;AACzC,WAAO,gBAAgB,SAAS,SAAS,aAAa;AAAA,EACxD;AACA,WAAS,UAAU,OAAO,mBAAmB,aAAa;AACxD,UAAM,kBAAkB,mBAAmB,aAAa,iBAAiB;AACzE,UAAM,iBAAiB,gBAAQ,gBAAgB,iBAAiB,0BAAkB,CAAC;AACnF,UAAM,mBAAmB,eAAe,QAAQ,SAAS,aAAa;AAMtE,QAAI,CAAC,iBAAiB,eAAe,GAAG;AACtC,uBAAiB,OAAO,cAAc;AAAA,IAExC,WAAW,MAAM,YAAY,qBAAqB,GAAG;AACnD,sBAAgB,OAAO,cAAc;AAAA,IAEvC,WAAW,CAAC,MAAM,YAAY,qBAAqB,eAAe,SAAS,GAAG;AAC5E,uBAAiB,OAAO,cAAc;AAAA,IACxC;AAAA,EACF;AAOO,WAAS,UAAU,OAAO,mBAAmB,aAAa;AAE/D,QAAI,sBAAsB,MAAM;AAAA,IAGhC,OAAO;AAGL,gBAAU,OAAO,mBAAmB,WAAW;AAAA,IACjD;AAAA,EACF;;;AC9DA,wBAAqB;AAcN,WAAR,mBAAoC;AACzC,QAAI,iCAAiC;AACrC,UAAM,aAAa,CAAC,aAAa,sBAAsB;AACrD,YAAM,YAAY,mBAAmB,aAAa,iBAAiB;AACnE,YAAMC,oBAAmB,UAAU,SAAS,SAAS,aAAa;AAIlE,UAAIA,qBAAoB,+BAAgC;AACxD,YAAM,mBAAmB,UAAU,cAAc,6BAA6B;AAI9E,UAAIA,qBAAoB,CAAC,iBAAkB;AAC3C,UAAI,kBAAkB;AACpB,yBAAiB,MAAM;AAAA,UACrB,eAAe;AAAA,QACjB,CAAC;AACD,yCAAiC;AAAA,MACnC,OAAO;AACL,cAAM,UAAU,UAAU,cAAc,0BAAkB;AAC1D,mBAAW,QAAQ,QAAQ,MAAM;AAAA,UAC/B,eAAe;AAAA,QACjB,CAAC;AACD,yCAAiC;AAAA,MACnC;AAAA,IACF;AAQA,eAAO,gBAAAC,SAAS,YAAY,GAAG;AAAA,EACjC;;;AC/CA,MAAAC,sBAAuB;;;ACCR,WAAR,sBAAuC;AAC5C,UAAM,MAAM,SAAS;AACrB,QAAI,EAAE,eAAe,QAAQ,EAAE,iBAAiB,OAAO,YAAY,MAAM;AACvE,aAAO;AAAA,IACT;AACA,QAAI,EAAE,cAAc,SAAS;AAC3B,aAAO;AAAA,IACT;AACA,QAAI,EAAE,gBAAgB,SAAS;AAC7B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;;;ACdA,MAAAC,qBAAuB;AACvB,gCAAyB;;;ACDzB,WAAS,YAAY;AACnB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,KAAK;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,UAAU;AAAA,IACZ,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,MACH,UAAU;AAAA,IACZ,CAAC,GAAG,EAAE,UAAU;AAAA,MACd,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,YAAY;AACnB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,YAAY;AACnB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,UAAU;AACjB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,cAAc;AACrB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,WAAW;AAClB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,KAAK;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,GAAG;AAAA,IACL,CAAC,CAAC,CAAC;AAAA,EACL;AACA,WAAS,WAAW;AAClB,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ;AACe,WAAR,cAA+B,UAAU;AAC9C,UAAM,gBAAgB;AAAA,MACpB,OAAO;AAAA,MACP,MAAM,SAAS;AAAA,IACjB;AACA,QAAI,CAAC,SAAU,QAAO;AACtB,UAAM,kBAAkB,SAAS,MAAM,GAAG,EAAE,CAAC;AAC7C,UAAM,mBAAmB,SAAS,MAAM,GAAG,EAAE,CAAC;AAG9C,QAAI,oBAAoB,QAAQ;AAC9B,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM,SAAS;AAAA,MACjB;AAAA,IACF;AAGA,QAAI,oBAAoB,SAAS;AAC/B,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM,UAAU;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,oBAAoB,SAAS;AAC/B,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM,UAAU;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,oBAAoB,SAAS;AAC/B,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM,UAAU;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,oBAAoB,iBAAiB,qBAAqB,OAAO;AACnE,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAGA,UAAM,eAAe,CAAC,OAAO,mBAAmB,oBAAoB,SAAS,UAAU,mBAAmB;AAC1G,QAAI,oBAAoB,iBAAiB,aAAa,QAAQ,gBAAgB,MAAM,IAAI;AACtF,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM,YAAY;AAAA,MACpB;AAAA,IACF;AACA,WAAO;AAAA,EACT;;;ACrKe,WAAR,YAA6B,OAAO;AACzC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,QAAI,KAAK,SAAS;AAChB,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,QACX,KAAK,KAAK;AAAA,QACV,KAAK,KAAK;AAAA,MACZ,CAAC;AAAA,IACH;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,cAAgB,KAAK,IAAI;AAC7B,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,QAAQ;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA,MACF;AAAA,IACF,GAAG,IAAI,GAAG,EAAE,OAAO;AAAA,MACjB,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,UAAU;AAAA,IACZ,CAAC,CAAC,CAAC;AAAA,EACL;;;ACrCA,MAAM,oBAAoB,CAAC,aAAa,eAAe;AACrD,UAAM,SAAS,OAAO,eAAe,aAAa,WAAW,IAAI;AACjE,UAAM,QAAQ,OAAO,OAAO,CAAAC,OAAKA,GAAE,OAAO,WAAW;AACrD,WAAO,MAAM,CAAC,EAAE;AAAA,EAClB;AACe,WAAR,6BAA8C,OAAO;AAC1D,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,QAAI,EAAE,6BAA6B,QAAQ,0BAA0B,SAAS;AAC5E,aAAO;AAAA,IACT;AACA,UAAM,mBAAmB,0BAA0B,IAAI,sBAAoB,kBAAkB,kBAAkB,UAAU,CAAC,EAAE,KAAK,IAAI;AACrI,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,KAAK,6BAA6B;AAAA,MACnC,aAAa,0BAA0B;AAAA,MACvC,QAAQ;AAAA,IACV,CAAC,GAAG,KAAK,EAAE,UAAU;AAAA,MACnB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS,MAAM,eAAe,MAAM,KAAK,EAAE;AAAA,IAC7C,GAAG,KAAK,UAAU,CAAC,CAAC;AAAA,EACtB;;;AC1Be,WAAR,mBAAoC,OAAO;AAChD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,QAAQ;AACd,UAAM,yBAAyB,KAAK,UAAU,QAAQ,cAAgB,MAAM,KAAK,IAAI,EAAE;AACvF,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,OAAO;AAAA,QACL,iBAAiB;AAAA,MACnB;AAAA,IACF,GAAG,8BAA8B,KAAK,aAAa,EAAE,KAAK;AAAA,MACxD,WAAW;AAAA,MACX,MAAM,KAAK;AAAA,MACX,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,cAAc,KAAK,KAAK;AAAA,IAC1B,GAAG,EAAE,QAAQ;AAAA,MACX,QAAQ;AAAA,IACV,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,EAAE,aAAa;AAAA,MAClC;AAAA,IACF,CAAC,GAAG,EAAE,8BAAkB;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;;;AClCA,WAAS,yBAAyB,OAAO;AACvC,QAAI,MAAM,WAAY;AACtB,QAAI,MAAM,SAAS,CAAC,MAAM,iBAAiB;AACzC,YAAM,KAAK,YAAY,MAAM,KAAK,EAAE;AACpC;AAAA,IACF;AACA,QAAI,MAAM,oBAAoB,CAAC,MAAM,uBAAuB;AAC1D,YAAM,KAAK,YAAY,MAAM,KAAK,EAAE;AAAA,IACtC,WAAW,MAAM,0BAA0B,CAAC,MAAM,kBAAkB;AAClE,YAAM,KAAK,WAAW,MAAM,KAAK,EAAE;AAAA,IACrC;AAAA,EACF;AACA,WAAS,uBAAuB,OAAO;AACrC,QAAI,MAAM,YAAY;AACpB,aAAO,MAAM,KAAK,gBAAgB;AAAA,IACpC;AACA,QAAI,MAAM,OAAO;AACf,aAAO,MAAM,KAAK,aAAa;AAAA,IACjC;AACA,QAAI,MAAM,kBAAkB;AAC1B,UAAI,MAAM,KAAK,UAAU;AACvB,eAAO,MAAM,KAAK,cAAc;AAAA,MAClC;AACA,aAAO,MAAM,KAAK,aAAa;AAAA,IACjC;AACA,QAAI,MAAM,wBAAwB;AAChC,aAAO,MAAM,KAAK,cAAc;AAAA,IAClC;AACA,WAAO;AAAA,EACT;AACA,WAAS,wBAAwB,OAAO;AACtC,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,UAAU;AAAA,MACb,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc,uBAAuB,KAAK;AAAA,MAC1C,OAAO,uBAAuB,KAAK;AAAA,MACnC,SAAS,MAAM,yBAAyB,KAAK;AAAA,IAC/C,GAAG,MAAM,QAAQ,CAAC;AAAA,EACpB;AACA,WAAS,wBAAwB,MAAM;AACrC,QAAI;AAAA,MACF;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,WAAW;AAAA,IACb,GAAG,QAAQ;AAAA,EACb;AACA,WAAS,eAAe,OAAO;AAC7B,QAAI;AAAA,MACF;AAAA,IACF,IAAI;AAEJ,UAAM,eAAe,IAAI,KAAK,KAAK;AACnC,WAAO,EAAE,KAAK,MAAM,EAAE,UAAU;AAAA,MAC9B,WAAW;AAAA,MACX,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,gBAAgB;AAAA,MAChB,MAAM;AAAA,IACR,CAAC,GAAG,EAAE,UAAU;AAAA,MACd,WAAW;AAAA,MACX,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,qBAAqB,eAAe,eAAe,MAAM;AAAA,IAC3D,CAAC,CAAC;AAAA,EACJ;AACe,WAAR,aAA8B,OAAO;AAE1C,QAAI,CAAC,MAAM,KAAK,SAAS,eAAe;AACtC,aAAO;AAAA,IACT;AAGA,QAAI,MAAM,YAAY;AACpB,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,MACb,GAAG,EAAE,OAAO;AAAA,QACV,WAAW;AAAA,MACb,GAAG,EAAE,yBAAyB,MAAM,EAAE,UAAU;AAAA,QAC9C,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR,CAAC,GAAG,EAAE,WAAW;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,QAAQ;AAAA,MACV,CAAC,CAAC,CAAC,CAAC;AAAA,IACN;AACA,QAAI,MAAM,gBAAgB;AACxB,aAAO;AAAA,IACT;AAGA,QAAI,MAAM,SAAS,CAAC,MAAM,iBAAiB;AACzC;AAAA;AAAA,QAEE,EAAE,yBAAyB,OAAO,EAAE,OAAO;AAAA,UACzC,eAAe;AAAA,UACf,WAAW;AAAA,UACX,WAAW;AAAA,UACX,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QACX,GAAG,EAAE,QAAQ;AAAA,UACX,GAAG;AAAA,QACL,CAAC,GAAG,EAAE,QAAQ;AAAA,UACZ,GAAG;AAAA,QACL,CAAC,GAAG,EAAE,QAAQ;AAAA,UACZ,GAAG;AAAA,QACL,CAAC,GAAG,EAAE,QAAQ;AAAA,UACZ,GAAG;AAAA,QACL,CAAC,CAAC,CAAC;AAAA;AAAA,IAEP;AAGA,QAAI,MAAM,oBAAoB,CAAC,MAAM,uBAAuB;AAC1D;AAAA;AAAA,QAEE,EAAE,yBAAyB,OAAO,EAAE,yBAAyB,MAAM,EAAE,gBAAgB;AAAA,UACnF,UAAU,MAAM,KAAK,SAAS;AAAA,QAChC,CAAC,GAAG,MAAM,KAAK,WAAW,EAAE,WAAW;AAAA,UACrC,WAAW;AAAA,UACX,WAAW;AAAA,UACX,QAAQ;AAAA,QACV,CAAC,IAAI,EAAE,KAAK;AAAA,UACV,WAAW;AAAA,UACX,WAAW;AAAA,QACb,GAAG,EAAE,QAAQ;AAAA,UACX,GAAG;AAAA,UACH,GAAG;AAAA,UACH,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,IAAI;AAAA,QACN,CAAC,GAAG,EAAE,QAAQ;AAAA,UACZ,GAAG;AAAA,UACH,GAAG;AAAA,UACH,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,IAAI;AAAA,QACN,CAAC,CAAC,CAAC,CAAC;AAAA;AAAA,IAER;AAGA,QAAI,CAAC,MAAM,oBAAoB,MAAM,0BAA0B,CAAC,MAAM,kBAAkB;AACtF;AAAA;AAAA,QAEE,EAAE,yBAAyB,OAAO,EAAE,yBAAyB,MAAM,EAAE,gBAAgB;AAAA,UACnF,UAAU,MAAM,KAAK,SAAS;AAAA,QAChC,CAAC,GAAG,EAAE,WAAW;AAAA,UACf,WAAW;AAAA,UACX,WAAW;AAAA,UACX,QAAQ;AAAA,QACV,CAAC,CAAC,CAAC;AAAA;AAAA,IAEP;AAGA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,yBAAyB,MAAM,EAAE,gBAAgB;AAAA,MACpD,UAAU,MAAM,KAAK,SAAS;AAAA,IAChC,CAAC,CAAC,CAAC,CAAC;AAAA,EACN;;;ACpLA,MAAAC,yBAA0B;;;ACG1B,MAAM,YAAY;AACH,WAAR,eAAgC,QAAQ,WAAW;AAExD,QAAI,cAAc,EAAG,QAAO;AAE5B,QAAI,OAAO,UAAU,UAAW,QAAO;AAEvC,QAAI,aAAa,UAAU,SAAS,EAAG,QAAO,GAAG,OAAO,MAAM,GAAG,YAAY,CAAC,CAAC;AAC/E,UAAM,cAAc,YAAY,UAAU;AAC1C,UAAM,aAAa,KAAK,KAAK,cAAc,CAAC;AAC5C,UAAM,YAAY,KAAK,MAAM,cAAc,CAAC;AAC5C,WAAO,OAAO,MAAM,GAAG,UAAU,IAAI,YAAY,OAAO,MAAM,CAAC,SAAS;AAAA,EAC1E;;;ADZA,MAAM,iBAAiB,WAAS;AAC9B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,MAAM,KAAK;AACf,aAAS,mBAAmB;AAC1B,UAAI,MAAM,gBAAgB,MAAM,mBAAmB,KAAK;AACtD,eAAO;AAAA,MACT;AACA,UAAI,MAAM,kBAAkB,KAAK;AAC/B,eAAO;AAAA,MACT;AACA,UAAI,MAAM,kBAAkB,KAAK;AAC/B,eAAO;AAAA,MACT;AAIA,aAAO,SAAS,KAAK;AAAA,IACvB;AACA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,OAAO;AAAA,IACT,GAAG,eAAe,MAAM,iBAAiB,CAAC,CAAC;AAAA,EAC7C;AACA,MAAM,eAAe,WAAS;AAC5B,QAAI;AACJ,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,MAAM,KAAK;AACf,UAAM,gBAAgB,qBAAqB,MAAM,KAAK,WAAW,OAAO,SAAS,mBAAmB;AACpG,UAAM,MAAM;AACZ,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,IACT;AACA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,KAAK;AAAA,MACR,MAAM,GAAG,OAAO,GAAG;AAAA,MACnB,QAAQ;AAAA,MACR,KAAK;AAAA,IACP,GAAG,eAAe,OAAO,MAAM,EAAE,CAAC,GAAG,eAAe,EAAE,GAAU,MAAM,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,GAAG,IAAI,IAAI;AAAA,EACpH;AACA,MAAM,iBAAiB,WAAS,MAAM,KAAK,QAAQ,EAAE,OAAO;AAAA,IAC1D,WAAW;AAAA,EACb,OAAG,uBAAAC,SAAc,MAAM,KAAK,IAAI,CAAC;AACjC,MAAM,iBAAiB,WAAS,MAAM,KAAK,WAAW,EAAE,QAAQ,MAAM,YAAY,EAAE,UAAU;AAAA,IAC5F,WAAW;AAAA,IACX,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,EACjB,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC;AAC1B,MAAM,cAAc,UAAQ;AAC1B,QAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI,KAAK,OAAO;AACd,aAAO,EAAE,UAAU;AAAA,QACjB,WAAW;AAAA,QACX,cAAc,KAAK;AAAA,QACnB,0BAA0B;AAAA,QAC1B,sBAAsB;AAAA,QACtB;AAAA,QACA,MAAM;AAAA,MACR,GAAG,GAAG;AAAA,IACR;AACA,WAAO;AAAA,EACT;AACe,WAAR,SAA0B,OAAO;AACtC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,MACX,yBAAyB,KAAK;AAAA,IAChC,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,eAAe,KAAK,GAAG,EAAE,aAAa;AAAA,MACvC,MAAM,MAAM;AAAA,MAGZ,SAAS,MAAM,MAAM,MAAM,KAAK,KAAK;AAAA;AAAA,IACvC,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MACZ,WAAW;AAAA,IACb,GAAG,aAAa,KAAK,GAAG,eAAe,KAAK,GAAG,eAAe,KAAK,CAAC,GAAG,EAAE,8BAAkB;AAAA,MACzF,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,gBAAgB,MAAM;AAAA,MACtB,YAAY,MAAM;AAAA,IACpB,CAAC,CAAC;AAAA,EACJ;;;AEpFe,WAAR,gBAAiC,YAAY,gBAAgB;AAClE,QAAI,mBAAmB,QAAQ;AAC7B,uBAAiB;AAAA,IACnB;AACA,WAAO,IAAI,QAAQ,aAAW;AAC5B,YAAM,WAAW,SAAS,cAAc,UAAU;AAClD,eAAS,aAAa,SAAS;AAAA,QAC7B,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,WAAW;AAAA,QACX,YAAY;AAAA,MACd,CAAC;AACD,eAAS,QAAQ;AACjB,eAAS,KAAK,YAAY,QAAQ;AAClC,eAAS,OAAO;AAChB,YAAM,kBAAkB,MAAM;AAC5B,iBAAS,KAAK,YAAY,QAAQ;AAElC,eAAO,OAAO,gBAAgB,UAAU;AACxC,gBAAQ;AAAA,MACV;AACA,UAAI;AACF,cAAM,aAAa,SAAS,YAAY,MAAM;AAC9C,YAAI,CAAC,YAAY;AACf,iBAAO,gBAAgB,0BAA0B;AAAA,QACnD;AACA,iBAAS,KAAK,YAAY,QAAQ;AAClC,eAAO,QAAQ;AAAA,MACjB,SAAS,KAAK;AACZ,iBAAS,KAAK,YAAY,QAAQ;AAClC,eAAO,gBAAgB,GAAG;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,EACH;;;AC/CA,WAAS,WAAW,MAAM;AACxB,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI,CAAC,8BAA8B,cAAc,WAAW,SAAS,KAAK,CAAC,8BAA8B,YAAY,IAAI,GAAG;AAC1H,aAAO,EAAE,UAAU;AAAA,QACjB,WAAW;AAAA,QACX,MAAM;AAAA,QACN,cAAc,KAAK,wBAAwB;AAAA,UACzC,MAAM,KAAK,KAAK;AAAA,QAClB,CAAC;AAAA,QACD,OAAO,KAAK,wBAAwB;AAAA,UAClC,MAAM,KAAK,KAAK;AAAA,QAClB,CAAC;AAAA,QACD,SAAS,MAAM,QAAQ;AAAA,MACzB,GAAG,EAAE,OAAO;AAAA,QACV,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,MACX,GAAG,EAAE,KAAK;AAAA,QACR,UAAU;AAAA,MACZ,GAAG,EAAE,QAAQ;AAAA,QACX,GAAG;AAAA,QACH,UAAU;AAAA,MACZ,CAAC,GAAG,EAAE,QAAQ;AAAA,QACZ,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,IAAI;AAAA,MACN,CAAC,GAAG,EAAE,QAAQ;AAAA,QACZ,UAAU;AAAA,QACV,GAAG;AAAA,MACL,CAAC,CAAC,CAAC,CAAC;AAAA,IACN;AACA,WAAO;AAAA,EACT;AACA,WAAS,aAAa,OAAO;AAC3B,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,UAAU;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc,KAAK,cAAc;AAAA,QAC/B,MAAM,KAAK,KAAK;AAAA,MAClB,CAAC;AAAA,MACD,OAAO,KAAK,cAAc;AAAA,QACxB,MAAM,KAAK,KAAK;AAAA,MAClB,CAAC;AAAA,MACD,SAAS,MAAM,QAAQ;AAAA,IACzB,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,MAAM;AAAA,MACN,GAAG;AAAA,IACL,CAAC,CAAC,CAAC;AAAA,EACL;AACA,MAAM,sBAAsB,CAAC,OAAO,UAAU;AAC5C,oBAAgB,MAAM,KAAK,WAAW,MAAM,KAAK,6BAA6B,CAAC,EAAE,KAAK,MAAM;AAC1F,YAAM,KAAK,IAAI,2BAA2B;AAC1C,YAAM,KAAK,KAAK,MAAM,KAAK,4BAA4B,GAAG,QAAQ,GAAI;AAAA,IACxE,CAAC,EAAE,MAAM,MAAM,KAAK,GAAG,EAEtB,KAAK,MAAM,MAAM,OAAO,MAAM;AAAA,MAC7B,eAAe;AAAA,IACjB,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,eAAe,OAAO;AAC7B,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,UAAU;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc,KAAK,UAAU;AAAA,MAC7B,OAAO,KAAK,UAAU;AAAA,MACtB,SAAS,WAAS,oBAAoB,OAAO,KAAK;AAAA,IACpD,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,CAAC;AAAA,EACL;AACe,WAAR,QAAyB,OAAO;AACrC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,aAAa,MAAM;AACvB,UAAI,cAAc,WAAW,SAAS,GAAG;AACvC,uBAAe,MAAM,KAAK,EAAE;AAAA,MAC9B,OAAO;AACL,uBAAe,IAAI;AAAA,MACrB;AAAA,IACF;AACA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,EAAE,YAAY;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,IACX,CAAC,GAAG,8BAA8B,KAAK,YAAY,EAAE,gBAAgB;AAAA,MACnE;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,IAAI,MAAM,mBAAmB,EAAE,cAAc;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,MAAM,MAAM,KAAK,WAAW,KAAK,IAAI,iBAAiB;AAAA,IACjE,CAAC,IAAI,IAAI;AAAA,EACX;;;AT5IA,MAAqB,WAArB,cAAsC,EAAU;AAAA,IAC9C,oBAAoB;AAClB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM,uBAAuB,IAAI;AAAA,MACxC;AAAA,IACF;AAAA,IACA,sBAAsB,WAAW;AAC/B,aAAO,KAAC,wBAAAC,SAAa,KAAK,OAAO,SAAS;AAAA,IAC5C;AAAA;AAAA;AAAA,IAIA,qBAAqB;AACnB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM,uBAAuB,IAAI;AAAA,MACxC;AAAA,IACF;AAAA,IACA,uBAAuB;AACrB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM,sBAAsB,IAAI;AAAA,MACvC;AAAA,IACF;AAAA,IACA,SAAS;AACP,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,YAAM,eAAe,KAAK,SAAS,cAAc,KAAK,SAAS;AAC/D,YAAM,aAAa,KAAK,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,KAAK;AAC1E,YAAM,6BAA6B,KAAK,SAAS,iBAAiB;AAClE,YAAM,mBAAmB,KAAK,SAAS,iBAAiB,CAAC,KAAK,SAAS,kBAAkB;AACzF,YAAMC,SAAQ,KAAK,SAAS;AAI5B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,UAAI,mBAAmB,KAAK,MAAM,yBAAyB,CAAC,aAAa,CAAC,oBAAoB,CAAC;AAC/F,UAAI,cAAc,KAAK,MAAM,+BAA+B;AAC1D,2BAAmB;AAAA,MACrB;AACA,YAAM,yBAAqB,mBAAAC,SAAW;AAAA,QACpC,uBAAuB;AAAA,QACvB,iBAAiB,oBAAoB,CAAC,KAAK,MAAM;AAAA,QACjD,iBAAiB;AAAA,QACjB,eAAe;AAAA,QACf,YAAY,CAAC,CAACD;AAAA,QACd,gBAAgB,KAAK,MAAM;AAAA,QAC3B,+BAA+B,CAAC,KAAK,MAAM;AAAA,QAC3C,YAAY;AAAA,MACd,CAAC;AACD,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,QACX,IAAI,QAAQ,KAAK,EAAE;AAAA,QACnB,MAAM,KAAK,MAAM;AAAA,MACnB,GAAG,EAAE,OAAO;AAAA,QACV,WAAW;AAAA,MACb,GAAG,EAAE,oBAAoB;AAAA,QACvB;AAAA,QACA,4BAA4B,KAAK,MAAM;AAAA,QACvC,MAAM,KAAK,MAAM;AAAA,QACjB,gBAAgB,KAAK,MAAM;AAAA,QAC3B,YAAY,KAAK,MAAM;AAAA,MACzB,CAAC,GAAG,EAAE,cAAc;AAAA,QAClB,MAAM,KAAK,MAAM;AAAA,QACjB;AAAA,QACA,OAAOA;AAAA,QACP;AAAA,QACA,iBAAiB,KAAK,MAAM;AAAA,QAC5B,kBAAkB,KAAK,MAAM;AAAA,QAC7B,uBAAuB,KAAK,MAAM;AAAA,QAClC,gBAAgB,KAAK,MAAM;AAAA,QAC3B,+BAA+B,KAAK,MAAM;AAAA,QAC1C,kBAAkB,KAAK,MAAM;AAAA,QAC7B,wBAAwB,KAAK,MAAM;AAAA,QACnC,MAAM,KAAK,MAAM;AAAA,MACnB,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,QACZ,WAAW;AAAA,MACb,GAAG,EAAE,UAAU;AAAA,QACb;AAAA,QACA,IAAI,KAAK,MAAM;AAAA,QACf,WAAW,KAAK,MAAM;AAAA,QACtB,gBAAgB,KAAK,MAAM;AAAA,QAC3B,iBAAiB,KAAK,MAAM;AAAA,QAC5B,MAAM,KAAK,MAAM;AAAA,QACjB,qBAAqB,KAAK,MAAM;AAAA,QAChC,gBAAgB,KAAK,MAAM;AAAA,QAC3B,YAAY,KAAK,MAAM;AAAA,QACvB,cAAc,KAAK,MAAM;AAAA,MAC3B,CAAC,GAAG,EAAE,SAAS;AAAA,QACb;AAAA,QACA,YAAY,KAAK,MAAM;AAAA,QACvB,4BAA4B,KAAK,MAAM;AAAA,QACvC;AAAA,QACA,aAAa,KAAK,MAAM;AAAA,QACxB;AAAA,QACA,gBAAgB,KAAK,MAAM;AAAA,QAC3B,gBAAgB,KAAK,MAAM;AAAA,QAC3B,MAAM,KAAK,MAAM;AAAA,QACjB,MAAM,KAAK,MAAM;AAAA,MACnB,CAAC,CAAC,CAAC;AAAA,IACL;AAAA,EACF;;;AUlHA,WAAS,OAAO,MAAM,MAAM;AAC1B,UAAM,UAAU,CAAC;AACjB,QAAI,eAAe,CAAC;AACpB,SAAK,QAAQ,UAAQ;AACnB,UAAI,aAAa,SAAS,MAAM;AAC9B,qBAAa,KAAK,IAAI;AAAA,MACxB,OAAO;AACL,gBAAQ,KAAK,YAAY;AACzB,uBAAe,CAAC,IAAI;AAAA,MACtB;AAAA,IACF,CAAC;AACD,QAAI,aAAa,OAAQ,SAAQ,KAAK,YAAY;AAClD,WAAO;AAAA,EACT;AACA,MAAO,oBAAS,UAAQ;AACtB,QAAI;AAAA,MACF,IAAAE;AAAA,MACA,OAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAGJ,UAAM,YAAY,gBAAgB,IAEhC,KAEA;AAGF,UAAM,OAAOC,GAAQ,MAAM;AACzB,YAAM,wBAAwB,CAAC,OAAO,UAAU,MAAM,KAAK,EAAE,UAAU,MAAM,KAAK,EAAE;AACpF,YAAM,UAAU,OAAO,KAAK,KAAK;AACjC,UAAI,eAAgB,SAAQ,KAAK,qBAAqB;AACtD,aAAO,OAAO,SAAS,WAAW;AAAA,IACpC,GAAG,CAAC,OAAO,aAAa,cAAc,CAAC;AACvC,UAAM,YAAY;AAAA;AAAA;AAAA;AAAA,MAIlB,EAAE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK,IAAI,CAAC;AAAA,MACZ,GAAG,IAAI,IAAI,YAAU,EAAE,UAAU;AAAA,QAC/B,KAAK;AAAA,QACL;AAAA,QAGA,IAAIF;AAAA,QACJ,OAAOC;AAAA,QAGP;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,MAAM,MAAM;AAAA,MACpB,CAAC,CAAC,CAAC;AAAA;AACH,QAAI,cAAc;AAChB,aAAO,EAAE,OAAO;AAAA,QACd,OAAO;AAAA,MACT,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC;AAAA,IACvB;AACA,WAAO,EAAE,qBAAa;AAAA,MACpB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;;;ACzHA,MAAIE;AAEJ,EAAAA,eAAc,OAAO,IAAI,8CAA8C;AACvE,MAAM,WAAN,cAAuB,EAAU;AAAA,IAC/B,cAAc;AACZ,YAAM,GAAG,SAAS;AAClB,WAAK,wBAAwB,MAAM;AACjC,aAAK,UAAU,MAAM;AAAA,MACvB;AACA,WAAK,0BAA0B,MAAM;AACnC,aAAK,YAAY,MAAM;AAAA,MACzB;AACA,WAAK,+BAA+B,MAAM;AACxC,aAAK,qBAAqB,MAAM;AAAA,MAClC;AACA,WAAK,+BAA+B,MAAM;AACxC,aAAK,qBAAqB,MAAM;AAAA,MAClC;AACA,WAAK,oBAAoB,WAAS;AAChC,aAAK,MAAM,kBAAkB,KAAK;AAQlC,cAAM,OAAO,QAAQ;AAAA,MACvB;AACA,WAAK,oBAAoB,CAAC,UAAU,gBAAgB;AAClD,eAAO,EAAE,SAAS;AAAA,UAChB,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,eAAe;AAAA,UACf,UAAU;AAAA,UACV,iBAAiB;AAAA,UACjB,MAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU,KAAK,MAAM,qBAAqB;AAAA,UAC1C,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK,MAAM;AAAA,UACnB,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,WAAK,0BAA0B,CAAC,MAAM,wBAAwB,gBAAgB;AAC5E,cAAM,eAAe;AAAA,UACnB,OAAO;AAAA,UACP,OAAO;AAAA,QACT;AACA,cAAM,SAAS,aAAa,IAAI;AAChC,eAAO,EAAE,SAAS;AAAA,UAChB,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,eAAe;AAAA,UACf,UAAU;AAAA,UACV,MAAM;AAAA,UACN,MAAM,UAAU,IAAI;AAAA,UACpB,UAAU,KAAK;AAAA,UACf,SAAS;AAAA,UACT;AAAA,UACA,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,WAAK,yBAAyB,MAAM;AAClC,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,UACX,MAAM;AAAA,UACN,yBAAyB;AAAA,QAC3B,GAAG,EAAE,UAAU;AAAA,UACb,MAAM;AAAA,UACN,WAAW;AAAA,UACX,MAAM;AAAA,UACN,UAAU;AAAA,UACV,6BAA6B;AAAA,UAC7B,SAAS,KAAK;AAAA,QAChB,GAAG,EAAE,OAAO;AAAA,UACV,WAAW;AAAA,QACb,GAAG,EAAE,OAAO;AAAA,UACV,WAAW;AAAA,UACX,eAAe;AAAA,UACf,WAAW;AAAA,UACX,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QACX,GAAG,EAAE,QAAQ;AAAA,UACX,GAAG;AAAA,UACH,MAAM;AAAA,UACN,aAAa;AAAA,QACf,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,UACb,WAAW;AAAA,QACb,GAAG,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;AAAA,MAClC;AACA,WAAK,oBAAoB,MAAM;AAC7B,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,UACX,MAAM;AAAA,UACN,yBAAyB;AAAA,QAC3B,GAAG,EAAE,UAAU;AAAA,UACb,MAAM;AAAA,UACN,WAAW;AAAA,UACX,MAAM;AAAA,UACN,UAAU;AAAA,UACV,6BAA6B;AAAA,UAC7B,SAAS,KAAK;AAAA,QAChB,GAAG,EAAE,OAAO;AAAA,UACV,WAAW;AAAA,QACb,GAAG,EAAE,OAAO;AAAA,UACV,eAAe;AAAA,UACf,WAAW;AAAA,UACX,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QACX,GAAG,EAAE,QAAQ;AAAA,UACX,GAAG;AAAA,UACH,MAAM;AAAA,UACN,aAAa;AAAA,QACf,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,UACb,WAAW;AAAA,QACb,GAAG,KAAK,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC;AAAA,MACxC;AACA,WAAK,oBAAoB,MAAM;AAC7B,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,UACX,MAAM;AAAA,UACN,yBAAyB;AAAA,QAC3B,GAAG,EAAE,UAAU;AAAA,UACb,MAAM;AAAA,UACN,WAAW;AAAA,UACX,MAAM;AAAA,UACN,UAAU;AAAA,UACV,6BAA6B;AAAA,UAC7B,SAAS,KAAK;AAAA,QAChB,GAAG,EAAE,OAAO;AAAA,UACV,WAAW;AAAA,QACb,GAAG,EAAE,OAAO;AAAA,UACV,eAAe;AAAA,UACf,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QACX,GAAG,EAAE,QAAQ;AAAA,UACX,MAAM;AAAA,UACN,UAAU;AAAA,UACV,GAAG;AAAA,QACL,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,UACb,WAAW;AAAA,QACb,GAAG,KAAK,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC;AAAA,MACxC;AACA,WAAK,qBAAqB,CAAC,MAAM,cAAc;AAC7C,cAAM,oBAAoB,KAAK,MAAM,UAAU;AAC/C,eAAO,EAAE,UAAU;AAAA,UACjB,MAAM;AAAA,UACN,WAAW;AAAA,UACX,SAAS;AAAA,UACT,6BAA6B,sBAAsB;AAAA,QACrD,GAAG,IAAI;AAAA,MACT;AACA,WAAK,+BAA+B,uBAAqB;AACvD,cAAM,cAAc,KAAK,mBAAmB,KAAK,MAAM,KAAK,aAAa,GAAG,KAAK,qBAAqB;AACtG,cAAM,gBAAgB,KAAK,mBAAmB,KAAK,MAAM,KAAK,eAAe,GAAG,KAAK,uBAAuB;AAI5G,cAAM,uBAAuB,KAAK,MAAM;AACxC,cAAM,uBAAuB,qBAAqB,OAAO,CAAC,EAAE,YAAY,IAAI,qBAAqB,MAAM,CAAC;AACxG,eAAO;AAAA,UAAE;AAAA,UAAO;AAAA,YACd,OAAO;AAAA,UACT;AAAA;AAAA,UAEA,KAAK,MAAM,oBAAoB,KAAK,MAAM,KAAK,aAAa,IAAI,oBAAoB,IAAI,KAAK,MAAM,UAAU,kBAAkB,oBAAoB,IAAI;AAAA,YACrJ;AAAA,YACA;AAAA,YACA,QAAQ;AAAA,UACV,CAAC,IAAI,KAAK,MAAM,UAAU,YAAY,oBAAoB,IAAI;AAAA,YAC5D;AAAA,YACA;AAAA,YACA,QAAQ;AAAA,UACV,CAAC;AAAA,QAAC;AAAA,MACJ;AACA,WAAK,iBAAiB,cAAY;AAChC,eAAO,EAAE,OAAO;AAAA,UACd,WAAW;AAAA,UACX,MAAM;AAAA,UACN,yBAAyB,SAAS;AAAA,QACpC,GAAG,EAAE,UAAU;AAAA,UACb,MAAM;AAAA,UACN,WAAW;AAAA,UACX,MAAM;AAAA,UACN,UAAU;AAAA,UACV,WAAW,SAAS;AAAA,UACpB,iBAAiB,gCAAgC,SAAS,EAAE;AAAA,UAC5D,iBAAiB,KAAK,MAAM,kBAAkB,OAAO,SAAS;AAAA,UAC9D,6BAA6B;AAAA,UAC7B,SAAS,MAAM,KAAK,MAAM,UAAU,SAAS,EAAE;AAAA,QACjD,GAAG,EAAE,OAAO;AAAA,UACV,WAAW;AAAA,QACb,GAAG,SAAS,KAAK,CAAC,GAAG,EAAE,OAAO;AAAA,UAC5B,WAAW;AAAA,QACb,GAAG,SAAS,IAAI,CAAC,CAAC;AAAA,MACpB;AACA,WAAK,kBAAkB,eAAa;AAGlC,cAAM,0BAA0B,CAAC,GAAG,SAAS;AAC7C,cAAM,mBAAmB,wBAAwB,OAAO,UAAU,SAAS,GAAG,UAAU,MAAM;AAC9F,eAAO,EAAE,GAAU,MAAM,wBAAwB,IAAI,cAAY,KAAK,eAAe,QAAQ,CAAC,GAAG,EAAE,QAAQ;AAAA,UACzG,MAAM;AAAA,UACN,OAAO;AAAA,YACL,eAAe;AAAA,UACjB;AAAA,QACF,GAAG,iBAAiB,IAAI,cAAY,KAAK,eAAe,QAAQ,CAAC,CAAC,CAAC;AAAA,MACrE;AACA,WAAK,oBAAoB,CAAC,WAAW,sBAAsB;AACzD,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,KAAK;AACT,YAAI,OAAO,CAAC;AACZ,cAAM,cAAc;AACpB,YAAI,CAAC,kBAAmB,MAAK,KAAK;AAAA,UAChC,KAAK;AAAA,UACL,UAAU,KAAK,uBAAuB;AAAA,QACxC,CAAC;AACD,YAAI,4BAA6B,MAAK,KAAK;AAAA,UACzC,KAAK;AAAA,UACL,UAAU,KAAK,kBAAkB;AAAA,QACnC,CAAC;AACD,YAAI,4BAA6B,MAAK,KAAK;AAAA,UACzC,KAAK;AAAA,UACL,UAAU,KAAK,kBAAkB;AAAA,QACnC,CAAC;AACD,aAAK,KAAK,GAAG,UAAU,IAAI,eAAa;AAAA,UACtC,KAAK,SAAS;AAAA,UACd,UAAU,KAAK,eAAe,QAAQ;AAAA,QACxC,EAAE,CAAC;AAGH,cAAM,kBAAkB,KAAK,WAAW,KAAK,KAAK,CAAC,EAAE,QAAQ;AAC7D,YAAI,gBAAiB,QAAO,CAAC;AAI7B,cAAM,qBAAqB,CAAC,GAAG,IAAI;AACnC,cAAM,UAAU,mBAAmB,OAAO,KAAK,SAAS,GAAG,KAAK,MAAM;AACtE,cAAM,aAAa,CAAAC,OAAKA,GAAE,IAAI,UAAQ;AACpC,cAAI;AAAA,YACF;AAAA,YACA;AAAA,UACF,IAAI;AACJ,iBAAO,EAAE,GAAU;AAAA,YACjB;AAAA,UACF,GAAG,QAAQ;AAAA,QACb,CAAC;AACD,eAAO,EAAE,GAAU,MAAM,KAAK,6BAA6B,KAAK,MAAM,GAAG,EAAE,OAAO;AAAA,UAChF,WAAW;AAAA,UACX,MAAM;AAAA,QACR,GAAG,WAAW,kBAAkB,GAAG,EAAE,QAAQ;AAAA,UAC3C,MAAM;AAAA,UACN,OAAO;AAAA,YACL,eAAe;AAAA,UACjB;AAAA,QACF,GAAG,WAAW,OAAO,CAAC,CAAC,CAAC;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,CAACD,YAAW,IAAI;AAEd,WAAK,MAAM,UAAU,eAAe;AACpC,WAAK,MAAM,UAAU,gBAAgB;AACrC,WAAK,MAAM,UAAU,kBAAkB;AACvC,WAAK,MAAM,UAAU,qBAAqB;AAC1C,WAAK,MAAM,UAAU,sBAAsB;AAC3C,WAAK,MAAM,UAAU,wBAAwB;AAAA,IAC/C;AAAA,IACA,sBAAsB;AACpB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,YAAM,eAAe,EAAE,QAAQ,MAAM,EAAE,OAAO;AAAA,QAC5C,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,MACX,GAAG,EAAE,QAAQ;AAAA,QACX,GAAG;AAAA,QACH,UAAU;AAAA,MACZ,CAAC,CAAC,GAAG,EAAE,QAAQ;AAAA,QACb,WAAW;AAAA,MACb,GAAG,MAAM,CAAC;AACV,YAAM,WAAW,UAAU,aAAa;AAAA,QACtC,MAAM;AAAA,MACR,CAAC;AACD,aAAO,EAAE,KAAK;AAAA,QACZ,UAAU;AAAA,QACV,MAAM;AAAA,QACN,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,WAAW;AAAA,MACb,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,SAAS;AACP,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK;AACT,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,MACb,GAAG,KAAK,kBAAkB,OAAO,SAAO;AACtC,aAAK,YAAY;AAAA,MACnB,CAAC,GAAG,KAAK,kBAAkB,MAAM,SAAO;AACtC,aAAK,cAAc;AAAA,MACrB,CAAC,GAAG,+BAA+B,KAAK,wBAAwB,SAAS,wBAAwB,SAAO;AACtG,aAAK,uBAAuB;AAAA,MAC9B,CAAC,GAAG,+BAA+B,KAAK,wBAAwB,SAAS,wBAAwB,SAAO;AACtG,aAAK,uBAAuB;AAAA,MAC9B,CAAC,GAAG,KAAK,kBAAkB,KAAK,MAAM,WAAW,KAAK,MAAM,iBAAiB,GAAG,EAAE,OAAO;AAAA,QACvF,WAAW;AAAA,MACb,GAAG,KAAK,MAAM,QAAQ,EAAE,OAAO;AAAA,QAC7B,WAAW;AAAA,MACb,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,+BAA+B,KAAK,oBAAoB,KAAK,KAAK,CAAC,CAAC;AAAA,IACtG;AAAA,EACF;AACA,MAAO,mBAAQ;;;AClUf,MAAAE,qBAAuB;AAEvB,MAAM,gBAAgB,WAAS;AAC7B,WAAO,EAAE,OAAO;AAAA,MACd,eAAW,mBAAAC,SAAW,gCAAgC,MAAM,SAAS;AAAA,MACrE,uBAAuB;AAAA,MACvB,eAAe,CAAC,MAAM;AAAA,IACxB,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,GAAG,MAAM,KAAK,iBAAiB,CAAC,GAAG,EAAE,UAAU;AAAA,MAC7C,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAM,MAAM,oBAAoB,KAAK;AAAA,IAChD,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,EAAE,kBAAU,KAAK,CAAC;AAAA,EAC7C;AACA,MAAO,wBAAQ;;;ACnBf,MAAAC,qBAAuB;;;ACIvB,WAAS,YAAY,IAAI;AACvB,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,GAAG;AACP,QAAI,YAAY,WAAW,YAAY,YAAY;AACjD,SAAG,gBAAgB;AACnB;AAAA,IACF;AACA,OAAG,eAAe;AAClB,OAAG,gBAAgB;AAAA,EACrB;AACA,MAAO,sBAAQ;;;ADbf,WAAS,mBAAmB,MAAM;AAChC,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,WAAO,EAAE,OAAO;AAAA,MACd,eAAW,mBAAAC,SAAW,+BAA+B,SAAS;AAAA,MAC9D,MAAM;AAAA,MACN,uBAAuB;AAAA,MACvB,IAAI,gCAAgC,kBAAkB,EAAE;AAAA,MACxD,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,GAAG,KAAK,cAAc;AAAA,MACpB,MAAM,kBAAkB;AAAA,IAC1B,CAAC,CAAC,GAAG,EAAE,UAAU;AAAA,MACf,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX,GAAG,KAAK,QAAQ,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MAC5B,WAAW;AAAA,IACb,GAAG,KAAK,UAAU,kBAAkB,EAAE,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,EACxD;AACA,MAAO,6BAAQ;;;AEpCf,MAAAC,qBAAuB;AACvB,WAAS,YAAY,OAAO;AAC1B,UAAM,OAAO,MAAM,MAAM,MAAM,WAAW;AAC1C,UAAM,eAAe,MAAM;AACzB,YAAM,KAAK,KAAK,sBAAsB,IAAI;AAC1C,YAAM,gBAAgB;AAAA,IACxB;AACA,WAAO,EAAE,OAAO;AAAA,MACd,eAAW,mBAAAC,SAAW,+BAA+B,MAAM,SAAS;AAAA,MACpE,MAAM;AAAA,MACN,uBAAuB;AAAA,MACvB,IAAI;AAAA,IACN,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,GAAG,MAAM,UAAU,WAAW;AAAA,MAC5B,MAAM,EAAE,QAAQ;AAAA,QACd,WAAW;AAAA,MACb,GAAG,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,IAAI;AAAA,IAC3C,CAAC,CAAC,GAAG,EAAE,UAAU;AAAA,MACf,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX,GAAG,MAAM,KAAK,QAAQ,CAAC,GAAG,EAAE,UAAU;AAAA,MACpC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,IACjB,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MAChC,WAAW;AAAA,IACb,GAAG,MAAM,QAAQ,IAAI,YAAU;AAC7B,aAAO,MAAM,KAAK,UAAU,OAAO,EAAE,EAAE,OAAO,MAAM,KAAK;AAAA,IAC3D,CAAC,CAAC,CAAC;AAAA,EACL;AACA,MAAO,sBAAQ;;;ACpCf,MAAM,eAAe;AAAA,IACnB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACA,WAASC,mBAAkB,cAAc,eAAe,aAAa,OAAO;AAC1E,QAAI,UAAU,QAAQ;AACpB,cAAQ,CAAC;AAAA,IACX;AACA,QAAI,cAAc;AAChB,aAAO,aAAa;AAAA,IACtB;AACA,QAAI,eAAe;AACjB,aAAO,aAAa;AAAA,IACtB;AACA,QAAI,aAAa;AACf,aAAO,aAAa;AAAA,IACtB;AACA,QAAI,QAAQ,aAAa;AACzB,UAAM,UAAU,OAAO,KAAK,KAAK;AACjC,aAASC,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACvC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,MAAM,QAAQA,EAAC,CAAC;AAEpB,UAAI,SAAS,iBAAiB,CAAC,SAAS,gBAAgB;AACtD,eAAO,aAAa;AAAA,MACtB;AAGA,UAAI,SAAS,cAAc,UAAU,aAAa,iBAAiB;AACjE,gBAAQ,aAAa;AAAA,MACvB;AAGA,UAAI,SAAS,eAAe,UAAU,aAAa,mBAAmB,UAAU,aAAa,qBAAqB;AAChH,gBAAQ,aAAa;AAAA,MACvB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,aAAa,MAAM;AAC1B,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,iBAAiBD,mBAAkB,cAAc,eAAe,aAAa,KAAK;AACxF,YAAQ,gBAAgB;AAAA,MACtB,KAAK;AACH,eAAO,KAAK,mBAAmB;AAAA,UAC7B,aAAa,yBAAyB;AAAA,QACxC,CAAC;AAAA,MACH,KAAK;AAAA,MACL,KAAK;AACH,eAAO,KAAK,oBAAoB;AAAA,UAC9B,aAAa,gBAAgB;AAAA,QAC/B,CAAC;AAAA,MACH,KAAK;AACH,eAAO,KAAK,cAAc;AAAA,MAC5B,KAAK;AACH,eAAO,KAAK,kBAAkB;AAAA,UAC5B,aAAa,SAAS;AAAA,QACxB,CAAC;AAAA,MACH,KAAK;AACH,eAAO,KAAK,gBAAgB;AAAA,MAC9B,KAAK;AACH,eAAO,KAAK,OAAO;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY,OAAO;AAC1B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI;AAAA,MACF;AAAA,IACF,IAAI;AAEJ,QAAI,kBAAkB,kBAAkB;AAEtC,uBAAiB,MAAM,iBAAiB,MAAM;AAAA,IAChD;AACA,WAAO,EAAE,OAAO;AAAA,MACd,WAAW;AAAA,IACb,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,UAAU;AAAA,MACnD,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAM,KAAK,UAAU;AAAA,IAChC,GAAG,KAAK,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO;AAAA,MAC5C,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,GAAG,EAAE,cAAc,KAAK,CAAC,GAAG,iBAAiB,EAAE,UAAU;AAAA,MACvD,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc,KAAK,cAAc;AAAA,MACjC,OAAO,KAAK,cAAc;AAAA,MAC1B,SAAS,MAAM,oBAAoB,IAAI;AAAA,IACzC,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,IACL,CAAC,CAAC,GAAG,EAAE,QAAQ;AAAA,MACb,WAAW;AAAA,IACb,GAAG,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AAAA,EACvC;AACA,MAAO,4BAAQ;;;AC7Hf,MAAAE,sBAAuB;;;ACDR,WAAR,iBAAkC,OAAO;AAC9C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,kBAAkB;AAAA,MACtB,MAAM;AAAA,IACR;AACA,WAAO,mBAAmB,IAAI,WAAS;AACrC,YAAMC,OAAK,iCAAiC,MAAM,EAAE;AACpD,YAAM,WAAW,mBAAmB,SAAS,MAAM,EAAE;AACrD,aAAO,EAAE,YAAY;AAAA,QACnB,KAAK,MAAM;AAAA,QACX,WAAW;AAAA,MACb,GAAG,EAAE,SAAS;AAAA,QACZ,WAAW;AAAA,QACX,SAASA;AAAA,MACX,GAAG,MAAM,IAAI,GAAG,MAAM,WAAW,SAAY,MAAM,OAAO;AAAA,QACxD,OAAO,UAAU,MAAM,EAAE;AAAA,QACzB,UAAU,YAAU,WAAW,QAAQ,MAAM,EAAE;AAAA,QAC/C;AAAA,QACA;AAAA,QACA,MAAM,KAAK;AAAA,MACb,GAAG,CAAC,IAAI,EAAE,SAAS;AAAA,QACjB,WAAW,gBAAgB;AAAA,QAC3B,IAAIA;AAAA,QACJ,MAAM,KAAK;AAAA,QACX,MAAM,MAAM,QAAQ;AAAA,QACpB;AAAA,QACA,OAAO,UAAU,MAAM,EAAE;AAAA,QACzB,aAAa,MAAM;AAAA,QACnB,SAAS,QAAM,WAAW,GAAG,OAAO,OAAO,MAAM,EAAE;AAAA,QACnD,6BAA6B;AAAA,MAC/B,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH;;;AD/Be,WAAR,SAA0B,OAAO;AACtC,QAAI;AACJ,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,gBAAgB,MAAM;AAC1B,aAAO,OAAO,eAAe,aAAa,WAAW,MAAM,WAAW,CAAC,IAAI;AAAA,IAC7E;AACA,UAAM,OAAO,MAAM,WAAW;AAC9B,UAAM,sBAAsB,iBAAiB,cAAc,MAAM,OAAO,iBAAiB,CAAC;AAC1F,UAAM,iBAAiB,YAAY,IAAI;AACvC,UAAM,iBAAiB,CAAC;AACxB,uBAAmB,QAAQ,WAAS;AAClC,UAAI;AACJ,qBAAe,MAAM,EAAE,KAAK,sBAAsB,KAAK,KAAK,MAAM,EAAE,MAAM,OAAO,sBAAsB;AAAA,IACzG,CAAC;AACD,UAAM,CAAC,WAAW,YAAY,IAAIC,GAAS,cAAc;AACzD,UAAM,aAAaC,GAAY,QAAM;AACnC,SAAG,eAAe;AAClB,mBAAa,WAAW,WAAW;AAAA,IACrC,GAAG,CAAC,cAAc,WAAW,WAAW,CAAC;AACzC,UAAM,aAAa,CAAC,QAAQ,SAAS;AACnC,mBAAa;AAAA,QACX,GAAG;AAAA,QACH,CAAC,IAAI,GAAG;AAAA,MACV,CAAC;AAAA,IACH;AACA,UAAM,eAAe,MAAM;AACzB,qBAAe,KAAK;AAAA,IACtB;AACA,UAAM,CAAC,IAAI,IAAID,GAAS,MAAM;AAC5B,YAAM,SAAS,SAAS,cAAc,MAAM;AAC5C,aAAO,aAAa,YAAY,IAAI;AACpC,aAAO,KAAK,OAAO;AACnB,aAAO;AAAA,IACT,CAAC;AACD,IAAAE,GAAU,MAAM;AACd,eAAS,KAAK,YAAY,IAAI;AAC9B,WAAK,iBAAiB,UAAU,UAAU;AAC1C,aAAO,MAAM;AACX,aAAK,oBAAoB,UAAU,UAAU;AAC7C,iBAAS,KAAK,YAAY,IAAI;AAAA,MAChC;AAAA,IACF,GAAG,CAAC,MAAM,UAAU,CAAC;AACrB,WAAO,EAAE,OAAO;AAAA,MACd,eAAW,oBAAAC,SAAW,2BAA2B,SAAS;AAAA,MAC1D,uBAAuB;AAAA,MACvB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,GAAG,UAAU,WAAW;AAAA,MACtB,MAAM,EAAE,QAAQ;AAAA,QACd,WAAW;AAAA,MACb,GAAG,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,IAAI;AAAA,IAC3C,CAAC,CAAC,GAAG,EAAE,UAAU;AAAA,MACf,WAAW;AAAA,MACX,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX,OAAO,KAAK,mBAAmB;AAAA,MAC/B,SAAS;AAAA,IACX,GAAG,KAAK,QAAQ,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MAC5B,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,QACL,iBAAiB,cAAgB,KAAK,IAAI,EAAE;AAAA,MAC9C;AAAA,IACF,GAAG,EAAE,aAAa;AAAA,MAChB;AAAA,IACF,CAAC,GAAG,kBAAkB,EAAE,UAAU;AAAA,MAChC,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS,WAAS;AAKhB,mBAAW,KAAK;AAChB,uBAAe,IAAI;AAAA,MACrB;AAAA,IACF,GAAG,KAAK,WAAW,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MAC/B,WAAW;AAAA,IACb,GAAG,EAAE,kBAAkB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,CAAC,GAAG,EAAE,OAAO;AAAA,MACZ,WAAW;AAAA,IACb,GAAG,EAAE,UAAU;AAAA,MACb,WAAW;AAAA,MAIX,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,IACb,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE,UAAU;AAAA,MACnC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,KAAK;AAAA,IACb,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;AAAA,EACtB;;;AE/HA,MAAAC,sBAAuB;AACvB,MAAM,iBAAiB;AACvB,MAAM,WAAW;AAWjB,MAAM,QAAN,cAAoB,EAAU;AAAA,IAC5B,YAAY,OAAO;AACjB,YAAM,KAAK;AACX,WAAK,QAAQ;AAAA,QACX,gBAAgB;AAAA,QAChB,WAAW;AAAA,MACb;AAAA,IACF;AAAA;AAAA;AAAA,IAIA,oBAAoB,WAAW;AAC7B,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,YAAM,QAAQ,EAAa,UAAU,QAAQ,EAAE,CAAC;AAChD,UAAI,mBAAmB,MAAO,QAAO;AACrC,YAAM,QAAQ;AAAA,QACZ,gBAAgB;AAAA,MAClB;AAGA,UAAI,SAAS,CAAC,gBAAgB;AAC5B,cAAM,YAAY,GAAG,cAAc;AACnC,6BAAqB,KAAK,cAAc;AACxC,qBAAa,KAAK,YAAY;AAC9B,aAAK,eAAe;AACpB,aAAK,iBAAiB,sBAAsB,MAAM;AAIhD,eAAK,SAAS;AAAA,YACZ,WAAW,GAAG,cAAc,UAAU,cAAc;AAAA,UACtD,CAAC;AACD,eAAK,eAAe,WAAW,MAAM;AACnC,iBAAK,SAAS;AAAA,cACZ,WAAW;AAAA,YACb,CAAC;AAAA,UACH,GAAG,QAAQ;AAAA,QACb,CAAC;AAAA,MACH;AAGA,UAAI,kBAAkB,CAAC,SAAS,KAAK,iBAAiB,QAAW;AAC/D,cAAM,iBAAiB;AACvB,cAAM,YAAY,GAAG,cAAc;AACnC,6BAAqB,KAAK,cAAc;AACxC,qBAAa,KAAK,YAAY;AAC9B,aAAK,eAAe;AACpB,aAAK,iBAAiB,sBAAsB,MAAM;AAChD,eAAK,SAAS;AAAA,YACZ,WAAW,GAAG,cAAc,UAAU,cAAc;AAAA,UACtD,CAAC;AACD,eAAK,eAAe,WAAW,MAAM;AACnC,iBAAK,SAAS;AAAA,cACZ,gBAAgB;AAAA,cAChB,WAAW;AAAA,YACb,CAAC;AAAA,UACH,GAAG,QAAQ;AAAA,QACb,CAAC;AAAA,MACH;AAGA,WAAK,SAAS,KAAK;AAAA,IACrB;AAAA,IACA,SAAS;AACP,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,KAAK;AACT,UAAI,CAAC,gBAAgB;AACnB,eAAO;AAAA,MACT;AACA,aAAO,EAAa,gBAAgB;AAAA,QAClC,eAAW,oBAAAC,SAAW,WAAW,eAAe,MAAM,SAAS;AAAA,MACjE,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAO,gBAAQ;;;ArB5Ff,WAASC,YAAW;AAAE,IAAAA,YAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,QAAQ;AAAE,eAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AAAE,YAAI,SAAS,UAAUA,EAAC;AAAG,iBAAS,OAAO,QAAQ;AAAE,cAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,GAAG;AAAE,mBAAO,GAAG,IAAI,OAAO,GAAG;AAAA,UAAG;AAAA,QAAE;AAAA,MAAE;AAAE,aAAO;AAAA,IAAQ;AAAG,WAAOD,UAAS,MAAM,MAAM,SAAS;AAAA,EAAG;AAgBlV,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,YAAY;AAKH,WAAR,UAA2B,OAAO;AACvC,UAAM,YAAY,MAAM,mBAAmB;AAC3C,UAAM,eAAe,MAAM,mBAAmB;AAC9C,UAAM,WAAW,MAAM,iBAAiB;AACxC,UAAM,iBAAiB,MAAM,kBAAkB;AAC/C,UAAM,yBAAqB,oBAAAE,SAAW;AAAA,MACpC,kBAAkB;AAAA,MAClB,8BAA8B,MAAM;AAAA,MACpC,oCAAoC,MAAM;AAAA,MAC1C,6BAA6B,MAAM;AAAA,MACnC,kCAAkC,MAAM;AAAA,MACxC,yBAAyB,CAAC,MAAM;AAAA,MAChC,iBAAiB,MAAM,iBAAiB;AAAA,MACxC,iBAAiB,MAAM,iBAAiB;AAAA,MACxC,iBAAiB,MAAM,iBAAiB;AAAA,MACxC,wBAAwB,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA,MAIhD,0CAA0C,MAAM;AAAA,MAChD,sCAAsC,MAAM;AAAA;AAAA,MAE5C,8BAA8B,MAAM,wBAAwB,gBAAgB;AAAA,IAC9E,CAAC;AAGD,QAAI,cAAc;AAClB,QAAI,MAAM,iBAAiB,UAAU;AACnC,oBAAc;AAAA,IAChB,WAAW,MAAM,iBAAiB,UAAU;AAC1C,oBAAc;AAAA,IAChB,WAAW,MAAM,iBAAiB,UAAU;AAC1C,oBAAc;AAAA,IAChB;AACA,UAAM,eAAe,MAAM,qBAAqB,CAAC;AACjD,UAAM,2BAA2B,MAAM,iBAAiB,OAAO,KAAK,MAAM,eAAe,KAAK,EAAE,SAAS;AACzG,UAAM,iBAAiB,MAAM,QAAQ,OAAO,KAAK,MAAM,KAAK,EAAE,OAAO,YAAU,MAAM,MAAM,MAAM,EAAE,OAAO,EAAE,SAAS;AACrH,UAAM,qBAAqB,MAAM;AAC/B,UAAI,iBAAiB,GAAG;AACtB,eAAO,MAAM,KAAK,mBAAmB;AAAA,UACnC,aAAa;AAAA,QACf,CAAC;AAAA,MACH;AACA,aAAO,MAAM,KAAK,mBAAmB;AAAA,IACvC;AACA,UAAM,YAAY,EAAE,OAAO;AAAA,MACzB,WAAW;AAAA,MACX,mBAAmB,MAAM;AAAA,MACzB,2BAA2B,MAAM,UAAU;AAAA,MAC3C,iCAAiC,CAAC,MAAM,qBAAqB,oBAAoB;AAAA,MACjF,eAAe,MAAM,SAAS,UAAU,MAAM;AAAA,MAC9C,iBAAiB,MAAM;AAAA,MACvB,cAAc,CAAC,MAAM,SAAS,MAAM,KAAK,sBAAsB,IAAI,MAAM,KAAK,gBAAgB;AAAA,MAC9F,SAAS,MAAM;AAAA,MACf,YAAY,MAAM;AAAA,MAClB,aAAa,MAAM;AAAA,MACnB,QAAQ,MAAM;AAAA,IAChB,GAAG,EAAE,OAAO;AAAA,MACV,eAAe;AAAA,MACf,WAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS,MAAM;AAAA,IACjB,CAAC,GAAG,EAAE,OAAO;AAAA,MACX,WAAW;AAAA,MACX,cAAc,CAAC,MAAM,UAAU;AAAA,MAC/B,MAAM,CAAC,MAAM,UAAU;AAAA,MACvB,OAAO;AAAA,QACL,OAAO,MAAM,UAAU,MAAM,QAAQ,MAAM,QAAQ;AAAA,QACnD,QAAQ,MAAM,UAAU,MAAM,SAAS,MAAM,SAAS;AAAA,MACxD;AAAA,IACF,GAAG,CAAC,MAAM,SAAS,EAAE,UAAU;AAAA,MAC7B,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc,MAAM,KAAK,YAAY;AAAA,MACrC,OAAO,MAAM,KAAK,YAAY;AAAA,MAC9B,SAAS,MAAM;AAAA,IACjB,GAAG,EAAE,QAAQ;AAAA,MACX,eAAe;AAAA,IACjB,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,OAAO;AAAA,MAC3B,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,IACb,GAAG,MAAM,KAAK,UAAU,CAAC,GAAG,gBAAgB,EAAE,2BAAa,KAAK,GAAG,4BAA4B,EAAE,OAAO;AAAA,MACtG,WAAW;AAAA,IACb,GAAG,EAAE,OAAO;AAAA,MACV,WAAW;AAAA,MACX,eAAe;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,GAAG,EAAE,KAAK;AAAA,MACR,WAAW;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,GAAG,EAAE,QAAQ;AAAA,MACX,GAAG;AAAA,MACH,MAAM;AAAA,IACR,CAAC,GAAG,EAAE,QAAQ;AAAA,MACZ,MAAM;AAAA,MACN,GAAG;AAAA,IACL,CAAC,GAAG,EAAE,UAAU;AAAA,MACd,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU;AAAA,MAChB,WAAW;AAAA,IACb,GAAG,MAAM,KAAK,iBAAiB,CAAC,GAAG,EAAE,OAAO;AAAA,MAC1C,WAAW;AAAA,IACb,GAAG,mBAAmB,CAAC,CAAC,GAAG,eAAe,EAAE,kBAAU;AAAA,MACpD,IAAI,MAAM;AAAA,MACV,OAAO,MAAM;AAAA,MACb,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,kBAAkB,MAAM;AAAA,MACxB,iBAAiB,MAAM;AAAA,MACvB,uBAAuB,MAAM;AAAA,MAC7B,kBAAkB,MAAM;AAAA,MACxB,4BAA4B,MAAM;AAAA,MAClC,+BAA+B,MAAM;AAAA,MACrC,QAAQ,MAAM;AAAA,MACd,YAAY,MAAM;AAAA,MAClB,gBAAgB,MAAM;AAAA,MACtB,wBAAwB,MAAM;AAAA,MAC9B,uBAAuB,MAAM;AAAA,MAC7B,gBAAgB,MAAM;AAAA,MACtB,wBAAwB,MAAM;AAAA,MAC9B,gBAAgB,MAAM;AAAA,MACtB,aAAa,MAAM;AAAA,MACnB,qBAAqB,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA,IACF,CAAC;AAAA;AAAA,MAED,EAAE,kBAAUF,UAAS,CAAC,GAAG,OAAO;AAAA,QAC9B;AAAA,MACF,CAAC,CAAC;AAAA,OAAG,EAAE,eAAO,MAAM,MAAM,oBAAoB,EAAE,uBAAeA,UAAS;AAAA,MACtE,KAAK;AAAA,IACP,GAAG,OAAO;AAAA,MACR;AAAA,IACF,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,eAAO,MAAM,MAAM,cAAc,EAAE,UAAUA,UAAS;AAAA,MACnE,KAAK;AAAA,IACP,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,eAAO,MAAM,MAAM,oBAAoB,EAAE,4BAAoBA,UAAS;AAAA,MAC1F,KAAK;AAAA,IACP,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,eAAO,MAAM,MAAM,iBAAiB,EAAE,qBAAaA,UAAS;AAAA,MAChF,KAAK;AAAA,IACP,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,OAAO;AAAA,MAC3B,WAAW;AAAA,IACb,GAAG,MAAM,mBAAmB,IAAI,YAAU;AACxC,aAAO,MAAM,KAAK,UAAU,OAAO,EAAE,EAAE,OAAO,MAAM,KAAK;AAAA,IAC3D,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,WAAO;AAAA,EACT;;;AsBnLA,MAAOG,kBAAQ;AAAA,IACb,SAAS;AAAA;AAAA,MAEP,YAAY;AAAA;AAAA,MAEZ,cAAc;AAAA,MACd,iBAAiB;AAAA;AAAA,MAEjB,YAAY;AAAA;AAAA,MAEZ,sBAAsB;AAAA;AAAA,MAEtB,gBAAgB;AAAA;AAAA,MAEhB,4BAA4B;AAAA;AAAA;AAAA,MAG5B,6BAA6B;AAAA;AAAA,MAE7B,UAAU;AAAA,MACV,MAAM;AAAA;AAAA,MAEN,YAAY;AAAA;AAAA,MAEZ,UAAU;AAAA,MACV,WAAW;AAAA;AAAA,MAEX,SAAS;AAAA;AAAA,MAET,OAAO;AAAA;AAAA;AAAA,MAGP,mBAAmB;AAAA,MACnB,aAAa;AAAA;AAAA,MAEb,UAAU;AAAA,MACV,UAAU;AAAA;AAAA;AAAA,MAGV,gBAAgB;AAAA,MAChB,cAAc;AAAA;AAAA,MAEd,cAAc;AAAA;AAAA,MAEd,aAAa;AAAA;AAAA,MAEb,aAAa;AAAA;AAAA,MAEb,cAAc;AAAA;AAAA,MAEd,gBAAgB;AAAA,QACd,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,iBAAiB;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,kBAAkB;AAAA,QAChB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA;AAAA,MAEA,WAAW;AAAA,MACX,SAAS;AAAA,MACT,sBAAsB;AAAA,MACtB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,sBAAsB;AAAA,MACtB,wBAAwB;AAAA,MACxB,qBAAqB;AAAA,MACrB,aAAa;AAAA,MACb,aAAa;AAAA,MACb,eAAe;AAAA,MACf,iBAAiB;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,2BAA2B;AAAA,QACzB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA;AAAA,MAEA,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,IAClB;AAAA,EACF;;;AC5FA,WAASC,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAcrF,MAAME,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAEA,MAAM,UAAU,WAAW,WAAW;AACtC,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,WAAS,gBAAgB;AACvB,UAAMC,KAAI,CAAC;AACX,IAAAA,GAAE,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC3C,MAAAA,GAAE,UAAU;AACZ,MAAAA,GAAE,SAAS;AAAA,IACb,CAAC;AACD,WAAOA;AAAA,EACT;AAKA,MAAI,iBAA8B,gBAAAF,4BAA2B,eAAe;AAC5E,MAAI,sCAAmD,gBAAAA,4BAA2B,oCAAoC;AACtH,MAAI,gCAA6C,gBAAAA,4BAA2B,8BAA8B;AAC1G,MAAI,gCAA6C,gBAAAA,4BAA2B,8BAA8B;AAC1G,MAAI,qBAAkC,gBAAAA,4BAA2B,mBAAmB;AACpF,MAAI,gBAA6B,gBAAAA,4BAA2B,cAAc;AAC1E,MAAI,yBAAsC,gBAAAA,4BAA2B,uBAAuB;AAC5F,MAAI,cAA2B,gBAAAA,4BAA2B,YAAY;AACtE,MAAI,kCAA+C,gBAAAA,4BAA2B,gCAAgC;AAC9G,MAAI,uBAAoC,gBAAAA,4BAA2B,qBAAqB;AACxF,MAAI,gCAA6C,gBAAAA,4BAA2B,8BAA8B;AAC1G,MAAqBG,aAArB,cAAuC,iBAAS;AAAA,IAC9C,YAAY,MAAM,OAAO;AACvB,UAAI;AACJ,YAAM,MAAM,KAAK;AACjB,cAAQ;AACR,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,WAAK,eAAe,YAAU;AAC5B,cAAM,cAAc,KAAK,eAAe;AAExC,cAAM,aAAa,YAAY,QAAQ,OAAO,YAAU,OAAO,OAAO,OAAO,EAAE;AAC/E,aAAK,eAAe;AAAA,UAClB,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AACA,WAAK,YAAY,YAAU;AACzB,cAAM,iBAAiB,OAAO,MAAM,OAAO,YAAY;AACvD,cAAM,mBAAmB,OAAO,SAAS;AACzC,cAAM,mBAAmB,OAAO;AAChC,YAAI,qBAAqB,cAAc,qBAAqB,uBAAuB,qBAAqB,UAAU;AAChH,gBAAM,MAAM;AACZ,eAAK,KAAK,IAAI,KAAK,OAAO;AAC1B,iBAAO;AAAA,QACT;AACA,cAAM,SAAS;AAAA,UACb,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,QACR;AACA,cAAM,QAAQ,KAAK,eAAe;AAClC,cAAM,aAAa,MAAM,QAAQ,MAAM;AACvC,mBAAW,KAAK,MAAM;AACtB,aAAK,eAAe;AAAA,UAClB,SAAS;AAAA,QACX,CAAC;AACD,eAAO,KAAK;AAAA,MACd;AACA,WAAK,gBAAgB,MAAM;AACzB,cAAM,QAAQ,KAAK,eAAe;AAClC,cAAM,SAAS;AAAA,UACb,mBAAmB;AAAA,UACnB,mBAAmB;AAAA,UACnB,mBAAmB;AAAA,UACnB,aAAa;AAAA,UACb,gBAAgB;AAAA,QAClB;AACA,YAAI,MAAM,sBAAsB,OAAO,qBAAqB,MAAM,sBAAsB,OAAO,qBAAqB,MAAM,mBAAmB,OAAO,kBAAkB,MAAM,sBAAsB,OAAO,mBAAmB;AAE1N;AAAA,QACF;AACA,aAAK,eAAe,MAAM;AAC1B,aAAK,KAAK,KAAK,yBAAyB,MAAM,kBAAkB,EAAE;AAAA,MACpE;AACA,WAAK,YAAY,CAAAJ,SAAM;AACrB,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,eAAe;AACxB,cAAM,oBAAoB,QAAQ,OAAO,YAAU;AACjD,iBAAO,OAAO,SAAS,cAAc,OAAO,OAAOA;AAAA,QACrD,CAAC,EAAE,CAAC;AACJ,aAAK,eAAe;AAAA,UAClB;AAAA,UACA,mBAAmB;AAAA,QACrB,CAAC;AACD,aAAK,KAAK,KAAK,wBAAwBA,IAAE;AAAA,MAC3C;AACA,WAAK,cAAc,UAAQ;AACzB,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,eAAe;AACxB,cAAM,UAAUD,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,OAAO;AACnF,eAAO,QAAQ,KAAK,YAAU,KAAK,KAAK,UAAU,OAAO,EAAE,EAAE,YAAY,IAAI,CAAC;AAAA,MAChF;AACA,WAAK,iBAAiB,UAAQ;AAC5B,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,eAAe;AACxB,cAAM,UAAUA,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,OAAO;AACnF,aAAK,eAAe;AAAA,UAClB,gBAAgB;AAAA,UAChB,aAAa,KAAK,MAAM;AAAA,UACxB,mBAAmB;AAAA,QACrB,CAAC;AACD,gBAAQ,QAAQ,YAAU;AACxB,eAAK,KAAK,UAAU,OAAO,EAAE,EAAE,WAAW,IAAI;AAAA,QAChD,CAAC;AAAA,MACH;AACA,WAAK,kBAAkB,MAAM;AAC3B,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,eAAe;AACxB,cAAM,sBAAsB,cAAc,WAAW,SAAS;AAC9D,YAAI,qBAAqB;AACvB,eAAK,eAAe;AAAA,YAClB,gBAAgB;AAAA,YAChB,mBAAmB;AAAA,UACrB,CAAC;AAAA,QACH,OAAO;AACL,eAAK,eAAe;AAAA,YAClB,gBAAgB;AAAA,YAChB,aAAa;AAAA,YACb,mBAAmB;AAAA,UACrB,CAAC;AAAA,QACH;AAAA,MACF;AACA,WAAK,iBAAiB,MAAM;AAC1B,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,eAAe;AACxB,cAAM,UAAUA,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,OAAO;AACnF,gBAAQ,QAAQ,YAAU;AACxB,eAAK,KAAK,UAAU,OAAO,EAAE,EAAE,KAAK;AAAA,QACtC,CAAC;AACD,aAAK,gBAAgB;AAAA,MACvB;AACA,WAAK,YAAY,MAAM;AACrB,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,cAAc;AAElB,aAAK,sBAAsB,OAAO;AAElC,aAAK,qBAAqB,SAAS;AACnC,YAAI,KAAK,KAAK,gCAAgC;AAC5C,mBAAS,KAAK,UAAU,IAAI,wBAAwB;AAAA,QACtD;AACA,YAAI,KAAK,KAAK,oBAAoB,KAAK,eAAe,EAAE,WAAW;AACjE,gBAAM,UAAU,MAAM;AACpB,iBAAK,eAAe;AAAA,cAClB,UAAU;AAAA,YACZ,CAAC;AACD,iBAAK,GAAG,oBAAoB,gBAAgB,SAAS,KAAK;AAC1D,oBAAQ;AAAA,UACV;AACA,eAAK,GAAG,iBAAiB,gBAAgB,SAAS,KAAK;AAAA,QACzD,OAAO;AACL,eAAK,eAAe;AAAA,YAClB,UAAU;AAAA,UACZ,CAAC;AACD,kBAAQ;AAAA,QACV;AACA,YAAI,KAAK,KAAK,wBAAwB;AACpC,eAAK,qBAAqB;AAAA,QAC5B;AAGA,iBAAS,iBAAiB,WAAW,KAAK,oBAAoB;AAC9D,aAAK,KAAK,KAAK,sBAAsB;AACrC,eAAO;AAAA,MACT;AACA,WAAK,aAAa,SAAU,MAAM;AAChC,YAAI,SAAS,QAAQ;AACnB,iBAAO,CAAC;AAAA,QACV;AACA,cAAM;AAAA;AAAA,UAEJ,cAAc;AAAA,QAChB,IAAI;AACJ,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,MAAM,eAAe;AACzB,YAAI,YAAY,WAAW;AAEzB,iBAAO;AAAA,QACT;AACA,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,cAAc;AAClB,YAAI,MAAM,KAAK,gCAAgC;AAC7C,mBAAS,KAAK,UAAU,OAAO,wBAAwB;AAAA,QACzD;AACA,YAAI,MAAM,KAAK,kBAAkB;AAC/B,gBAAM,eAAe;AAAA,YACnB,WAAW;AAAA,UACb,CAAC;AACD,gBAAM,UAAU,MAAM;AACpB,kBAAM,eAAe;AAAA,cACnB,UAAU;AAAA,cACV,WAAW;AAAA,YACb,CAAC;AACD,kBAAM,WAAW,OAAO;AACxB,kBAAM,mBAAmB,MAAM;AAC/B,kBAAM,GAAG,oBAAoB,gBAAgB,SAAS,KAAK;AAC3D,oBAAQ;AAAA,UACV;AACA,gBAAM,GAAG,iBAAiB,gBAAgB,SAAS,KAAK;AAAA,QAC1D,OAAO;AACL,gBAAM,eAAe;AAAA,YACnB,UAAU;AAAA,UACZ,CAAC;AACD,gBAAM,WAAW,OAAO;AACxB,gBAAM,mBAAmB,MAAM;AAC/B,kBAAQ;AAAA,QACV;AAGA,iBAAS,oBAAoB,WAAW,MAAM,oBAAoB;AAClE,YAAI,aAAa;AACf,cAAI,MAAM,KAAK,wBAAwB;AACrC,gBAAI;AAGJ,iBAAK,iBAAiB,QAAQ,UAAU,QAAQ,eAAe,MAAM,SAAS,GAAG;AAG/E,sBAAQ,KAAK;AAAA,YACf;AAAA,UACF;AAAA,QACF;AACA,cAAM,KAAK,KAAK,wBAAwB;AACxC,eAAO;AAAA,MACT;AACA,WAAK,cAAc,MAAM;AACvB,eAAO,CAAC,KAAK,eAAe,EAAE,YAAY;AAAA,MAC5C;AACA,WAAK,oBAAoB,MAAM;AAC7B,YAAI,KAAK,KAAK,qBAAqB;AACjC,iBAAO,KAAK,KAAK,oBAAoB;AAAA,QACvC;AACA,eAAO,KAAK,WAAW;AAAA,MACzB;AACA,WAAK,wBAAwB,kBAAgB;AAC3C,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK,KAAK,SAAS;AACvB,aAAK,KAAK,SAAS;AAAA,UACjB,cAAc;AAAA,YACZ,GAAG;AAAA,YACH,UAAU;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AACA,WAAK,6BAA6B,WAAS;AACzC,cAAM,kBAAkB,MAAM;AAC9B,aAAK,KAAK,IAAI,4BAA4B,kBAAkB,OAAO,KAAK,EAAE;AAC1E,aAAK,sBAAsB,eAAe;AAAA,MAC5C;AACA,WAAK,iBAAiB,CAAC,MAAM,WAAW;AACtC,cAAM,OAAO,KAAK,KAAK,QAAQ,MAAM;AACrC,YAAI,MAAM;AACR,eAAK,KAAK,KAAK,6BAA6B,IAAI;AAAA,QAClD,OAAO;AACL,eAAK,KAAK,KAAK,gCAAgC,IAAI;AAAA,QACrD;AACA,aAAK,eAAe;AAAA,UAClB,aAAa,OAAO,SAAS;AAAA,UAC7B,mBAAmB,OAAO,aAAa;AAAA,QACzC,CAAC;AAAA,MACH;AACA,WAAK,sBAAsB,UAAQ;AACjC,aAAK,eAAe;AAAA,UAClB,mBAAmB;AAAA,UACnB,mBAAmB,OAAO,aAAa;AAAA,QACzC,CAAC;AAAA,MACH;AACA,WAAK,WAAW,WAAS;AACvB,cAAM,cAAc,MAAM,IAAI,WAAS;AAAA,UACrC,QAAQ,KAAK;AAAA,UACb,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,UACX,MAAM;AAAA,UACN,MAAM;AAAA;AAAA;AAAA,YAGJ,cAAc,KAAK,gBAAgB,KAAK,sBAAsB;AAAA,UAChE;AAAA,QACF,EAAE;AACF,YAAI;AACF,eAAK,KAAK,SAAS,WAAW;AAAA,QAChC,SAAS,KAAK;AACZ,eAAK,KAAK,IAAI,GAAG;AAAA,QACnB;AAAA,MACF;AAOA,WAAK,yBAAyB,MAAM;AAIlC,aAAK,iBAAiB,IAAI,eAAe,aAAW;AAClD,gBAAM,uBAAuB,QAAQ,CAAC;AACtC,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,UACF,IAAI,qBAAqB;AACzB,eAAK,eAAe;AAAA,YAClB,gBAAgB;AAAA,YAChB,iBAAiB;AAAA,YACjB,4BAA4B;AAAA,UAC9B,CAAC;AAAA,QACH,CAAC;AACD,aAAK,eAAe,QAAQ,KAAK,GAAG,cAAc,uBAAuB,CAAC;AAG1E,aAAK,2CAA2C,WAAW,MAAM;AAC/D,gBAAM,cAAc,KAAK,eAAe;AACxC,gBAAM,mBAAmB,CAAC,KAAK,KAAK,UAAU,YAAY;AAC1D;AAAA;AAAA;AAAA,YAIA,CAAC,YAAY,8BAEV,CAAC;AAAA,YAAkB;AACpB,iBAAK,KAAK,IAAI,iFAA4E,SAAS;AACnG,iBAAK,eAAe;AAAA,cAClB,4BAA4B;AAAA,YAC9B,CAAC;AAAA,UACH;AAAA,QACF,GAAG,GAAI;AAAA,MACT;AACA,WAAK,wBAAwB,MAAM;AACjC,aAAK,eAAe,WAAW;AAC/B,qBAAa,KAAK,wCAAwC;AAAA,MAC5D;AAGA,WAAK,gCAAgC,WAAS;AAC5C,YAAI,KAAK,GAAG,SAAS,MAAM,MAAM,GAAG;AAClC,eAAK,0BAA0B;AAAA,QACjC,OAAO;AACL,eAAK,0BAA0B;AAI/B,eAAK,WAAW,OAAO;AAAA,QACzB;AAAA,MACF;AACA,WAAK,6BAA6B,aAAW;AAC3C,YAAI;AACJ,cAAM,mBAAmB,CAAC,WAAW,yBAAyB,0BAA0B,4BAA4B,0BAA0B,iCAAiC;AAC/K,cAAM,kBAAkB,wBAAwBA,6BAA4B,MAAM,cAAc,EAAE,cAAc,MAAM,OAAO,wBAAwB,gBAAQ,KAAK,GAAG,iBAAiB,gBAAgB,CAAC,EAAE,OAAO,UAAQ,CAAC,KAAK,UAAU,SAAS,sBAAsB,CAAC;AACxQ,mBAAW,QAAQ,gBAAgB;AAEjC,cAAI,KAAK,YAAY,KAAK;AACxB,iBAAK,aAAa,iBAAiB,OAAO;AAAA,UAC5C,OAAO;AACL,iBAAK,WAAW;AAAA,UAClB;AAAA,QACF;AACA,YAAI,SAAS;AACX,UAAAA,6BAA4B,MAAM,cAAc,EAAE,cAAc,IAAI;AAAA,QACtE,OAAO;AACL,UAAAA,6BAA4B,MAAM,cAAc,EAAE,cAAc,IAAI;AAAA,QACtE;AACA,aAAK,sBAAsB;AAAA,MAC7B;AACA,WAAK,uBAAuB,MAAM;AAChC,YAAI;AAGJ,YAAI,GAAG,kBAAkB,QAAQ,UAAU,QAAQ,gBAAgB,KAAK,SAAS,IAAI;AAGnF,kBAAQ,UAAU;AAAA;AAAA,YAEhB,GAAG,QAAQ;AAAA,YACX,CAAC,KAAK,SAAS,GAAG;AAAA,UACpB,GAAG,EAAE;AAAA,QACP;AAGA,eAAO,iBAAiB,YAAY,KAAK,gBAAgB,KAAK;AAAA,MAChE;AACA,WAAK,iBAAiB,WAAS;AAC7B,YAAI;AAEJ,YAAI,KAAK,YAAY,MAAM,CAAC,MAAM,SAAS,CAAC,MAAM,MAAM,KAAK,SAAS,IAAI;AACxE,eAAK,WAAW;AAAA,YACd,aAAa;AAAA,UACf,CAAC;AAAA,QACH;AAQA,YAAI,CAAC,KAAK,YAAY,MAAM,eAAe,MAAM,UAAU,QAAQ,aAAa,KAAK,SAAS,GAAG;AAE/F,kBAAQ,KAAK;AAAA,QACf;AAAA,MACF;AACA,WAAK,uBAAuB,WAAS;AAEnC,YAAI,MAAM,YAAY,QAAS,MAAK,kBAAkB,KAAK;AAE3D,YAAI,MAAM,YAAY,QAAS,CAAU,UAAS,OAAO,KAAK,eAAe,EAAE,mBAAmB,KAAK,EAAE;AAAA,MAC3G;AACA,WAAK,qBAAqB,MAAM;AAC9B,YAAI,KAAK,KAAK,yBAA0B,MAAK,kBAAkB;AAAA,MACjE;AACA,WAAK,cAAc,WAAS;AAE1B,aAAK,KAAK,eAAe,YAAU;AACjC,cAAI,OAAO,SAAS,YAAY;AAE9B,mBAAO,mBAAmB,QAAQ,OAAO,gBAAgB,KAAK;AAAA,UAChE;AAAA,QACF,CAAC;AAGD,cAAM,QAAQ,gBAAQ,MAAM,cAAc,KAAK;AAC/C,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,KAAK,IAAI,0BAA0B;AACxC,eAAK,SAAS,KAAK;AAAA,QACrB;AAAA,MACF;AACA,WAAK,oBAAoB,WAAS;AAChC,cAAM,eAAe;AACrB,cAAM,QAAQ,gBAAQ,MAAM,OAAO,KAAK;AACxC,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,KAAK,IAAI,0CAA0C;AACxD,eAAK,SAAS,KAAK;AAAA,QACrB;AAAA,MACF;AACA,WAAK,iBAAiB,WAAS;AAC7B,YAAI,uBAAuB;AAC3B,cAAM,eAAe;AACrB,cAAM,gBAAgB;AAItB,cAAM,8BAA8B,MAAM;AACxC,cAAIM,+BAA8B;AAClC,eAAK,KAAK,eAAe,YAAU;AACjC,gBAAI,OAAO,qBAAqB,QAAQ,OAAO,kBAAkB,KAAK,GAAG;AACvE,cAAAA,+BAA8B;AAAA,YAChC;AAAA,UACF,CAAC;AACD,iBAAOA;AAAA,QACT;AAGA,cAAM,qBAAqB,MAAM;AAC/B,gBAAM;AAAA,YACJ;AAAA,UACF,IAAI,MAAM;AACV,iBAAO,MAAM,KAAK,UAAQ,SAAS,OAAO;AAAA,QAC5C;AAIA,cAAM,8BAA8B,4BAA4B,KAAK;AACrE,cAAM,WAAW,mBAAmB,KAAK;AACzC,YAAI,CAAC,+BAA+B,CAAC,YAAY,KAAK,KAAK,YAGxD,KAAK,KAAK,sBAAsB,YAAY,CAAC,gCAAgC,CAAC,KAAK,KAAK,SAAS,EAAE,gBAAgB;AACpH,gBAAM,aAAa,aAAa;AAChC,uBAAa,KAAK,0BAA0B;AAC5C;AAAA,QACF;AAKA,cAAM,aAAa,aAAa;AAEhC,qBAAa,KAAK,0BAA0B;AAC5C,aAAK,eAAe;AAAA,UAClB,gBAAgB;AAAA,QAClB,CAAC;AACD,SAAC,yBAAyB,aAAa,KAAK,MAAM,eAAe,QAAQ,sBAAsB,KAAK,YAAY,KAAK;AAAA,MACvH;AACA,WAAK,kBAAkB,WAAS;AAC9B,YAAI,uBAAuB;AAC3B,cAAM,eAAe;AACrB,cAAM,gBAAgB;AACtB,qBAAa,KAAK,0BAA0B;AAG5C,aAAK,6BAA6B,WAAW,MAAM;AACjD,eAAK,eAAe;AAAA,YAClB,gBAAgB;AAAA,UAClB,CAAC;AAAA,QACH,GAAG,EAAE;AACL,SAAC,yBAAyB,cAAc,KAAK,MAAM,gBAAgB,QAAQ,sBAAsB,KAAK,aAAa,KAAK;AAAA,MAC1H;AACA,WAAK,aAAa,OAAM,UAAS;AAC/B,YAAI,mBAAmB;AACvB,cAAM,eAAe;AACrB,cAAM,gBAAgB;AACtB,qBAAa,KAAK,0BAA0B;AAC5C,aAAK,eAAe;AAAA,UAClB,gBAAgB;AAAA,QAClB,CAAC;AAGD,aAAK,KAAK,eAAe,YAAU;AACjC,cAAI,OAAO,SAAS,YAAY;AAE9B,mBAAO,kBAAkB,QAAQ,OAAO,eAAe,KAAK;AAAA,UAC9D;AAAA,QACF,CAAC;AAGD,YAAI,wBAAwB;AAC5B,cAAM,eAAe,CAAAC,WAAS;AAC5B,eAAK,KAAK,IAAIA,QAAO,OAAO;AAI5B,cAAI,CAAC,uBAAuB;AAC1B,iBAAK,KAAK,KAAKA,OAAM,SAAS,OAAO;AACrC,oCAAwB;AAAA,UAC1B;AAAA,QACF;AACA,aAAK,KAAK,IAAI,sCAAsC;AAGpD,cAAM,QAAQ,MAAM,gBAAgB,MAAM,cAAc;AAAA,UACtD;AAAA,QACF,CAAC;AACD,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,KAAK,IAAI,2BAA2B;AACzC,eAAK,SAAS,KAAK;AAAA,QACrB;AACA,SAAC,qBAAqB,cAAc,KAAK,MAAM,WAAW,QAAQ,kBAAkB,KAAK,aAAa,KAAK;AAAA,MAC7G;AACA,WAAK,yBAAyB,UAAQ;AACpC,YAAI,CAAC,KAAK,KAAK,+BAA+B;AAC5C,eAAK,KAAK,KAAK,qBAAqB,IAAI;AAAA,QAC1C;AAAA,MACF;AAKA,WAAK,wBAAwB,UAAQ;AACnC,YAAI,CAAC,KAAK,KAAK,+BAA+B;AAC5C,eAAK,KAAK,KAAK,oBAAoB,IAAI;AAAA,QACzC;AAAA,MACF;AACA,WAAK,wBAAwB,WAAS;AAEpC,YAAI,MAAM,YAAY,QAAS,CAAU,UAAU,OAAO,KAAK,eAAe,EAAE,mBAAmB,KAAK,EAAE;AAAA,MAC5G;AAUA,WAAK,oBAAoB,WAAS;AAChC,cAAMC,oBAAmB,KAAK,GAAG,SAAS,SAAS,aAAa;AAChE,YAAIA,mBAAkB;AACpB,eAAK,YAAY,KAAK;AAAA,QACxB;AAAA,MACF;AACA,WAAK,iBAAiB,UAAQ;AAC5B,YAAI;AAAA,UACF;AAAA,QACF,IAAI;AACJ,YAAI,KAAK,KAAK,oBAAoB,OAAO,WAAW,GAAG;AAErD,eAAK,kBAAkB;AAAA,QACzB;AAAA,MACF;AACA,WAAK,sBAAsB,MAAM;AAC/B,aAAK,KAAK,KAAK,kBAAkB;AAAA,MACnC;AACA,aAAO,eAAe,MAAM,qCAAqC;AAAA,QAC/D,UAAU;AAAA,QACV,OAAO,MAAM;AACX,cAAI,KAAK,KAAK,2BAA2B;AACvC;AAAA,UACF;AACA,gBAAM,kBAAkB;AACxB,gBAAM,QAAQ,KAAK,KAAK,SAAS;AACjC,cAAI,MAAM,WAAW,GAAG;AACtB,kBAAM,qBAAqB,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,qBAAqB;AAC9E,kCAAsB,QAAQ,mBAAmB,WAAW;AAAA,cAC1D,gBAAgB;AAAA,YAClB,CAAC;AACD,kBAAM,mBAAmB;AAAA,cACvB,GAAG,MAAM,CAAC;AAAA,cACV,SAAS;AAAA,YACX;AACA,+BAAmB,iBAAiB,gBAAgB,EAAE,KAAK,MAAM;AAC/D,oCAAsB,QAAQ,mBAAmB,WAAW;AAAA,gBAC1D,gBAAgB,KAAK,KAAK;AAAA,cAC5B,CAAC;AAAA,YACH,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,+BAA+B;AAAA,QACzD,UAAU;AAAA,QACV,OAAO,WAAS;AACd,gBAAM,YAAY,MAAM,CAAC;AACzB,gBAAM;AAAA,YACJ;AAAA,UACF,IAAI,KAAK,eAAe;AACxB,gBAAM,sBAAsB,cAAc,WAAW,SAAS;AAC9D,gBAAM,sBAAsB,KAAK,YAAY,SAAS;AACtD,cAAI,qBAAqB;AACvB,iBAAK,eAAe,MAAM,UAAU,EAAE;AAAA,UACxC,WAAW,qBAAqB;AAC9B,iBAAK,eAAe,SAAS;AAAA,UAC/B;AAAA,QACF;AAAA,MACF,CAAC;AACD,WAAK,aAAa,MAAM;AAEtB,YAAI,KAAK,KAAK,WAAW,CAAC,KAAK,KAAK,QAAQ;AAC1C,gBAAM,mBAAmB,2BAAmB,KAAK,KAAK,OAAO;AAC7D,cAAI,kBAAkB;AACpB,6BAAiB,QAAQ,aAAW,QAAQ,iBAAiB,SAAS,KAAK,SAAS,CAAC;AAAA,UACvF,OAAO;AACL,iBAAK,KAAK,IAAI,+JAA+J,SAAS;AAAA,UACxL;AAAA,QACF;AACA,aAAK,uBAAuB;AAC5B,iBAAS,iBAAiB,SAAS,KAAK,iBAAiB;AACzD,aAAK,KAAK,GAAG,gBAAgBR,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAC5H,aAAK,KAAK,GAAG,iBAAiB,KAAK,YAAY;AAC/C,aAAK,KAAK,GAAG,cAAc,KAAK,aAAa;AAC7C,aAAK,KAAK,GAAG,0BAA0B,KAAK,aAAa;AACzD,aAAK,KAAK,GAAG,YAAY,KAAK,cAAc;AAC5C,aAAK,KAAK,GAAG,eAAeA,6BAA4B,MAAM,mCAAmC,EAAE,mCAAmC,CAAC;AACvI,aAAK,KAAK,GAAG,gBAAgBA,6BAA4B,MAAM,mCAAmC,EAAE,mCAAmC,CAAC;AAIxI,iBAAS,iBAAiB,SAAS,KAAK,+BAA+B,IAAI;AAC3E,iBAAS,iBAAiB,SAAS,KAAK,+BAA+B,IAAI;AAC3E,YAAI,KAAK,KAAK,QAAQ;AACpB,eAAK,GAAG,iBAAiB,WAAW,KAAK,qBAAqB;AAAA,QAChE;AACA,YAAI,KAAK,KAAK,oBAAoB;AAChC,eAAK,KAAK,GAAG,eAAeA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAAA,QAC7H;AAAA,MACF;AACA,WAAK,eAAe,MAAM;AACxB,cAAM,mBAAmB,2BAAmB,KAAK,KAAK,OAAO;AAC7D,YAAI,CAAC,KAAK,KAAK,UAAU,kBAAkB;AACzC,2BAAiB,QAAQ,aAAW,QAAQ,oBAAoB,SAAS,KAAK,SAAS,CAAC;AAAA,QAC1F;AACA,aAAK,sBAAsB;AAC3B,iBAAS,oBAAoB,SAAS,KAAK,iBAAiB;AAC5D,eAAO,oBAAoB,YAAY,KAAK,gBAAgB,KAAK;AACjE,aAAK,KAAK,IAAI,gBAAgBA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAC7H,aAAK,KAAK,IAAI,iBAAiB,KAAK,YAAY;AAChD,aAAK,KAAK,IAAI,cAAc,KAAK,aAAa;AAC9C,aAAK,KAAK,IAAI,0BAA0B,KAAK,aAAa;AAC1D,aAAK,KAAK,IAAI,YAAY,KAAK,cAAc;AAC7C,aAAK,KAAK,IAAI,eAAeA,6BAA4B,MAAM,mCAAmC,EAAE,mCAAmC,CAAC;AACxI,aAAK,KAAK,IAAI,gBAAgBA,6BAA4B,MAAM,mCAAmC,EAAE,mCAAmC,CAAC;AACzI,iBAAS,oBAAoB,SAAS,KAAK,6BAA6B;AACxE,iBAAS,oBAAoB,SAAS,KAAK,6BAA6B;AACxE,YAAI,KAAK,KAAK,QAAQ;AACpB,eAAK,GAAG,oBAAoB,WAAW,KAAK,qBAAqB;AAAA,QACnE;AACA,YAAI,KAAK,KAAK,oBAAoB;AAChC,eAAK,KAAK,IAAI,eAAeA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAAA,QAC9H;AAAA,MACF;AACA,WAAK,yBAAyB,MAAM;AAClC,cAAM,gBAAgB,KAAK,GAAG,SAAS,SAAS,aAAa;AAE7D,cAAM,iBAAiB,SAAS,kBAAkB,SAAS,QAAQ,SAAS,kBAAkB;AAC9F,cAAM,mBAAmB,KAAK,KAAK,SAAS,EAAE,KAAK,WAAW;AAC9D,cAAM,UAAU,CAAC,KAAK,KAAK;AAC3B;AAAA;AAAA,UAEA;AAAA;AAAA,WAGA,WAEG,iBAUA,kBAAkB,KAAK;AAAA,UAA0B;AAClD,eAAK,WAAW,KAAK,IAAI,KAAK,eAAe,EAAE,iBAAiB;AAAA,QAClE,OAAO;AACL,eAAK,WAAW,OAAO;AAAA,QACzB;AAAA,MACF;AACA,WAAK,cAAc,MAAM;AACvB,YAAI,KAAK,KAAK,YAAY,CAAC,KAAK,qBAAqB;AACnD,eAAK,2BAA2B,IAAI;AACpC;AAAA,QACF;AACA,YAAI,CAAC,KAAK,KAAK,YAAY,KAAK,qBAAqB;AACnD,eAAK,2BAA2B,KAAK;AAAA,QACvC;AACA,aAAK,uBAAuB;AAAA,MAC9B;AACA,WAAK,eAAe,CAAC,MAAM,WAAW;AACpC,aAAK,KAAK,YAAY,QAAQ,IAAI;AAClC,aAAK,eAAe,OAAO,MAAM;AAAA,MACnC;AACA,aAAO,eAAe,MAAM,+BAA+B;AAAA,QACzD,UAAU;AAAA,QACV,OAAO,YAAU;AACf,gBAAM,SAAS,KAAK,KAAK,UAAU,OAAO,EAAE;AAC5C,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,MAAM,OAAO,QAAQ,KAAK,KAAK;AAAA,YAC/B,QAAQ,OAAO;AAAA,UACjB;AAAA,QACF;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,oBAAoB;AAAA,QAC9C,UAAU;AAAA,QACV,OAAO,YAAU;AACf,gBAAM,SAAS,KAAK,KAAK,UAAU,OAAO,EAAE;AAE5C,cAAI,OAAO,OAAO,gBAAgB,YAAY;AAC5C,mBAAO;AAAA,UACT;AACA,iBAAO,OAAO,YAAY;AAAA,QAC5B;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,eAAe;AAAA,QACzC,UAAU;AAAA,QACV,OAAO,QAAQ,aAAW;AACxB,iBAAO,QAAQ,OAAO,YAAU,OAAO,SAAS,cAAcA,6BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,IAAIA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAAA,QACtP,CAAC;AAAA,MACH,CAAC;AACD,aAAO,eAAe,MAAM,wBAAwB;AAAA,QAClD,UAAU;AAAA,QACV,OAAO,QAAQ,aAAW;AACxB,iBAAO,QAAQ,OAAO,YAAU,OAAO,SAAS,mBAAmB,EAAE,IAAIA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAAA,QAC1K,CAAC;AAAA,MACH,CAAC;AACD,aAAO,eAAe,MAAM,aAAa;AAAA,QACvC,UAAU;AAAA,QACV,OAAO,QAAQ,aAAW;AACxB,iBAAO,QAAQ,OAAO,YAAU,OAAO,SAAS,QAAQ,EAAE,IAAIA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAAA,QAC/J,CAAC;AAAA,MACH,CAAC;AACD,WAAK,SAAS,WAAS;AACrB,cAAM,cAAc,KAAK,eAAe;AACxC,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI;AACJ,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,KAAK,KAAK,yBAAyB;AACvC,cAAM,YAAYA,6BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE,YAAY,OAAO;AACrG,cAAM,qBAAqBA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,EAAE,YAAY,OAAO;AAChI,cAAM,UAAUA,6BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,YAAY,OAAO;AAC/F,YAAI;AACJ,YAAI,KAAK,KAAK,UAAU,QAAQ;AAC9B,kBAAQ,aAAa,WAAW,SAAS;AAAA,QAC3C,OAAO;AACL,kBAAQ,KAAK,KAAK;AAAA,QACpB;AACA,YAAI,CAAC,SAAS,WAAW,MAAM,EAAE,QAAQ,KAAK,KAAK,wBAAwB,IAAI,GAAG;AAChF,eAAK,KAAK,2BAA2B;AAErC,kBAAQ,KAAK,wEAAwE,KAAK,KAAK,wBAAwB,IAAI;AAAA,QAC7H;AACA,eAAO,UAAY;AAAA,UACjB;AAAA,UACA,UAAU,YAAY;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,gBAAgB,OAAO,KAAK,KAAK,EAAE;AAAA,UACnC,eAAe,MAAM;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,KAAK,KAAK;AAAA,UACpB,mBAAmB,KAAK,KAAK;AAAA,UAC7B,WAAW,KAAK,KAAK;AAAA,UACrB,mBAAmB,YAAY;AAAA,UAC/B,gBAAgB,YAAY;AAAA,UAC5B,gBAAgB,KAAK;AAAA,UACrB,iBAAiB,KAAK;AAAA,UACtB,4BAA4B,KAAK;AAAA,UACjC,kBAAkB,KAAK,KAAK;AAAA,UAC5B,WAAW,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,UACA,aAAa,KAAK,KAAK,KAAK;AAAA,UAC5B,IAAI,KAAK;AAAA,UACT,YAAY,KAAK;AAAA,UACjB,oBAAoB,KAAK;AAAA,UACzB,mBAAmB,KAAK;AAAA,UACxB,aAAa,KAAK;AAAA,UAClB,QAAQ,KAAK,KAAK;AAAA,UAClB,WAAW,KAAK;AAAA,UAChB,eAAe,KAAK;AAAA,UACpB,MAAM,KAAK;AAAA,UACX,WAAW,KAAK;AAAA,UAChB,MAAM,KAAK;AAAA,UACX,MAAM,KAAK,KAAK;AAAA,UAChB,gBAAgB,MAAM;AAAA,UACtB,YAAY,YAAY;AAAA,UACxB,kBAAkB,aAAa,oBAAoB;AAAA,UACnD,wBAAwB,aAAa;AAAA,UACrC,gBAAgB,aAAa;AAAA,UAC7B,aAAa,YAAY;AAAA,UACzB,gBAAgB,KAAK;AAAA,UACrB,qBAAqB,KAAK;AAAA,UAC1B,mBAAmB,YAAY;AAAA,UAC/B,cAAc,KAAK;AAAA,UACnB,gBAAgB,KAAK;AAAA,UACrB,aAAa,KAAK;AAAA,UAClB,OAAO,KAAK,KAAK;AAAA,UACjB,QAAQ,KAAK,KAAK;AAAA,UAClB,4BAA4B,KAAK,KAAK;AAAA,UACtC,0BAA0B,KAAK,KAAK;AAAA,UACpC,6BAA6B,KAAK,KAAK;AAAA,UACvC,kBAAkB,KAAK,KAAK;AAAA,UAC5B,iBAAiB,KAAK,KAAK;AAAA,UAC3B,uBAAuB,KAAK,KAAK;AAAA,UACjC,+BAA+B,KAAK,KAAK;AAAA,UACzC,gBAAgB,YAAY;AAAA,UAC5B,iBAAiB,YAAY;AAAA,UAC7B,4BAA4B,YAAY;AAAA,UACxC,eAAe,KAAK;AAAA,UACpB,eAAe,KAAK;AAAA,UACpB,kBAAkB,KAAK,KAAK,KAAK,aAAa;AAAA,UAC9C,kBAAkB,KAAK,KAAK,KAAK,aAAa;AAAA,UAC9C,oBAAoB,KAAK,KAAK,KAAK,aAAa;AAAA,UAChD,mBAAmB,KAAK,KAAK;AAAA,UAC7B,6BAA6B,KAAK,KAAK;AAAA,UACvC,6BAA6B,KAAK,KAAK;AAAA,UACvC,wBAAwB,KAAK,KAAK;AAAA,UAClC,sBAAsB,KAAK,KAAK;AAAA,UAChC,qBAAqB,KAAK;AAAA,UAC1B,wBAAwB,KAAK;AAAA,UAC7B,uBAAuB,KAAK;AAAA;AAAA,UAE5B,gBAAgB,YAAY;AAAA,UAC5B,gBAAgB,KAAK;AAAA,UACrB,iBAAiB,KAAK;AAAA,UACtB,YAAY,KAAK;AAAA,QACnB,CAAC;AAAA,MACH;AACA,aAAO,eAAe,MAAM,iCAAiC;AAAA,QAC3D,UAAU;AAAA,QACV,OAAO,MAAM;AACX,gBAAM,UAAU,KAAK,KAAK,WAAW,CAAC;AACtC,kBAAQ,QAAQ,cAAY;AAC1B,kBAAM,SAAS,KAAK,KAAK,UAAU,QAAQ;AAC3C,gBAAI,QAAQ;AACV,qBAAO,MAAM,MAAM,MAAM;AAAA,YAC3B,OAAO;AACL,mBAAK,KAAK,IAAI,2CAA2C,QAAQ,6DAA6D,SAAS;AAAA,YACzI;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,sBAAsB;AAAA,QAChD,UAAU;AAAA,QACV,OAAO,MAAM;AACX,eAAK,KAAK,eAAeA,6BAA4B,MAAM,6BAA6B,EAAE,6BAA6B,CAAC;AAAA,QAC1H;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,+BAA+B;AAAA,QACzD,UAAU;AAAA,QACV,OAAO,YAAU;AACf,cAAI;AAGJ,gBAAM,eAAe,CAAC,YAAY,QAAQ;AAC1C,cAAI,UAAU,GAAG,eAAe,OAAO,SAAS,QAAQ,aAAa,WAAW,aAAa,SAAS,OAAO,IAAI,GAAG;AAClH,kBAAM,qBAAqB,KAAK,eAAe,EAAE,QAAQ,KAAK,qBAAmB,OAAO,OAAO,gBAAgB,EAAE;AACjH,gBAAI,CAAC,oBAAoB;AACvB,qBAAO,MAAM,MAAM,MAAM;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AACD,WAAK,UAAU,MAAM;AAEnB,aAAK,eAAe;AAAA,UAClB,UAAU;AAAA,UACV,aAAa;AAAA,UACb,mBAAmB;AAAA,UACnB,mBAAmB;AAAA,UACnB,mBAAmB;AAAA,UACnB,gBAAgB;AAAA,UAChB,YAAY,KAAK,KAAK;AAAA,UACtB,SAAS,CAAC;AAAA;AAAA,UAEV,4BAA4B;AAAA,UAC5B,gBAAgB;AAAA,QAClB,CAAC;AACD,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,KAAK;AACT,YAAI,UAAU,kBAAkB;AAC9B,gBAAM,IAAI,MAAM,wMAAwM;AAAA,QAC1N;AACA,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,KAAK,KAAK;AACd,aAAK,wBAAwB,+BAA+B,kBAAkB;AAC5E,eAAK,KAAK,IAAI,0MAA0M,SAAS;AAAA,QACnO;AACA,cAAM;AAAA,UACJ;AAAA,QACF,IAAI,KAAK;AACT,YAAI,QAAQ;AACV,eAAK,MAAM,QAAQ,IAAI;AAAA,QACzB;AACA,YAAI,CAAC,KAAK,KAAK,kBAAkB;AAC/B,eAAK,KAAK,IAAIS,YAAW;AAAA,YACvB,IAAI,GAAG,KAAK,EAAE;AAAA,YACd,QAAQ;AAAA,YACR,kBAAkB,KAAK,KAAK;AAAA,YAC5B,iBAAiB,KAAK,KAAK;AAAA,YAC3B,uBAAuB,KAAK,KAAK;AAAA,YACjC,kBAAkB,KAAK,KAAK;AAAA,YAC5B,qBAAqB,KAAK,KAAK;AAAA,YAC/B,iBAAiB,KAAK,KAAK;AAAA,YAC3B,QAAQ,KAAK,KAAK;AAAA,YAClB,mBAAmB,KAAK,KAAK;AAAA,UAC/B,CAAC;AAAA,QACH;AACA,YAAI,CAAC,KAAK,KAAK,iBAAiB;AAC9B,eAAK,KAAK,IAAI,UAAU;AAAA,YACtB,IAAI,GAAG,KAAK,EAAE;AAAA,YACd,QAAQ;AAAA,UACV,CAAC;AAAA,QACH;AACA,YAAI,CAAC,KAAK,KAAK,2BAA2B;AACxC,eAAK,KAAK,IAAI,oBAAoB;AAAA,YAChC,IAAI,GAAG,KAAK,EAAE;AAAA,YACd,gBAAgB,KAAK,KAAK;AAAA,YAC1B,iBAAiB,KAAK,KAAK;AAAA,YAC3B,eAAe,KAAK,KAAK;AAAA,YACzB,+BAA+B,KAAK,KAAK;AAAA;AAAA,YAEzC,MAAM,CAAC,KAAK,KAAK;AAAA,UACnB,CAAC;AAAA,QACH;AAGA,aAAK,qBAAqB,OAAO,WAAW,eAAe,OAAO,aAAa,OAAO,WAAW,8BAA8B,IAAI;AACnI,cAAM,2BAA2B,KAAK,qBAAqB,KAAK,mBAAmB,UAAU;AAC7F,aAAK,KAAK,IAAI,4BAA4B,2BAA2B,OAAO,KAAK,EAAE;AACnF,aAAK,sBAAsB,wBAAwB;AACnD,YAAI,KAAK,KAAK,UAAU,QAAQ;AAC9B,eAAK,mBAAmB,YAAY,KAAK,0BAA0B;AAAA,QACrE;AACA,QAAAT,6BAA4B,MAAM,+BAA+B,EAAE,+BAA+B,EAAE;AACpG,QAAAA,6BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAE;AAC9E,aAAK,WAAW;AAAA,MAClB;AACA,WAAK,YAAY,MAAM;AACrB,YAAI,CAAC,KAAK,KAAK,iBAAiB;AAC9B,gBAAM,WAAW,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,WAAW;AAG1D,cAAI,SAAU,MAAK,KAAK,aAAa,QAAQ;AAAA,QAC/C;AACA,YAAI,CAAC,KAAK,KAAK,kBAAkB;AAC/B,gBAAM,YAAY,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,YAAY;AAC5D,cAAI,UAAW,MAAK,KAAK,aAAa,SAAS;AAAA,QACjD;AACA,YAAI,CAAC,KAAK,KAAK,2BAA2B;AACxC,gBAAM,YAAY,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,qBAAqB;AACrE,cAAI,UAAW,MAAK,KAAK,aAAa,SAAS;AAAA,QACjD;AACA,cAAM,UAAU,KAAK,KAAK,WAAW,CAAC;AACtC,gBAAQ,QAAQ,cAAY;AAC1B,gBAAM,SAAS,KAAK,KAAK,UAAU,QAAQ;AAC3C,cAAI,OAAQ,QAAO,QAAQ;AAAA,QAC7B,CAAC;AACD,YAAI,KAAK,KAAK,UAAU,QAAQ;AAC9B,eAAK,mBAAmB,eAAe,KAAK,0BAA0B;AAAA,QACxE;AACA,YAAI,KAAK,KAAK,gCAAgC;AAC5C,mBAAS,KAAK,UAAU,OAAO,wBAAwB;AAAA,QACzD;AACA,aAAK,QAAQ;AACb,aAAK,aAAa;AAAA,MACpB;AACA,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AACb,WAAK,OAAO;AACZ,WAAK,YAAY,kBAAkB,OAAO,CAAC;AAC3C,WAAK,gBAAgBU;AAGrB,YAAMC,kBAAiB;AAAA,QACrB,QAAQ;AAAA,QACR,YAAY,CAAC;AAAA,QACb,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,+BAA+B;AAAA,QAC/B;AAAA,QACA,4BAA4B;AAAA,QAC5B,qBAAqB;AAAA,QACrB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,QACjB,uBAAuB;AAAA,QACvB,yBAAyB;AAAA,QACzB,mBAAmB,MAAM;AACvB,eAAK,KAAK,mBAAmB;AAC7B,eAAK,kBAAkB;AAAA,QACzB;AAAA,QACA,MAAM;AAAA,QACN,0BAA0B;AAAA,QAC1B,kBAAkB;AAAA,QAClB,sBAAsB;AAAA,QACtB,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,gCAAgC;AAAA,QAChC,kBAAkB;AAAA,QAClB,0BAA0B;AAAA,QAC1B,6BAA6B;AAAA,QAC7B,qBAAqB,MAAM,KAAK,WAAW;AAAA,QAC3C,mBAAmB;AAAA,QACnB,+BAA+B;AAAA,QAC/B,wBAAwB;AAAA,QACxB,6BAA6B;AAAA,QAC7B,6BAA6B;AAAA,QAC7B,OAAO;AAAA,QACP,oBAAoB;AAAA,QACpB,UAAU;AAAA,QACV,mBAAmB;AAAA,MACrB;AAGA,WAAK,OAAO;AAAA,QACV,GAAGA;AAAA,QACH,GAAG;AAAA,MACL;AACA,WAAK,SAAS;AACd,WAAK,aAAa,iBAAiB;AACnC,WAAK,0BAA0B;AAG/B,WAAK,2CAA2C;AAChD,WAAK,6BAA6B;AAAA,IACpC;AAAA,EACF;AACA,EAAAN,WAAU,UAAUF,aAAY;;;AC5mChC,WAASS,YAAW;AAAE,IAAAA,YAAW,OAAO,UAAU,SAAU,QAAQ;AAAE,eAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AAAE,YAAI,SAAS,UAAUA,EAAC;AAAG,iBAAS,OAAO,QAAQ;AAAE,cAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,GAAG;AAAE,mBAAO,GAAG,IAAI,OAAO,GAAG;AAAA,UAAG;AAAA,QAAE;AAAA,MAAE;AAAE,aAAO;AAAA,IAAQ;AAAG,WAAOD,UAAS,MAAM,MAAM,SAAS;AAAA,EAAG;AAE5T,MAAI,oBAAoB;AAAA,IACtB,2BAA2B;AAAA,IAC3B,qBAAqB;AAAA,IACrB,0BAA0B;AAAA,EAC5B;AAEA,MAAI,wBAAwB;AAAA,IAC1B,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AACA,MAAI,sBAAsB;AAAA,IACxB,YAAY;AAAA,IACZ,SAAS;AAAA,EACX;AACA,MAAI,UAAU;AACd,MAAI,QAAQ,MAAM,UAAU;AAC5B,MAAI,WAAW,OAAO,UAAU;AASjB,WAAR,YAA6B,MAAM,SAAS;AACjD,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,uDAAuD,IAAI;AAAA,IAC7E;AAEA,cAAUA,UAAS;AAAA,MACjB,iBAAiB;AAAA,MACjB,MAAM;AAAA,IACR,GAAG,OAAO;AACV,QAAI,OAAO,CAAC;AACZ,QAAI;AACJ,QAAI,eAAe,CAAC;AACpB,QAAI,oBAAoB,CAAC;AAEzB,aAASC,KAAI,GAAGC,KAAI,KAAK,SAAS,QAAQD,KAAIC,IAAGD,MAAK;AACpD,UAAI,UAAU,KAAK,SAASA,EAAC;AAE7B,UAAI,sBAAsB,QAAQ,IAAI,KAAK,QAAQ,YAAY,CAAC,QAAQ,iBAAiB;AACvF;AAAA,MACF;AAEA,oBAAc,QAAQ,QAAQ,QAAQ;AAEtC,UAAI,eAAe,CAAC,kBAAkB,WAAW,GAAG;AAClD,qBAAa,KAAK,WAAW;AAC7B,0BAAkB,WAAW,IAAI;AAAA,MACnC;AAAA,IACF;AAIA,aAAS,KAAK,GAAG,KAAK,aAAa,QAAQ,KAAK,IAAI,MAAM;AACxD,oBAAc,aAAa,EAAE;AAC7B,UAAI,QAAQ,aAAa,MAAM,aAAa,OAAO;AAEnD,UAAI,SAAS,MAAM;AACjB,aAAK,WAAW,IAAI;AAAA,MACtB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAUO,WAAS,aAAa,MAAM,WAAW,SAAS;AACrD,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,wDAAwD,IAAI;AAAA,IAC9E;AAEA,QAAI,CAAC,aAAa,SAAS,KAAK,SAAS,MAAM,mBAAmB;AAChE,YAAM,IAAI,MAAM,mEAAmE,SAAS;AAAA,IAC9F;AAEA,cAAUD,UAAS;AAAA,MACjB,iBAAiB;AAAA,MACjB,MAAM;AAAA,IACR,GAAG,OAAO;AACV,QAAI,UAAU,KAAK,SAAS,SAAS;AAErC,QAAI,CAAC,WAAW,QAAQ,YAAY,CAAC,QAAQ,iBAAiB;AAC5D,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,kBAAkB,SAAS,KAAK,OAAO,CAAC,GAAG;AAC9C,aAAO,oBAAoB,SAAS,QAAQ,IAAI;AAAA,IAClD;AAGA,QAAI,OAAO,CAAC;AACZ,QAAI,YAAY;AAEhB,aAASC,KAAI,GAAGC,KAAI,QAAQ,QAAQD,KAAIC,IAAGD,MAAK;AAC9C,UAAI,QAAQA,EAAC,EAAE,YAAY,CAAC,QAAQ,iBAAiB;AACnD;AAAA,MACF;AAEA,UAAI,aAAa,QAAQA,EAAC,EAAE,SAAS,SAAS;AAC5C,oBAAY;AAAA,MACd;AAEA,UAAI,QAAQ,oBAAoB,QAAQA,EAAC,GAAG,QAAQ,IAAI;AAExD,UAAI,SAAS,MAAM;AACjB,eAAO,KAAK,OAAO,KAAK;AAAA,MAC1B;AAAA,IACF;AAIA,QAAI,aAAa,KAAK,WAAW,GAAG;AAClC,aAAO,KAAK,CAAC;AAAA,IACf;AAEA,WAAO,KAAK,SAAS,IAAI,OAAO;AAAA,EAClC;AAQA,WAAS,oBAAoB,SAAS,MAAM;AAC1C,QAAI,QAAQ;AACZ,QAAI,OAAO,QAAQ;AAEnB,QAAI,SAAS,cAAc;AACzB,UAAI,QAAQ,QAAQ,QAAQ;AAC1B,gBAAQ,QAAQ,QAAQ,QAAQ,aAAa,EAAE;AAAA,MACjD;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,mBAAmB;AAC9B,cAAQ,CAAC;AAET,eAASA,KAAI,GAAGC,KAAI,QAAQ,QAAQ,QAAQD,KAAIC,IAAGD,MAAK;AACtD,YAAI,QAAQ,QAAQA,EAAC,EAAE,UAAU;AAC/B,gBAAM,KAAK,QAAQ,QAAQA,EAAC,EAAE,KAAK;AAAA,QACrC;AAAA,MACF;AAEA,UAAI,MAAM,WAAW,GAAG;AACtB,gBAAQ;AAAA,MACV;AAEA,aAAO;AAAA,IACT;AAIA,QAAI,SAAS,UAAU,WAAW,SAAS;AACzC,UAAI,QAAQ,UAAU;AACpB,gBAAQ,MAAM,KAAK,QAAQ,KAAK;AAEhC,YAAI,MAAM,WAAW,GAAG;AACtB,kBAAQ;AAAA,QACV;AAAA,MACF,OAAO;AAEL,gBAAQ,QAAQ,MAAM,CAAC;AAAA,MACzB;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,oBAAoB,IAAI,GAAG;AAC9B,cAAQ,OAAO,QAAQ,MAAM,QAAQ,SAAS,EAAE,IAAI,QAAQ;AAAA,IAC9D,WAAW,QAAQ,SAAS;AAC1B,UAAI,SAAS,cAAc,CAAC,QAAQ,aAAa,OAAO,GAAG;AACzD,gBAAQ;AAAA,MACV,OAAO;AACL,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAGA,cAAY,eAAe;;;ACjM3B,MAAME,eAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAIA,MAAqB,OAArB,cAAkC,WAAW;AAAA,IAC3C,YAAY,MAAM,MAAM;AACtB,YAAM,MAAM,IAAI;AAChB,WAAK,OAAO;AACZ,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AAGb,YAAMC,kBAAiB;AAAA,QACrB,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,uBAAuB;AAAA,MACzB;AAGA,WAAK,OAAO;AAAA,QACV,GAAGA;AAAA,QACH,GAAG;AAAA,MACL;AACA,WAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI;AACvD,WAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI;AACzD,WAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AACjD,WAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;AACrD,WAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;AAAA,IACvD;AAAA,IACA,oBAAoB;AAClB,UAAI,KAAK,KAAK,iBAAiB;AAC7B,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAAA,IACA,cAAc,QAAQ;AACpB,UAAI,KAAK,KAAK,iBAAiB;AAC7B,aAAK,gBAAgB,MAAM;AAAA,MAC7B;AACA,UAAI,KAAK,KAAK,iBAAiB;AAC7B,aAAK,KAAK,OAAO;AAAA,MACnB;AAAA,IACF;AAAA,IACA,iBAAiB,IAAI;AACnB,UAAI,KAAK,KAAK,uBAAuB;AACnC,WAAG,eAAe;AAClB,cAAM,WAAW,gBAAQ,GAAG,OAAO,QAAQ;AAC3C,cAAM,iBAAiB,CAAC;AACxB,iBAAS,QAAQ,QAAM;AACrB,gBAAM,WAAW,GAAG,YAAY,YAAY,GAAG,YAAY,WAAW,GAAG,SAAS;AAClF,cAAI,YAAY,CAAC,GAAG,UAAU;AAC5B,eAAG,WAAW;AACd,2BAAe,KAAK,EAAE;AAAA,UACxB;AAAA,QACF,CAAC;AACD,aAAK,KAAK,OAAO,EAAE,KAAK,MAAM;AAC5B,yBAAe,QAAQ,YAAU;AAC/B,mBAAO,WAAW;AAAA,UACpB,CAAC;AAAA,QACH,GAAG,SAAO;AACR,yBAAe,QAAQ,YAAU;AAC/B,mBAAO,WAAW;AAAA,UACpB,CAAC;AAED,iBAAO,QAAQ,OAAO,GAAG;AAAA,QAC3B,CAAC,EAAE,MAAM,SAAO;AACd,eAAK,KAAK,IAAI,IAAI,SAAS,IAAI,WAAW,GAAG;AAAA,QAC/C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,gBAAgB,QAAQ;AACtB,WAAK,KAAK,IAAI,4CAA4C;AAC1D,WAAK,KAAK,IAAI,MAAM;AACpB,UAAI,cAAc,KAAK,KAAK,cAAc,UAAU,KAAK,KAAK,UAAU,IAAI;AAC5E,UAAI,aAAa;AAIf,YAAI;AACJ,YAAI;AACF,0BAAgB,KAAK,MAAM,YAAY,KAAK;AAAA,QAC9C,SAAS,KAAK;AAAA,QAEd;AACA,YAAI,CAAC,MAAM,QAAQ,aAAa,GAAG;AACjC,0BAAgB,CAAC;AAAA,QACnB;AACA,sBAAc,KAAK,MAAM;AACzB,oBAAY,QAAQ,KAAK,UAAU,aAAa;AAChD;AAAA,MACF;AACA,oBAAc,SAAS,cAAc,OAAO;AAC5C,kBAAY,OAAO,KAAK,KAAK;AAC7B,kBAAY,OAAO;AACnB,kBAAY,QAAQ,KAAK,UAAU,CAAC,MAAM,CAAC;AAC3C,WAAK,KAAK,YAAY,WAAW;AAAA,IACnC;AAAA,IACA,kBAAkB;AAChB,YAAM,WAAW,YAAY,KAAK,IAAI;AAGtC,aAAO,SAAS,KAAK,KAAK,UAAU;AACpC,WAAK,KAAK,QAAQ,QAAQ;AAAA,IAC5B;AAAA,IACA,UAAU;AACR,WAAK,OAAO,uBAAe,KAAK,KAAK,MAAM;AAC3C,UAAI,CAAC,KAAK,QAAQ,KAAK,KAAK,aAAa,QAAQ;AAC/C,aAAK,KAAK,IAAI,6FAA6F,OAAO;AAClH;AAAA,MACF;AACA,WAAK,KAAK,iBAAiB,UAAU,KAAK,gBAAgB;AAC1D,WAAK,KAAK,GAAG,UAAU,KAAK,iBAAiB;AAC7C,WAAK,KAAK,GAAG,YAAY,KAAK,aAAa;AAAA,IAC7C;AAAA,IACA,YAAY;AACV,WAAK,KAAK,oBAAoB,UAAU,KAAK,gBAAgB;AAC7D,WAAK,KAAK,IAAI,UAAU,KAAK,iBAAiB;AAC9C,WAAK,KAAK,IAAI,YAAY,KAAK,aAAa;AAAA,IAC9C;AAAA,EACF;AACA,OAAK,UAAUD,aAAY;;;AChI3B,MAAOE,kBAAQ;AAAA,IACb,SAAS;AAAA,MACP,aAAa;AAAA,IACf;AAAA,EACF;;;ACDA,MAAMC,gBAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAEA,MAAqB,YAArB,cAAuC,iBAAS;AAAA,IAC9C,YAAY,MAAM,MAAM;AACtB,YAAM,MAAM,IAAI;AAChB,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AACb,WAAK,OAAO;AACZ,WAAK,gBAAgBC;AAGrB,YAAMC,kBAAiB;AAAA,QACrB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,MACb;AAGA,WAAK,OAAO;AAAA,QACV,GAAGA;AAAA,QACH,GAAG;AAAA,MACL;AACA,WAAK,SAAS;AACd,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,WAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI;AACzD,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAAA,IAC/C;AAAA,IACA,SAAS,OAAO;AACd,YAAM,cAAc,MAAM,IAAI,WAAS;AAAA,QACrC,QAAQ,KAAK;AAAA,QACb,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,QACX,MAAM;AAAA,MACR,EAAE;AACF,UAAI;AACF,aAAK,KAAK,SAAS,WAAW;AAAA,MAChC,SAAS,KAAK;AACZ,aAAK,KAAK,IAAI,GAAG;AAAA,MACnB;AAAA,IACF;AAAA,IACA,kBAAkB,OAAO;AACvB,WAAK,KAAK,IAAI,iDAAiD;AAC/D,YAAM,QAAQ,gBAAQ,MAAM,OAAO,KAAK;AACxC,WAAK,SAAS,KAAK;AAQnB,YAAM,OAAO,QAAQ;AAAA,IACvB;AAAA,IAEA,cAAc;AACZ,WAAK,MAAM,MAAM;AAAA,IACnB;AAAA,IACA,SAAS;AAEP,YAAM,mBAAmB;AAAA,QACvB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AACA,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,KAAK;AACd,YAAM,SAAS,aAAa,mBAAmB,aAAa,iBAAiB,KAAK,GAAG,IAAI;AACzF,aAAO,EAAE,OAAO;AAAA,QACd,WAAW;AAAA,MACb,GAAG,EAAE,SAAS;AAAA,QACZ,WAAW;AAAA,QACX,OAAO,KAAK,KAAK,UAAU;AAAA,QAC3B,MAAM;AAAA,QACN,MAAM,KAAK,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,QACf,UAAU,aAAa,qBAAqB;AAAA,QAC5C;AAAA,QACA,KAAK,WAAS;AACZ,eAAK,QAAQ;AAAA,QACf;AAAA,MACF,CAAC,GAAG,KAAK,KAAK,UAAU,EAAE,UAAU;AAAA,QAClC,WAAW;AAAA,QACX,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,GAAG,KAAK,KAAK,aAAa,CAAC,CAAC;AAAA,IAC9B;AAAA,IACA,UAAU;AACR,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK;AACT,UAAI,QAAQ;AACV,aAAK,MAAM,QAAQ,IAAI;AAAA,MACzB;AAAA,IACF;AAAA,IACA,YAAY;AACV,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AACA,YAAU,UAAUF,cAAY;;;AC3GhC,MAAM,qBAAN,cAAiC,MAAM;AAAA,IACrC,cAAc;AACZ,YAAM,GAAG,SAAS;AAClB,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AACA,MAAO,6BAAQ;;;ACNf,qBAAkB;;;ACAlB,MAAM,iBAAiB,OAAO,UAAU;AAExC,MAAM,UAAU,WAAS,eAAe,KAAK,KAAK,MAAM;AAExD,MAAM,gBAAgB,oBAAI,IAAI;AAAA,IAC7B;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACD,CAAC;AAEc,WAAR,eAAgCG,QAAO;AAC7C,UAAM,UAAUA,UACZ,QAAQA,MAAK,KACbA,OAAM,SAAS,eACf,OAAOA,OAAM,YAAY;AAE7B,QAAI,CAAC,SAAS;AACb,aAAO;AAAA,IACR;AAIA,QAAIA,OAAM,YAAY,eAAe;AACpC,aAAOA,OAAM,UAAU;AAAA,IACxB;AAEA,WAAO,cAAc,IAAIA,OAAM,OAAO;AAAA,EACvC;;;AD5BO,MAAMC,cAAN,cAAyB,MAAM;AAAA,IACrC,YAAY,SAAS;AACpB,YAAM;AAEN,UAAI,mBAAmB,OAAO;AAC7B,aAAK,gBAAgB;AACrB,SAAC,EAAC,QAAO,IAAI;AAAA,MACd,OAAO;AACN,aAAK,gBAAgB,IAAI,MAAM,OAAO;AACtC,aAAK,cAAc,QAAQ,KAAK;AAAA,MACjC;AAEA,WAAK,OAAO;AACZ,WAAK,UAAU;AAAA,IAChB;AAAA,EACD;AAEA,MAAM,0BAA0B,CAACC,QAAO,eAAe,YAAY;AAElE,UAAM,cAAc,QAAQ,WAAW,gBAAgB;AAEvD,IAAAA,OAAM,gBAAgB;AACtB,IAAAA,OAAM,cAAc;AACpB,WAAOA;AAAA,EACR;AAEA,iBAAO,OAA8B,OAAO,SAAS;AACpD,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,gBAAU;AAAA,QACT,kBAAkB;AAAA,QAAC;AAAA,QACnB,SAAS;AAAA,QACT,aAAa,MAAM;AAAA,QACnB,GAAG;AAAA,MACJ;AAEA,YAAM,YAAY,aAAAC,QAAM,UAAU,OAAO;AAEzC,YAAM,eAAe,MAAM;AAC1B,kBAAU,KAAK;AACf,eAAO,QAAQ,QAAQ,MAAM;AAAA,MAC9B;AAEA,UAAI,QAAQ,UAAU,CAAC,QAAQ,OAAO,SAAS;AAC9C,gBAAQ,OAAO,iBAAiB,SAAS,cAAc,EAAC,MAAM,KAAI,CAAC;AAAA,MACpE;AAEA,YAAM,UAAU,MAAM;AACrB,gBAAQ,QAAQ,oBAAoB,SAAS,YAAY;AACzD,kBAAU,KAAK;AAAA,MAChB;AAEA,gBAAU,QAAQ,OAAM,kBAAiB;AACxC,YAAI;AACH,gBAAM,SAAS,MAAM,MAAM,aAAa;AACxC,kBAAQ;AACR,kBAAQ,MAAM;AAAA,QACf,SAASD,QAAO;AACf,cAAI;AACH,gBAAI,EAAEA,kBAAiB,QAAQ;AAC9B,oBAAM,IAAI,UAAU,0BAA0BA,MAAK,kCAAkC;AAAA,YACtF;AAEA,gBAAIA,kBAAiBD,aAAY;AAChC,oBAAMC,OAAM;AAAA,YACb;AAEA,gBAAIA,kBAAiB,aAAa,CAAC,eAAeA,MAAK,GAAG;AACzD,oBAAMA;AAAA,YACP;AAEA,oCAAwBA,QAAO,eAAe,OAAO;AAErD,gBAAI,CAAE,MAAM,QAAQ,YAAYA,MAAK,GAAI;AACxC,wBAAU,KAAK;AACf,qBAAOA,MAAK;AAAA,YACb;AAEA,kBAAM,QAAQ,gBAAgBA,MAAK;AAEnC,gBAAI,CAAC,UAAU,MAAMA,MAAK,GAAG;AAC5B,oBAAM,UAAU,UAAU;AAAA,YAC3B;AAAA,UACD,SAAS,YAAY;AACpB,oCAAwB,YAAY,eAAe,OAAO;AAC1D,oBAAQ;AACR,mBAAO,UAAU;AAAA,UAClB;AAAA,QACD;AAAA,MACD,CAAC;AAAA,IACF,CAAC;AAAA,EACF;;;AE7FA,MAAM,eAAN,cAA2B,MAAM;AAAA,IAC/B,YAAYE,QAAO,KAAK;AACtB,UAAI,QAAQ,QAAQ;AAClB,cAAM;AAAA,MACR;AACA,YAAM,uGAAuG;AAC7G,WAAK,QAAQA;AACb,WAAK,iBAAiB;AACtB,WAAK,UAAU;AAAA,IACjB;AAAA,EACF;AACA,MAAO,uBAAQ;;;ACNA,WAAR,wBAAyC;AAC9C,WAAO,MAAM,GAAG,SAAS,EAAE,MAAM,SAAO;AACtC,UAAI,IAAI,SAAS,cAAc;AAC7B,cAAM;AAAA,MACR,OAAO;AACL,cAAM,IAAI,qBAAa,GAAG;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,EACH;;;ACbe,WAAR,IAAqB,QAAQ,KAAK;AACvC,WAAO,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG;AAAA,EACzD;;;ACDA,MAAM,iBAAN,cAA6B,MAAM;AAAA,IACjC,YAAY,SAAS,SAAS;AAC5B,YAAM,OAAO;AACb,WAAK,QAAQ,WAAW,OAAO,SAAS,QAAQ;AAChD,UAAI,KAAK,SAAS,IAAY,KAAK,OAAO,gBAAgB,GAAG;AAC3D,aAAK,iBAAiB,KAAK,MAAM;AAAA,MACnC,OAAO;AACL,aAAK,iBAAiB;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AACA,MAAO,yBAAQ;;;ACZf,MAAAC,mBAAqB;AACrB,WAAS,mBAAmB,UAAU,cAAc,MAAM;AACxD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI,UAAU;AACZ,eAAS,KAAK,IAAI,oBAAoB,QAAQ,EAAE;AAChD,eAAS,KAAK,KAAK,mBAAmB,MAAM;AAAA;AAAA,QAE1C;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAO,iCAAQ,iBAAAC,SAAS,oBAAoB,KAAK;AAAA,IAC/C,SAAS;AAAA,IACT,UAAU;AAAA,EACZ,CAAC;;;ACpBc,WAAR,cAA+B,KAAK;AACzC,QAAI;AAEJ,UAAM,QAAQ;AACd,UAAM,QAAQ,cAAc,MAAM,KAAK,GAAG,MAAM,OAAO,SAAS,YAAY,CAAC;AAC7E,UAAM,iBAAiB,cAAc,KAAK,GAAG,IAAI,OAAO;AACxD,WAAO,GAAG,cAAc,MAAM,IAAI;AAAA,EACpC;;;ACLA,MAAM,YAAN,cAAwB,MAAM;AAAA,IAC5B,cAAc;AACZ,YAAM,wBAAwB;AAC9B,WAAK,OAAO;AAIZ,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AACA,MAAO,oBAAQ;;;ACZf,MAAIC;AACJ,WAASC,6BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,MAAK;AACT,WAASC,4BAA2B,MAAM;AAAE,WAAO,eAAeD,QAAO,MAAM;AAAA,EAAM;AAWrF,MAAME,gBAAc;AAAA,IAClB,WAAW;AAAA,EACb;AAEA,WAAS,WAAW,KAAK;AACvB,WAAO,IAAI,QAAQ,OAAO,EAAE;AAAA,EAC9B;AACA,MAAM,aAAa;AACnB,MAAM,0BAA0B,IAAI,KAAK;AAElC,MAAM,sBAAsB;AACnC,MAAM,YAAN,cAAwB,MAAM;AAAA,IAC5B,YAAY,MAAM;AAChB,UAAI;AAAA,QACF;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,OAAO;AACb,WAAK,OAAO;AACZ,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AACA,iBAAe,mBAAmB,KAAK;AACrC,QAAI,IAAI,WAAW,qBAAqB;AACtC,YAAM,IAAI,kBAAU;AAAA,IACtB;AACA,QAAI,IAAI,IAAI;AACV,aAAO,IAAI,KAAK;AAAA,IAClB;AACA,QAAI,SAAS,+BAA+B,IAAI,MAAM,KAAK,IAAI,UAAU;AACzE,QAAI;AACJ,QAAI;AACF,gBAAU,MAAM,IAAI,KAAK;AACzB,UAAI,QAAQ,QAAS,UAAS,GAAG,MAAM,aAAa,QAAQ,OAAO;AACnE,UAAI,QAAQ,UAAW,UAAS,GAAG,MAAM,gBAAgB,QAAQ,SAAS;AAAA,IAC5E,SAAS,OAAO;AAEd,YAAM,IAAI,MAAM,QAAQ;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AACA,QAAI,IAAI,UAAU,OAAO,IAAI,UAAU,OAAO,QAAQ,SAAS;AAC7D,YAAM,IAAI,2BAAmB,QAAQ,OAAO;AAAA,IAC9C;AACA,UAAM,IAAI,UAAU;AAAA,MAClB,YAAY,IAAI;AAAA,MAChB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,oBAAiC,gBAAAD,4BAA2B,kBAAkB;AAClF,MAAI,UAAuB,gBAAAA,4BAA2B,QAAQ;AAC9D,MAAI,sBAAmC,gBAAAA,4BAA2B,oBAAoB;AACtF,MAAI,yBAAsC,gBAAAA,4BAA2B,uBAAuB;AAC5F,EAAAH,eAAc,OAAO,IAAI,gCAAgC;AACzD,MAAqB,gBAArB,MAAmC;AAAA,IACjC,YAAY,MAAM,MAAM;AAMtB,aAAO,eAAe,MAAM,wBAAwB;AAAA,QAClD,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,mBAAmB;AAAA,QAC7C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,qBAAqB;AAAA,QAC/C,UAAU;AAAA,QACV,OAAO,OAAM,UAAS;AACpB,cAAI;AACJ,cAAI;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,UACF,IAAI;AACJ,gBAAM,eAAe,KAAK,WAAW,OAAO,SAAS,aAAa,QAAQ,MAAM;AAC9E,kBAAM,IAAI,MAAM,oCAAoC;AAAA,UACtD;AACA,gBAAM,MAAM,MAAM,KAAK,KAAK,KAAK,OAAO,KAAK;AAAA,YAC3C,GAAG,KAAK,OAAO;AAAA,YACf,GAAG;AAAA,UACL,GAAG;AAAA,YACD;AAAA,UACF,CAAC;AACD,iBAAO,IAAI;AAAA,QACb;AAAA,MACF,CAAC;AACD,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,WAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI;AAEzD,MAAAC,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,IAAI,QAAQ,OAAO,SAAS,KAAK;AAAA,IACzG;AAAA,IACA,oBAAoB,SAAS;AAC3B,MAAAA,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,IAAI;AAAA,IAC5E;AAAA,IACA,CAACD,YAAW,IAAI;AACd,aAAOC,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB;AAAA,IAC/E;AAAA,IACA,IAAI,WAAW;AACb,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,KAAK,KAAK,SAAS;AACvB,YAAM,OAAO,KAAK,KAAK;AACvB,aAAO,WAAW,aAAa,UAAU,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI;AAAA,IACzE;AAAA,IACA,MAAM,QAAQ,WAAW;AACvB,UAAI,cAAc,QAAQ;AACxB,oBAAY;AAAA,MACd;AACA,YAAM,iBAAiB;AAAA,QACrB,QAAQ;AAAA,QACR,GAAI,YAAY,SAAY;AAAA;AAAA,UAE1B,gBAAgB;AAAA,QAClB;AAAA,MACF;AACA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAGA,6BAA4B,MAAM,iBAAiB,EAAE,iBAAiB;AAAA,MAC3E;AAAA,IACF;AAAA,IACA,kBAAkB,KAAK;AACrB,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM,QAAQ,KAAK,KAAK,SAAS;AACjC,YAAM,YAAY,MAAM,aAAa,CAAC;AACtC,YAAM,OAAO,KAAK,KAAK;AAGvB,UAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,MAAM,UAAU,IAAI,GAAG;AAClE,aAAK,KAAK,SAAS;AAAA,UACjB,WAAW;AAAA,YACT,GAAG;AAAA,YACH,CAAC,IAAI,GAAG,QAAQ,IAAI,MAAM;AAAA,UAC5B;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,OAAO;AACnB,UAAI;AAAA,QACF;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,UAAI;AACF,cAAM,UAAU,MAAM,KAAK,QAAQ,CAAC,IAAI;AACxC,cAAM,WAAW,MAAM,sBAAsBA,6BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG;AAAA,UACtG;AAAA,UACA;AAAA,UACA;AAAA,UACA,aAAa,KAAK,KAAK,wBAAwB;AAAA,UAC/C,MAAM,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,QACtC,CAAC;AACD,YAAI,CAAC,iBAAkB,MAAK,kBAAkB,QAAQ;AACtD,eAAO,MAAM,mBAAmB,QAAQ;AAAA,MAC1C,SAAS,KAAK;AAEZ,YAAI,IAAI,eAAe,IAAI,SAAS,wBAAwB,IAAI,SAAS,aAAc,OAAM;AAC7F,cAAM,IAAI,uBAAe,aAAa,MAAM,IAAIA,6BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI;AAAA,UAC3G,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,MAAM,IAAI,MAAM,SAAS;AAGvB,UAAI,OAAO,YAAY,UAAW,WAAU;AAAA,QAC1C,kBAAkB;AAAA,MACpB;AACA,aAAO,KAAK,QAAQ;AAAA,QAClB,GAAG;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,MAAM,KAAK,MAAM,MAAM,SAAS;AAG9B,UAAI,OAAO,YAAY,UAAW,WAAU;AAAA,QAC1C,kBAAkB;AAAA,MACpB;AACA,aAAO,KAAK,QAAQ;AAAA,QAClB,GAAG;AAAA,QACH;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,MAAM,OAAO,MAAM,MAAM,SAAS;AAGhC,UAAI,OAAO,YAAY,UAAW,WAAU;AAAA,QAC1C,kBAAkB;AAAA,MACpB;AACA,aAAO,KAAK,QAAQ;AAAA,QAClB,GAAG;AAAA,QACH;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,MAAM,iBAAiB,MAAM,SAAS,SAAS;AAC7C,UAAI,QAAQ;AACZ,UAAI;AACF,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI,WAAW,CAAC;AAChB,eAAO,MAAM,OAAO,YAAY;AAC9B,cAAI;AAEJ,gBAAM,uBAAuB,qBAAqB,KAAK,KAAK,QAAQ,KAAK,EAAE,MAAM,OAAO,SAAS,mBAAmB;AACpH,cAAI,uBAAuB,MAAM;AAC/B,iBAAK,KAAK,IAAI,mCAAmC,mBAAmB,EAAE;AACtE,mBAAOA,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,EAAE;AAAA,cACvF;AAAA,cACA,OAAO,SAAS;AAAA,cAChB;AAAA,YACF,CAAC;AAAA,UACH;AACA,gBAAM,0BAA0B,SAAS,EAAE,oBAAoB,iBAAkB;AAC/E,gBAAI;AACF,qBAAO,MAAMA,6BAA4B,OAAO,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,SAAS;AAAA,YACxG,SAAS,UAAU;AAEjB,kBAAI,SAAS,YAAa,OAAM,IAAII,YAAW,QAAQ;AACvD,kBAAI,SAAS,SAAS,KAAM,OAAM;AAClC,oBAAM,MAAM,SAAS;AACrB,oBAAM,uBAAuB,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,SAAS,IAAI,UAAU,KAAK,IAAI,cAAc,OAAO,IAAI,cAAc,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,SAAS,IAAI,UAAU;AAC9K,kBAAI,IAAI,SAAS,eAAe,CAAC,qBAAqB,EAAG,OAAM,IAAIA,YAAW,GAAG;AAIjF,oBAAM;AAAA,YACR;AAAA,UACF,GAAG;AAAA,YACD,UAAU;AAAA,UACZ,CAAC;AACD,gBAAM,cAAc,MAAM,wBAAwB;AAAA,YAChD;AAAA,YACA,UAAU;AAAA,YACV;AAAA,UACF,CAAC,EAAE,QAAQ,MAAM;AACjB,cAAI,CAAC,KAAK,KAAK,QAAQ,KAAK,EAAE,EAAG,QAAO;AAExC,eAAK,KAAK,aAAa,KAAK,IAAI;AAAA,YAC9B;AAAA,UACF,CAAC;AACD,iBAAOJ,6BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,EAAE;AAAA,YACvF,MAAM,KAAK,KAAK,QAAQ,KAAK,EAAE;AAAA;AAAA,YAE/B,OAAO,SAAS;AAAA,YAChB;AAAA,UACF,CAAC;AAAA,QACH,GAAG;AAAA,UACD,SAAS;AAAA,UACT;AAAA,UACA,iBAAiB,SAAO,KAAK,KAAK,IAAI,2BAA2B,IAAI,OAAO,IAAI,SAAS;AAAA,QAC3F,CAAC;AAAA,MACH,SAAS,KAAK;AAGZ,YAAI,IAAI,SAAS,cAAc;AAE7B,iBAAO;AAAA,QACT;AACA,aAAK,KAAK,KAAK,gBAAgB,MAAM,GAAG;AACxC,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,WAAS,SAAS,KAAK;AACrB,QAAI,kBAAkB,KAAK,GAAG,GAAG;AAC/B,aAAO;AAAA,IACT;AACA,WAAO,GAAG,KAAK,QAAQ,IAAI,GAAG;AAAA,EAChC;AACA,iBAAe,wBAAwB,OAAO;AAC5C,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI;AACJ,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,KAAK,KAAK,SAAS;AACvB,QAAI;AACF,aAAO,MAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC5C,cAAM,QAAQ,KAAK;AACnB,cAAM,OAAO,cAAc,KAAK,OAAO,YAAY;AACnD,YAAI;AACJ,YAAI;AACJ,YAAI;AACJ,YAAI;AAAA,UACF;AAAA,QACF,IAAI;AACJ,cAAM,aAAa,CAAC,QAAQ,YAAY;AACtC,cAAI,UAAU,QAAQ,OAAO,eAAe,OAAO,MAAM;AACvD,gBAAIK;AACJ,iBAAK,KAAK,IAAI,gBAAgB,MAAM,eAAe,KAAK,EAAE,iCAAiC,QAAQA,WAAU,WAAW,OAAO,SAASA,SAAQ,UAAU,CAAC,IAAI,SAAS;AACxK;AAAA,UACF;AACA,iBAAO,KAAK,KAAK,UAAU;AAAA,YACzB;AAAA,YACA,SAAS,WAAW,OAAO,UAAU,CAAC;AAAA,UACxC,CAAC,CAAC;AAAA,QACJ;AACA,iBAAS,YAAY;AACnB,cAAI,CAAC,aAAa,iBAAkB;AACpC,cAAI,SAAU,YAAW,OAAO;AAAA,cAAO,YAAW,QAAQ;AAAA,QAC5D;AACA,cAAM,kBAAkB,YAAY;AAClC,cAAI,sBAAuB,uBAAsB,MAAM;AACvD,kCAAwB,IAAI,gBAAgB;AAC5C,gBAAM,eAAe,SAAO;AAC1B,gBAAI;AAEJ,iBAAK,KAAK,aAAa,KAAK,IAAI;AAAA,cAC9B,aAAa;AAAA,YACf,CAAC;AACD,aAAC,wBAAwB,0BAA0B,QAAQ,sBAAsB,SAAS,QAAQ,sBAAsB,MAAM;AAC9H,mBAAO,GAAG;AAAA,UACZ;AAGA,mBAAS,uBAAuB;AAC9B,yBAAa,eAAe;AAC5B,gBAAI,SAAU;AACd,8BAAkB,WAAW,MAAM,aAAa,IAAI,MAAM,mDAAmD,CAAC,GAAG,uBAAuB;AAAA,UAC1I;AACA,cAAI;AACF,kBAAM,MAAM,oBAAoB,YAAY;AAC1C,oBAAM,qBAAqB;AAAA;AAAA,gBAE3B,IAAI,QAAQ,CAACC,IAAG,iBAAiB;AAC/B,2BAAS,IAAI,UAAU,GAAG,IAAI,QAAQ,KAAK,EAAE;AAC7C,uCAAqB;AACrB,yBAAO,iBAAiB,SAAS,MAAM;AACrC,6BAAS;AACT,iCAAa,IAAI,MAAM,4BAA4B,CAAC;AAAA,kBACtD,CAAC;AACD,yBAAO,iBAAiB,SAAS,CAAAC,WAAS;AACxC,wBAAI;AACJ,yBAAK,KAAK,IAAI,0BAA0B,KAAK,UAAUA,MAAK,CAAC,oBAAoB,SAAS;AAC1F,qBAAC,WAAW,WAAW,QAAQ,SAAS,MAAM;AAAA,kBAChD,CAAC;AACD,yBAAO,iBAAiB,QAAQ,MAAM;AACpC,8BAAU;AAAA,kBACZ,CAAC;AACD,yBAAO,iBAAiB,WAAW,CAAAC,OAAK;AACtC,yCAAqB;AACrB,wBAAI;AACF,4BAAM;AAAA,wBACJ;AAAA,wBACA;AAAA,sBACF,IAAI,KAAK,MAAMA,GAAE,IAAI;AACrB,8BAAQ,QAAQ;AAAA,wBACd,KAAK,YACH;AACE,qDAAmB,MAAM,SAAS,KAAK,KAAK,QAAQ,KAAK,EAAE,CAAC;AAC5D;AAAA,wBACF;AAAA,wBACF,KAAK,WACH;AACE,8BAAI,mBAAmB,uBAAuB,oBAAoB;AAElE,gCAAM,QAAQ,oBAAoB,QAAQ,aAAa,OAAO,SAAS,kBAAkB;AACzF,+BAAK,KAAK,KAAK,kBAAkB,KAAK,KAAK,QAAQ,KAAK,EAAE,GAAG;AAAA,4BAC3D,WAAW,QAAQ;AAAA,4BACnB,SAAS,yBAAyB,qBAAqB,QAAQ,aAAa,OAAO,SAAS,mBAAmB,WAAW,OAAO,wBAAwB;AAAA,4BACzJ,MAAM,OAAO,KAAK,MAAM,IAAI,IAAI;AAAA,0BAClC,CAAC;AACD,2BAAC,yBAAyB,0BAA0B,QAAQ,uBAAuB,SAAS,QAAQ,uBAAuB,MAAM;AACjI,kCAAQ;AACR;AAAA,wBACF;AAAA,wBACF,KAAK,SACH;AACE,gCAAM;AAAA,4BACJ;AAAA,0BACF,IAAI,QAAQ;AACZ,gCAAM,OAAO,OAAO,IAAI,MAAM,OAAO,GAAG;AAAA,4BACtC,OAAO,QAAQ;AAAA,0BACjB,CAAC;AAAA,wBACH;AAAA,wBACF;AACE,+BAAK,KAAK,IAAI,mCAAmC,MAAM,IAAI,SAAS;AAAA,sBACxE;AAAA,oBACF,SAAS,KAAK;AACZ,mCAAa,GAAG;AAAA,oBAClB;AAAA,kBACF,CAAC;AACD,wBAAM,cAAc,MAAM;AACxB,yBAAK,KAAK,IAAI,kBAAkB,KAAK,EAAE,IAAI,MAAM;AACjD,iCAAa,eAAe;AAC5B,wBAAI,OAAQ,QAAO,MAAM;AACzB,6BAAS;AAAA,kBACX;AACA,wCAAsB,OAAO,iBAAiB,SAAS,MAAM;AAC3D,gCAAY;AAAA,kBACd,CAAC;AAAA,gBACH,CAAC;AAAA;AACD,oBAAM,OAAO,oBAAoB;AAAA,gBAC/B,SAAS;AAAA,gBACT,QAAQ,sBAAsB;AAAA,gBAC9B,iBAAiB,MAAM;AACrB,sBAAI,sBAAsB,OAAO,QAAS;AAC1C,uBAAK,KAAK,IAAI,sBAAsB,KAAK,EAAE,IAAI,MAAM;AAAA,gBACvD;AAAA,cACF,CAAC;AAAA,YACH,CAAC,EAAE,EAAE,QAAQ,sBAAsB,MAAM;AAAA,UAC3C,SAAS,KAAK;AACZ,gBAAI,sBAAsB,OAAO,QAAS;AAC1C,yBAAa,GAAG;AAAA,UAClB;AAAA,QACF;AACA,cAAM,QAAQ,oBAAkB;AAC9B,cAAI,CAAC,aAAa,iBAAkB;AACpC,qBAAW;AACX,cAAI,OAAQ,WAAU;AACtB,cAAI,gBAAgB;AAClB,gBAAI;AAEJ,aAAC,yBAAyB,0BAA0B,QAAQ,uBAAuB,SAAS,QAAQ,uBAAuB,MAAM;AAAA,UACnI,OAAO;AAGL,4BAAgB;AAAA,UAClB;AAAA,QACF;AACA,cAAM,eAAe,gBAAc;AACjC,cAAI;AACJ,cAAI,CAAC,aAAa,uBAAwB;AAC1C,cAAI,WAAW,OAAO,KAAK,GAAI;AAC/B,qBAAW,QAAQ;AACnB,WAAC,yBAAyB,0BAA0B,QAAQ,uBAAuB,SAAS,QAAQ,uBAAuB,MAAM;AACjI,eAAK,KAAK,IAAI,UAAU,KAAK,EAAE,gBAAgB,MAAM;AACrD,kBAAQ;AAAA,QACV;AACA,cAAM,cAAc,WAAS;AAC3B,cAAI;AACJ,cAAI;AAAA,YACF;AAAA,UACF,IAAI;AACJ,cAAI,WAAW,QAAQ;AACrB,uBAAW,QAAQ;AAAA,UACrB;AACA,WAAC,yBAAyB,0BAA0B,QAAQ,uBAAuB,SAAS,QAAQ,uBAAuB,MAAM;AACjI,eAAK,KAAK,IAAI,UAAU,KAAK,EAAE,iBAAiB,MAAM;AACtD,kBAAQ;AAAA,QACV;AACA,cAAM,qBAAqB,CAAC,cAAc,mBAAmB;AAC3D,cAAI,iBAAiB,KAAK,GAAI;AAC9B,gBAAM,cAAc;AAAA,QACtB;AACA,cAAM,aAAa,MAAM,MAAM,IAAI;AACnC,cAAM,cAAc,MAAM,MAAM,KAAK;AACrC,aAAK,KAAK,GAAG,gBAAgB,YAAY;AACzC,aAAK,KAAK,GAAG,cAAc,WAAW;AACtC,aAAK,KAAK,GAAG,gBAAgB,kBAAkB;AAC/C,aAAK,KAAK,GAAG,aAAa,UAAU;AACpC,aAAK,KAAK,GAAG,cAAc,WAAW;AACtC,8BAAsB,MAAM;AAC1B,eAAK,KAAK,IAAI,gBAAgB,YAAY;AAC1C,eAAK,KAAK,IAAI,cAAc,WAAW;AACvC,eAAK,KAAK,IAAI,gBAAgB,kBAAkB;AAChD,eAAK,KAAK,IAAI,aAAa,UAAU;AACrC,eAAK,KAAK,IAAI,cAAc,WAAW;AAAA,QACzC;AACA,eAAO,iBAAiB,SAAS,MAAM;AACrC,cAAI;AACJ,WAAC,yBAAyB,0BAA0B,QAAQ,uBAAuB,MAAM;AAAA,QAC3F,CAAC;AACD,wBAAgB;AAAA,MAClB,CAAC;AAAA,IACH,UAAE;AAEA,6BAAuB,QAAQ,oBAAoB;AAAA,IACrD;AAAA,EACF;AACA,gBAAc,UAAUL,cAAY;;;AC1fpC,MAAAM,4BAAe;AANf,MAAIC;AAAJ,MAAiBC;AACjB,WAASC,8BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,OAAK;AACT,WAASC,6BAA2B,MAAM;AAAE,WAAO,eAAeD,SAAO,MAAM;AAAA,EAAM;AAIrF,MAAI,UAAuB,gBAAAC,6BAA2B,QAAQ;AAC9D,MAAIC,YAAwB,gBAAAD,6BAA2B,SAAS;AAChE,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,iBAA8B,gBAAAA,6BAA2B,eAAe;AAC5E,EAAAJ,eAAc,OAAO,IAAI,sBAAsB;AAC/C,EAAAC,gBAAe,OAAO,IAAI,sBAAsB;AAChD,MAAqB,aAArB,MAAgC;AAAA,IAC9B,YAAY,MAAM;AAChB,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO,CAAC;AAAA,MACV,CAAC;AACD,aAAO,eAAe,MAAMI,WAAU;AAAA,QACpC,UAAU;AAAA,QACV,WAAO,0BAAAC,SAAG;AAAA,MACZ,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,UAAU;AAAA,QACV,OAAO,CAAAC,OAAK;AACV,cAAI;AACF,kBAAM,UAAU,KAAK,MAAMA,GAAE,IAAI;AACjC,iBAAK,KAAK,QAAQ,QAAQ,QAAQ,OAAO;AAAA,UAC3C,SAAS,KAAK;AAEZ,oBAAQ,IAAI,GAAG;AAAA,UACjB;AAAA,QACF;AAAA,MACF,CAAC;AACD,WAAK,OAAO;AACZ,UAAI,CAAC,QAAQ,KAAK,aAAa,OAAO;AACpC,aAAK,KAAK;AAAA,MACZ;AAAA,IACF;AAAA,IACA,IAAI,SAAS;AACX,aAAOL,8BAA4B,MAAM,OAAO,EAAE,OAAO;AAAA,IAC3D;AAAA,IACA,CAACF,YAAW,IAAI;AACd,aAAOE,8BAA4B,MAAM,OAAO,EAAE,OAAO;AAAA,IAC3D;AAAA,IACA,CAACD,aAAY,IAAI;AACf,aAAOC,8BAA4B,MAAM,OAAO,EAAE,OAAO;AAAA,IAC3D;AAAA,IACA,OAAO;AACL,UAAIA,8BAA4B,MAAM,OAAO,EAAE,OAAO,KAAK,KAAM;AACjE,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI,IAAI,UAAU,KAAK,KAAK,MAAM;AACpF,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM;AACjE,QAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI;AACtD,eAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,SAAS,KAAKA,8BAA4B,MAAM,OAAO,EAAE,OAAO,GAAG;AAC5H,gBAAM,QAAQA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,MAAM;AACxE,eAAK,KAAK,MAAM,QAAQ,MAAM,OAAO;AAAA,QACvC;AAAA,MACF;AACA,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,UAAU,MAAM;AAClE,QAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI;AACtD,QAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI;AAAA,MACxD;AACA,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,YAAYA,8BAA4B,MAAM,cAAc,EAAE,cAAc;AAAA,IAClI;AAAA,IACA,QAAQ;AACN,UAAI;AACJ,OAAC,wBAAwBA,8BAA4B,MAAM,OAAO,EAAE,OAAO,MAAM,QAAQ,sBAAsB,MAAM;AAAA,IACvH;AAAA,IACA,KAAK,QAAQ,SAAS;AAGpB,UAAI,CAACA,8BAA4B,MAAM,OAAO,EAAE,OAAO,GAAG;AACxD,QAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK;AAAA,UACvD;AAAA,UACA;AAAA,QACF,CAAC;AACD;AAAA,MACF;AACA,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,UAAU;AAAA,QACtE;AAAA,QACA;AAAA,MACF,CAAC,CAAC;AAAA,IACJ;AAAA,IACA,GAAG,QAAQ,SAAS;AAClB,MAAAA,8BAA4B,MAAMG,SAAQ,EAAEA,SAAQ,EAAE,GAAG,QAAQ,OAAO;AAAA,IAC1E;AAAA,IACA,KAAK,QAAQ,SAAS;AACpB,MAAAH,8BAA4B,MAAMG,SAAQ,EAAEA,SAAQ,EAAE,KAAK,QAAQ,OAAO;AAAA,IAC5E;AAAA,IACA,KAAK,QAAQ,SAAS;AACpB,MAAAH,8BAA4B,MAAMG,SAAQ,EAAEA,SAAQ,EAAE,KAAK,QAAQ,OAAO;AAAA,IAC5E;AAAA,EACF;;;ACtGA,WAASG,8BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,OAAK;AACT,WAASC,6BAA2B,MAAM;AAAE,WAAO,eAAeD,SAAO,MAAM;AAAA,EAAM;AACrF,MAAI,QAAqB,gBAAAC,6BAA2B,MAAM;AAC1D,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAK9D,MAAqB,eAArB,MAAkC;AAAA,IAChC,YAAY,MAAM;AAChB,aAAO,eAAe,MAAM,OAAO;AAAA,QACjC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO,CAAC;AAAA,MACV,CAAC;AACD,MAAAF,8BAA4B,MAAM,KAAK,EAAE,KAAK,IAAI;AAAA,IACpD;AAAA,IACA,GAAG,OAAOG,KAAI;AACZ,MAAAH,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAOG,GAAE,CAAC;AACpE,aAAOH,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,GAAG,OAAOG,GAAE;AAAA,IACrE;AAAA,IACA,SAAS;AACP,iBAAW,CAAC,OAAOA,GAAE,KAAKH,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG;AACvF,QAAAA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,IAAI,OAAOG,GAAE;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,YAAY,QAAQ,IAAI;AACtB,WAAK,GAAG,gBAAgB,CAAC,cAAc,aAAa;AAClD,YAAI,WAAW,cAAc;AAC3B,aAAG,QAAQ;AAAA,QACb;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,aAAa,QAAQ,IAAI;AACvB,WAAK,GAAG,gBAAgB,UAAQ;AAC9B,YAAI,WAAW,KAAK,GAAI,IAAG,KAAK,EAAE;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,QAAQ,IAAI;AAClB,WAAK,GAAG,gBAAgB,CAAC,cAAc,aAAa;AAClD,YAAI,WAAW,cAAc;AAE3B,aAAG,QAAQ;AAAA,QACb;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,QAAQ,IAAI;AAClB,WAAK,GAAG,gBAAgB,kBAAgB;AACtC,YAAI,WAAW,cAAc;AAC3B,aAAG;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,WAAW,QAAQ,IAAI;AACrB,WAAK,GAAG,aAAa,MAAM;AACzB,YAAI,CAACH,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,EAAG;AACtE,WAAG;AAAA,MACL,CAAC;AAAA,IACH;AAAA,IACA,WAAW,QAAQ,IAAI;AACrB,WAAK,GAAG,aAAa,MAAM;AACzB,YAAI,CAACA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,EAAG;AACtE,WAAG;AAAA,MACL,CAAC;AAAA,IACH;AAAA,IACA,YAAY,QAAQ,cAAc;AAChC,UAAI,QAAQ;AACZ,WAAK,GAAG,cAAc,WAAY;AAChC,YAAI,CAACA,8BAA4B,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,EAAG;AACvE,qBAAa,GAAG,SAAS;AAAA,MAC3B,CAAC;AAAA,IACH;AAAA,IACA,YAAY,QAAQ,IAAI;AACtB,WAAK,GAAG,cAAc,MAAM;AAC1B,YAAI,CAACA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,EAAG;AACtE,WAAG;AAAA,MACL,CAAC;AAAA,IACH;AAAA,EACF;;;AClFA,WAASI,8BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,OAAK;AACT,WAASC,6BAA2B,MAAM;AAAE,WAAO,eAAeD,SAAO,MAAM;AAAA,EAAM;AACrF,WAAS,kBAAkB,OAAO;AAChC,WAAO,IAAI,MAAM,aAAa;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,QAAQ,QAAQ;AACvB,QAAI,UAAU,MAAM;AAClB,UAAI;AACJ,YAAM,eAAe,MAAM,KAAK,MAAM,OAAO,MAAM;AACnD,aAAO,iBAAiB,SAAS,cAAc;AAAA,QAC7C,MAAM;AAAA,MACR,CAAC;AACD,YAAM,sBAAsB,MAAM;AAChC,eAAO,oBAAoB,SAAS,YAAY;AAAA,MAClD;AACA,OAAC,aAAa,KAAK,SAAS,QAAQ,WAAW,KAAK,MAAM,qBAAqB,mBAAmB;AAAA,IACpG;AACA,WAAO;AAAA,EACT;AACA,MAAI,kBAA+B,gBAAAC,6BAA2B,gBAAgB;AAC9E,MAAI,kBAA+B,gBAAAA,6BAA2B,gBAAgB;AAC9E,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,cAA2B,gBAAAA,6BAA2B,YAAY;AACtE,MAAI,aAA0B,gBAAAA,6BAA2B,WAAW;AACpE,MAAI,cAA2B,gBAAAA,6BAA2B,YAAY;AACtE,MAAI,qBAAkC,gBAAAA,6BAA2B,mBAAmB;AACpF,MAAI,QAAqB,gBAAAA,6BAA2B,MAAM;AAC1D,MAAI,aAA0B,gBAAAA,6BAA2B,WAAW;AACpE,MAAI,QAAqB,gBAAAA,6BAA2B,MAAM;AAC1D,MAAI,SAAsB,gBAAAA,6BAA2B,OAAO;AAC5D,MAAI,WAAwB,gBAAAA,6BAA2B,SAAS;AAChE,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,iBAA8B,gBAAAA,6BAA2B,eAAe;AACrE,MAAM,mBAAN,MAAuB;AAAA,IAC5B,YAAY,OAAO;AACjB,aAAO,eAAe,MAAM,UAAU;AAAA,QACpC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,QAAQ;AAAA,QAClC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,OAAO;AAAA,QACjC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,OAAO;AAAA,QACjC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO,CAAC;AAAA,MACV,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,aAAa;AAAA,QACvC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,aAAa;AAAA,QACvC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,oBAAoB;AAAA,QAC9C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO,MAAM,KAAK,OAAO;AAAA,MAC3B,CAAC;AACD,aAAO,eAAe,MAAM,gBAAgB;AAAA,QAC1C,UAAU;AAAA,QACV,OAAO,MAAM;AACX,cAAIF,8BAA4B,MAAM,OAAO,EAAE,OAAO,GAAG;AACvD,YAAAA,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,IAAI,WAAWA,8BAA4B,MAAM,cAAc,EAAE,cAAc,GAAG,CAAC;AAC3J;AAAA,UACF;AACA,UAAAA,8BAA4B,MAAM,UAAU,EAAE,UAAU,IAAI,KAAK;AACjE,eAAK,QAAQ,KAAK,MAAMA,8BAA4B,MAAM,WAAW,EAAE,WAAW,IAAIA,8BAA4B,MAAM,UAAU,EAAE,UAAU,KAAK,CAAC;AACpJ,mBAASG,KAAIH,8BAA4B,MAAM,UAAU,EAAE,UAAU,GAAGG,MAAK,KAAK,OAAOA,MAAK;AAC5F,YAAAH,8BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE;AAAA,UAC5D;AACA,cAAIA,8BAA4B,MAAM,WAAW,EAAE,WAAW,IAAIA,8BAA4B,MAAM,UAAU,EAAE,UAAU,IAAI,GAAG;AAC/H,YAAAA,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,IAAI,WAAWA,8BAA4B,MAAM,cAAc,EAAE,cAAc,GAAG,GAAI;AAAA,UAChK,OAAO;AACL,YAAAA,8BAA4B,MAAM,UAAU,EAAE,UAAU,IAAI,KAAK,MAAMA,8BAA4B,MAAM,UAAU,EAAE,UAAU,IAAI,CAAC;AAAA,UACtI;AAAA,QACF;AAAA,MACF,CAAC;AACD,UAAI,OAAO,UAAU,YAAY,UAAU,GAAG;AAC5C,aAAK,QAAQ;AAAA,MACf,OAAO;AACL,aAAK,QAAQ;AAAA,MACf;AAAA,IACF;AAAA,IACA,IAAII,KAAI,cAAc;AACpB,UAAI,CAACJ,8BAA4B,MAAM,OAAO,EAAE,OAAO,KAAKA,8BAA4B,MAAM,eAAe,EAAE,eAAe,IAAI,KAAK,OAAO;AAC5I,eAAOA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAEI,GAAE;AAAA,MAC3D;AACA,aAAOJ,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAEI,KAAI,YAAY;AAAA,IAC3E;AAAA,IACA,iBAAiBA,KAAI,cAAc;AACjC,UAAI,QAAQ;AACZ,aAAO,WAAY;AACjB,iBAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,eAAK,IAAI,IAAI,UAAU,IAAI;AAAA,QAC7B;AACA,cAAM,gBAAgB,MAAM,IAAI,MAAM;AACpC,UAAAA,IAAG,GAAG,IAAI;AACV,yBAAe,MAAM,cAAc,KAAK,CAAC;AACzC,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB,GAAG,YAAY;AACf,eAAO;AAAA,UACL;AAAA,UACA,QAAQ;AACN,0BAAc,MAAM;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoBA,KAAI,cAAc;AACpC,UAAI,SAAS;AACb,aAAO,WAAY;AACjB,iBAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,eAAK,KAAK,IAAI,UAAU,KAAK;AAAA,QAC/B;AACA,YAAI;AACJ,cAAM,eAAe,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpD,0BAAgB,OAAO,IAAI,MAAM;AAC/B,gBAAI;AACJ,gBAAI;AACJ,gBAAI;AACF,6BAAe,QAAQ,QAAQA,IAAG,GAAG,IAAI,CAAC;AAAA,YAC5C,SAAS,KAAK;AACZ,6BAAe,QAAQ,OAAO,GAAG;AAAA,YACnC;AACA,yBAAa,KAAK,YAAU;AAC1B,kBAAI,aAAa;AACf,uBAAO,WAAW;AAAA,cACpB,OAAO;AACL,8BAAc,KAAK;AACnB,wBAAQ,MAAM;AAAA,cAChB;AAAA,YACF,GAAG,SAAO;AACR,kBAAI,aAAa;AACf,uBAAO,WAAW;AAAA,cACpB,OAAO;AACL,8BAAc,KAAK;AACnB,uBAAO,GAAG;AAAA,cACZ;AAAA,YACF,CAAC;AACD,mBAAO,WAAS;AACd,4BAAc,kBAAkB,KAAK;AAAA,YACvC;AAAA,UACF,GAAG,YAAY;AAAA,QACjB,CAAC;AACD,qBAAa,QAAQ,WAAS;AAC5B,wBAAc,MAAM,KAAK;AAAA,QAC3B;AACA,qBAAa,UAAU;AACvB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,SAAS;AACP,MAAAJ,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI;AACtD,mBAAaA,8BAA4B,MAAM,WAAW,EAAE,WAAW,CAAC;AACxE,eAASG,KAAI,GAAGA,KAAI,KAAK,OAAOA,MAAK;AACnC,QAAAH,8BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE;AAAA,MAC5D;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAMK,WAAU;AACd,UAAIA,cAAa,QAAQ;AACvB,QAAAA,YAAW;AAAA,MACb;AACA,MAAAL,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI;AACtD,mBAAaA,8BAA4B,MAAM,WAAW,EAAE,WAAW,CAAC;AACxE,UAAIK,aAAY,MAAM;AACpB,QAAAL,8BAA4B,MAAM,WAAW,EAAE,WAAW,IAAI,WAAWA,8BAA4B,MAAM,OAAO,EAAE,OAAO,GAAGK,SAAQ;AAAA,MACxI;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA,UAAUA,WAAU;AAClB,mBAAaL,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,CAAC;AACtF,WAAK,MAAMK,SAAQ;AACnB,UAAI,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,KAAK,GAAG;AACjD,QAAAL,8BAA4B,MAAM,WAAW,EAAE,WAAW,IAAI,KAAK,QAAQ;AAC3E,aAAK,QAAQA,8BAA4B,MAAM,UAAU,EAAE,UAAU;AACrE,QAAAA,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,IAAI,WAAWA,8BAA4B,MAAM,cAAc,EAAE,cAAc,GAAGK,SAAQ;AAAA,MACpK;AAAA,IACF;AAAA,IACA,IAAI,WAAW;AACb,aAAOL,8BAA4B,MAAM,OAAO,EAAE,OAAO;AAAA,IAC3D;AAAA,EACF;AACA,WAAS,OAAOI,KAAI;AAClB,IAAAJ,8BAA4B,MAAM,eAAe,EAAE,eAAe,KAAK;AACvE,QAAI,OAAO;AACX,QAAI;AACJ,QAAI;AACF,qBAAeI,IAAG;AAAA,IACpB,SAAS,KAAK;AACZ,MAAAJ,8BAA4B,MAAM,eAAe,EAAE,eAAe,KAAK;AACvE,YAAM;AAAA,IACR;AACA,WAAO;AAAA,MACL,OAAO,WAAS;AACd,YAAI,KAAM;AACV,eAAO;AACP,QAAAA,8BAA4B,MAAM,eAAe,EAAE,eAAe,KAAK;AACvE,wBAAgB,QAAQ,aAAa,KAAK;AAC1C,QAAAA,8BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE;AAAA,MAC5D;AAAA,MACA,MAAM,MAAM;AACV,YAAI,KAAM;AACV,eAAO;AACP,QAAAA,8BAA4B,MAAM,eAAe,EAAE,eAAe,KAAK;AACvE,QAAAA,8BAA4B,MAAM,UAAU,EAAE,UAAU,EAAE;AAAA,MAC5D;AAAA,IACF;AAAA,EACF;AACA,WAAS,cAAc;AAIrB,mBAAe,MAAMA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,CAAC;AAAA,EACxE;AACA,WAAS,SAAS;AAChB,QAAIA,8BAA4B,MAAM,OAAO,EAAE,OAAO,KAAKA,8BAA4B,MAAM,eAAe,EAAE,eAAe,KAAK,KAAK,OAAO;AAC5I;AAAA,IACF;AACA,QAAIA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,WAAW,GAAG;AACpF;AAAA,IACF;AAKA,UAAM,OAAOA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,MAAM;AACvF,QAAI,QAAQ,MAAM;AAChB,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AACA,UAAM,UAAUA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AACvE,SAAK,QAAQ,QAAQ;AACrB,SAAK,OAAO,QAAQ;AAAA,EACtB;AACA,WAAS,QAAQI,KAAI,SAAS;AAC5B,UAAM,UAAU;AAAA,MACd,IAAAA;AAAA,MACA,WAAW,WAAW,OAAO,SAAS,QAAQ,aAAa;AAAA,MAC3D,OAAO,MAAM;AACX,QAAAJ,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,OAAO;AAAA,MAC/D;AAAA,MACA,MAAM,MAAM;AACV,cAAM,IAAI,MAAM,4DAA4D;AAAA,MAC9E;AAAA,IACF;AACA,UAAM,QAAQA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,UAAU,WAAS;AACnG,aAAO,QAAQ,WAAW,MAAM;AAAA,IAClC,CAAC;AACD,QAAI,UAAU,IAAI;AAChB,MAAAA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,KAAK,OAAO;AAAA,IAClF,OAAO;AACL,MAAAA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,OAAO,OAAO,GAAG,OAAO;AAAA,IAC9F;AACA,WAAO;AAAA,EACT;AACA,WAAS,UAAU,SAAS;AAC1B,UAAM,QAAQA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,QAAQ,OAAO;AACjG,QAAI,UAAU,IAAI;AAChB,MAAAA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,OAAO,OAAO,CAAC;AAAA,IACrF;AAAA,EACF;AACO,MAAM,2BAA2B,OAAO,SAAS;;;AC/SjD,WAAS,qBAAqB,OAAO;AAC1C,UAAM,WAAW,UAAQ,WAAW,QAAQ,CAAC,CAAC,KAAK;AACnD,WAAO,MAAM,OAAO,UAAQ,CAAC,SAAS,IAAI,CAAC;AAAA,EAC7C;AAGO,WAAS,+BAA+B,OAAO;AACpD,WAAO,MAAM,OAAO,UAAQ;AAC1B,UAAI;AACJ,aAAO,GAAG,iBAAiB,KAAK,aAAa,QAAQ,eAAe,kBAAkB,CAAC,KAAK;AAAA,IAC9F,CAAC;AAAA,EACH;;;ACPO,MAAM;AAAA,IACX,iBAAAM;AAAA,EACF,IAAI;AACG,MAAM;AAAA,IACX;AAAA,EACF,IAAI;AACG,MAAM,mBAAmB,SAAU,SAAS,SAAS;AAC1D,QAAI,YAAY,QAAQ;AACtB,gBAAU;AAAA,IACZ;AACA,UAAM,MAAM,IAAI,aAAa,SAAS,YAAY;AAClD,QAAI,WAAW,QAAQ,IAAe,SAAS,OAAO,GAAG;AACvD,aAAO,eAAe,KAAK,SAAS;AAAA;AAAA,QAElC,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU;AAAA,QACV,OAAO,QAAQ;AAAA,MACjB,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;;;ACzBA,WAASC,8BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,OAAK;AACT,WAASC,6BAA2B,MAAM;AAAE,WAAO,eAAeD,SAAO,MAAM;AAAA,EAAM;AAErF,MAAM,KAAK,OAAO;AAClB,MAAME,kBAAiB;AAAA,IACrB,aAAa,MAAM;AACjB,aAAO,KAAK,KAAK,KAAK,OAAO,GAAK;AAAA,IACpC;AAAA,IACA,aAAa;AAAA,IAAC;AAAA,IACd,iBAAiB;AAAA,IAAC;AAAA,IAClB,YAAY;AAAA,IAAC;AAAA,IACb,QAAQ,KAAK;AACX,YAAM;AAAA,IACR;AAAA,EACF;AACA,WAAS,UAAU,OAAO;AACxB,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,SAAS,OAAO,EAAE;AAAA,IAC3B;AACA,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO;AAAA,IACT;AACA,UAAM,IAAI,UAAU,mBAAmB;AAAA,EACzC;AACO,MAAM,sBAAsB,OAAO,qCAAqC;AAQ/E,MAAIC,oBAAgC,gBAAAF,6BAA2B,iBAAiB;AAChF,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,cAA2B,gBAAAA,6BAA2B,YAAY;AACtE,MAAI,QAAqB,gBAAAA,6BAA2B,MAAM;AAC1D,MAAI,QAAqB,gBAAAA,6BAA2B,MAAM;AAC1D,MAAI,oBAAiC,gBAAAA,6BAA2B,kBAAkB;AAClF,MAAI,WAAwB,gBAAAA,6BAA2B,SAAS;AAChE,MAAI,aAA0B,gBAAAA,6BAA2B,WAAW;AACpE,MAAI,sBAAmC,gBAAAA,6BAA2B,oBAAoB;AACtF,MAAI,eAA4B,gBAAAA,6BAA2B,aAAa;AACxE,MAAI,YAAyB,gBAAAA,6BAA2B,UAAU;AAClE,MAAI,qBAAkC,gBAAAA,6BAA2B,mBAAmB;AACpF,MAAI,eAA4B,gBAAAA,6BAA2B,aAAa;AACxE,MAAI,cAA2B,gBAAAA,6BAA2B,YAAY;AACtE,MAAIG,iBAA6B,gBAAAH,6BAA2B,cAAc;AAC1E,MAAI,gBAA6B,gBAAAA,6BAA2B,cAAc;AAC1E,MAAI,kBAA+B,gBAAAA,6BAA2B,gBAAgB;AAC9E,MAAI,kBAA+B,gBAAAA,6BAA2B,gBAAgB;AAC9E,MAAI,eAA4B,gBAAAA,6BAA2B,aAAa;AACxE,MAAM,oBAAN,MAAwB;AAAA,IACtB,YAAY,MAAM,SAAS;AACzB,UAAI,eAAe;AACnB,aAAO,eAAe,MAAM,cAAc;AAAA,QACxC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,eAAe;AAAA,QACzC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAMG,gBAAe;AAAA,QACzC,OAAOC;AAAA,MACT,CAAC;AAKD,aAAO,eAAe,MAAM,aAAa;AAAA,QACvC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAMF,mBAAkB;AAAA,QAC5C,UAAU;AAAA,QACV,OAAO,IAAIG,iBAAgB;AAAA,MAC7B,CAAC;AAED,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,aAAa;AAAA,QACvC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAMD,aAAO,eAAe,MAAM,OAAO;AAAA,QACjC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,OAAO;AAAA,QACjC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,mBAAmB;AAAA,QAC7C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,UAAU;AAAA,QACpC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,qBAAqB;AAAA,QAC/C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAED,aAAO,eAAe,MAAM,cAAc;AAAA,QACxC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,WAAW;AAAA,QACrC,UAAU;AAAA,QACV,OAAO,UAAQ,OAAO,OAAO,SAAS,IAAI,WAAW,sBAAsB,OAAOP,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,GAAG;AAAA,MAC7I,CAAC;AACD,aAAO,eAAe,MAAM,oBAAoB;AAAA,QAC9C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,cAAc;AAAA,QACxC,UAAU;AAAA,QACV,OAAO,IAAI;AAAA,MACb,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO,WAAS,QAAM;AACpB,cAAI,CAAC,GAAG,iBAAkB;AAC1B,UAAAA,8BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,UAAU,GAAG,MAAM;AACjG,gBAAM,gBAAgBA,8BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,OAAO,CAACQ,IAAGC,OAAMD,KAAIC,GAAE,UAAU,CAAC;AACpH,eAAK,QAAQ,WAAW,eAAeT,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,IAAI;AAAA,QAC7F;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO,WAAS,UAAQ;AAEtB,UAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI;AAC7D,UAAAA,8BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO;AAC1E,UAAAA,8BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO;AAC1E,gBAAM,OAAO;AAAA,YACX,YAAY,QAAQ;AAAA,YACpB,MAAM;AAAA,UACR;AACA,eAAK,QAAQ,eAAe,IAAI;AAAA,QAClC;AAAA,MACF,CAAC;AACD,WAAK,UAAU;AAAA,QACb,GAAGG;AAAA,QACH,GAAG;AAAA,MACL;AAEA,OAAC,yBAAyB,gBAAgB,KAAK,SAAS,iBAAiB,OAAO,wBAAwB,cAAc,eAAeA,gBAAe;AACpJ,MAAAH,8BAA4B,MAAM,KAAK,EAAE,KAAK,IAAI;AAClD,MAAAA,8BAA4B,MAAM,KAAK,EAAE,KAAK,IAAI,QAAQ;AAC1D,MAAAA,8BAA4B,MAAM,UAAU,EAAE,UAAU,IAAI,KAAK,QAAQ;AACzE,MAAAA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,IAAI,KAAK,QAAQ;AACrE,MAAAA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,IAAI,KAAK,QAAQ;AAK3F,MAAAA,8BAA4B,MAAM,YAAY,EAAE,YAAY,IAAI,QAAQ,YAAY,QAAQ;AAC5F,MAAAA,8BAA4B,MAAM,WAAW,EAAE,WAAW,EAAE;AAAA,IAC9D;AAAA,IACA,QAAQ;AACN,UAAIA,8BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,GAAG;AAC3E,YAAI,CAACA,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,EAAE,OAAO,QAAS,CAAAJ,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,EAAE,MAAM,mBAAmB;AAC1L,QAAAJ,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,IAAI,IAAIG,iBAAgB;AAC5F,QAAAP,8BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE;AAAA,MAClE,WAAWA,8BAA4B,MAAM,YAAY,EAAE,YAAY,GAAG;AACxE,aAAK,QAAQ,cAAc,kBAAkBA,8BAA4B,MAAM,KAAK,EAAE,KAAK,GAAG;AAAA,UAC5F,UAAU,KAAK,QAAQ;AAAA,UACvB,KAAK,KAAK,QAAQ;AAAA,QACpB,CAAC;AACD,QAAAA,8BAA4B,MAAM,aAAa,EAAE,aAAa,EAAE;AAAA,MAClE,OAAO;AACL,QAAAA,8BAA4B,MAAMK,cAAa,EAAEA,cAAa,EAAE;AAAA,MAClE;AAAA,IACF;AAAA,IACA,QAAQ;AACN,MAAAL,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,EAAE,MAAM,mBAAmB;AAE/F,MAAAJ,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,IAAI,IAAIG,iBAAgB;AAAA,IAC9F;AAAA,IACA,MAAM,MAAM;AACV,UAAI;AACJ,UAAI,SAAS,QAAQ;AACnB,eAAO;AAAA,MACT;AACA,WAAK,QAAQ,SAAS,QAAQ,MAAM,OAAQ,CAAAP,8BAA4B,MAAM,YAAY,EAAE,YAAY,EAAE;AAAA,UAAO,MAAK,MAAM;AAAA,IAC9H;AAAA;AAAA,IAGA,IAAI,aAAa;AACf,aAAOA,8BAA4B,MAAM,WAAW,EAAE,WAAW;AAAA,IACnE;AAAA,EACF;AACA,WAAS,eAAe;AACtB,UAAM,WAAWA,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE;AACjE,UAAM,qBAAqB,OAAOA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,MAAM,aAAaA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,EAAEA,8BAA4B,MAAM,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,CAAC;AACjV,QAAI,sBAAsB,WAAWA,8BAA4B,MAAM,YAAY,EAAE,YAAY,GAAG;AAElG,UAAI,YAAY,KAAK,IAAI,KAAK,QAAQ,aAAaA,8BAA4B,MAAM,KAAK,EAAE,KAAK,CAAC,GAAGA,8BAA4B,MAAM,YAAY,EAAE,YAAY,CAAC;AAClK,UAAI,YAAY,KAAK,MAAM,WAAW,SAAS;AAG/C,UAAI,YAAYA,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB,GAAG;AACzF,oBAAYA,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB;AACpF,oBAAY,WAAWA,8BAA4B,MAAM,kBAAkB,EAAE,kBAAkB;AAAA,MACjG;AACA,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI,MAAM,SAAS;AACrE,eAASU,UAAS,GAAGC,KAAI,GAAGD,UAAS,UAAUA,WAAU,WAAWC,MAAK;AACvE,cAAMC,OAAM,KAAK,IAAI,UAAUF,UAAS,SAAS;AAGjD,cAAM,UAAU,MAAM;AACpB,gBAAMG,MAAKH;AACX,iBAAOV,8BAA4B,MAAM,KAAK,EAAE,KAAK,EAAE,MAAMa,KAAID,IAAG;AAAA,QACtE;AACA,QAAAZ,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAEW,EAAC,IAAI;AAAA,UACvD;AAAA,UACA,YAAYX,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAEW,EAAC;AAAA,UACjF,YAAYX,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAEW,EAAC;AAAA,UACjF;AAAA,QACF;AACA,YAAIX,8BAA4B,MAAM,YAAY,EAAE,YAAY,GAAG;AACjE,gBAAM,OAAOU,UAAS,YAAY,WAAW,WAAWA,UAAS;AAGjE,UAAAV,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAEW,EAAC,EAAE,gBAAgB,MAAM;AAC3E,YAAAX,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAEW,EAAC,IAAI;AACzD,YAAAX,8BAA4B,MAAM,WAAW,EAAE,WAAW,EAAEW,EAAC,EAAE,WAAW;AAAA,UAC5E;AAAA,QACF;AAAA,MACF;AAAA,IACF,OAAO;AACL,MAAAX,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI,CAAC;AAAA,QACrD,SAAS,MAAMA,8BAA4B,MAAM,KAAK,EAAE,KAAK;AAAA,QAC7D,YAAYA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,CAAC;AAAA,QACjF,YAAYA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAE,CAAC;AAAA,QACjF;AAAA,MACF,CAAC;AAAA,IACH;AACA,IAAAA,8BAA4B,MAAM,WAAW,EAAE,WAAW,IAAIA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,OAAO;AAAA,MAC3H,UAAU;AAAA,IACZ,EAAE;AAAA,EACJ;AACA,WAASM,kBAAiB;AACxB,SAAK,QAAQ,cAAc,WAAWN,8BAA4B,MAAM,KAAK,EAAE,KAAK,GAAGA,8BAA4B,MAAM,OAAO,EAAE,OAAO,GAAGA,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,EAAE,MAAM,EAAE,KAAKJ,8BAA4B,MAAM,UAAU,EAAE,UAAU,GAAGA,8BAA4B,MAAM,SAAS,EAAE,SAAS,CAAC;AACjV,IAAAA,8BAA4B,MAAM,iBAAiB,EAAE,iBAAiB,IAAI;AAAA,EAC5E;AACA,WAAS,iBAAiB;AACxB,SAAK,QAAQ,cAAc,iBAAiBA,8BAA4B,MAAM,KAAK,EAAE,KAAK,GAAGA,8BAA4B,MAAM,OAAO,EAAE,OAAO,GAAGA,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,EAAE,MAAM,EAAE,KAAKJ,8BAA4B,MAAM,UAAU,EAAE,UAAU,GAAGA,8BAA4B,MAAM,SAAS,EAAE,SAAS,CAAC;AAAA,EACzV;AACA,WAAS,gBAAgB;AACvB,IAAAA,8BAA4B,MAAMI,iBAAgB,EAAEA,iBAAgB,EAAE,MAAM;AAC5E,SAAK,QAAQ,cAAc,gBAAgBJ,8BAA4B,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,SAAO,KAAK,QAAQ,IAAI,GAAG,CAAC;AAAA,EAChI;AACA,MAAO,4BAAQ;;;AC/Of,WAAS,uBAAuB,MAAM;AACpC,QAAI;AAAA,MACF,SAAS;AAAA,MACT,eAAe;AAAA,MACf,uBAAuB;AAAA,MACvB;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,aAAa,OAAO,KAAK,aAAa,EAAE,IAAI,CAAAc,OAAKA,GAAE,YAAY,CAAC,EAAE,KAAK;AAC7E,WAAO,CAAC,QAAQ,cAAc,sBAAsB,GAAG,WAAW,IAAI,CAAAA,OAAK,GAAGA,EAAC,IAAI,cAAcA,EAAC,CAAC,EAAE,GAAG,IAAI,WAAW,KAAK,GAAG,GAAG,aAAa,EAAE,KAAK,IAAI;AAAA,EAC5J;AACA,MAAM,KAAK,IAAI,YAAY;AAC3B,MAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACA,iBAAe,OAAO,MAAM;AAC1B,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,WAAW;AACf,WAAO,OAAO,OAAO,UAAU,MAAM,GAAG,OAAO,IAAI,CAAC;AAAA,EACtD;AACA,iBAAe,gBAAgB,QAAQ;AACrC,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,WAAW;AACf,WAAO,OAAO,UAAU,OAAO,OAAO,WAAW,WAAW,GAAG,OAAO,MAAM,IAAI,QAAQ,WAAW,OAAO,CAAC,MAAM,CAAC;AAAA,EACpH;AACA,WAAS,uBAAuB,aAAa;AAC3C,UAAM,YAAY,IAAI,WAAW,WAAW;AAC5C,QAAI,YAAY;AAChB,aAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACzC,mBAAa,UAAUA,EAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,IACxD;AACA,WAAO;AAAA,EACT;AACA,iBAAe,KAAK,KAAK,MAAM;AAC7B,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,WAAW;AACf,WAAO,OAAO,KAAK,WAAW,MAAM,gBAAgB,GAAG,GAAG,GAAG,OAAO,IAAI,CAAC;AAAA,EAC3E;AAOA,iBAAO,gBAAuC,OAAO;AACnD,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,UAAU;AAChB,UAAM,OAAO,GAAG,UAAU,IAAI,OAAO,IAAI,MAAM;AAC/C,UAAM,eAAe,IAAI,UAAU,GAAG,CAAC;AACvC,UAAM,UAAU;AAChB,UAAM,mBAAkB,oBAAI,KAAK,GAAE,YAAY,EAAE,QAAQ,eAAe,EAAE;AAC1E,UAAM,OAAO,gBAAgB,MAAM,GAAG,CAAC;AACvC,UAAM,QAAQ,GAAG,IAAI,IAAI,MAAM,IAAI,OAAO;AAC1C,UAAM,MAAM,IAAI,IAAI,WAAW,IAAI,GAAG,YAAY,EAAE;AAEpD,QAAI,aAAa,IAAI,mBAAmB,kBAAkB;AAC1D,QAAI,aAAa,IAAI,wBAAwB,OAAO;AACpD,QAAI,aAAa,IAAI,oBAAoB,GAAG,UAAU,IAAI,KAAK,EAAE;AACjE,QAAI,aAAa,IAAI,cAAc,eAAe;AAClD,QAAI,aAAa,IAAI,iBAAiB,OAAO;AAE7C,QAAI,aAAa,IAAI,wBAAwB,YAAY;AACzD,QAAI,aAAa,IAAI,uBAAuB,MAAM;AAElD,QAAI,WAAY,KAAI,aAAa,IAAI,cAAc,UAAU;AAC7D,QAAI,SAAU,KAAI,aAAa,IAAI,YAAY,QAAQ;AACvD,QAAI,aAAa,IAAI,QAAQ,cAAc,WAAW,eAAe,WAAW;AAGhF,UAAM,YAAY,uBAAuB;AAAA,MACvC;AAAA,MACA,sBAAsB,IAAI,OAAO,MAAM,CAAC;AAAA,MACxC,eAAe;AAAA,QACb;AAAA,MACF;AAAA,MACA,eAAe;AAAA,IACjB,CAAC;AAGD,UAAM,kBAAkB,uBAAuB,MAAM,OAAO,SAAS,CAAC;AAGtE,UAAM,eAAe;AAAA,MAAC;AAAA;AAAA,MAEtB;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA;AAAA;AAAA,IACA,EAAE,KAAK,IAAI;AAGX,UAAM,QAAQ,MAAM,KAAK,OAAO,aAAa,IAAI,IAAI;AACrD,UAAM,UAAU,MAAM,KAAK,OAAO,MAAM;AACxC,UAAM,WAAW,MAAM,KAAK,SAAS,OAAO;AAC5C,UAAM,WAAW,MAAM,KAAK,UAAU,cAAc;AACpD,UAAM,YAAY,uBAAuB,MAAM,KAAK,UAAU,YAAY,CAAC;AAG3E,QAAI,aAAa,IAAI,mBAAmB,SAAS;AACjD,WAAO;AAAA,EACT;;;ACnJA,MAAIC;AACJ,WAASC,8BAA4B,UAAU,YAAY;AAAE,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,UAAU,GAAG;AAAE,YAAM,IAAI,UAAU,gDAAgD;AAAA,IAAG;AAAE,WAAO;AAAA,EAAU;AAC1N,MAAIC,OAAK;AACT,WAASC,6BAA2B,MAAM;AAAE,WAAO,eAAeD,SAAO,MAAM;AAAA,EAAM;AASrF,MAAME,gBAAc;AAAA,IAClB,WAAW;AAAA,EACb;AACA,WAAS,kBAAkB,KAAK;AAC9B,QAAI,OAAO,IAAI,OAAO;AACpB,YAAMC,SAAQ,IAAI,MAAM,IAAI,OAAO;AACnC,aAAO,OAAOA,QAAO,IAAI,KAAK;AAC9B,YAAMA;AAAA,IACR;AACA,WAAO;AAAA,EACT;AACA,WAAS,sBAAsB,WAAW;AACxC,UAAM,YAAY,IAAI,IAAI,SAAS;AACnC,cAAU,SAAS;AACnB,cAAU,OAAO;AACjB,WAAO,UAAU;AAAA,EACnB;AAYA,WAAS,UAAU,aAAa;AAC9B,UAAM,iBAAiB,YAAY;AACnC,QAAI,gBAAgB;AAClB,YAAM,kBAAkB,KAAK,OAAO,IAAI,KAAK,cAAc,IAAI,KAAK,IAAI,KAAK,GAAI;AACjF,UAAI,kBAAkB,GAAG;AACvB,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,mBAAmB,MAAM;AAChC,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACZ,IAAI;AACJ,UAAM,aAAa,qBAAqB,OAAO,oBAAoB,OAAO,KAAK,IAAI;AACnF,QAAI,CAAC,KAAM,QAAO,CAAC;AACnB,WAAO,OAAO,YAAY,WAAW,OAAO,SAAO,KAAK,GAAG,KAAK,IAAI,EAAE,IAAI,SAAO;AAC/E,YAAM,UAAU,UAAU,YAAY,GAAG,MAAM;AAC/C,YAAM,QAAQ,OAAO,KAAK,GAAG,CAAC;AAC9B,aAAO,CAAC,SAAS,KAAK;AAAA,IACxB,CAAC,CAAC;AAAA,EACJ;AACA,WAAS,eAAe,QAAQ;AAC9B,QAAI,UAAU,QAAQ,OAAO,SAAS;AACpC,YAAM,iBAAiB,6BAA6B;AAAA,QAClD,OAAO,OAAO;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,wBAAqC,gBAAAF,6BAA2B,sBAAsB;AAC1F,MAAI,SAAsB,gBAAAA,6BAA2B,OAAO;AAC5D,MAAI,yBAAsC,gBAAAA,6BAA2B,uBAAuB;AAC5F,MAAI,kBAA+B,gBAAAA,6BAA2B,gBAAgB;AAC9E,MAAI,uBAAoC,gBAAAA,6BAA2B,qBAAqB;AACxF,MAAI,aAA0B,gBAAAA,6BAA2B,WAAW;AACpE,MAAI,sBAAmC,gBAAAA,6BAA2B,oBAAoB;AACtF,MAAI,YAAyB,gBAAAA,6BAA2B,UAAU;AAClE,MAAI,eAA4B,gBAAAA,6BAA2B,aAAa;AACxE,MAAI,yBAAsC,gBAAAA,6BAA2B,uBAAuB;AAC5F,MAAI,uBAAoC,gBAAAA,6BAA2B,qBAAqB;AACxF,MAAI,mBAAgC,gBAAAA,6BAA2B,iBAAiB;AAChF,MAAI,WAAwB,gBAAAA,6BAA2B,SAAS;AAChE,MAAI,eAA4B,gBAAAA,6BAA2B,aAAa;AACxE,MAAI,sBAAmC,gBAAAA,6BAA2B,oBAAoB;AACtF,MAAM,yBAAN,MAA6B;AAAA,IAC3B,YAAY,YAAY,SAAS,qBAAqB,SAAS;AAC7D,aAAO,eAAe,MAAM,qBAAqB;AAAA,QAC/C,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,cAAc;AAAA,QACxC,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,uBAAuB;AAAA,QACjD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,QAAQ;AAAA,QAClC,UAAU;AAAA,QACV,OAAO,oBAAI,QAAQ;AAAA,MACrB,CAAC;AACD,aAAO,eAAe,MAAM,wBAAwB;AAAA,QAClD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,iBAAiB;AAAA,QAC3C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,sBAAsB;AAAA,QAChD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,YAAY;AAAA,QACtC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,qBAAqB;AAAA,QAC/C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,WAAW;AAAA,QACrC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,cAAc;AAAA,QACxC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,wBAAwB;AAAA,QAClD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,sBAAsB;AAAA,QAChD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,kBAAkB;AAAA,QAC5C,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,UAAU;AAAA,QACpC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,MAAAF,8BAA4B,MAAM,SAAS,EAAE,SAAS,IAAI;AAC1D,MAAAA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,IAAI;AAChF,MAAAA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,IAAI;AACxD,WAAK,WAAW,OAAO;AAAA,IACzB;AAAA,IACA,WAAW,SAAS;AAClB,YAAM,WAAWA,8BAA4B,MAAM,SAAS,EAAE,SAAS;AACvE,UAAI,0BAA0B,SAAS;AACrC,QAAAA,8BAA4B,MAAM,qBAAqB,EAAE,qBAAqB,IAAI,SAAS,oBAAoB,QAAQ,sBAAsB;AAAA,UAC3I,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AACA,UAAI,2BAA2B,SAAS;AACtC,QAAAA,8BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,IAAI,SAAS,oBAAoB,QAAQ,uBAAuB;AAAA,UAC9I,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AACA,UAAI,cAAc,SAAS;AACzB,QAAAA,8BAA4B,MAAM,eAAe,EAAE,eAAe,IAAI,SAAS,oBAAoB,QAAQ,QAAQ;AAAA,MACrH;AACA,UAAI,eAAe,SAAS;AAC1B,QAAAA,8BAA4B,MAAM,UAAU,EAAE,UAAU,IAAI,SAAS,oBAAoB,QAAQ,SAAS;AAAA,MAC5G;AACA,UAAI,6BAA6B,SAAS;AACxC,QAAAA,8BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,IAAI,SAAS,oBAAoB,QAAQ,yBAAyB;AAAA,UAChJ,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AACA,UAAI,iBAAiB,SAAS;AAC5B,YAAI;AACJ,QAAAA,8BAA4B,MAAM,YAAY,EAAE,YAAY,KAAK,uBAAuB,QAAQ,gBAAgB,OAAO,uBAAuB,CAAC;AAAA,MACjJ;AACA,UAAI,qBAAqB,SAAS;AAChC,QAAAA,8BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,IAAI,SAAS,oBAAoB,QAAQ,iBAAiB;AAAA,UAC5H,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AACA,UAAI,yBAAyB,SAAS;AACpC,QAAAA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,IAAI,SAAS,oBAAoB,QAAQ,mBAAmB;AAAA,MAC1I;AAAA,IACF;AAAA,IACA,MAAM,YAAY,MAAM,QAAQ;AAC9B,UAAI;AAIJ,cAAQ,eAAeA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,MAAM,MAAM;AAChG,YAAI;AACF,iBAAO,MAAM;AAAA,QACf,QAAQ;AAAA,QAGR;AAAA,MACF;AACA,YAAM,UAAUA,8BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM;AACrK,YAAM,eAAe,MAAM;AACzB,gBAAQ,MAAM,OAAO,MAAM;AAC3B,QAAAA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;AAAA,MACpE;AACA,aAAO,iBAAiB,SAAS,cAAc;AAAA,QAC7C,MAAM;AAAA,MACR,CAAC;AACD,MAAAA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,MAAM,OAAO;AACxE,cAAQ,KAAK,OAAM,WAAU;AAC3B,eAAO,oBAAoB,SAAS,YAAY;AAChD,QAAAA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,MAAM;AAC1F,QAAAA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,MAAM,MAAM;AAAA,MACzE,GAAG,MAAM;AACP,eAAO,oBAAoB,SAAS,YAAY;AAChD,QAAAA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;AAAA,MACpE,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,MAAM,gBAAgB,MAAM;AAC1B,YAAM,SAASA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI;AAC9E,UAAI,UAAU,MAAM;AAGlB;AAAA,MACF;AAGA,MAAAA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;AAClE,MAAAA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAO,OAAO,IAAI,CAAC;AACvG,UAAI;AACJ,UAAI;AACF,wBAAgB,MAAM;AAAA,MACxB,QAAQ;AAEN;AAAA,MACF;AACA,YAAMA,8BAA4B,MAAM,qBAAqB,EAAE,qBAAqB,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG,aAAa;AAAA,IAClK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAM,WAAW,MAAMK,SAAQ,QAAQ;AACrC,qBAAe,MAAM;AACrB,UAAIA,QAAO,WAAW,KAAK,CAACA,QAAO,CAAC,EAAE,oBAAoB;AACxD,eAAOL,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,EAAE,MAAMK,QAAO,CAAC,GAAG,MAAM;AAAA,MAC5G;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,MAAM,KAAK,YAAY,MAAM,MAAM;AACvC,qBAAe,MAAM;AACrB,UAAI;AACF,cAAM,QAAQ,MAAM,QAAQ,IAAIA,QAAO,IAAI,CAAC,OAAOC,OAAM,KAAK,YAAY,MAAMA,KAAI,GAAG,OAAO,MAAM,CAAC,CAAC;AACtG,uBAAe,MAAM;AACrB,eAAO,MAAMN,8BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;AAAA,UAC1J;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,GAAG,MAAM,EAAE,QAAQ,MAAM;AAAA,MAC3B,SAAS,KAAK;AACZ,aAAK,OAAO,OAAO,SAAS,IAAI,WAAW,wBAAwB,OAAO,OAAO,SAAS,IAAI,UAAU,cAAc;AAIpH,eAAK,gBAAgB,IAAI;AAAA,QAC3B;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,kBAAkB,MAAM,gBAAgB;AACtC,MAAAA,8BAA4B,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,MAAM,cAAc;AAAA,IACjF;AAAA,IACA,MAAM,iBAAiB,MAAMK,SAAQ,QAAQ;AAC3C,qBAAe,MAAM;AACrB,UAAIA,QAAO,WAAW,KAAKA,QAAO,CAAC,KAAK,QAAQ,CAACA,QAAO,CAAC,EAAE,oBAAoB;AAC7E,eAAOL,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,EAAE,MAAMK,QAAO,CAAC,GAAG,MAAM;AAAA,MAC5G;AACA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,MAAM,KAAK,YAAY,MAAM,MAAM;AACvC,qBAAe,MAAM;AACrB,YAAM,uBAAuB,MAAML,8BAA4B,MAAM,UAAU,EAAE,UAAU,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;AAAA,QACxJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,GAAG,MAAM,EAAE,QAAQ,MAAM;AACzB,qBAAe,MAAM;AACrB,YAAM,QAAQ,MAAM,QAAQ,IAAIK,QAAO,IAAI,CAAC,OAAOC,OAAM;AACvD,cAAM,aAAaA,KAAI;AACvB,cAAM,sBAAsB,qBAAqB,KAAK,WAAS;AAC7D,cAAI;AAAA,YACF;AAAA,UACF,IAAI;AACJ,iBAAO,eAAe;AAAA,QACxB,CAAC;AACD,YAAI,uBAAuB,MAAM;AAC/B,iBAAO,KAAK,YAAY,MAAM,YAAY,OAAO,MAAM;AAAA,QACzD;AAEA,iBAAS,QAAQ,MAAM,iBAAiB,QAAQ,MAAM,cAAc;AACpE,eAAO;AAAA,UACL,YAAY;AAAA,UACZ,MAAM,oBAAoB;AAAA,QAC5B;AAAA,MACF,CAAC,CAAC;AACF,qBAAe,MAAM;AACrB,aAAON,8BAA4B,MAAM,sBAAsB,EAAE,sBAAsB,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;AAAA,QACpJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,GAAG,MAAM,EAAE,QAAQ,MAAM;AAAA,IAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,MAAM,YAAY,MAAM,YAAY,OAAO,QAAQ;AACjD,qBAAe,MAAM;AACrB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,MAAM,KAAK,YAAY,MAAM,MAAM;AACvC,YAAM,yBAAyBA,8BAA4B,MAAM,YAAY,EAAE,YAAY,EAAE,OAAO;AACpG,YAAM,qBAAqBA,8BAA4B,MAAM,YAAY,EAAE,YAAY,EAAE,OAAO;AAChG,YAAM,uBAAuB,MAAM;AACjC,cAAM,OAAO,uBAAuB,KAAK;AACzC,YAAI,QAAQ,QAAQ,KAAK,MAAM;AAC7B,iBAAO;AAAA,QACT;AACA,eAAO,KAAK;AAAA,MACd;AACA,iBAAS;AACP,uBAAe,MAAM;AACrB,cAAM,YAAY,MAAM,QAAQ;AAChC,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF,IAAI;AACJ,YAAI;AACJ,YAAI;AACF,sBAAY,MAAMA,8BAA4B,MAAM,eAAe,EAAE,eAAe,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;AAAA,YACjJ;AAAA,YACA;AAAA,YACA;AAAA,YACA,MAAM;AAAA,YACN;AAAA,UACF,CAAC,EAAE,QAAQ,MAAM;AAAA,QACnB,SAAS,KAAK;AACZ,gBAAM,UAAU,qBAAqB;AACrC,cAAI,WAAW,QAAQ,OAAO,SAAS;AACrC,kBAAM;AAAA,UACR;AACA,gBAAM,IAAI,QAAQ,aAAW,WAAW,SAAS,OAAO,CAAC;AAEzD;AAAA,QACF;AACA,uBAAe,MAAM;AACrB,YAAI;AACF,iBAAO;AAAA,YACL,YAAY;AAAA,YACZ,GAAI,MAAMA,8BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,EAAE;AAAA,cAC9E;AAAA,cACA,MAAM;AAAA,cACN,MAAM,UAAU;AAAA,cAChB;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC,EAAE,QAAQ,MAAM;AAAA,UACnB;AAAA,QACF,SAAS,KAAK;AACZ,cAAI,CAAE,MAAMA,8BAA4B,MAAM,YAAY,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAI,OAAM;AAAA,QAC7G;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,iBAAe,cAAc,KAAK,oBAAoB;AACpD,QAAI;AACJ,UAAM,WAAWA,8BAA4B,MAAM,SAAS,EAAE,SAAS;AACvE,UAAM,SAAS,OAAO,SAAS,cAAc,IAAI,WAAW,OAAO,SAAS,YAAY;AAIxF,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,QAAI,WAAW,OAAO,IAAI,YAAY,uBAAuB;AAC3D,UAAI,CAAC,SAAS,UAAU;AAItB,YAAI,SAAS,UAAU,KAAKA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,KAAK,MAAM;AAC/G,gBAAM,OAAO,mBAAmB,KAAK;AACrC,cAAI,QAAQ,QAAQ,KAAK,MAAM;AAC7B,mBAAO;AAAA,UACT;AAOA,UAAAA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,IAAI,KAAK;AAAA,QACrF;AAEA,iBAAS,UAAU,CAAC;AACpB,cAAM,IAAI,QAAQ,aAAW,WAAW,SAASA,8BAA4B,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAAA,MAC/H;AAAA,IACF,WAAW,WAAW,KAAK;AAEzB,UAAI,CAAC,SAAS,UAAU;AACtB,cAAM,OAAO,mBAAmB,KAAK;AACrC,YAAI,QAAQ,QAAQ,KAAK,MAAM;AAC7B,iBAAO;AAAA,QACT;AACA,iBAAS,UAAU,KAAK,KAAK;AAAA,MAC/B;AAAA,IACF,WAAW,SAAS,OAAO,SAAS,OAAO,WAAW,KAAK;AAEzD,aAAO;AAAA,IACT,WAAW,OAAO,cAAc,eAAe,UAAU,WAAW,OAAO;AAEzE,UAAI,CAAC,SAAS,UAAU;AACtB,iBAAS,MAAM;AACf,eAAO,iBAAiB,UAAU,MAAM;AACtC,mBAAS,OAAO;AAAA,QAClB,GAAG;AAAA,UACD,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF,OAAO;AAEL,YAAM,OAAO,mBAAmB,KAAK;AACrC,UAAI,QAAQ,QAAQ,KAAK,MAAM;AAC7B,eAAO;AAAA,MACT;AACA,YAAM,IAAI,QAAQ,aAAW,WAAW,SAAS,KAAK,KAAK,CAAC;AAAA,IAC9D;AACA,WAAO;AAAA,EACT;AACA,iBAAe,qBAAqB,MAAM,OAAO,QAAQ;AACvD,UAAM;AAAA,MACJ,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,MAAMA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAEA,8BAA4B,MAAM,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;AAAA,MACnJ;AAAA,IACF,CAAC,EAAE,QAAQ,MAAM;AACjB,QAAI;AACJ,UAAM,OAAO,MAAM,QAAQ;AAC3B,QAAI,OAAO,YAAY,MAAM,QAAQ;AACnC,YAAM,WAAW,IAAI,SAAS;AAC9B,aAAO,QAAQ,MAAM,EAAE,QAAQ,YAAU;AACvC,YAAI,CAAC,KAAK,KAAK,IAAI;AACnB,eAAO,SAAS,IAAI,KAAK,KAAK;AAAA,MAChC,CAAC;AACD,eAAS,IAAI,QAAQ,IAAI;AACzB,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,SAAS,MAAMA,8BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,EAAE;AAAA,MACzF,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACA,MAAM,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,EAAE,QAAQ,MAAM;AACjB,WAAO,cAAc,SAAS,SAAS;AAAA,MACrC,UAAU,sBAAsB,GAAG;AAAA,MACnC,GAAG;AAAA,IACL;AAAA,EACF;AACA,MAAI,+BAA4C,gBAAAE,6BAA2B,6BAA6B;AACxG,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,8BAA2C,gBAAAA,6BAA2B,4BAA4B;AACtG,MAAI,mCAAgD,gBAAAA,6BAA2B,iCAAiC;AAChH,MAAI,wBAAqC,gBAAAA,6BAA2B,qBAAqB;AACzF,MAAI,YAAyB,gBAAAA,6BAA2B,SAAS;AACjE,MAAI,mBAAgC,gBAAAA,6BAA2B,iBAAiB;AAChF,MAAI,0BAAuC,gBAAAA,6BAA2B,wBAAwB;AAC9F,MAAI,UAAuB,gBAAAA,6BAA2B,QAAQ;AAC9D,MAAI,uBAAoC,gBAAAA,6BAA2B,qBAAqB;AACxF,MAAI,iCAA8C,gBAAAA,6BAA2B,+BAA+B;AAC5G,MAAI,4BAAyC,gBAAAA,6BAA2B,0BAA0B;AAClG,EAAAH,eAAc,OAAO,IAAI,sBAAsB;AAC/C,MAAqB,iBAArB,MAAqB,wBAAuB,WAAW;AAAA,IACrD,YAAY,MAAM,MAAM;AACtB,UAAI;AACJ,YAAM,MAAM,IAAI;AAEhB,aAAO,eAAe,MAAM,yBAAyB;AAAA,QACnD,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,kBAAkB;AAAA,QAC5C,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,kCAAkC;AAAA,QAC5D,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,8BAA8B;AAAA,QACxD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAID,aAAO,eAAe,MAAM,6BAA6B;AAAA,QACvD,UAAU;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AACD,aAAO,eAAe,MAAM,uBAAuB;AAAA,QACjD,UAAU;AAAA,QACV,OAAO,CAAC,MAAM,UAAU;AACtB,cAAI;AAAA,YACF;AAAA,YACA;AAAA,UACF,IAAI;AACJ,gBAAM,QAAQ,KAAK,KAAK,QAAQ,KAAK,EAAE;AACvC,cAAI,SAAS,MAAM;AAEjB;AAAA,UACF;AACA,eAAK,KAAK,aAAa,KAAK,IAAI;AAAA,YAC9B,aAAa;AAAA,cACX,GAAG,MAAM;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,WAAW;AAAA,QACrC,UAAU;AAAA,QACV,OAAO,UAAQ;AACb,iBAAO,KAAK,KAAK,QAAQ,KAAK,EAAE,KAAK;AAAA,QACvC;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,SAAS;AAAA,QACnC,UAAU;AAAA,QACV,OAAO,OAAM,YAAW;AACtB,cAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,gBAAM,QAAQ,KAAK,KAAK,cAAc,OAAO;AAC7C,gBAAM,gBAAgB,qBAAqB,KAAK;AAChD,gBAAM,cAAc,+BAA+B,aAAa;AAChE,eAAK,KAAK,KAAK,gBAAgB,WAAW;AAC1C,gBAAM,WAAW,cAAc,IAAI,UAAQ;AACzC,gBAAI,KAAK,UAAU;AACjB,oBAAM,WAAW,MAAM,KAAK;AAC5B,cAAAC,8BAA4B,MAAM,8BAA8B,EAAE,8BAA8B,EAAE,KAAK;AACvG,oBAAM,aAAa,IAAI,gBAAgB;AACvC,oBAAM,iBAAiB,iBAAe;AACpC,oBAAI,YAAY,OAAO,KAAK,GAAI,YAAW,MAAM;AAAA,cACnD;AACA,mBAAK,KAAK,GAAG,gBAAgB,cAAc;AAC3C,oBAAM,gBAAgB,KAAK,KAAK,wBAAwB,IAAI,EAAE,iBAAiB,MAAMA,8BAA4B,MAAM,uBAAuB,EAAE,uBAAuB,EAAE,IAAI,GAAG;AAAA,gBAC9K,QAAQ,WAAW;AAAA,gBACnB;AAAA,cACF,CAAC;AACD,mBAAK,SAAS,iBAAiB,MAAM;AACnC,qBAAK,KAAK,IAAI,gBAAgB,cAAc;AAAA,cAC9C,GAAG;AAAA,gBACD,UAAU;AAAA,cACZ,CAAC,EAAE;AACH,qBAAO;AAAA,YACT;AACA,mBAAOA,8BAA4B,MAAM,gBAAgB,EAAE,gBAAgB,EAAE,IAAI;AAAA,UACnF,CAAC;AACD,gBAAM,SAAS,MAAM,QAAQ,IAAI,QAAQ;AAGzC,UAAAA,8BAA4B,MAAM,8BAA8B,EAAE,8BAA8B,EAAE,IAAI;AACtG,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,sBAAsB;AAAA,QAChD,UAAU;AAAA,QACV,OAAO,MAAM;AACX,UAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,oBAAoB,KAAK,KAAK,gBAAgB;AAAA,QACpG;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,gCAAgC;AAAA,QAC1D,UAAU;AAAA,QACV,OAAO,aAAW;AAChB,gBAAM;AAAA,YACJ;AAAA,UACF,IAAI,KAAK,KAAK,SAAS;AACvB,eAAK,KAAK,SAAS;AAAA,YACjB,cAAc;AAAA,cACZ,GAAG;AAAA,cACH,kBAAkB;AAAA,YACpB;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AACD,aAAO,eAAe,MAAM,2BAA2B;AAAA,QACrD,UAAU;AAAA,QACV,OAAO,MAAM;AACX,UAAAA,8BAA4B,MAAM,8BAA8B,EAAE,8BAA8B,EAAE,IAAI;AAAA,QACxG;AAAA,MACF,CAAC;AACD,WAAK,OAAO;AACZ,WAAK,KAAK,KAAK,KAAK,MAAM;AAC1B,WAAK,QAAQ;AACb,MAAAA,8BAA4B,MAAM,OAAO,EAAE,OAAO,IAAI,IAAI,cAAc,MAAM,IAAI;AAClF,YAAMO,kBAAiB;AAAA;AAAA;AAAA,QAGrB,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,oBAAoB,UAAQ,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA,QAI1C,aAAa,CAAC,GAAG,KAAM,KAAM,GAAI;AAAA,QACjC,uBAAuB,KAAK,sBAAsB,KAAK,IAAI;AAAA,QAC3D,WAAW,KAAK,UAAU,KAAK,IAAI;AAAA,QACnC,sBAAsB,KAAK,qBAAqB,KAAK,IAAI;AAAA,QACzD,yBAAyB,KAAK,wBAAwB,KAAK,IAAI;AAAA,QAC/D,iCAAiC;AAAA,QACjC,UAAU,QAAQ,QAAQ,KAAK,kCAAkC,KAAK,gBAAgB,KAAK,IAAI,IAAI,KAAK,SAAS,KAAK,IAAI;AAAA,QAC1H,iBAAiB,gBAAe;AAAA,QAChC,qBAAqB,QAAQ,QAAQ,KAAK,kCAAkC,KAAK,gBAAgB,KAAK,IAAI,IAAI,KAAK,oBAAoB,KAAK,IAAI;AAAA,QAChJ,kBAAkB,CAAC;AAAA,MACrB;AACA,WAAK,OAAO;AAAA,QACV,GAAGA;AAAA,QACH,GAAG;AAAA,MACL;AACA,WAAK,QAAQ,OAAO,SAAS,KAAK,uBAAuB,QAAQ,KAAK,YAAY,MAAM;AACtF,aAAK,KAAK,WAAW,OAAO,MAAM,UAAU;AAC1C,cAAI;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,IAAI;AACJ,gBAAM;AAAA,YACJ;AAAA,YACA;AAAA,UACF,IAAI,MAAM,KAAK,mBAAmB,MAAM;AAAA,YACtC;AAAA,YACA;AAAA,YACA,OAAO,CAAC;AAAA,cACN,QAAQ;AAAA,cACR,OAAO;AAAA,YACT,CAAC;AAAA,YACD;AAAA,UACF,CAAC;AACD,iBAAO;AAAA,YACL,KAAK,iBAAiB,OAAO,SAAS,cAAc,UAAU;AAAA,YAC9D,SAAS,WAAW,OAAO,SAAS,QAAQ,UAAU;AAAA,UACxD;AAAA,QACF;AAAA,MACF;AAOA,WAAK,YAAY,wBAAwB,KAAK,KAAK,qBAAqB,OAAO,wBAAwB,IAAI,iBAAiB,KAAK,KAAK,KAAK;AAC3I,MAAAP,8BAA4B,MAAM,4BAA4B,EAAE,4BAA4B,IAAI,IAAI,uBAAuB,KAAK,UAAU,KAAK,MAAMA,8BAA4B,MAAM,qBAAqB,EAAE,qBAAqB,GAAGA,8BAA4B,MAAM,SAAS,EAAE,SAAS,CAAC;AAC7R,WAAK,YAAY,uBAAO,OAAO,IAAI;AACnC,WAAK,iBAAiB,uBAAO,OAAO,IAAI;AACxC,WAAK,kBAAkB,uBAAO,OAAO,IAAI;AAAA,IAC3C;AAAA,IACA,CAACD,YAAW,IAAI;AACd,aAAOC,8BAA4B,MAAM,OAAO,EAAE,OAAO;AAAA,IAC3D;AAAA,IACA,WAAW,YAAY;AACrB,MAAAA,8BAA4B,MAAM,4BAA4B,EAAE,4BAA4B,EAAE,WAAW,UAAU;AACnH,YAAM,WAAW,UAAU;AAC3B,MAAAA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,EAAE;AAAA,IAChF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,wBAAwB,QAAQ,MAAM;AACpC,UAAI,SAAS,QAAQ;AACnB,eAAO,CAAC;AAAA,MACV;AACA,UAAI,KAAK,UAAU,MAAM,GAAG;AAC1B,aAAK,UAAU,MAAM,EAAE,MAAM;AAAA,UAC3B,QAAQ,KAAK,SAAS;AAAA,QACxB,CAAC;AACD,aAAK,UAAU,MAAM,IAAI;AAAA,MAC3B;AACA,UAAI,KAAK,eAAe,MAAM,GAAG;AAC/B,aAAK,eAAe,MAAM,EAAE,OAAO;AACnC,aAAK,eAAe,MAAM,IAAI;AAAA,MAChC;AACA,UAAI,KAAK,gBAAgB,MAAM,GAAG;AAChC,aAAK,gBAAgB,MAAM,EAAE,MAAM;AACnC,aAAK,gBAAgB,MAAM,IAAI;AAAA,MACjC;AAAA,IACF;AAAA;AAAA,IAGA,WAAW,QAAQ;AACjB,UAAI,CAAC,KAAK,KAAK,cAAc;AAC3B,cAAM,IAAI,MAAM,oHAAoH,MAAM,oBAAoB;AAAA,MAChK;AAAA,IACF;AAAA,IACA,sBAAsB,MAAM,QAAQ;AAClC,WAAK,WAAW,uBAAuB;AACvC,qBAAe,MAAM;AACrB,YAAM,WAAW,mBAAmB;AAAA,QAClC,MAAM,KAAK;AAAA,QACX,mBAAmB,KAAK,KAAK;AAAA,MAC/B,CAAC;AACD,aAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB;AAAA,QAC9E,UAAU,KAAK;AAAA,QACf,MAAM,KAAK;AAAA,QACX;AAAA,MACF,GAAG;AAAA,QACD;AAAA,MACF,CAAC,EAAE,KAAK,iBAAiB;AAAA,IAC3B;AAAA,IACA,UAAU,MAAM,OAAO,QAAQ;AAC7B,UAAI;AAAA,QACF;AAAA,QACA;AAAA,MACF,IAAI;AACJ,WAAK,WAAW,WAAW;AAC3B,qBAAe,MAAM;AACrB,YAAM,WAAW,mBAAmB,GAAG;AACvC,aAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,gBAAgB,QAAQ,QAAQ,QAAQ,IAAI;AAAA,QACzG;AAAA,MACF,CAAC,EAAE,KAAK,iBAAiB;AAAA,IAC3B;AAAA,IACA,wBAAwB,MAAM,OAAO,QAAQ;AAC3C,UAAI;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,WAAK,WAAW,yBAAyB;AACzC,qBAAe,MAAM;AACrB,YAAM,WAAW,mBAAmB,GAAG;AACvC,YAAM,cAAc,mBAAmB,QAAQ;AAC/C,aAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,WAAW,iBAAiB,QAAQ,IAAI;AAAA,QACtH;AAAA,MACF,GAAG;AAAA,QACD;AAAA,MACF,CAAC,EAAE,KAAK,iBAAiB;AAAA,IAC3B;AAAA,IACA,MAAM,gBAAgB,MAAM,SAAS;AACnC,YAAM,OAAO,MAAMA,8BAA4B,MAAM,gCAAgC,EAAE,gCAAgC,EAAE,OAAO;AAChI,YAAM,UAAU,UAAU,KAAK,WAAW,KAAK;AAE/C,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AAGJ,aAAO;AAAA,QACL,QAAQ;AAAA,QACR;AAAA,QACA,QAAQ,CAAC;AAAA,QACT,KAAK,GAAG,MAAM,gBAAgB;AAAA,UAC5B,YAAY,KAAK,YAAY;AAAA,UAC7B,eAAe,KAAK,YAAY;AAAA,UAChC,cAAc,KAAK,YAAY;AAAA,UAC/B;AAAA,UACA,YAAY,KAAK;AAAA,UACjB,QAAQ,KAAK;AAAA,UACb,KAAK,OAAO,OAAO,MAAM,GAAG,OAAO,WAAW,CAAC,IAAI,KAAK,IAAI;AAAA,UAC5D;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA;AAAA,QAEF,SAAS;AAAA,UACP,gBAAgB,KAAK;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS,MAAM,OAAO;AACpB,UAAI;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,WAAK,WAAW,UAAU;AAC1B,qBAAe,MAAM;AACrB,UAAI,YAAY,QAAQ,OAAO,QAAQ,cAAc,MAAM;AACzD,cAAM,IAAI,MAAM,0DAA0D;AAAA,MAC5E;AACA,YAAM,WAAW,mBAAmB,GAAG;AACvC,aAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,gBAAgB,QAAQ,IAAI,UAAU,QAAQ,QAAQ,IAAI;AAAA,QACvH;AAAA,MACF,CAAC,EAAE,KAAK,iBAAiB;AAAA,IAC3B;AAAA,IACA,qBAAqB,MAAM,OAAO,QAAQ;AACxC,UAAI;AAAA,QACF;AAAA,QACA;AAAA,MACF,IAAI;AACJ,WAAK,WAAW,sBAAsB;AACtC,YAAM,WAAW,mBAAmB,GAAG;AACvC,YAAM,cAAc,mBAAmB,QAAQ;AAC/C,aAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,OAAO,gBAAgB,WAAW,QAAQ,QAAQ,IAAI,QAAW;AAAA,QAC1H;AAAA,MACF,CAAC,EAAE,KAAK,iBAAiB;AAAA,IAC3B;AAAA,IACA,oBAAoB,MAAM,SAAS;AACjC,YAAM;AAAA,QACJ;AAAA,MACF,IAAI;AACJ,YAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,MACR,IAAI;AACJ,YAAM,WAAW,mBAAmB;AAAA,QAClC;AAAA,QACA,mBAAmB,KAAK,KAAK;AAAA,QAC7B,SAAS;AAAA,MACX,CAAC;AACD,YAAM,QAAQ,IAAI,gBAAgB;AAAA,QAChC;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,CAAC;AACD,aAAOA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,aAAa,KAAK,IAAI,OAAO;AAAA,IAC9F;AAAA,IACA,aAAa,gBAAgB,OAAO;AAClC,UAAI;AAAA,QACF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,QACX;AAAA,QACA;AAAA,QACA,OAAO,KAAK;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,qBAAe,MAAM;AACrB,UAAI,OAAO,MAAM;AACf,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AACA,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,MAAM,IAAI,eAAe;AAC/B,YAAI,KAAK,QAAQ,KAAK,IAAI;AAC1B,YAAI,SAAS;AACX,iBAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAClC,gBAAI,iBAAiB,KAAK,QAAQ,GAAG,CAAC;AAAA,UACxC,CAAC;AAAA,QACH;AACA,YAAI,eAAe;AACnB,YAAI,OAAO,YAAY,UAAU;AAC/B,cAAI,UAAU,UAAU;AAAA,QAC1B;AACA,iBAAS,UAAU;AACjB,cAAI,MAAM;AAAA,QACZ;AACA,iBAAS,UAAU;AACjB,iBAAO,oBAAoB,SAAS,OAAO;AAAA,QAC7C;AACA,eAAO,iBAAiB,SAAS,OAAO;AACxC,YAAI,OAAO,iBAAiB,YAAY,QAAM;AAC5C,qBAAW,EAAE;AAAA,QACf,CAAC;AACD,YAAI,iBAAiB,SAAS,MAAM;AAClC,kBAAQ;AACR,iBAAO,iBAAiB,CAAC;AAAA,QAC3B,CAAC;AACD,YAAI,iBAAiB,WAAW,MAAM;AACpC,kBAAQ;AACR,gBAAMI,SAAQ,IAAI,MAAM,qBAAqB;AAC7C,UAAAA,OAAM,SAAS;AAAA,YACb,QAAQ;AAAA,UACV;AACA,iBAAOA,MAAK;AAAA,QACd,CAAC;AACD,YAAI,iBAAiB,QAAQ,QAAM;AACjC,kBAAQ;AACR,cAAI,GAAG,OAAO,WAAW,OAAO,GAAG,OAAO,aAAa,SAAS,wCAAwC,GAAG;AACzG,kBAAMA,SAAQ,IAAI,MAAM,qBAAqB;AAC7C,YAAAA,OAAM,SAAS,GAAG;AAClB,mBAAOA,MAAK;AACZ;AAAA,UACF;AACA,cAAI,GAAG,OAAO,SAAS,OAAO,GAAG,OAAO,UAAU,KAAK;AACrD,kBAAMA,SAAQ,IAAI,MAAM,SAAS;AACjC,YAAAA,OAAM,SAAS,GAAG;AAClB,mBAAOA,MAAK;AACZ;AAAA,UACF;AAGA,wBAAc,QAAQ,WAAW;AAAA,YAC/B,QAAQ;AAAA,YACR,kBAAkB;AAAA,UACpB,CAAC;AAGD,gBAAM,OAAO,GAAG,OAAO,kBAAkB,MAAM;AAC/C,gBAAMI,YAAW,GAAG,OAAO,kBAAkB,UAAU;AACvD,cAAI,OAAO,YAAY,MAAM,UAAUA,cAAa,MAAM;AAGxD,oBAAQ,KAAK,+MAA+M;AAAA,UAC9N;AACA,cAAI,SAAS,MAAM;AACjB,mBAAO,IAAI,MAAM,2MAA2M,CAAC;AAC7N;AAAA,UACF;AACA,wBAAc,QAAQ,WAAW,IAAI;AACrC,kBAAQ;AAAA,YACN,MAAM;AAAA,YACN,GAAIA,YAAW;AAAA,cACb,UAAAA;AAAA,YACF,IAAI;AAAA,UACN,CAAC;AAAA,QACH,CAAC;AACD,YAAI,iBAAiB,SAAS,QAAM;AAClC,kBAAQ;AACR,gBAAMJ,SAAQ,IAAI,MAAM,eAAe;AACvC,UAAAA,OAAM,SAAS,GAAG;AAClB,iBAAOA,MAAK;AAAA,QACd,CAAC;AACD,YAAI,KAAK,IAAI;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,UAAU;AACR,MAAAJ,8BAA4B,MAAM,8BAA8B,EAAE,8BAA8B,EAAE,IAAI;AACtG,WAAK,KAAK,gBAAgBA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,CAAC;AACvG,WAAK,KAAK,YAAYA,8BAA4B,MAAM,OAAO,EAAE,OAAO,CAAC;AACzE,WAAK,KAAK,GAAG,cAAcA,8BAA4B,MAAM,yBAAyB,EAAE,yBAAyB,CAAC;AAAA,IACpH;AAAA,IACA,YAAY;AACV,WAAK,KAAK,mBAAmBA,8BAA4B,MAAM,oBAAoB,EAAE,oBAAoB,CAAC;AAC1G,WAAK,KAAK,eAAeA,8BAA4B,MAAM,OAAO,EAAE,OAAO,CAAC;AAC5E,WAAK,KAAK,IAAI,cAAcA,8BAA4B,MAAM,yBAAyB,EAAE,yBAAyB,CAAC;AAAA,IACrH;AAAA,EACF;AACA,iBAAe,kCAAkC,SAAS;AACxD,mBAAe,WAAW,OAAO,SAAS,QAAQ,MAAM;AACxD,QAAIA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B,KAAK,MAAM;AAEvG,UAAI,KAAK,KAAK,oCAAoC,MAAM;AACtD,aAAK,WAAW,iCAAiC;AACjD,QAAAA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B,IAAIA,8BAA4B,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,UAAU,MAAM,OAAO,EAAE,KAAK,iBAAiB;AAAA,MACvM,OAAO;AACL,QAAAA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B,IAAI,KAAK,KAAK,gCAAgC,OAAO;AAAA,MACjJ;AACA,MAAAA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B,IAAI,MAAMA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B;AAC9L,iBAAW,MAAM;AAQf,QAAAA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B,IAAI;AAAA,MAChG,IAAI,UAAUA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B,EAAE,WAAW,KAAK,KAAK,GAAG;AAAA,IACpI;AACA,WAAOA,8BAA4B,MAAM,2BAA2B,EAAE,2BAA2B;AAAA,EACnG;AACA,WAAS,kBAAkB,MAAM;AAC/B,QAAI,QAAQ;AACZ,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,aAAa,CAAC,eAAe,eAAe;AAChD,aAAK,KAAK,KAAK,mBAAmB,KAAK,KAAK,QAAQ,KAAK,EAAE,GAAG;AAAA,UAC5D,UAAU;AAAA,UACV;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AACA,YAAM,UAAU,SAAO;AACrB,aAAK,KAAK,IAAI,GAAG;AACjB,aAAK,KAAK,KAAK,gBAAgB,MAAM,GAAG;AACxC,aAAK,wBAAwB,KAAK,EAAE;AACpC,eAAO,GAAG;AAAA,MACZ;AACA,YAAM,YAAY,YAAU;AAC1B,cAAM,aAAa;AAAA,UACjB,MAAM;AAAA,YACJ,GAAG;AAAA,UACL;AAAA,UACA,WAAW,OAAO;AAAA,QACpB;AACA,aAAK,wBAAwB,KAAK,EAAE;AACpC,aAAK,KAAK,KAAK,kBAAkBA,8BAA4B,MAAM,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,UAAU;AAC1G,YAAI,OAAO,UAAU;AACnB,eAAK,KAAK,IAAI,YAAY,KAAK,IAAI,SAAS,OAAO,QAAQ,EAAE;AAAA,QAC/D;AACA,gBAAQ;AAAA,MACV;AACA,YAAM,iBAAiB,UAAQ;AAC7B,aAAK,KAAK,KAAK,8BAA8BA,8BAA4B,MAAM,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI;AAAA,MAClH;AACA,YAAM,SAAS,IAAI,0BAAkB,KAAK,MAAM;AAAA;AAAA,QAE9C,eAAeA,8BAA4B,MAAM,4BAA4B,EAAE,4BAA4B;AAAA,QAC3G,KAAK,WAAY;AACf,iBAAO,MAAM,KAAK,IAAI,GAAG,SAAS;AAAA,QACpC;AAAA,QACA,cAAc,KAAK,KAAK,eAAe,KAAK,KAAK,aAAa,KAAK,IAAI,IAAI;AAAA,QAC3E;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,oBAAoB,KAAK,KAAK;AAAA,QAC9B,GAAG,KAAK;AAAA,MACV,CAAC;AACD,WAAK,UAAU,KAAK,EAAE,IAAI;AAC1B,YAAM,eAAe,IAAI,aAAa,KAAK,IAAI;AAC/C,WAAK,eAAe,KAAK,EAAE,IAAI;AAC/B,mBAAa,aAAa,KAAK,IAAI,aAAW;AAC5C,eAAO,MAAM;AACb,aAAK,wBAAwB,KAAK,IAAI;AAAA,UACpC,OAAO;AAAA,QACT,CAAC;AACD,gBAAQ,UAAU,QAAQ,EAAE,cAAc;AAAA,MAC5C,CAAC;AACD,mBAAa,YAAY,KAAK,IAAI,SAAU,OAAO;AACjD,YAAI;AAAA,UACF;AAAA,QACF,IAAI,UAAU,SAAS,CAAC,IAAI;AAC5B,YAAI,WAAW,QAAQ;AACrB,iBAAO,MAAM;AACb,gBAAM,wBAAwB,KAAK,IAAI;AAAA,YACrC,OAAO;AAAA,UACT,CAAC;AAAA,QACH;AACA,gBAAQ,UAAU,KAAK,EAAE,eAAe;AAAA,MAC1C,CAAC;AACD,mBAAa,YAAY,KAAK,IAAI,cAAY;AAC5C,YAAI,UAAU;AACZ,iBAAO,MAAM;AAAA,QACf,OAAO;AACL,iBAAO,MAAM;AAAA,QACf;AAAA,MACF,CAAC;AACD,mBAAa,WAAW,KAAK,IAAI,MAAM;AACrC,eAAO,MAAM;AAAA,MACf,CAAC;AACD,mBAAa,YAAY,KAAK,IAAI,MAAM;AACtC,eAAO,MAAM;AAAA,MACf,CAAC;AACD,aAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AACA,WAAS,yBAAyB,MAAM;AACtC,WAAO;AAAA,MACL,GAAG,KAAK,OAAO;AAAA,MACf,UAAU;AAAA,MACV,MAAM,KAAK,KAAK;AAAA,MAChB,UAAU,KAAK;AAAA,IACjB;AAAA,EACF;AACA,iBAAe,UAAUG,cAAY;;;ACrkCrC,MAAM,QAAQ;AAAA,IACZ,SAAS,CAAC;AAAA,IACV,UAAUM,IAAG;AACX,UAAIA,MAAK,GAAG;AACV,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,UAAU;AAAA,IACd,oBAAoB;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,cAAc;AAAA,IACd,yBAAyB;AAAA,IACzB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,UAAU;AAAA,IACV,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,UAAU;AAAA,IACV,6BAA6B;AAAA,IAC7B,4BAA4B;AAAA,IAC5B,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,wBAAwB;AAAA,IACxB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,sBAAsB;AAAA,IACtB,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,sBAAsB;AAAA,MACpB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,QAAQ;AAAA,IACR,mBAAmB;AAAA,IACnB,aAAa;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,sBAAsB;AAAA,IACtB,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,IACV,cAAc;AAAA,IACd,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,kBAAkB;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,IACzB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,SAAS;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,eAAe;AAAA,IACf,cAAc;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,gBAAgB;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,2BAA2B;AAAA,IAC3B,mBAAmB;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,yBAAyB;AAAA,MACvB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAIA,MAAI,OAAO,SAAS,aAAa;AAE/B,eAAW,KAAK,QAAQ,QAAQ;AAAA,EAClC;AACA,MAAO,gBAAQ;;;AC5Jf,MAAO,wCAAP,cAA6B,WAAW;AAAA,IACtC,aAAa;AACX,YAAM,mBAAmB,SAAS,eAAe,oBAAoB;AACrE,UAAI,aAAa;AACjB,UAAI,mBAAmB;AAEvB,UAAI,oBAAoB,qBAAqB,IAAI;AAC/C,YAAI,iBAAiB,QAAQ,UAAU,iBAAiB,QAAQ,WAAW,IAAI;AAC7E,uBAAa,GAAG,iBAAiB,QAAQ,MAAM;AAAA,QACjD;AAEA,YAAI,iBAAiB,QAAQ,UAAU,iBAAiB,QAAQ,WAAW,IAAI;AAC7E,6BAAmB,iBAAiB,QAAQ,OAAO,MAAM,GAAG;AAAA,QAC9D;AAEA,eAAO,iBAAiB,QAAQ;AAChC,eAAO,iBAAiB,QAAQ;AAAA,MAClC;AAEA,WAAK,OAAO,IAAI,aAAK;AAAA,QACnB,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,cAAc;AAAA,UACZ;AAAA,QACF;AAAA,QAEA,mBAAmB,CAAC,aAAa,WAAW;AAAA,UAC1C,GAAG;AAAA,UACH,MAAM,GAAG,UAAU,GAAG,YAAY,IAAI;AAAA,QACxC;AAAA,MACF,CAAC,EAAE,IAAIC,YAAW;AAAA,QAChB,QAAQ;AAAA,QACR,yBAAyB;AAAA,QACzB,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,6BAA6B;AAAA,QAC7B,QAAQ;AAAA,QACR,OAAO;AAAA,MACT,CAAC,EAAE,IAAI,gBAAgB;AAAA,QACrB,cAAc;AAAA,MAChB,CAAC,EAAE,IAAI,WAAW;AAAA,QAChB,WAAW;AAAA,QACX,QAAQ;AAAA,MACV,CAAC,EAAE,IAAI,MAAM;AAAA,QACX,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,uBAAuB;AAAA,MACzB,CAAC;AAAA,IACH;AAAA,IAEA,UAAU;AACR,WAAK,KAAK,GAAG,YAAY,CAAC,WAAW;AACnC,YAAI,OAAO,OAAO,WAAW,GAAG;AAC9B,eAAK,KAAK,SAAS,EAAE,eAAe,IAAI,CAAC;AACzC,mBAAS,cAAc,iBAAiB,EAAE,aAAa,SAAS,eAAe;AAC/E,mBAAS,cAAc,yCAAyC,EAAE,WAAW;AAC7E,mBAAS,cAAc,yCAAyC,EAAE,UAAU,OAAO,qBAAqB;AAAA,QAC1G;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;;;ACjEA,MAAO,yCAAP,cAA6B,WAAW;AAAA,IACtC,aAAa;AACX,YAAMC,yBAAwB,SAAS,eAAe,0BAA0B;AAChF,UAAI,aAAa;AACjB,UAAI,mBAAmB;AAEvB,UAAIA,0BAAyBA,2BAA0B,IAAI;AACzD,YAAIA,uBAAsB,QAAQ,UAAUA,uBAAsB,QAAQ,WAAW,IAAI;AACvF,uBAAa,GAAGA,uBAAsB,QAAQ,MAAM;AAAA,QACtD;AAEA,YAAIA,uBAAsB,QAAQ,UAAUA,uBAAsB,QAAQ,WAAW,IAAI;AACvF,6BAAmBA,uBAAsB,QAAQ,OAAO,MAAM,GAAG;AAAA,QACnE;AAEA,eAAOA,uBAAsB,QAAQ;AACrC,eAAOA,uBAAsB,QAAQ;AAAA,MACvC;AAEA,WAAK,OAAO,IAAI,aAAK;AAAA,QACnB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,cAAc;AAAA,UACZ;AAAA,QACF;AAAA,QACA,mBAAmB,CAAC,aAAa,WAAW;AAAA,UAC1C,GAAG;AAAA,UACH,MAAM,GAAG,UAAU,GAAG,YAAY,IAAI;AAAA,QACxC;AAAA,MACF,CAAC;AAED,WAAK,KAAK,IAAI,WAAW;AAAA,QACvB,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,MACb,CAAC,EAAE,IAAI,gBAAgB;AAAA,QACrB,cAAc;AAAA,MAChB,CAAC,EAAE,IAAI,MAAM;AAAA,QACX,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,uBAAuB;AAAA,MACzB,CAAC;AAAA,IACH;AAAA,IAEA,UAAU;AACR,WAAK,KAAK,GAAG,YAAY,CAAC,WAAW;AACnC,YAAI,OAAO,OAAO,WAAW,GAAG;AAC9B,mBAAS,cAAc,8BAA8B,EAAE,YAAY,sBAAsB,QAAQ;AAAA,QACnG;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;;;AC7DA,MAAO,8CAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IAEA,UAAU;AACR,WAAK,oCAAoC;AAAA,IAC3C;AAAA,IAEA,sCAAsC;AACpC,WAAK,6BAA6B;AAClC,WAAK,yCAAyC;AAC9C,WAAK,oBAAoB;AAAA,IAC3B;AAAA,IAEA,sBAAsB;AACpB,UAAI,CAAC,KAAK,4BAA6B;AAEvC,UAAI,KAAK,yBAAyB,WAAW,KAAK,kCAAkC,GAAG;AACrF,aAAK,yBAAyB,UAAU,OAAO,QAAQ;AACvD,aAAK,yBAAyB,iBAAiB,uBAAuB,EAAE,QAAQ,CAAC,OAAO;AACtF,aAAG,WAAW;AACd,aAAG,WAAW,EAAE,KAAK,+BAA+B,KAAK,yBAAyB;AAAA,QACpF,CAAC;AAED,aAAK,oBAAoB,UAAU,IAAI,SAAS;AAChD,aAAK,kBAAkB,UAAU,OAAO,SAAS;AAEjD,aAAK,iCAAiC,UAAU,IAAI,gBAAgB;AAAA,MACtE,OAAO;AACL,aAAK,yBAAyB,cAAc,OAAO,EAAE,WAAW;AAChE,aAAK,yBAAyB,UAAU,IAAI,QAAQ;AACpD,aAAK,yBAAyB,iBAAiB,uBAAuB,EAAE,QAAQ,CAAC,OAAO;AACtF,aAAG,WAAW;AACd,aAAG,WAAW;AAAA,QAChB,CAAC;AAED,YAAI,KAAK,sBAAsB,SAAS;AACtC,eAAK,oBAAoB,UAAU,OAAO,SAAS;AACnD,eAAK,kBAAkB,UAAU,IAAI,SAAS;AAAA,QAChD;AAEA,aAAK,iCAAiC,UAAU,OAAO,gBAAgB;AAAA,MACzE;AAAA,IACF;AAAA,IAEA,2CAA2C;AACzC,UAAI,CAAC,KAAK,2CAA4C;AAEtD,UAAI,KAAK,kCAAkC,GAAG;AAC5C,aAAK,wCAAwC,UAAU,OAAO,QAAQ;AACtE,YAAI,KAAK,6BAA8B,MAAK,0BAA0B,UAAU,OAAO,QAAQ;AAE/F,aAAK,sBAAsB,UAAU;AACrC,aAAK,yBAAyB,UAAU;AAAA,MAC1C,OAAO;AACL,aAAK,wCAAwC,UAAU,IAAI,QAAQ;AACnE,YAAI,KAAK,6BAA8B,MAAK,0BAA0B,UAAU,IAAI,QAAQ;AAAA,MAC9F;AAAA,IACF;AAAA,IAEA,oCAAoC;AAClC,UAAI,CAAC,KAAK,yBAA0B,QAAO;AAE3C,YAAM,gBAAgB,KAAK,MAAM,KAAK,sBAAsB,QAAQ,kCAAkC;AACtG,YAAM,gBAAgB,KAAK,sBAAsB;AACjD,aAAO,cAAc,SAAS,aAAa;AAAA,IAC7C;AAAA,IAEA,+BAA+B;AAE7B,UAAI,CAAC,KAAK,4BAA4B,KAAK,sBAAsB,QAAQ,WAAW,EAAG;AAGvF,UAAI,KAAK,sBAAsB,kBAAkB,KAC/C,KAAK,sBAAsB,QAAQ,CAAC,EAAE,UAAU,IAAI;AACpD,aAAK,iCAAiC,UAAU,IAAI,QAAQ;AAAA,MAC9D,OAAO;AACL,aAAK,iCAAiC,UAAU,OAAO,QAAQ;AAAA,MACjE;AAAA,IACF;AAAA,EACF;;;AC3FA,sBAAmB;AAEnB,MAAO,2BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,SAAS,EAAC,SAAS,QAAQ,OAAO,OAAM;AAAA,IAE/C,UAAU;AACR,WAAK,UAAU;AAAA,IACjB;AAAA,IAEA,YAAY;AACV,UAAI,KAAK,eAAe,SAAS;AAC/B,sBAAAC,QAAO,MAAM,KAAK,YAAY;AAAA,MAChC,OAAO;AACL,sBAAAA,QAAO,QAAQ,KAAK,YAAY;AAAA,MAClC;AAAA,IACF;AAAA,EACF;;;ACbA,MAAO,0BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,kBAAkB;AAAA,IAEpC,MAAM,OAAO;AACX,YAAM,OAAO,MAAM;AAAA,IACrB;AAAA,IAEA,wBAAwB;AACtB,UAAI,KAAK,2BAA2B;AAClC,aAAK,wBAAwB,QAAQ,CAAC,YAAY;AAChD,cAAI;AACF,oBAAQ,YAAY;AAAA,UACtB,SAASC,IAAG;AAAA,UAAC;AAAA,QACf,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,iBAAiB,OAAO;AACtB,YAAM,QAAQ,MAAM;AACpB,YAAM,QAAQ,MAAM,MAAM,QAAQ,QAAQ,EAAE;AAAA,IAC9C;AAAA,IAEA,mBAAmB,OAAO;AACxB,YAAM,iBAAiB,MAAM;AAC7B,YAAM,iBAAiB,eAAe,QAAQ;AAC9C,YAAM,gBAAgB,SAAS,cAAc,cAAc;AAE3D,UAAI,CAAC,cAAe;AAEpB,YAAM,SAAS,cAAc,iBAAiB,yBAAyB;AACvE,YAAM,WAAW,eAAe,SAAS,eAAe,UAAU;AAElE,oBAAc,MAAM,UAAU,WAAW,KAAK;AAC9C,aAAO,QAAQ,CAAC,UAAW,MAAM,WAAW,CAAC,QAAS;AAAA,IACxD;AAAA,EACF;;;ACrCA,MAAO,qCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,cAAc;AAAA,IAEhC,UAAU;AACR,WAAK,SAAS;AAAA,IAChB;AAAA,IAEA,WAAW;AACT,YAAM,SAAS,KAAK,QAAQ,iBAAiB,oEAAoE;AACjH,YAAM,YAAY,MAAM,KAAK,MAAM,EAAE,MAAM,CAAC,UAAU,MAAM,MAAM,KAAK,MAAM,EAAE;AAE/E,WAAK,oBAAoB,QAAQ,CAAC,WAAW;AAC3C,eAAO,WAAW,CAAC;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;;;ACfA,MAAO,2BAAP,cAA6B,WAAW;AAAA,IACtC,UAAU;AACR,WAAK,QAAQ,cAAc;AAAA,IAC7B;AAAA,EACF;;;ACJA,MAAO,qCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,SAAS;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IAEA,UAAU;AACR,WAAK,WAAW;AAAA,IAClB;AAAA,IAEA,aAAa;AACX,qBAAe;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,aAAa,MAAM,KAAK,mBAAmB,KAAK;AAAA,UAChD,UAAU,MAAM,KAAK,mBAAmB,IAAI;AAAA,UAC5C,cAAc,MAAM,OAAO,SAAS;AAAA,YAClC,KAAK;AAAA,YACL,UAAU;AAAA,UACZ,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,IAEA,mBAAmB,UAAU,OAAO;AAClC,YAAM,MAAM,IAAI,IAAI,KAAK,gBAAgB;AACzC,UAAI,SAAS;AACX,YAAI,aAAa,IAAI,UAAU,SAAS;AAAA,MAC1C;AAEA,aAAO,SAAS,QAAQ,GAAG;AAAA,IAC7B;AAAA,EACF;;;AClCA,MAAO,oCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,IAAC;AAAA,IAEX,kBAAkB,OAAO;AACvB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,iBAAW,UAAU,IAAI,iBAAiB;AAC1C,qBAAe,UAAU,OAAO,OAAO;AACvC,qBAAe,UAAU,IAAI,cAAc,MAAM;AACjD,mBAAa,UAAU;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,mBAAa,UAAU,IAAI,aAAa;AACxC,wBAAkB,UAAU,OAAO,QAAQ;AAC3C,uBAAiB,UAAU,IAAI,QAAQ;AACvC,8BAAwB,UAAU,OAAO,MAAM;AAC/C,wBAAkB,UAAU,IAAI,MAAM;AAAA,IACxC;AAAA,IAEA,mBAAmB,OAAO;AACxB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,iBAAW,UAAU,OAAO,iBAAiB;AAC7C,qBAAe,UAAU,OAAO,cAAc,MAAM;AACpD,qBAAe,UAAU,IAAI,OAAO;AACpC,mBAAa,UAAU,OAAO,aAAa;AAC3C,mBAAa,UAAU;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,wBAAkB,UAAU,IAAI,QAAQ;AACxC,uBAAiB,UAAU,OAAO,QAAQ;AAC1C,8BAAwB,UAAU,IAAI,MAAM;AAC5C,wBAAkB,UAAU,OAAO,MAAM;AAAA,IAC3C;AAAA,EACF;;;AC7DA,MAAO,2BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,SAAS,EAAC,UAAU,SAAS,UAAU,OAAM;AAAA,IAEpD,UAAU;AACR,UAAI,KAAK,eAAe;AAAE,aAAK,KAAK;AAAA,MAAE;AAAA,IACxC;AAAA,IAEA,OAAO;AACL,YAAM,QAAQ,KAAK,mBAAmB,SAAS,eAAe,KAAK,aAAa,IAAI,KAAK;AACzF,YAAM,UAAU,OAAO,QAAQ;AAAA,IACjC;AAAA,IAEA,QAAQ;AACN,WAAK,QAAQ,UAAU,IAAI,QAAQ;AAAA,IACrC;AAAA,EACF;;;ACjBO,MAAI,MAAM;AACV,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,iBAAiB,CAAC,KAAK,QAAQ,OAAO,IAAI;AAC9C,MAAIC,SAAQ;AACZ,MAAI,MAAM;AACV,MAAI,kBAAkB;AACtB,MAAI,WAAW;AACf,MAAI,SAAS;AACb,MAAI,YAAY;AAChB,MAAI,sBAAmC,+BAAe,OAAO,SAAU,KAAK,WAAW;AAC5F,WAAO,IAAI,OAAO,CAAC,YAAY,MAAMA,QAAO,YAAY,MAAM,GAAG,CAAC;AAAA,EACpE,GAAG,CAAC,CAAC;AACE,MAAI,aAA0B,iBAAC,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,SAAU,KAAK,WAAW;AACtG,WAAO,IAAI,OAAO,CAAC,WAAW,YAAY,MAAMA,QAAO,YAAY,MAAM,GAAG,CAAC;AAAA,EAC/E,GAAG,CAAC,CAAC;AAEE,MAAI,aAAa;AACjB,MAAI,OAAO;AACX,MAAI,YAAY;AAEhB,MAAI,aAAa;AACjB,MAAI,OAAO;AACX,MAAI,YAAY;AAEhB,MAAI,cAAc;AAClB,MAAI,QAAQ;AACZ,MAAI,aAAa;AACjB,MAAI,iBAAiB,CAAC,YAAY,MAAM,WAAW,YAAY,MAAM,WAAW,aAAa,OAAO,UAAU;;;AC9BtG,WAAR,YAA6B,SAAS;AAC3C,WAAO,WAAW,QAAQ,YAAY,IAAI,YAAY,IAAI;AAAA,EAC5D;;;ACFe,WAAR,UAA2B,MAAM;AACtC,QAAI,QAAQ,MAAM;AAChB,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,SAAS,MAAM,mBAAmB;AACzC,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,cAAc,eAAe,SAAS;AAAA,IAC/D;AAEA,WAAO;AAAA,EACT;;;ACTA,WAAS,UAAU,MAAM;AACvB,QAAI,aAAa,UAAU,IAAI,EAAE;AACjC,WAAO,gBAAgB,cAAc,gBAAgB;AAAA,EACvD;AAEA,WAAS,cAAc,MAAM;AAC3B,QAAI,aAAa,UAAU,IAAI,EAAE;AACjC,WAAO,gBAAgB,cAAc,gBAAgB;AAAA,EACvD;AAEA,WAAS,aAAa,MAAM;AAE1B,QAAI,OAAO,eAAe,aAAa;AACrC,aAAO;AAAA,IACT;AAEA,QAAI,aAAa,UAAU,IAAI,EAAE;AACjC,WAAO,gBAAgB,cAAc,gBAAgB;AAAA,EACvD;;;AChBA,WAAS,YAAY,MAAM;AACzB,QAAI,QAAQ,KAAK;AACjB,WAAO,KAAK,MAAM,QAAQ,EAAE,QAAQ,SAAU,MAAM;AAClD,UAAI,QAAQ,MAAM,OAAO,IAAI,KAAK,CAAC;AACnC,UAAI,aAAa,MAAM,WAAW,IAAI,KAAK,CAAC;AAC5C,UAAI,UAAU,MAAM,SAAS,IAAI;AAEjC,UAAI,CAAC,cAAc,OAAO,KAAK,CAAC,YAAY,OAAO,GAAG;AACpD;AAAA,MACF;AAKA,aAAO,OAAO,QAAQ,OAAO,KAAK;AAClC,aAAO,KAAK,UAAU,EAAE,QAAQ,SAAUC,OAAM;AAC9C,YAAI,QAAQ,WAAWA,KAAI;AAE3B,YAAI,UAAU,OAAO;AACnB,kBAAQ,gBAAgBA,KAAI;AAAA,QAC9B,OAAO;AACL,kBAAQ,aAAaA,OAAM,UAAU,OAAO,KAAK,KAAK;AAAA,QACxD;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,WAAS,OAAO,OAAO;AACrB,QAAI,QAAQ,MAAM;AAClB,QAAI,gBAAgB;AAAA,MAClB,QAAQ;AAAA,QACN,UAAU,MAAM,QAAQ;AAAA,QACxB,MAAM;AAAA,QACN,KAAK;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,MACA,OAAO;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MACA,WAAW,CAAC;AAAA,IACd;AACA,WAAO,OAAO,MAAM,SAAS,OAAO,OAAO,cAAc,MAAM;AAC/D,UAAM,SAAS;AAEf,QAAI,MAAM,SAAS,OAAO;AACxB,aAAO,OAAO,MAAM,SAAS,MAAM,OAAO,cAAc,KAAK;AAAA,IAC/D;AAEA,WAAO,WAAY;AACjB,aAAO,KAAK,MAAM,QAAQ,EAAE,QAAQ,SAAU,MAAM;AAClD,YAAI,UAAU,MAAM,SAAS,IAAI;AACjC,YAAI,aAAa,MAAM,WAAW,IAAI,KAAK,CAAC;AAC5C,YAAI,kBAAkB,OAAO,KAAK,MAAM,OAAO,eAAe,IAAI,IAAI,MAAM,OAAO,IAAI,IAAI,cAAc,IAAI,CAAC;AAE9G,YAAI,QAAQ,gBAAgB,OAAO,SAAUC,QAAO,UAAU;AAC5D,UAAAA,OAAM,QAAQ,IAAI;AAClB,iBAAOA;AAAA,QACT,GAAG,CAAC,CAAC;AAEL,YAAI,CAAC,cAAc,OAAO,KAAK,CAAC,YAAY,OAAO,GAAG;AACpD;AAAA,QACF;AAEA,eAAO,OAAO,QAAQ,OAAO,KAAK;AAClC,eAAO,KAAK,UAAU,EAAE,QAAQ,SAAU,WAAW;AACnD,kBAAQ,gBAAgB,SAAS;AAAA,QACnC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AAGA,MAAO,sBAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI;AAAA,IACJ;AAAA,IACA,UAAU,CAAC,eAAe;AAAA,EAC5B;;;AClFe,WAAR,iBAAkC,WAAW;AAClD,WAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,EAC/B;;;ACHO,MAAI,MAAM,KAAK;AACf,MAAI,MAAM,KAAK;AACf,MAAI,QAAQ,KAAK;;;ACFT,WAAR,cAA+B;AACpC,QAAI,SAAS,UAAU;AAEvB,QAAI,UAAU,QAAQ,OAAO,UAAU,MAAM,QAAQ,OAAO,MAAM,GAAG;AACnE,aAAO,OAAO,OAAO,IAAI,SAAU,MAAM;AACvC,eAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,MACjC,CAAC,EAAE,KAAK,GAAG;AAAA,IACb;AAEA,WAAO,UAAU;AAAA,EACnB;;;ACTe,WAAR,mBAAoC;AACzC,WAAO,CAAC,iCAAiC,KAAK,YAAY,CAAC;AAAA,EAC7D;;;ACCe,WAAR,sBAAuC,SAAS,cAAc,iBAAiB;AACpF,QAAI,iBAAiB,QAAQ;AAC3B,qBAAe;AAAA,IACjB;AAEA,QAAI,oBAAoB,QAAQ;AAC9B,wBAAkB;AAAA,IACpB;AAEA,QAAI,aAAa,QAAQ,sBAAsB;AAC/C,QAAI,SAAS;AACb,QAAI,SAAS;AAEb,QAAI,gBAAgB,cAAc,OAAO,GAAG;AAC1C,eAAS,QAAQ,cAAc,IAAI,MAAM,WAAW,KAAK,IAAI,QAAQ,eAAe,IAAI;AACxF,eAAS,QAAQ,eAAe,IAAI,MAAM,WAAW,MAAM,IAAI,QAAQ,gBAAgB,IAAI;AAAA,IAC7F;AAEA,QAAI,OAAO,UAAU,OAAO,IAAI,UAAU,OAAO,IAAI,QACjD,iBAAiB,KAAK;AAE1B,QAAI,mBAAmB,CAAC,iBAAiB,KAAK;AAC9C,QAAIC,MAAK,WAAW,QAAQ,oBAAoB,iBAAiB,eAAe,aAAa,MAAM;AACnG,QAAIC,MAAK,WAAW,OAAO,oBAAoB,iBAAiB,eAAe,YAAY,MAAM;AACjG,QAAI,QAAQ,WAAW,QAAQ;AAC/B,QAAI,SAAS,WAAW,SAAS;AACjC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAKA;AAAA,MACL,OAAOD,KAAI;AAAA,MACX,QAAQC,KAAI;AAAA,MACZ,MAAMD;AAAA,MACN,GAAGA;AAAA,MACH,GAAGC;AAAA,IACL;AAAA,EACF;;;ACrCe,WAAR,cAA+B,SAAS;AAC7C,QAAI,aAAa,sBAAsB,OAAO;AAG9C,QAAI,QAAQ,QAAQ;AACpB,QAAI,SAAS,QAAQ;AAErB,QAAI,KAAK,IAAI,WAAW,QAAQ,KAAK,KAAK,GAAG;AAC3C,cAAQ,WAAW;AAAA,IACrB;AAEA,QAAI,KAAK,IAAI,WAAW,SAAS,MAAM,KAAK,GAAG;AAC7C,eAAS,WAAW;AAAA,IACtB;AAEA,WAAO;AAAA,MACL,GAAG,QAAQ;AAAA,MACX,GAAG,QAAQ;AAAA,MACX;AAAA,MACA;AAAA,IACF;AAAA,EACF;;;ACvBe,WAAR,SAA0B,QAAQ,OAAO;AAC9C,QAAI,WAAW,MAAM,eAAe,MAAM,YAAY;AAEtD,QAAI,OAAO,SAAS,KAAK,GAAG;AAC1B,aAAO;AAAA,IACT,WACS,YAAY,aAAa,QAAQ,GAAG;AACzC,UAAI,OAAO;AAEX,SAAG;AACD,YAAI,QAAQ,OAAO,WAAW,IAAI,GAAG;AACnC,iBAAO;AAAA,QACT;AAGA,eAAO,KAAK,cAAc,KAAK;AAAA,MACjC,SAAS;AAAA,IACX;AAGF,WAAO;AAAA,EACT;;;ACrBe,WAARC,kBAAkC,SAAS;AAChD,WAAO,UAAU,OAAO,EAAE,iBAAiB,OAAO;AAAA,EACpD;;;ACFe,WAAR,eAAgC,SAAS;AAC9C,WAAO,CAAC,SAAS,MAAM,IAAI,EAAE,QAAQ,YAAY,OAAO,CAAC,KAAK;AAAA,EAChE;;;ACFe,WAAR,mBAAoC,SAAS;AAElD,aAAS,UAAU,OAAO,IAAI,QAAQ;AAAA;AAAA,MACtC,QAAQ;AAAA,UAAa,OAAO,UAAU;AAAA,EACxC;;;ACFe,WAAR,cAA+B,SAAS;AAC7C,QAAI,YAAY,OAAO,MAAM,QAAQ;AACnC,aAAO;AAAA,IACT;AAEA;AAAA;AAAA;AAAA;AAAA,MAGE,QAAQ;AAAA,MACR,QAAQ;AAAA,OACR,aAAa,OAAO,IAAI,QAAQ,OAAO;AAAA;AAAA,MAEvC,mBAAmB,OAAO;AAAA;AAAA,EAG9B;;;ACVA,WAAS,oBAAoB,SAAS;AACpC,QAAI,CAAC,cAAc,OAAO;AAAA,IAC1BC,kBAAiB,OAAO,EAAE,aAAa,SAAS;AAC9C,aAAO;AAAA,IACT;AAEA,WAAO,QAAQ;AAAA,EACjB;AAIA,WAAS,mBAAmB,SAAS;AACnC,QAAI,YAAY,WAAW,KAAK,YAAY,CAAC;AAC7C,QAAI,OAAO,WAAW,KAAK,YAAY,CAAC;AAExC,QAAI,QAAQ,cAAc,OAAO,GAAG;AAElC,UAAI,aAAaA,kBAAiB,OAAO;AAEzC,UAAI,WAAW,aAAa,SAAS;AACnC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,cAAc,cAAc,OAAO;AAEvC,QAAI,aAAa,WAAW,GAAG;AAC7B,oBAAc,YAAY;AAAA,IAC5B;AAEA,WAAO,cAAc,WAAW,KAAK,CAAC,QAAQ,MAAM,EAAE,QAAQ,YAAY,WAAW,CAAC,IAAI,GAAG;AAC3F,UAAI,MAAMA,kBAAiB,WAAW;AAItC,UAAI,IAAI,cAAc,UAAU,IAAI,gBAAgB,UAAU,IAAI,YAAY,WAAW,CAAC,aAAa,aAAa,EAAE,QAAQ,IAAI,UAAU,MAAM,MAAM,aAAa,IAAI,eAAe,YAAY,aAAa,IAAI,UAAU,IAAI,WAAW,QAAQ;AACpP,eAAO;AAAA,MACT,OAAO;AACL,sBAAc,YAAY;AAAA,MAC5B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAIe,WAAR,gBAAiC,SAAS;AAC/C,QAAIC,UAAS,UAAU,OAAO;AAC9B,QAAI,eAAe,oBAAoB,OAAO;AAE9C,WAAO,gBAAgB,eAAe,YAAY,KAAKD,kBAAiB,YAAY,EAAE,aAAa,UAAU;AAC3G,qBAAe,oBAAoB,YAAY;AAAA,IACjD;AAEA,QAAI,iBAAiB,YAAY,YAAY,MAAM,UAAU,YAAY,YAAY,MAAM,UAAUA,kBAAiB,YAAY,EAAE,aAAa,WAAW;AAC1J,aAAOC;AAAA,IACT;AAEA,WAAO,gBAAgB,mBAAmB,OAAO,KAAKA;AAAA,EACxD;;;ACpEe,WAAR,yBAA0C,WAAW;AAC1D,WAAO,CAAC,OAAO,QAAQ,EAAE,QAAQ,SAAS,KAAK,IAAI,MAAM;AAAA,EAC3D;;;ACDO,WAAS,OAAOC,MAAK,OAAOC,MAAK;AACtC,WAAO,IAAQD,MAAK,IAAQ,OAAOC,IAAG,CAAC;AAAA,EACzC;AACO,WAAS,eAAeD,MAAK,OAAOC,MAAK;AAC9C,QAAIC,KAAI,OAAOF,MAAK,OAAOC,IAAG;AAC9B,WAAOC,KAAID,OAAMA,OAAMC;AAAA,EACzB;;;ACPe,WAAR,qBAAsC;AAC3C,WAAO;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;;;ACNe,WAAR,mBAAoC,eAAe;AACxD,WAAO,OAAO,OAAO,CAAC,GAAG,mBAAmB,GAAG,aAAa;AAAA,EAC9D;;;ACHe,WAAR,gBAAiC,OAAO,MAAM;AACnD,WAAO,KAAK,OAAO,SAAU,SAAS,KAAK;AACzC,cAAQ,GAAG,IAAI;AACf,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AAAA,EACP;;;ACKA,MAAI,kBAAkB,SAASC,iBAAgB,SAAS,OAAO;AAC7D,cAAU,OAAO,YAAY,aAAa,QAAQ,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO;AAAA,MAC/E,WAAW,MAAM;AAAA,IACnB,CAAC,CAAC,IAAI;AACN,WAAO,mBAAmB,OAAO,YAAY,WAAW,UAAU,gBAAgB,SAAS,cAAc,CAAC;AAAA,EAC5G;AAEA,WAAS,MAAM,MAAM;AACnB,QAAI;AAEJ,QAAI,QAAQ,KAAK,OACb,OAAO,KAAK,MACZ,UAAU,KAAK;AACnB,QAAI,eAAe,MAAM,SAAS;AAClC,QAAIC,iBAAgB,MAAM,cAAc;AACxC,QAAI,gBAAgB,iBAAiB,MAAM,SAAS;AACpD,QAAI,OAAO,yBAAyB,aAAa;AACjD,QAAI,aAAa,CAAC,MAAM,KAAK,EAAE,QAAQ,aAAa,KAAK;AACzD,QAAI,MAAM,aAAa,WAAW;AAElC,QAAI,CAAC,gBAAgB,CAACA,gBAAe;AACnC;AAAA,IACF;AAEA,QAAI,gBAAgB,gBAAgB,QAAQ,SAAS,KAAK;AAC1D,QAAI,YAAY,cAAc,YAAY;AAC1C,QAAI,UAAU,SAAS,MAAM,MAAM;AACnC,QAAI,UAAU,SAAS,MAAM,SAAS;AACtC,QAAI,UAAU,MAAM,MAAM,UAAU,GAAG,IAAI,MAAM,MAAM,UAAU,IAAI,IAAIA,eAAc,IAAI,IAAI,MAAM,MAAM,OAAO,GAAG;AACrH,QAAI,YAAYA,eAAc,IAAI,IAAI,MAAM,MAAM,UAAU,IAAI;AAChE,QAAI,oBAAoB,gBAAgB,YAAY;AACpD,QAAI,aAAa,oBAAoB,SAAS,MAAM,kBAAkB,gBAAgB,IAAI,kBAAkB,eAAe,IAAI;AAC/H,QAAI,oBAAoB,UAAU,IAAI,YAAY;AAGlD,QAAIC,OAAM,cAAc,OAAO;AAC/B,QAAIC,OAAM,aAAa,UAAU,GAAG,IAAI,cAAc,OAAO;AAC7D,QAAI,SAAS,aAAa,IAAI,UAAU,GAAG,IAAI,IAAI;AACnD,QAAIC,UAAS,OAAOF,MAAK,QAAQC,IAAG;AAEpC,QAAI,WAAW;AACf,UAAM,cAAc,IAAI,KAAK,wBAAwB,CAAC,GAAG,sBAAsB,QAAQ,IAAIC,SAAQ,sBAAsB,eAAeA,UAAS,QAAQ;AAAA,EAC3J;AAEA,WAASC,QAAO,OAAO;AACrB,QAAI,QAAQ,MAAM,OACd,UAAU,MAAM;AACpB,QAAI,mBAAmB,QAAQ,SAC3B,eAAe,qBAAqB,SAAS,wBAAwB;AAEzE,QAAI,gBAAgB,MAAM;AACxB;AAAA,IACF;AAGA,QAAI,OAAO,iBAAiB,UAAU;AACpC,qBAAe,MAAM,SAAS,OAAO,cAAc,YAAY;AAE/D,UAAI,CAAC,cAAc;AACjB;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,SAAS,MAAM,SAAS,QAAQ,YAAY,GAAG;AAClD;AAAA,IACF;AAEA,UAAM,SAAS,QAAQ;AAAA,EACzB;AAGA,MAAO,gBAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,QAAQA;AAAA,IACR,UAAU,CAAC,eAAe;AAAA,IAC1B,kBAAkB,CAAC,iBAAiB;AAAA,EACtC;;;ACzFe,WAAR,aAA8B,WAAW;AAC9C,WAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,EAC/B;;;ACOA,MAAI,aAAa;AAAA,IACf,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAIA,WAAS,kBAAkB,MAAM,KAAK;AACpC,QAAIC,KAAI,KAAK,GACTC,KAAI,KAAK;AACb,QAAI,MAAM,IAAI,oBAAoB;AAClC,WAAO;AAAA,MACL,GAAG,MAAMD,KAAI,GAAG,IAAI,OAAO;AAAA,MAC3B,GAAG,MAAMC,KAAI,GAAG,IAAI,OAAO;AAAA,IAC7B;AAAA,EACF;AAEO,WAAS,YAAY,OAAO;AACjC,QAAI;AAEJ,QAAIC,UAAS,MAAM,QACf,aAAa,MAAM,YACnB,YAAY,MAAM,WAClB,YAAY,MAAM,WAClB,UAAU,MAAM,SAChB,WAAW,MAAM,UACjB,kBAAkB,MAAM,iBACxB,WAAW,MAAM,UACjB,eAAe,MAAM,cACrB,UAAU,MAAM;AACpB,QAAI,aAAa,QAAQ,GACrBF,KAAI,eAAe,SAAS,IAAI,YAChC,aAAa,QAAQ,GACrBC,KAAI,eAAe,SAAS,IAAI;AAEpC,QAAI,QAAQ,OAAO,iBAAiB,aAAa,aAAa;AAAA,MAC5D,GAAGD;AAAA,MACH,GAAGC;AAAA,IACL,CAAC,IAAI;AAAA,MACH,GAAGD;AAAA,MACH,GAAGC;AAAA,IACL;AAEA,IAAAD,KAAI,MAAM;AACV,IAAAC,KAAI,MAAM;AACV,QAAI,OAAO,QAAQ,eAAe,GAAG;AACrC,QAAI,OAAO,QAAQ,eAAe,GAAG;AACrC,QAAI,QAAQ;AACZ,QAAI,QAAQ;AACZ,QAAI,MAAM;AAEV,QAAI,UAAU;AACZ,UAAI,eAAe,gBAAgBC,OAAM;AACzC,UAAI,aAAa;AACjB,UAAI,YAAY;AAEhB,UAAI,iBAAiB,UAAUA,OAAM,GAAG;AACtC,uBAAe,mBAAmBA,OAAM;AAExC,YAAIC,kBAAiB,YAAY,EAAE,aAAa,YAAY,aAAa,YAAY;AACnF,uBAAa;AACb,sBAAY;AAAA,QACd;AAAA,MACF;AAGA,qBAAe;AAEf,UAAI,cAAc,QAAQ,cAAc,QAAQ,cAAc,UAAU,cAAc,KAAK;AACzF,gBAAQ;AACR,YAAI,UAAU,WAAW,iBAAiB,OAAO,IAAI,iBAAiB,IAAI,eAAe;AAAA;AAAA,UACzF,aAAa,UAAU;AAAA;AACvB,QAAAF,MAAK,UAAU,WAAW;AAC1B,QAAAA,MAAK,kBAAkB,IAAI;AAAA,MAC7B;AAEA,UAAI,cAAc,SAAS,cAAc,OAAO,cAAc,WAAW,cAAc,KAAK;AAC1F,gBAAQ;AACR,YAAI,UAAU,WAAW,iBAAiB,OAAO,IAAI,iBAAiB,IAAI,eAAe;AAAA;AAAA,UACzF,aAAa,SAAS;AAAA;AACtB,QAAAD,MAAK,UAAU,WAAW;AAC1B,QAAAA,MAAK,kBAAkB,IAAI;AAAA,MAC7B;AAAA,IACF;AAEA,QAAI,eAAe,OAAO,OAAO;AAAA,MAC/B;AAAA,IACF,GAAG,YAAY,UAAU;AAEzB,QAAI,QAAQ,iBAAiB,OAAO,kBAAkB;AAAA,MACpD,GAAGA;AAAA,MACH,GAAGC;AAAA,IACL,GAAG,UAAUC,OAAM,CAAC,IAAI;AAAA,MACtB,GAAGF;AAAA,MACH,GAAGC;AAAA,IACL;AAEA,IAAAD,KAAI,MAAM;AACV,IAAAC,KAAI,MAAM;AAEV,QAAI,iBAAiB;AACnB,UAAI;AAEJ,aAAO,OAAO,OAAO,CAAC,GAAG,eAAe,iBAAiB,CAAC,GAAG,eAAe,KAAK,IAAI,OAAO,MAAM,IAAI,eAAe,KAAK,IAAI,OAAO,MAAM,IAAI,eAAe,aAAa,IAAI,oBAAoB,MAAM,IAAI,eAAeD,KAAI,SAASC,KAAI,QAAQ,iBAAiBD,KAAI,SAASC,KAAI,UAAU,eAAe;AAAA,IAClT;AAEA,WAAO,OAAO,OAAO,CAAC,GAAG,eAAe,kBAAkB,CAAC,GAAG,gBAAgB,KAAK,IAAI,OAAOA,KAAI,OAAO,IAAI,gBAAgB,KAAK,IAAI,OAAOD,KAAI,OAAO,IAAI,gBAAgB,YAAY,IAAI,gBAAgB;AAAA,EAC9M;AAEA,WAAS,cAAc,OAAO;AAC5B,QAAI,QAAQ,MAAM,OACd,UAAU,MAAM;AACpB,QAAI,wBAAwB,QAAQ,iBAChC,kBAAkB,0BAA0B,SAAS,OAAO,uBAC5D,oBAAoB,QAAQ,UAC5B,WAAW,sBAAsB,SAAS,OAAO,mBACjD,wBAAwB,QAAQ,cAChC,eAAe,0BAA0B,SAAS,OAAO;AAC7D,QAAI,eAAe;AAAA,MACjB,WAAW,iBAAiB,MAAM,SAAS;AAAA,MAC3C,WAAW,aAAa,MAAM,SAAS;AAAA,MACvC,QAAQ,MAAM,SAAS;AAAA,MACvB,YAAY,MAAM,MAAM;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,QAAQ,aAAa;AAAA,IACtC;AAEA,QAAI,MAAM,cAAc,iBAAiB,MAAM;AAC7C,YAAM,OAAO,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO,QAAQ,YAAY,OAAO,OAAO,CAAC,GAAG,cAAc;AAAA,QACvG,SAAS,MAAM,cAAc;AAAA,QAC7B,UAAU,MAAM,QAAQ;AAAA,QACxB;AAAA,QACA;AAAA,MACF,CAAC,CAAC,CAAC;AAAA,IACL;AAEA,QAAI,MAAM,cAAc,SAAS,MAAM;AACrC,YAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO,OAAO,YAAY,OAAO,OAAO,CAAC,GAAG,cAAc;AAAA,QACrG,SAAS,MAAM,cAAc;AAAA,QAC7B,UAAU;AAAA,QACV,UAAU;AAAA,QACV;AAAA,MACF,CAAC,CAAC,CAAC;AAAA,IACL;AAEA,UAAM,WAAW,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,WAAW,QAAQ;AAAA,MACnE,yBAAyB,MAAM;AAAA,IACjC,CAAC;AAAA,EACH;AAGA,MAAO,wBAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,MAAM,CAAC;AAAA,EACT;;;ACtKA,MAAI,UAAU;AAAA,IACZ,SAAS;AAAA,EACX;AAEA,WAASI,QAAO,MAAM;AACpB,QAAI,QAAQ,KAAK,OACb,WAAW,KAAK,UAChB,UAAU,KAAK;AACnB,QAAI,kBAAkB,QAAQ,QAC1B,SAAS,oBAAoB,SAAS,OAAO,iBAC7C,kBAAkB,QAAQ,QAC1B,SAAS,oBAAoB,SAAS,OAAO;AACjD,QAAIC,UAAS,UAAU,MAAM,SAAS,MAAM;AAC5C,QAAI,gBAAgB,CAAC,EAAE,OAAO,MAAM,cAAc,WAAW,MAAM,cAAc,MAAM;AAEvF,QAAI,QAAQ;AACV,oBAAc,QAAQ,SAAU,cAAc;AAC5C,qBAAa,iBAAiB,UAAU,SAAS,QAAQ,OAAO;AAAA,MAClE,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ;AACV,MAAAA,QAAO,iBAAiB,UAAU,SAAS,QAAQ,OAAO;AAAA,IAC5D;AAEA,WAAO,WAAY;AACjB,UAAI,QAAQ;AACV,sBAAc,QAAQ,SAAU,cAAc;AAC5C,uBAAa,oBAAoB,UAAU,SAAS,QAAQ,OAAO;AAAA,QACrE,CAAC;AAAA,MACH;AAEA,UAAI,QAAQ;AACV,QAAAA,QAAO,oBAAoB,UAAU,SAAS,QAAQ,OAAO;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AAGA,MAAO,yBAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI,SAAS,KAAK;AAAA,IAAC;AAAA,IACnB,QAAQD;AAAA,IACR,MAAM,CAAC;AAAA,EACT;;;AChDA,MAAIE,QAAO;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AACe,WAAR,qBAAsC,WAAW;AACtD,WAAO,UAAU,QAAQ,0BAA0B,SAAU,SAAS;AACpE,aAAOA,MAAK,OAAO;AAAA,IACrB,CAAC;AAAA,EACH;;;ACVA,MAAIC,QAAO;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AACe,WAAR,8BAA+C,WAAW;AAC/D,WAAO,UAAU,QAAQ,cAAc,SAAU,SAAS;AACxD,aAAOA,MAAK,OAAO;AAAA,IACrB,CAAC;AAAA,EACH;;;ACPe,WAAR,gBAAiC,MAAM;AAC5C,QAAI,MAAM,UAAU,IAAI;AACxB,QAAI,aAAa,IAAI;AACrB,QAAI,YAAY,IAAI;AACpB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;;;ACNe,WAAR,oBAAqC,SAAS;AAQnD,WAAO,sBAAsB,mBAAmB,OAAO,CAAC,EAAE,OAAO,gBAAgB,OAAO,EAAE;AAAA,EAC5F;;;ACRe,WAAR,gBAAiC,SAAS,UAAU;AACzD,QAAI,MAAM,UAAU,OAAO;AAC3B,QAAI,OAAO,mBAAmB,OAAO;AACrC,QAAI,iBAAiB,IAAI;AACzB,QAAI,QAAQ,KAAK;AACjB,QAAI,SAAS,KAAK;AAClB,QAAIC,KAAI;AACR,QAAIC,KAAI;AAER,QAAI,gBAAgB;AAClB,cAAQ,eAAe;AACvB,eAAS,eAAe;AACxB,UAAI,iBAAiB,iBAAiB;AAEtC,UAAI,kBAAkB,CAAC,kBAAkB,aAAa,SAAS;AAC7D,QAAAD,KAAI,eAAe;AACnB,QAAAC,KAAI,eAAe;AAAA,MACrB;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,GAAGD,KAAI,oBAAoB,OAAO;AAAA,MAClC,GAAGC;AAAA,IACL;AAAA,EACF;;;ACvBe,WAAR,gBAAiC,SAAS;AAC/C,QAAI;AAEJ,QAAI,OAAO,mBAAmB,OAAO;AACrC,QAAI,YAAY,gBAAgB,OAAO;AACvC,QAAI,QAAQ,wBAAwB,QAAQ,kBAAkB,OAAO,SAAS,sBAAsB;AACpG,QAAI,QAAQ,IAAI,KAAK,aAAa,KAAK,aAAa,OAAO,KAAK,cAAc,GAAG,OAAO,KAAK,cAAc,CAAC;AAC5G,QAAI,SAAS,IAAI,KAAK,cAAc,KAAK,cAAc,OAAO,KAAK,eAAe,GAAG,OAAO,KAAK,eAAe,CAAC;AACjH,QAAIC,KAAI,CAAC,UAAU,aAAa,oBAAoB,OAAO;AAC3D,QAAIC,KAAI,CAAC,UAAU;AAEnB,QAAIC,kBAAiB,QAAQ,IAAI,EAAE,cAAc,OAAO;AACtD,MAAAF,MAAK,IAAI,KAAK,aAAa,OAAO,KAAK,cAAc,CAAC,IAAI;AAAA,IAC5D;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,GAAGA;AAAA,MACH,GAAGC;AAAA,IACL;AAAA,EACF;;;AC3Be,WAAR,eAAgC,SAAS;AAE9C,QAAI,oBAAoBE,kBAAiB,OAAO,GAC5C,WAAW,kBAAkB,UAC7B,YAAY,kBAAkB,WAC9B,YAAY,kBAAkB;AAElC,WAAO,6BAA6B,KAAK,WAAW,YAAY,SAAS;AAAA,EAC3E;;;ACLe,WAAR,gBAAiC,MAAM;AAC5C,QAAI,CAAC,QAAQ,QAAQ,WAAW,EAAE,QAAQ,YAAY,IAAI,CAAC,KAAK,GAAG;AAEjE,aAAO,KAAK,cAAc;AAAA,IAC5B;AAEA,QAAI,cAAc,IAAI,KAAK,eAAe,IAAI,GAAG;AAC/C,aAAO;AAAA,IACT;AAEA,WAAO,gBAAgB,cAAc,IAAI,CAAC;AAAA,EAC5C;;;ACJe,WAAR,kBAAmC,SAAS,MAAM;AACvD,QAAI;AAEJ,QAAI,SAAS,QAAQ;AACnB,aAAO,CAAC;AAAA,IACV;AAEA,QAAI,eAAe,gBAAgB,OAAO;AAC1C,QAAI,SAAS,mBAAmB,wBAAwB,QAAQ,kBAAkB,OAAO,SAAS,sBAAsB;AACxH,QAAI,MAAM,UAAU,YAAY;AAChC,QAAI,SAAS,SAAS,CAAC,GAAG,EAAE,OAAO,IAAI,kBAAkB,CAAC,GAAG,eAAe,YAAY,IAAI,eAAe,CAAC,CAAC,IAAI;AACjH,QAAI,cAAc,KAAK,OAAO,MAAM;AACpC,WAAO,SAAS;AAAA;AAAA,MAChB,YAAY,OAAO,kBAAkB,cAAc,MAAM,CAAC,CAAC;AAAA;AAAA,EAC7D;;;ACzBe,WAAR,iBAAkC,MAAM;AAC7C,WAAO,OAAO,OAAO,CAAC,GAAG,MAAM;AAAA,MAC7B,MAAM,KAAK;AAAA,MACX,KAAK,KAAK;AAAA,MACV,OAAO,KAAK,IAAI,KAAK;AAAA,MACrB,QAAQ,KAAK,IAAI,KAAK;AAAA,IACxB,CAAC;AAAA,EACH;;;ACQA,WAAS,2BAA2B,SAAS,UAAU;AACrD,QAAI,OAAO,sBAAsB,SAAS,OAAO,aAAa,OAAO;AACrE,SAAK,MAAM,KAAK,MAAM,QAAQ;AAC9B,SAAK,OAAO,KAAK,OAAO,QAAQ;AAChC,SAAK,SAAS,KAAK,MAAM,QAAQ;AACjC,SAAK,QAAQ,KAAK,OAAO,QAAQ;AACjC,SAAK,QAAQ,QAAQ;AACrB,SAAK,SAAS,QAAQ;AACtB,SAAK,IAAI,KAAK;AACd,SAAK,IAAI,KAAK;AACd,WAAO;AAAA,EACT;AAEA,WAAS,2BAA2B,SAAS,gBAAgB,UAAU;AACrE,WAAO,mBAAmB,WAAW,iBAAiB,gBAAgB,SAAS,QAAQ,CAAC,IAAI,UAAU,cAAc,IAAI,2BAA2B,gBAAgB,QAAQ,IAAI,iBAAiB,gBAAgB,mBAAmB,OAAO,CAAC,CAAC;AAAA,EAC9O;AAKA,WAAS,mBAAmB,SAAS;AACnC,QAAIC,mBAAkB,kBAAkB,cAAc,OAAO,CAAC;AAC9D,QAAI,oBAAoB,CAAC,YAAY,OAAO,EAAE,QAAQC,kBAAiB,OAAO,EAAE,QAAQ,KAAK;AAC7F,QAAI,iBAAiB,qBAAqB,cAAc,OAAO,IAAI,gBAAgB,OAAO,IAAI;AAE9F,QAAI,CAAC,UAAU,cAAc,GAAG;AAC9B,aAAO,CAAC;AAAA,IACV;AAGA,WAAOD,iBAAgB,OAAO,SAAU,gBAAgB;AACtD,aAAO,UAAU,cAAc,KAAK,SAAS,gBAAgB,cAAc,KAAK,YAAY,cAAc,MAAM;AAAA,IAClH,CAAC;AAAA,EACH;AAIe,WAAR,gBAAiC,SAAS,UAAU,cAAc,UAAU;AACjF,QAAI,sBAAsB,aAAa,oBAAoB,mBAAmB,OAAO,IAAI,CAAC,EAAE,OAAO,QAAQ;AAC3G,QAAIA,mBAAkB,CAAC,EAAE,OAAO,qBAAqB,CAAC,YAAY,CAAC;AACnE,QAAI,sBAAsBA,iBAAgB,CAAC;AAC3C,QAAI,eAAeA,iBAAgB,OAAO,SAAU,SAAS,gBAAgB;AAC3E,UAAI,OAAO,2BAA2B,SAAS,gBAAgB,QAAQ;AACvE,cAAQ,MAAM,IAAI,KAAK,KAAK,QAAQ,GAAG;AACvC,cAAQ,QAAQ,IAAI,KAAK,OAAO,QAAQ,KAAK;AAC7C,cAAQ,SAAS,IAAI,KAAK,QAAQ,QAAQ,MAAM;AAChD,cAAQ,OAAO,IAAI,KAAK,MAAM,QAAQ,IAAI;AAC1C,aAAO;AAAA,IACT,GAAG,2BAA2B,SAAS,qBAAqB,QAAQ,CAAC;AACrE,iBAAa,QAAQ,aAAa,QAAQ,aAAa;AACvD,iBAAa,SAAS,aAAa,SAAS,aAAa;AACzD,iBAAa,IAAI,aAAa;AAC9B,iBAAa,IAAI,aAAa;AAC9B,WAAO;AAAA,EACT;;;ACjEe,WAAR,eAAgC,MAAM;AAC3C,QAAIE,aAAY,KAAK,WACjB,UAAU,KAAK,SACf,YAAY,KAAK;AACrB,QAAI,gBAAgB,YAAY,iBAAiB,SAAS,IAAI;AAC9D,QAAI,YAAY,YAAY,aAAa,SAAS,IAAI;AACtD,QAAI,UAAUA,WAAU,IAAIA,WAAU,QAAQ,IAAI,QAAQ,QAAQ;AAClE,QAAI,UAAUA,WAAU,IAAIA,WAAU,SAAS,IAAI,QAAQ,SAAS;AACpE,QAAI;AAEJ,YAAQ,eAAe;AAAA,MACrB,KAAK;AACH,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,GAAGA,WAAU,IAAI,QAAQ;AAAA,QAC3B;AACA;AAAA,MAEF,KAAK;AACH,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,GAAGA,WAAU,IAAIA,WAAU;AAAA,QAC7B;AACA;AAAA,MAEF,KAAK;AACH,kBAAU;AAAA,UACR,GAAGA,WAAU,IAAIA,WAAU;AAAA,UAC3B,GAAG;AAAA,QACL;AACA;AAAA,MAEF,KAAK;AACH,kBAAU;AAAA,UACR,GAAGA,WAAU,IAAI,QAAQ;AAAA,UACzB,GAAG;AAAA,QACL;AACA;AAAA,MAEF;AACE,kBAAU;AAAA,UACR,GAAGA,WAAU;AAAA,UACb,GAAGA,WAAU;AAAA,QACf;AAAA,IACJ;AAEA,QAAI,WAAW,gBAAgB,yBAAyB,aAAa,IAAI;AAEzE,QAAI,YAAY,MAAM;AACpB,UAAI,MAAM,aAAa,MAAM,WAAW;AAExC,cAAQ,WAAW;AAAA,QACjB,KAAKC;AACH,kBAAQ,QAAQ,IAAI,QAAQ,QAAQ,KAAKD,WAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI;AAC7E;AAAA,QAEF,KAAK;AACH,kBAAQ,QAAQ,IAAI,QAAQ,QAAQ,KAAKA,WAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI;AAC7E;AAAA,QAEF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;;;AC3De,WAAR,eAAgC,OAAO,SAAS;AACrD,QAAI,YAAY,QAAQ;AACtB,gBAAU,CAAC;AAAA,IACb;AAEA,QAAI,WAAW,SACX,qBAAqB,SAAS,WAC9B,YAAY,uBAAuB,SAAS,MAAM,YAAY,oBAC9D,oBAAoB,SAAS,UAC7B,WAAW,sBAAsB,SAAS,MAAM,WAAW,mBAC3D,oBAAoB,SAAS,UAC7B,WAAW,sBAAsB,SAAS,kBAAkB,mBAC5D,wBAAwB,SAAS,cACjC,eAAe,0BAA0B,SAAS,WAAW,uBAC7D,wBAAwB,SAAS,gBACjC,iBAAiB,0BAA0B,SAAS,SAAS,uBAC7D,uBAAuB,SAAS,aAChC,cAAc,yBAAyB,SAAS,QAAQ,sBACxD,mBAAmB,SAAS,SAC5B,UAAU,qBAAqB,SAAS,IAAI;AAChD,QAAI,gBAAgB,mBAAmB,OAAO,YAAY,WAAW,UAAU,gBAAgB,SAAS,cAAc,CAAC;AACvH,QAAI,aAAa,mBAAmB,SAAS,YAAY;AACzD,QAAI,aAAa,MAAM,MAAM;AAC7B,QAAI,UAAU,MAAM,SAAS,cAAc,aAAa,cAAc;AACtE,QAAI,qBAAqB,gBAAgB,UAAU,OAAO,IAAI,UAAU,QAAQ,kBAAkB,mBAAmB,MAAM,SAAS,MAAM,GAAG,UAAU,cAAc,QAAQ;AAC7K,QAAI,sBAAsB,sBAAsB,MAAM,SAAS,SAAS;AACxE,QAAIE,iBAAgB,eAAe;AAAA,MACjC,WAAW;AAAA,MACX,SAAS;AAAA,MACT,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,mBAAmB,iBAAiB,OAAO,OAAO,CAAC,GAAG,YAAYA,cAAa,CAAC;AACpF,QAAI,oBAAoB,mBAAmB,SAAS,mBAAmB;AAGvE,QAAI,kBAAkB;AAAA,MACpB,KAAK,mBAAmB,MAAM,kBAAkB,MAAM,cAAc;AAAA,MACpE,QAAQ,kBAAkB,SAAS,mBAAmB,SAAS,cAAc;AAAA,MAC7E,MAAM,mBAAmB,OAAO,kBAAkB,OAAO,cAAc;AAAA,MACvE,OAAO,kBAAkB,QAAQ,mBAAmB,QAAQ,cAAc;AAAA,IAC5E;AACA,QAAI,aAAa,MAAM,cAAc;AAErC,QAAI,mBAAmB,UAAU,YAAY;AAC3C,UAAIC,UAAS,WAAW,SAAS;AACjC,aAAO,KAAK,eAAe,EAAE,QAAQ,SAAU,KAAK;AAClD,YAAI,WAAW,CAAC,OAAO,MAAM,EAAE,QAAQ,GAAG,KAAK,IAAI,IAAI;AACvD,YAAI,OAAO,CAAC,KAAK,MAAM,EAAE,QAAQ,GAAG,KAAK,IAAI,MAAM;AACnD,wBAAgB,GAAG,KAAKA,QAAO,IAAI,IAAI;AAAA,MACzC,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;;;AC5De,WAAR,qBAAsC,OAAO,SAAS;AAC3D,QAAI,YAAY,QAAQ;AACtB,gBAAU,CAAC;AAAA,IACb;AAEA,QAAI,WAAW,SACX,YAAY,SAAS,WACrB,WAAW,SAAS,UACpB,eAAe,SAAS,cACxB,UAAU,SAAS,SACnB,iBAAiB,SAAS,gBAC1B,wBAAwB,SAAS,uBACjC,wBAAwB,0BAA0B,SAAS,aAAgB;AAC/E,QAAI,YAAY,aAAa,SAAS;AACtC,QAAIC,cAAa,YAAY,iBAAiB,sBAAsB,oBAAoB,OAAO,SAAUC,YAAW;AAClH,aAAO,aAAaA,UAAS,MAAM;AAAA,IACrC,CAAC,IAAI;AACL,QAAI,oBAAoBD,YAAW,OAAO,SAAUC,YAAW;AAC7D,aAAO,sBAAsB,QAAQA,UAAS,KAAK;AAAA,IACrD,CAAC;AAED,QAAI,kBAAkB,WAAW,GAAG;AAClC,0BAAoBD;AAAA,IACtB;AAGA,QAAI,YAAY,kBAAkB,OAAO,SAAU,KAAKC,YAAW;AACjE,UAAIA,UAAS,IAAI,eAAe,OAAO;AAAA,QACrC,WAAWA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,EAAE,iBAAiBA,UAAS,CAAC;AAC9B,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AACL,WAAO,OAAO,KAAK,SAAS,EAAE,KAAK,SAAUC,IAAGC,IAAG;AACjD,aAAO,UAAUD,EAAC,IAAI,UAAUC,EAAC;AAAA,IACnC,CAAC;AAAA,EACH;;;AClCA,WAAS,8BAA8B,WAAW;AAChD,QAAI,iBAAiB,SAAS,MAAM,MAAM;AACxC,aAAO,CAAC;AAAA,IACV;AAEA,QAAI,oBAAoB,qBAAqB,SAAS;AACtD,WAAO,CAAC,8BAA8B,SAAS,GAAG,mBAAmB,8BAA8B,iBAAiB,CAAC;AAAA,EACvH;AAEA,WAAS,KAAK,MAAM;AAClB,QAAI,QAAQ,KAAK,OACb,UAAU,KAAK,SACf,OAAO,KAAK;AAEhB,QAAI,MAAM,cAAc,IAAI,EAAE,OAAO;AACnC;AAAA,IACF;AAEA,QAAI,oBAAoB,QAAQ,UAC5B,gBAAgB,sBAAsB,SAAS,OAAO,mBACtD,mBAAmB,QAAQ,SAC3B,eAAe,qBAAqB,SAAS,OAAO,kBACpD,8BAA8B,QAAQ,oBACtC,UAAU,QAAQ,SAClB,WAAW,QAAQ,UACnB,eAAe,QAAQ,cACvB,cAAc,QAAQ,aACtB,wBAAwB,QAAQ,gBAChC,iBAAiB,0BAA0B,SAAS,OAAO,uBAC3D,wBAAwB,QAAQ;AACpC,QAAI,qBAAqB,MAAM,QAAQ;AACvC,QAAI,gBAAgB,iBAAiB,kBAAkB;AACvD,QAAI,kBAAkB,kBAAkB;AACxC,QAAI,qBAAqB,gCAAgC,mBAAmB,CAAC,iBAAiB,CAAC,qBAAqB,kBAAkB,CAAC,IAAI,8BAA8B,kBAAkB;AAC3L,QAAIC,cAAa,CAAC,kBAAkB,EAAE,OAAO,kBAAkB,EAAE,OAAO,SAAU,KAAKC,YAAW;AAChG,aAAO,IAAI,OAAO,iBAAiBA,UAAS,MAAM,OAAO,qBAAqB,OAAO;AAAA,QACnF,WAAWA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,IAAIA,UAAS;AAAA,IAChB,GAAG,CAAC,CAAC;AACL,QAAI,gBAAgB,MAAM,MAAM;AAChC,QAAI,aAAa,MAAM,MAAM;AAC7B,QAAI,YAAY,oBAAI,IAAI;AACxB,QAAI,qBAAqB;AACzB,QAAI,wBAAwBD,YAAW,CAAC;AAExC,aAASE,KAAI,GAAGA,KAAIF,YAAW,QAAQE,MAAK;AAC1C,UAAI,YAAYF,YAAWE,EAAC;AAE5B,UAAI,iBAAiB,iBAAiB,SAAS;AAE/C,UAAI,mBAAmB,aAAa,SAAS,MAAMC;AACnD,UAAI,aAAa,CAAC,KAAK,MAAM,EAAE,QAAQ,cAAc,KAAK;AAC1D,UAAI,MAAM,aAAa,UAAU;AACjC,UAAI,WAAW,eAAe,OAAO;AAAA,QACnC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI,oBAAoB,aAAa,mBAAmB,QAAQ,OAAO,mBAAmB,SAAS;AAEnG,UAAI,cAAc,GAAG,IAAI,WAAW,GAAG,GAAG;AACxC,4BAAoB,qBAAqB,iBAAiB;AAAA,MAC5D;AAEA,UAAI,mBAAmB,qBAAqB,iBAAiB;AAC7D,UAAI,SAAS,CAAC;AAEd,UAAI,eAAe;AACjB,eAAO,KAAK,SAAS,cAAc,KAAK,CAAC;AAAA,MAC3C;AAEA,UAAI,cAAc;AAChB,eAAO,KAAK,SAAS,iBAAiB,KAAK,GAAG,SAAS,gBAAgB,KAAK,CAAC;AAAA,MAC/E;AAEA,UAAI,OAAO,MAAM,SAAU,OAAO;AAChC,eAAO;AAAA,MACT,CAAC,GAAG;AACF,gCAAwB;AACxB,6BAAqB;AACrB;AAAA,MACF;AAEA,gBAAU,IAAI,WAAW,MAAM;AAAA,IACjC;AAEA,QAAI,oBAAoB;AAEtB,UAAI,iBAAiB,iBAAiB,IAAI;AAE1C,UAAI,QAAQ,SAASC,OAAMC,KAAI;AAC7B,YAAI,mBAAmBL,YAAW,KAAK,SAAUC,YAAW;AAC1D,cAAIK,UAAS,UAAU,IAAIL,UAAS;AAEpC,cAAIK,SAAQ;AACV,mBAAOA,QAAO,MAAM,GAAGD,GAAE,EAAE,MAAM,SAAU,OAAO;AAChD,qBAAO;AAAA,YACT,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAED,YAAI,kBAAkB;AACpB,kCAAwB;AACxB,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,eAAS,KAAK,gBAAgB,KAAK,GAAG,MAAM;AAC1C,YAAI,OAAO,MAAM,EAAE;AAEnB,YAAI,SAAS,QAAS;AAAA,MACxB;AAAA,IACF;AAEA,QAAI,MAAM,cAAc,uBAAuB;AAC7C,YAAM,cAAc,IAAI,EAAE,QAAQ;AAClC,YAAM,YAAY;AAClB,YAAM,QAAQ;AAAA,IAChB;AAAA,EACF;AAGA,MAAO,eAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,kBAAkB,CAAC,QAAQ;AAAA,IAC3B,MAAM;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EACF;;;AC/IA,WAAS,eAAe,UAAU,MAAM,kBAAkB;AACxD,QAAI,qBAAqB,QAAQ;AAC/B,yBAAmB;AAAA,QACjB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,IACF;AAEA,WAAO;AAAA,MACL,KAAK,SAAS,MAAM,KAAK,SAAS,iBAAiB;AAAA,MACnD,OAAO,SAAS,QAAQ,KAAK,QAAQ,iBAAiB;AAAA,MACtD,QAAQ,SAAS,SAAS,KAAK,SAAS,iBAAiB;AAAA,MACzD,MAAM,SAAS,OAAO,KAAK,QAAQ,iBAAiB;AAAA,IACtD;AAAA,EACF;AAEA,WAAS,sBAAsB,UAAU;AACvC,WAAO,CAAC,KAAK,OAAO,QAAQ,IAAI,EAAE,KAAK,SAAU,MAAM;AACrD,aAAO,SAAS,IAAI,KAAK;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,WAAS,KAAK,MAAM;AAClB,QAAI,QAAQ,KAAK,OACb,OAAO,KAAK;AAChB,QAAI,gBAAgB,MAAM,MAAM;AAChC,QAAI,aAAa,MAAM,MAAM;AAC7B,QAAI,mBAAmB,MAAM,cAAc;AAC3C,QAAI,oBAAoB,eAAe,OAAO;AAAA,MAC5C,gBAAgB;AAAA,IAClB,CAAC;AACD,QAAI,oBAAoB,eAAe,OAAO;AAAA,MAC5C,aAAa;AAAA,IACf,CAAC;AACD,QAAI,2BAA2B,eAAe,mBAAmB,aAAa;AAC9E,QAAI,sBAAsB,eAAe,mBAAmB,YAAY,gBAAgB;AACxF,QAAI,oBAAoB,sBAAsB,wBAAwB;AACtE,QAAI,mBAAmB,sBAAsB,mBAAmB;AAChE,UAAM,cAAc,IAAI,IAAI;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,WAAW,QAAQ;AAAA,MACnE,gCAAgC;AAAA,MAChC,uBAAuB;AAAA,IACzB,CAAC;AAAA,EACH;AAGA,MAAO,eAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,kBAAkB,CAAC,iBAAiB;AAAA,IACpC,IAAI;AAAA,EACN;;;ACzDO,WAAS,wBAAwB,WAAW,OAAOE,SAAQ;AAChE,QAAI,gBAAgB,iBAAiB,SAAS;AAC9C,QAAI,iBAAiB,CAAC,MAAM,GAAG,EAAE,QAAQ,aAAa,KAAK,IAAI,KAAK;AAEpE,QAAI,OAAO,OAAOA,YAAW,aAAaA,QAAO,OAAO,OAAO,CAAC,GAAG,OAAO;AAAA,MACxE;AAAA,IACF,CAAC,CAAC,IAAIA,SACF,WAAW,KAAK,CAAC,GACjB,WAAW,KAAK,CAAC;AAErB,eAAW,YAAY;AACvB,gBAAY,YAAY,KAAK;AAC7B,WAAO,CAAC,MAAM,KAAK,EAAE,QAAQ,aAAa,KAAK,IAAI;AAAA,MACjD,GAAG;AAAA,MACH,GAAG;AAAA,IACL,IAAI;AAAA,MACF,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAEA,WAAS,OAAO,OAAO;AACrB,QAAI,QAAQ,MAAM,OACd,UAAU,MAAM,SAChB,OAAO,MAAM;AACjB,QAAI,kBAAkB,QAAQ,QAC1BA,UAAS,oBAAoB,SAAS,CAAC,GAAG,CAAC,IAAI;AACnD,QAAI,OAAO,WAAW,OAAO,SAAU,KAAK,WAAW;AACrD,UAAI,SAAS,IAAI,wBAAwB,WAAW,MAAM,OAAOA,OAAM;AACvE,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AACL,QAAI,wBAAwB,KAAK,MAAM,SAAS,GAC5CC,KAAI,sBAAsB,GAC1BC,KAAI,sBAAsB;AAE9B,QAAI,MAAM,cAAc,iBAAiB,MAAM;AAC7C,YAAM,cAAc,cAAc,KAAKD;AACvC,YAAM,cAAc,cAAc,KAAKC;AAAA,IACzC;AAEA,UAAM,cAAc,IAAI,IAAI;AAAA,EAC9B;AAGA,MAAO,iBAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,UAAU,CAAC,eAAe;AAAA,IAC1B,IAAI;AAAA,EACN;;;ACnDA,WAAS,cAAc,MAAM;AAC3B,QAAI,QAAQ,KAAK,OACb,OAAO,KAAK;AAKhB,UAAM,cAAc,IAAI,IAAI,eAAe;AAAA,MACzC,WAAW,MAAM,MAAM;AAAA,MACvB,SAAS,MAAM,MAAM;AAAA,MACrB,UAAU;AAAA,MACV,WAAW,MAAM;AAAA,IACnB,CAAC;AAAA,EACH;AAGA,MAAO,wBAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,MAAM,CAAC;AAAA,EACT;;;ACxBe,WAAR,WAA4B,MAAM;AACvC,WAAO,SAAS,MAAM,MAAM;AAAA,EAC9B;;;ACUA,WAAS,gBAAgB,MAAM;AAC7B,QAAI,QAAQ,KAAK,OACb,UAAU,KAAK,SACf,OAAO,KAAK;AAChB,QAAI,oBAAoB,QAAQ,UAC5B,gBAAgB,sBAAsB,SAAS,OAAO,mBACtD,mBAAmB,QAAQ,SAC3B,eAAe,qBAAqB,SAAS,QAAQ,kBACrD,WAAW,QAAQ,UACnB,eAAe,QAAQ,cACvB,cAAc,QAAQ,aACtB,UAAU,QAAQ,SAClB,kBAAkB,QAAQ,QAC1B,SAAS,oBAAoB,SAAS,OAAO,iBAC7C,wBAAwB,QAAQ,cAChC,eAAe,0BAA0B,SAAS,IAAI;AAC1D,QAAI,WAAW,eAAe,OAAO;AAAA,MACnC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,gBAAgB,iBAAiB,MAAM,SAAS;AACpD,QAAI,YAAY,aAAa,MAAM,SAAS;AAC5C,QAAI,kBAAkB,CAAC;AACvB,QAAI,WAAW,yBAAyB,aAAa;AACrD,QAAI,UAAU,WAAW,QAAQ;AACjC,QAAIC,iBAAgB,MAAM,cAAc;AACxC,QAAI,gBAAgB,MAAM,MAAM;AAChC,QAAI,aAAa,MAAM,MAAM;AAC7B,QAAI,oBAAoB,OAAO,iBAAiB,aAAa,aAAa,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO;AAAA,MACvG,WAAW,MAAM;AAAA,IACnB,CAAC,CAAC,IAAI;AACN,QAAI,8BAA8B,OAAO,sBAAsB,WAAW;AAAA,MACxE,UAAU;AAAA,MACV,SAAS;AAAA,IACX,IAAI,OAAO,OAAO;AAAA,MAChB,UAAU;AAAA,MACV,SAAS;AAAA,IACX,GAAG,iBAAiB;AACpB,QAAI,sBAAsB,MAAM,cAAc,SAAS,MAAM,cAAc,OAAO,MAAM,SAAS,IAAI;AACrG,QAAI,OAAO;AAAA,MACT,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAEA,QAAI,CAACA,gBAAe;AAClB;AAAA,IACF;AAEA,QAAI,eAAe;AACjB,UAAI;AAEJ,UAAI,WAAW,aAAa,MAAM,MAAM;AACxC,UAAI,UAAU,aAAa,MAAM,SAAS;AAC1C,UAAI,MAAM,aAAa,MAAM,WAAW;AACxC,UAAIC,UAASD,eAAc,QAAQ;AACnC,UAAIE,OAAMD,UAAS,SAAS,QAAQ;AACpC,UAAIE,OAAMF,UAAS,SAAS,OAAO;AACnC,UAAI,WAAW,SAAS,CAAC,WAAW,GAAG,IAAI,IAAI;AAC/C,UAAI,SAAS,cAAcG,SAAQ,cAAc,GAAG,IAAI,WAAW,GAAG;AACtE,UAAI,SAAS,cAAcA,SAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG;AAGxE,UAAI,eAAe,MAAM,SAAS;AAClC,UAAI,YAAY,UAAU,eAAe,cAAc,YAAY,IAAI;AAAA,QACrE,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AACA,UAAI,qBAAqB,MAAM,cAAc,kBAAkB,IAAI,MAAM,cAAc,kBAAkB,EAAE,UAAU,mBAAmB;AACxI,UAAI,kBAAkB,mBAAmB,QAAQ;AACjD,UAAI,kBAAkB,mBAAmB,OAAO;AAMhD,UAAI,WAAW,OAAO,GAAG,cAAc,GAAG,GAAG,UAAU,GAAG,CAAC;AAC3D,UAAI,YAAY,kBAAkB,cAAc,GAAG,IAAI,IAAI,WAAW,WAAW,kBAAkB,4BAA4B,WAAW,SAAS,WAAW,kBAAkB,4BAA4B;AAC5M,UAAI,YAAY,kBAAkB,CAAC,cAAc,GAAG,IAAI,IAAI,WAAW,WAAW,kBAAkB,4BAA4B,WAAW,SAAS,WAAW,kBAAkB,4BAA4B;AAC7M,UAAI,oBAAoB,MAAM,SAAS,SAAS,gBAAgB,MAAM,SAAS,KAAK;AACpF,UAAI,eAAe,oBAAoB,aAAa,MAAM,kBAAkB,aAAa,IAAI,kBAAkB,cAAc,IAAI;AACjI,UAAI,uBAAuB,wBAAwB,uBAAuB,OAAO,SAAS,oBAAoB,QAAQ,MAAM,OAAO,wBAAwB;AAC3J,UAAI,YAAYH,UAAS,YAAY,sBAAsB;AAC3D,UAAI,YAAYA,UAAS,YAAY;AACrC,UAAI,kBAAkB,OAAO,SAAS,IAAQC,MAAK,SAAS,IAAIA,MAAKD,SAAQ,SAAS,IAAQE,MAAK,SAAS,IAAIA,IAAG;AACnH,MAAAH,eAAc,QAAQ,IAAI;AAC1B,WAAK,QAAQ,IAAI,kBAAkBC;AAAA,IACrC;AAEA,QAAI,cAAc;AAChB,UAAI;AAEJ,UAAI,YAAY,aAAa,MAAM,MAAM;AAEzC,UAAI,WAAW,aAAa,MAAM,SAAS;AAE3C,UAAI,UAAUD,eAAc,OAAO;AAEnC,UAAI,OAAO,YAAY,MAAM,WAAW;AAExC,UAAI,OAAO,UAAU,SAAS,SAAS;AAEvC,UAAI,OAAO,UAAU,SAAS,QAAQ;AAEtC,UAAI,eAAe,CAAC,KAAK,IAAI,EAAE,QAAQ,aAAa,MAAM;AAE1D,UAAI,wBAAwB,yBAAyB,uBAAuB,OAAO,SAAS,oBAAoB,OAAO,MAAM,OAAO,yBAAyB;AAE7J,UAAI,aAAa,eAAe,OAAO,UAAU,cAAc,IAAI,IAAI,WAAW,IAAI,IAAI,uBAAuB,4BAA4B;AAE7I,UAAI,aAAa,eAAe,UAAU,cAAc,IAAI,IAAI,WAAW,IAAI,IAAI,uBAAuB,4BAA4B,UAAU;AAEhJ,UAAI,mBAAmB,UAAU,eAAe,eAAe,YAAY,SAAS,UAAU,IAAI,OAAO,SAAS,aAAa,MAAM,SAAS,SAAS,aAAa,IAAI;AAExK,MAAAA,eAAc,OAAO,IAAI;AACzB,WAAK,OAAO,IAAI,mBAAmB;AAAA,IACrC;AAEA,UAAM,cAAc,IAAI,IAAI;AAAA,EAC9B;AAGA,MAAO,0BAAQ;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,kBAAkB,CAAC,QAAQ;AAAA,EAC7B;;;AC7Ie,WAAR,qBAAsC,SAAS;AACpD,WAAO;AAAA,MACL,YAAY,QAAQ;AAAA,MACpB,WAAW,QAAQ;AAAA,IACrB;AAAA,EACF;;;ACDe,WAAR,cAA+B,MAAM;AAC1C,QAAI,SAAS,UAAU,IAAI,KAAK,CAAC,cAAc,IAAI,GAAG;AACpD,aAAO,gBAAgB,IAAI;AAAA,IAC7B,OAAO;AACL,aAAO,qBAAqB,IAAI;AAAA,IAClC;AAAA,EACF;;;ACDA,WAAS,gBAAgB,SAAS;AAChC,QAAI,OAAO,QAAQ,sBAAsB;AACzC,QAAI,SAAS,MAAM,KAAK,KAAK,IAAI,QAAQ,eAAe;AACxD,QAAI,SAAS,MAAM,KAAK,MAAM,IAAI,QAAQ,gBAAgB;AAC1D,WAAO,WAAW,KAAK,WAAW;AAAA,EACpC;AAIe,WAAR,iBAAkC,yBAAyB,cAAc,SAAS;AACvF,QAAI,YAAY,QAAQ;AACtB,gBAAU;AAAA,IACZ;AAEA,QAAI,0BAA0B,cAAc,YAAY;AACxD,QAAI,uBAAuB,cAAc,YAAY,KAAK,gBAAgB,YAAY;AACtF,QAAI,kBAAkB,mBAAmB,YAAY;AACrD,QAAI,OAAO,sBAAsB,yBAAyB,sBAAsB,OAAO;AACvF,QAAI,SAAS;AAAA,MACX,YAAY;AAAA,MACZ,WAAW;AAAA,IACb;AACA,QAAI,UAAU;AAAA,MACZ,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAEA,QAAI,2BAA2B,CAAC,2BAA2B,CAAC,SAAS;AACnE,UAAI,YAAY,YAAY,MAAM;AAAA,MAClC,eAAe,eAAe,GAAG;AAC/B,iBAAS,cAAc,YAAY;AAAA,MACrC;AAEA,UAAI,cAAc,YAAY,GAAG;AAC/B,kBAAU,sBAAsB,cAAc,IAAI;AAClD,gBAAQ,KAAK,aAAa;AAC1B,gBAAQ,KAAK,aAAa;AAAA,MAC5B,WAAW,iBAAiB;AAC1B,gBAAQ,IAAI,oBAAoB,eAAe;AAAA,MACjD;AAAA,IACF;AAEA,WAAO;AAAA,MACL,GAAG,KAAK,OAAO,OAAO,aAAa,QAAQ;AAAA,MAC3C,GAAG,KAAK,MAAM,OAAO,YAAY,QAAQ;AAAA,MACzC,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;;;ACvDA,WAAS,MAAM,WAAW;AACxB,QAAI,MAAM,oBAAI,IAAI;AAClB,QAAI,UAAU,oBAAI,IAAI;AACtB,QAAI,SAAS,CAAC;AACd,cAAU,QAAQ,SAAU,UAAU;AACpC,UAAI,IAAI,SAAS,MAAM,QAAQ;AAAA,IACjC,CAAC;AAED,aAAS,KAAK,UAAU;AACtB,cAAQ,IAAI,SAAS,IAAI;AACzB,UAAI,WAAW,CAAC,EAAE,OAAO,SAAS,YAAY,CAAC,GAAG,SAAS,oBAAoB,CAAC,CAAC;AACjF,eAAS,QAAQ,SAAU,KAAK;AAC9B,YAAI,CAAC,QAAQ,IAAI,GAAG,GAAG;AACrB,cAAI,cAAc,IAAI,IAAI,GAAG;AAE7B,cAAI,aAAa;AACf,iBAAK,WAAW;AAAA,UAClB;AAAA,QACF;AAAA,MACF,CAAC;AACD,aAAO,KAAK,QAAQ;AAAA,IACtB;AAEA,cAAU,QAAQ,SAAU,UAAU;AACpC,UAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,GAAG;AAE/B,aAAK,QAAQ;AAAA,MACf;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAEe,WAAR,eAAgC,WAAW;AAEhD,QAAI,mBAAmB,MAAM,SAAS;AAEtC,WAAO,eAAe,OAAO,SAAU,KAAK,OAAO;AACjD,aAAO,IAAI,OAAO,iBAAiB,OAAO,SAAU,UAAU;AAC5D,eAAO,SAAS,UAAU;AAAA,MAC5B,CAAC,CAAC;AAAA,IACJ,GAAG,CAAC,CAAC;AAAA,EACP;;;AC3Ce,WAARK,UAA0BC,KAAI;AACnC,QAAI;AACJ,WAAO,WAAY;AACjB,UAAI,CAAC,SAAS;AACZ,kBAAU,IAAI,QAAQ,SAAU,SAAS;AACvC,kBAAQ,QAAQ,EAAE,KAAK,WAAY;AACjC,sBAAU;AACV,oBAAQA,IAAG,CAAC;AAAA,UACd,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAAA,EACF;;;ACde,WAAR,YAA6B,WAAW;AAC7C,QAAI,SAAS,UAAU,OAAO,SAAUC,SAAQ,SAAS;AACvD,UAAI,WAAWA,QAAO,QAAQ,IAAI;AAClC,MAAAA,QAAO,QAAQ,IAAI,IAAI,WAAW,OAAO,OAAO,CAAC,GAAG,UAAU,SAAS;AAAA,QACrE,SAAS,OAAO,OAAO,CAAC,GAAG,SAAS,SAAS,QAAQ,OAAO;AAAA,QAC5D,MAAM,OAAO,OAAO,CAAC,GAAG,SAAS,MAAM,QAAQ,IAAI;AAAA,MACrD,CAAC,IAAI;AACL,aAAOA;AAAA,IACT,GAAG,CAAC,CAAC;AAEL,WAAO,OAAO,KAAK,MAAM,EAAE,IAAI,SAAU,KAAK;AAC5C,aAAO,OAAO,GAAG;AAAA,IACnB,CAAC;AAAA,EACH;;;ACJA,MAAI,kBAAkB;AAAA,IACpB,WAAW;AAAA,IACX,WAAW,CAAC;AAAA,IACZ,UAAU;AAAA,EACZ;AAEA,WAAS,mBAAmB;AAC1B,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,WAAK,IAAI,IAAI,UAAU,IAAI;AAAA,IAC7B;AAEA,WAAO,CAAC,KAAK,KAAK,SAAU,SAAS;AACnC,aAAO,EAAE,WAAW,OAAO,QAAQ,0BAA0B;AAAA,IAC/D,CAAC;AAAA,EACH;AAEO,WAAS,gBAAgB,kBAAkB;AAChD,QAAI,qBAAqB,QAAQ;AAC/B,yBAAmB,CAAC;AAAA,IACtB;AAEA,QAAI,oBAAoB,kBACpB,wBAAwB,kBAAkB,kBAC1CC,oBAAmB,0BAA0B,SAAS,CAAC,IAAI,uBAC3D,yBAAyB,kBAAkB,gBAC3CC,kBAAiB,2BAA2B,SAAS,kBAAkB;AAC3E,WAAO,SAASC,cAAaC,YAAWC,SAAQ,SAAS;AACvD,UAAI,YAAY,QAAQ;AACtB,kBAAUH;AAAA,MACZ;AAEA,UAAI,QAAQ;AAAA,QACV,WAAW;AAAA,QACX,kBAAkB,CAAC;AAAA,QACnB,SAAS,OAAO,OAAO,CAAC,GAAG,iBAAiBA,eAAc;AAAA,QAC1D,eAAe,CAAC;AAAA,QAChB,UAAU;AAAA,UACR,WAAWE;AAAA,UACX,QAAQC;AAAA,QACV;AAAA,QACA,YAAY,CAAC;AAAA,QACb,QAAQ,CAAC;AAAA,MACX;AACA,UAAI,mBAAmB,CAAC;AACxB,UAAI,cAAc;AAClB,UAAI,WAAW;AAAA,QACb;AAAA,QACA,YAAY,SAAS,WAAW,kBAAkB;AAChD,cAAIC,WAAU,OAAO,qBAAqB,aAAa,iBAAiB,MAAM,OAAO,IAAI;AACzF,iCAAuB;AACvB,gBAAM,UAAU,OAAO,OAAO,CAAC,GAAGJ,iBAAgB,MAAM,SAASI,QAAO;AACxE,gBAAM,gBAAgB;AAAA,YACpB,WAAW,UAAUF,UAAS,IAAI,kBAAkBA,UAAS,IAAIA,WAAU,iBAAiB,kBAAkBA,WAAU,cAAc,IAAI,CAAC;AAAA,YAC3I,QAAQ,kBAAkBC,OAAM;AAAA,UAClC;AAGA,cAAI,mBAAmB,eAAe,YAAY,CAAC,EAAE,OAAOJ,mBAAkB,MAAM,QAAQ,SAAS,CAAC,CAAC;AAEvG,gBAAM,mBAAmB,iBAAiB,OAAO,SAAUM,IAAG;AAC5D,mBAAOA,GAAE;AAAA,UACX,CAAC;AACD,6BAAmB;AACnB,iBAAO,SAAS,OAAO;AAAA,QACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMA,aAAa,SAAS,cAAc;AAClC,cAAI,aAAa;AACf;AAAA,UACF;AAEA,cAAI,kBAAkB,MAAM,UACxBH,aAAY,gBAAgB,WAC5BC,UAAS,gBAAgB;AAG7B,cAAI,CAAC,iBAAiBD,YAAWC,OAAM,GAAG;AACxC;AAAA,UACF;AAGA,gBAAM,QAAQ;AAAA,YACZ,WAAW,iBAAiBD,YAAW,gBAAgBC,OAAM,GAAG,MAAM,QAAQ,aAAa,OAAO;AAAA,YAClG,QAAQ,cAAcA,OAAM;AAAA,UAC9B;AAMA,gBAAM,QAAQ;AACd,gBAAM,YAAY,MAAM,QAAQ;AAKhC,gBAAM,iBAAiB,QAAQ,SAAU,UAAU;AACjD,mBAAO,MAAM,cAAc,SAAS,IAAI,IAAI,OAAO,OAAO,CAAC,GAAG,SAAS,IAAI;AAAA,UAC7E,CAAC;AAED,mBAAS,QAAQ,GAAG,QAAQ,MAAM,iBAAiB,QAAQ,SAAS;AAClE,gBAAI,MAAM,UAAU,MAAM;AACxB,oBAAM,QAAQ;AACd,sBAAQ;AACR;AAAA,YACF;AAEA,gBAAI,wBAAwB,MAAM,iBAAiB,KAAK,GACpDG,MAAK,sBAAsB,IAC3B,yBAAyB,sBAAsB,SAC/C,WAAW,2BAA2B,SAAS,CAAC,IAAI,wBACpD,OAAO,sBAAsB;AAEjC,gBAAI,OAAOA,QAAO,YAAY;AAC5B,sBAAQA,IAAG;AAAA,gBACT;AAAA,gBACA,SAAS;AAAA,gBACT;AAAA,gBACA;AAAA,cACF,CAAC,KAAK;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA;AAAA;AAAA,QAGA,QAAQC,UAAS,WAAY;AAC3B,iBAAO,IAAI,QAAQ,SAAU,SAAS;AACpC,qBAAS,YAAY;AACrB,oBAAQ,KAAK;AAAA,UACf,CAAC;AAAA,QACH,CAAC;AAAA,QACD,SAAS,SAAS,UAAU;AAC1B,iCAAuB;AACvB,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,UAAI,CAAC,iBAAiBL,YAAWC,OAAM,GAAG;AACxC,eAAO;AAAA,MACT;AAEA,eAAS,WAAW,OAAO,EAAE,KAAK,SAAUK,QAAO;AACjD,YAAI,CAAC,eAAe,QAAQ,eAAe;AACzC,kBAAQ,cAAcA,MAAK;AAAA,QAC7B;AAAA,MACF,CAAC;AAMD,eAAS,qBAAqB;AAC5B,cAAM,iBAAiB,QAAQ,SAAU,MAAM;AAC7C,cAAI,OAAO,KAAK,MACZ,eAAe,KAAK,SACpBJ,WAAU,iBAAiB,SAAS,CAAC,IAAI,cACzCK,UAAS,KAAK;AAElB,cAAI,OAAOA,YAAW,YAAY;AAChC,gBAAI,YAAYA,QAAO;AAAA,cACrB;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAASL;AAAA,YACX,CAAC;AAED,gBAAI,SAAS,SAASM,UAAS;AAAA,YAAC;AAEhC,6BAAiB,KAAK,aAAa,MAAM;AAAA,UAC3C;AAAA,QACF,CAAC;AAAA,MACH;AAEA,eAAS,yBAAyB;AAChC,yBAAiB,QAAQ,SAAUJ,KAAI;AACrC,iBAAOA,IAAG;AAAA,QACZ,CAAC;AACD,2BAAmB,CAAC;AAAA,MACtB;AAEA,aAAO;AAAA,IACT;AAAA,EACF;;;ACzLA,MAAI,mBAAmB,CAAC,wBAAgB,uBAAe,uBAAe,qBAAa,gBAAQ,cAAM,yBAAiB,eAAO,YAAI;AAC7H,MAAI,eAA4B,gCAAgB;AAAA,IAC9C;AAAA,EACF,CAAC;;;ACVD,MAAO,4BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,WAAW,SAAS;AAAA,IACtC,OAAO,SAAS;AAAA,MACd,WAAW,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,MAC1C,QAAQ,EAAE,MAAM,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE;AAAA,MACxC,OAAO,EAAE,MAAM,QAAQ,SAAS,EAAE;AAAA,IACpC;AAAA,IAEA,UAAU;AAER,WAAK,iBAAiB,aAAa,KAAK,eAAe,KAAK,eAAe;AAAA,QACzE,WAAW,KAAK;AAAA,QAChB,WAAW;AAAA,UACT;AAAA,YACE,MAAM;AAAA,YACN,SAAS;AAAA,cACP,QAAQ,KAAK;AAAA,YACf;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,KAAK,OAAO;AACV,mBAAa,KAAK,KAAK;AACvB,WAAK,cAAc,aAAa,aAAa,EAAE;AAI/C,WAAK,eAAe,OAAO;AAAA,IAC7B;AAAA,IAEA,KAAK,OAAO;AACV,WAAK,QAAQ,WAAW,MAAM;AAC5B,aAAK,cAAc,gBAAgB,WAAW;AAAA,MAChD,GAAG,KAAK,UAAU;AAAA,IACpB;AAAA;AAAA,IAGA,aAAa;AACX,UAAI,KAAK,gBAAgB;AACvB,aAAK,eAAe,QAAQ;AAAA,MAC9B;AACA,mBAAa,KAAK,KAAK;AAAA,IACzB;AAAA,EACF;;;AC7CA,MAAO,sCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,MAAM;AAAA,IACxB,OAAO,SAAS;AAAA,MACd,eAAe;AAAA,IACjB;AAAA,IAEA,aAAa;AACX,WAAK,aAAa;AAAA,IACpB;AAAA,IAEA,UAAU;AAAA,IAAC;AAAA,IAEX,YAAY,OAAO;AACjB,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,YAAM,4BAA4B,KAAK,qBAAqB;AAC5D,UAAI,2BAA2B;AAC7B;AAAA,MACF;AAEA,WAAK,aAAa,KAAK,UAAU,IAAI,KAAK,SAAS;AAAA,IACrD;AAAA,IAEA,WAAW;AACT,YAAM,EAAE,WAAW,IAAI;AACvB,iBAAW,UAAU,OAAO,OAAO,WAAW;AAC9C,iBAAW,UAAU,IAAI,eAAe,QAAQ;AAChD,WAAK,aAAa;AAAA,IACpB;AAAA,IAEA,YAAY;AACV,YAAM,EAAE,WAAW,IAAI;AACvB,iBAAW,UAAU,OAAO,UAAU,aAAa;AACnD,iBAAW,UAAU,IAAI,OAAO,WAAW;AAC3C,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;;;ACrCA,MAAO,0BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,MAAM;AAAA,IACxB,OAAO,SAAS,EAAC,aAAa,OAAM;AAAA,IAEpC,UAAU;AACR,WAAK,wBAAwB,KAAK,OAAO;AACzC,WAAK,iBAAiB;AAAA,IACxB;AAAA,IAEA,wBAAwB,WAAW;AACjC,YAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,aAAO,YAAY,CAAC,cAAc;AAClC,aAAO,MAAM,KAAK;AAElB,gBAAU,QAAQ,MAAM;AAAA,IAC1B;AAAA,IAEA,mBAAmB;AAGjB,YAAM,YAAY,KAAK,WAAW,cAAc,kCAAkC;AAClF,UAAI,UAAW;AAEf,YAAM,YAAY,SAAS,cAAc,yBAAyB,EAAE;AAEpE,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,OAAO;AACb,YAAM,OAAO;AACb,YAAM,QAAQ;AACd,WAAK,WAAW,QAAQ,KAAK;AAAA,IAC/B;AAAA,EACF;;;AC/BA,MAAO,+BAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,MAAM;AAAA,IAExB,UAAU;AACR,YAAM,UAAU;AAAA,QACd,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAEA,WAAK,WAAW,IAAI,qBAAqB,KAAK,gBAAgB,KAAK,IAAI,GAAG,OAAO;AAEjF,WAAK,YAAY,QAAQ,UAAQ;AAC/B,cAAM,OAAO,KAAK,aAAa,MAAM;AACrC,cAAM,UAAU,SAAS,cAAc,IAAI;AAC3C,YAAI,SAAS;AACX,eAAK,SAAS,QAAQ,OAAO;AAAA,QAC/B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,gBAAgB,SAAS;AACvB,cAAQ,QAAQ,WAAS;AACvB,YAAI,MAAM,gBAAgB;AACxB,gBAAMK,OAAK,MAAM,OAAO,aAAa,IAAI;AACzC,eAAK,aAAa,IAAIA,IAAE,EAAE;AAAA,QAC5B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,aAAaA,MAAI;AACf,WAAK,YAAY,QAAQ,UAAQ;AAC/B,YAAI,KAAK,aAAa,MAAM,MAAMA,MAAI;AACpC,eAAK,UAAU,IAAI,mBAAmB,eAAe;AACrD,eAAK,UAAU,OAAO,uBAAuB;AAAA,QAC/C,OAAO;AACL,eAAK,UAAU,OAAO,mBAAmB,eAAe;AACxD,eAAK,UAAU,IAAI,uBAAuB;AAAA,QAC5C;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;;;ACzCA,MAAO,uCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IAEA,OAAO,SAAS;AAAA,MACd,oBAAoB;AAAA,IACtB;AAAA,IAEA,oBAAoB,OAAO;AACzB,UAAI,KAAK,oCAAoC;AAC3C,YAAI;AACF,eAAK,gCAAgC,WAAW;AAAA,QAClD,SAASC,IAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAAA,IAEA,gBAAgB,OAAO;AACrB,UAAI,KAAK,mBAAmB;AAC1B,cAAM,WAAW,MAAM,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI;AACpD,aAAK,eAAe,cAAc;AAAA,MACpC;AAAA,IACF;AAAA,IAEA,oBAAoB,OAAO;AACzB,UAAI,KAAK,uBAAuB;AAC9B,cAAM,WAAW,MAAM,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI;AACpD,aAAK,mBAAmB,cAAc;AAAA,MACxC;AAAA,IACF;AAAA,IAEA,4BAA4B;AAC1B,UAAI,KAAK,6BAA6B;AACpC,YAAI;AACF,eAAK,yBAAyB,YAAY,KAAK;AAAA,QACjD,SAASA,IAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAAA,IAEA,wBAAwB;AACtB,UAAI,KAAK,2BAA2B;AAClC,YAAI;AACF,eAAK,uBAAuB,YAAY;AAAA,QAC1C,SAASA,IAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAAA,IAEA,8BAA8B,OAAO;AACnC,YAAM,eAAe,MAAM,OACxB,QAAQ,KAAK,EACb,cAAc,mBAAmB;AACpC,UAAI,cAAc;AAChB,qBAAa,cAAc;AAAA,MAC7B;AAAA,IACF;AAAA,IAEA,iBAAiB,OAAO;AACtB,YAAM,eAAe;AACrB,YAAM,WAAW,MAAM,cAAc,QAAQ;AAC7C,YAAM,YAAY,SAAS,eAAe,QAAQ;AAClD,UAAI,WAAW;AACb,kBAAU,MAAM;AAAA,MAClB;AAAA,IACF;AAAA,EACF;;;ACpEA,MAAO,uCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,mBAAmB,eAAe,cAAc;AAAA,IAClE,OAAO,SAAS;AAAA,MACd,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,gBAAgB;AAAA,IAClB;AAAA,IAEA,eAAe,OAAO;AACpB,YAAM,SAAS,MAAM,OAAO;AAC5B,YAAM,SAAS,CAAC;AAEhB,UAAI,SAAS,KAAK,oBAAoB;AAAE,eAAO,KAAK,KAAK,uBAAuB,sCAAsC;AAAA,MAAG;AACzH,UAAI,SAAS,KAAK,oBAAoB;AAAE,eAAO,KAAK,KAAK,uBAAuB,2BAA2B;AAAA,MAAG;AAC9G,UAAI,SAAS,KAAK,qBAAqB;AAAE,eAAO,KAAK,KAAK,uBAAuB,oBAAoB;AAAA,MAAG;AAExG,WAAK,eAAe,QAAQ,MAAM,MAAM;AACxC,WAAK,oBAAoB,MAAM;AAC/B,WAAK,mBAAmB,MAAM;AAAA,IAChC;AAAA,IAEA,eAAe,QAAQ,OAAO;AAC5B,UAAI,OAAO,SAAS,GAAG;AACrB,aAAK,sBAAsB,YAAY,OAAO,KAAK,MAAM;AACzD,cAAM,UAAU,IAAI,gBAAgB;AAAA,MACtC,OAAO;AACL,aAAK,sBAAsB,YAAY;AACvC,cAAM,UAAU,OAAO,gBAAgB;AAAA,MACzC;AAAA,IACF;AAAA,IAEA,oBAAoB,QAAQ;AAC1B,WAAK,oBAAoB,QAAQ,YAAU;AACzC,eAAO,WAAW,OAAO,SAAS;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,IAEA,mBAAmB,QAAQ;AACzB,YAAM,kBAAkB,IAAI,KAAK,aAAa,KAAK,aAAa;AAAA,QAC9D,OAAO;AAAA,QACP,UAAU,KAAK;AAAA,MACjB,CAAC,EAAE,OAAO,MAAM;AAEhB,WAAK,kBAAkB,cAAc;AAAA,IACvC;AAAA,EACF;;;AChDA,MAAO,sCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,WAAW;AAAA,IAE7B,UAAU;AACR,WAAK,iBAAiB,QAAQ,eAAa;AACzC,kBAAU,iBAAiB,aAAa,KAAK,gBAAgB,KAAK,IAAI,CAAC;AACvE,kBAAU,iBAAiB,YAAY,KAAK,eAAe,KAAK,IAAI,CAAC;AACrE,kBAAU,iBAAiB,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC;AAAA,MACrE,CAAC;AACD,WAAK,gBAAgB;AAAA,IACvB;AAAA,IAEA,IAAI,OAAO;AACT,YAAM,gBAAgB,MAAM,OAAO,QAAQ,QAAQ,GAAG,SAAS;AAC/D,UAAI,CAAC,eAAe;AAClB;AAAA,MACF;AAEA,YAAM,YAAY,KAAK,QAAQ,cAAc,yBAAyB,aAAa,IAAI;AACvF,YAAM,WAAW,KAAK,QAAQ,cAAc,kCAAkC,aAAa,YAAY;AACvG,UAAI,CAAC,aAAa,CAAC,SAAU;AAE7B,gBAAU,mBAAmB,aAAa,SAAS,UAAU,QAAQ,gBAAe,oBAAI,KAAK,GAAE,QAAQ,CAAC,CAAC;AACzG,WAAK,gBAAgB;AAAA,IACvB;AAAA,IAEA,OAAO,OAAO;AACZ,YAAM,OAAO,MAAM,OAAO,QAAQ,uCAAuC;AACzE,YAAM,eAAe,KAAK,cAAc,sBAAsB;AAE9D,UAAI,cAAc;AAChB,qBAAa,QAAQ;AACrB,aAAK,MAAM,UAAU;AAAA,MACvB,OAAO;AACL,aAAK,OAAO;AAAA,MACd;AACA,WAAK,gBAAgB;AAAA,IACvB;AAAA,IAEA,kBAAkB;AAChB,WAAK,iBAAiB,QAAQ,eAAa;AACzC,YAAI,WAAW;AACf,kBAAU,iBAAiB,uCAAuC,EAAE,QAAQ,UAAQ;AAClF,gBAAM,cAAc,KAAK,MAAM,WAAW;AAC1C,cAAI,CAAC,aAAa;AAChB,kBAAM,gBAAgB,KAAK,cAAc,uBAAuB;AAChE,gBAAI,cAAe,eAAc,QAAQ;AAAA,UAC3C;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IAEA,gBAAgBC,IAAG;AACjB,YAAM,OAAOA,GAAE,OAAO,QAAQ,uCAAuC;AACrE,UAAI,CAAC,MAAM;AACT;AAAA,MACF;AACA,WAAK,cAAc;AACnB,WAAK,UAAU,IAAI,YAAY;AAAA,IACjC;AAAA,IAEA,eAAeA,IAAG;AAChB,MAAAA,GAAE,eAAe;AAEjB,YAAM,SAASA,GAAE,OAAO,QAAQ,uCAAuC;AACvE,UAAI,CAAC,UAAU,WAAW,KAAK,aAAa;AAC1C;AAAA,MACF;AAEA,YAAM,OAAO,OAAO,sBAAsB;AAC1C,YAAM,OAAO,KAAK,MAAM,KAAK,SAAS;AAEtC,YAAM,eAAeA,GAAE,UAAU,OAAO,SAAS,OAAO;AAExD,MAAAA,GAAE,cAAc,aAAa,KAAK,aAAa,YAAY;AAAA,IAC7D;AAAA,IAEA,gBAAgB;AACd,UAAI,KAAK,aAAa;AACpB,aAAK,YAAY,UAAU,OAAO,YAAY;AAC9C,aAAK,cAAc;AAAA,MACrB;AACA,WAAK,gBAAgB;AAAA,IACvB;AAAA,EACF;;;ACrFA,4BAAqB;AAErB,MAAO,8BAAP,cAA6B,WAAW;AAAA,IACtC,UAAU;AACR,8BAAAC,SAAS,KAAK,SAAS;AAAA,QACrB,SAAS,CAAC,QAAQ,UAAU,aAAa,SAAS,MAAM;AAAA,QACxD,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF;;;ACRA,MAAO,gCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,SAAS;AAAA,MACd,gBAAgB;AAAA,MAChB,aAAa;AAAA,IACf;AAAA,IAEA,UAAU;AACR,YAAM,gBAAgB,CAAC;AACvB,YAAM,iBAAiB,KAAK;AAC5B,YAAM,WAAW,KAAK;AACtB,wBAAkB,KAAK,QAAQ,IAAI,UAAU,eAAe,cAAc;AAAA,IAC5E;AAAA,EACF;;;ACbA,8BAAyB;AAEzB,MAAO,iCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,OAAO;AAAA,IAEzB,UAAU;AACR,WAAK,UAAM,sBAAAC,SAAa,KAAK,aAAa;AAAA,QACxC,gBAAgB;AAAA,QAChB,oBAAoB,CAAC,IAAI;AAAA,QACzB,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,WAAW,MAAM;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,IAEA,aAAa;AACX,UAAI,KAAK,IAAK,MAAK,IAAI,QAAQ;AAAA,IACjC;AAAA,IAEA,YAAY;AACV,WAAK,YAAY,QAAQ,KAAK,IAAI,UAAU;AAAA,IAC9C;AAAA,EACF;;;ACvBA,MAAO,iCAAP,cAA6B,WAAW;AAAA,IACtC,SAAS;AACP,WAAK,QAAQ,cAAc;AAAA,IAC7B;AAAA,EACF;;;ACJA,MAAO,yCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,SAAS,WAAW,WAAW;AAAA,IAEjD,SAAS;AACP,YAAM,aAAa,KAAK,YAAY,SAAS;AAC7C,WAAK,YAAY,OAAO,aAAa,SAAS;AAC9C,WAAK,cAAc,UAAU,OAAO,UAAU,CAAC,UAAU;AACzD,WAAK,gBAAgB,UAAU,OAAO,UAAU,UAAU;AAAA,IAC5D;AAAA,EACF;;;ACTA,MAAO,uCAAP,cAA6B,WAAW;AAAA,IACtC,OAAO,UAAU,CAAC,SAAS,QAAQ;AAAA,IAEnC,UAAU;AACR,WAAK,mBAAmB;AAAA,IAC1B;AAAA,IAEA,cAAc;AACZ,WAAK,YAAY,QAAQ,KAAK,YAAY,MAAM,QAAQ,OAAO,EAAE;AACjE,WAAK,mBAAmB;AAAA,IAC1B;AAAA,IAEA,qBAAqB;AACnB,UAAI,KAAK,iBAAiB;AACxB,aAAK,aAAa,WAAW,KAAK,YAAY,MAAM,WAAW;AAAA,MACjE;AAAA,IACF;AAAA,EACF;;;ACgBA,cAAY,SAAS,aAAa,4BAAmB;AACrD,cAAY,SAAS,YAAY,2BAAkB;AACnD,cAAY,SAAS,qBAAqB,oCAAyB;AACnE,cAAY,SAAS,eAAe,8BAAoB;AACxD,cAAY,SAAS,sBAAsB,qCAA0B;AACrE,cAAY,SAAS,uBAAuB,sCAA2B;AACvE,cAAY,SAAS,4BAA4B,2CAA+B;AAChF,cAAY,SAAS,SAAS,wBAAe;AAC7C,cAAY,SAAS,QAAQ,uBAAc;AAC3C,cAAY,SAAS,mBAAmB,kCAAwB;AAChE,cAAY,SAAS,SAAS,wBAAe;AAC7C,cAAY,SAAS,mBAAmB,kCAAwB;AAChE,cAAY,SAAS,kBAAkB,iCAAuB;AAC9D,cAAY,SAAS,SAAS,wBAAe;AAC7C,cAAY,SAAS,UAAU,yBAAgB;AAC/C,cAAY,SAAS,oBAAoB,mCAAyB;AAClE,cAAY,SAAS,QAAQ,uBAAc;AAC3C,cAAY,SAAS,aAAa,4BAAmB;AACrD,cAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF;AACA,cAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF;AACA,cAAY,SAAS,eAAe,8BAAoB;AACxD,cAAY,SAAS,oBAAoB,mCAAwB;AACjE,cAAY,SAAS,YAAY,2BAAkB;AACnD,cAAY,SAAS,cAAc,6BAAoB;AACvD,cAAY,SAAS,eAAe,8BAAoB;AACxD,cAAY,SAAS,uBAAuB,sCAA4B;AACxE,cAAY,SAAS,qBAAqB,oCAA0B;;;ACnEpE,MAAI,WAAW;AAAA,IACb,QAAQ,OAAO,YAAY,cAAc,UAAU;AAAA,IACnD,WAAW,OAAO,cAAc,cAAc,YAAY;AAAA,EAC5D;AAEA,MAAI,SAAS;AAAA,IACX,OAAO,UAAU;AACf,UAAI,KAAK,SAAS;AAChB,iBAAS,KAAK,KAAK,IAAI,CAAC;AACxB,iBAAS,OAAO,IAAI,iBAAiB,GAAG,QAAQ;AAAA,MAClD;AAAA,IACF;AAAA,EACF;AAEA,MAAMC,OAAM,OAAO,oBAAI,QAAM,QAAQ;AAErC,MAAMC,gBAAe,WAASD,KAAI,IAAI,QAAQ;AAE9C,MAAME,qBAAN,MAAwB;AAAA,IACtB,YAAY,YAAY;AACtB,WAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAI;AAC7D,WAAK,aAAa;AAClB,WAAK,oBAAoB;AAAA,IAC3B;AAAA,IACA,QAAQ;AACN,UAAI,CAAC,KAAK,UAAU,GAAG;AACrB,aAAK,YAAYF,KAAI;AACrB,eAAO,KAAK;AACZ,aAAK,aAAa;AAClB,yBAAiB,oBAAoB,KAAK,mBAAmB;AAC7D,eAAO,IAAI,gDAAgD,KAAK,YAAY,cAAc,IAAI;AAAA,MAChG;AAAA,IACF;AAAA,IACA,OAAO;AACL,UAAI,KAAK,UAAU,GAAG;AACpB,aAAK,YAAYA,KAAI;AACrB,aAAK,YAAY;AACjB,4BAAoB,oBAAoB,KAAK,mBAAmB;AAChE,eAAO,IAAI,2BAA2B;AAAA,MACxC;AAAA,IACF;AAAA,IACA,YAAY;AACV,aAAO,KAAK,aAAa,CAAC,KAAK;AAAA,IACjC;AAAA,IACA,aAAa;AACX,WAAK,WAAWA,KAAI;AAAA,IACtB;AAAA,IACA,gBAAgB;AACd,WAAK,oBAAoB;AACzB,WAAK,WAAW;AAChB,aAAO,KAAK;AACZ,aAAO,IAAI,oCAAoC;AAAA,IACjD;AAAA,IACA,mBAAmB;AACjB,WAAK,iBAAiBA,KAAI;AAC1B,aAAO,IAAI,uCAAuC;AAAA,IACpD;AAAA,IACA,eAAe;AACb,WAAK,YAAY;AACjB,WAAK,KAAK;AAAA,IACZ;AAAA,IACA,cAAc;AACZ,mBAAa,KAAK,WAAW;AAAA,IAC/B;AAAA,IACA,OAAO;AACL,WAAK,cAAc,YAAY,MAAM;AACnC,aAAK,iBAAiB;AACtB,aAAK,KAAK;AAAA,MACZ,IAAI,KAAK,gBAAgB,CAAC;AAAA,IAC5B;AAAA,IACA,kBAAkB;AAChB,YAAM,EAAC,gBAAgC,wBAAgD,IAAI,KAAK;AAChG,YAAM,UAAU,KAAK,IAAI,IAAI,yBAAyB,KAAK,IAAI,KAAK,mBAAmB,EAAE,CAAC;AAC1F,YAAM,YAAY,KAAK,sBAAsB,IAAI,IAAI;AACrD,YAAM,SAAS,YAAY,KAAK,OAAO;AACvC,aAAO,iBAAiB,MAAM,WAAW,IAAI;AAAA,IAC/C;AAAA,IACA,mBAAmB;AACjB,UAAI,KAAK,kBAAkB,GAAG;AAC5B,eAAO,IAAI,oEAAoE,KAAK,iBAAiB,kBAAkBC,cAAa,KAAK,WAAW,CAAC,yBAAyB,KAAK,YAAY,cAAc,IAAI;AACjN,aAAK;AACL,YAAI,KAAK,qBAAqB,GAAG;AAC/B,iBAAO,IAAI,+EAA+EA,cAAa,KAAK,cAAc,CAAC,IAAI;AAAA,QACjI,OAAO;AACL,iBAAO,IAAI,6BAA6B;AACxC,eAAK,WAAW,OAAO;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAAA,IACA,IAAI,cAAc;AAChB,aAAO,KAAK,WAAW,KAAK,WAAW,KAAK;AAAA,IAC9C;AAAA,IACA,oBAAoB;AAClB,aAAOA,cAAa,KAAK,WAAW,IAAI,KAAK,YAAY;AAAA,IAC3D;AAAA,IACA,uBAAuB;AACrB,aAAO,KAAK,kBAAkBA,cAAa,KAAK,cAAc,IAAI,KAAK,YAAY;AAAA,IACrF;AAAA,IACA,sBAAsB;AACpB,UAAI,SAAS,oBAAoB,WAAW;AAC1C,oBAAY,MAAM;AAChB,cAAI,KAAK,kBAAkB,KAAK,CAAC,KAAK,WAAW,OAAO,GAAG;AACzD,mBAAO,IAAI,uFAAuF,SAAS,eAAe,EAAE;AAC5H,iBAAK,WAAW,OAAO;AAAA,UACzB;AAAA,QACF,IAAI,GAAG;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,EAAAC,mBAAkB,iBAAiB;AAEnC,EAAAA,mBAAkB,0BAA0B;AAE5C,MAAI,WAAW;AAAA,IACb,eAAe;AAAA,MACb,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AAAA,IACA,oBAAoB;AAAA,MAClB,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ;AAAA,IACV;AAAA,IACA,oBAAoB;AAAA,IACpB,WAAW,CAAE,uBAAuB,yBAA0B;AAAA,EAChE;AAEA,MAAM,EAAC,eAAeC,gBAAe,WAAWC,WAAS,IAAI;AAE7D,MAAMC,sBAAqBD,WAAU,MAAM,GAAGA,WAAU,SAAS,CAAC;AAElE,MAAME,WAAU,CAAC,EAAE;AAEnB,MAAMC,cAAN,MAAiB;AAAA,IACf,YAAYC,WAAU;AACpB,WAAK,OAAO,KAAK,KAAK,KAAK,IAAI;AAC/B,WAAK,WAAWA;AAChB,WAAK,gBAAgB,KAAK,SAAS;AACnC,WAAK,UAAU,IAAIN,mBAAkB,IAAI;AACzC,WAAK,eAAe;AAAA,IACtB;AAAA,IACA,KAAK,MAAM;AACT,UAAI,KAAK,OAAO,GAAG;AACjB,aAAK,UAAU,KAAK,KAAK,UAAU,IAAI,CAAC;AACxC,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,OAAO;AACL,UAAI,KAAK,SAAS,GAAG;AACnB,eAAO,IAAI,uDAAuD,KAAK,SAAS,CAAC,EAAE;AACnF,eAAO;AAAA,MACT,OAAO;AACL,cAAM,kBAAkB,CAAE,GAAGE,YAAW,GAAG,KAAK,SAAS,gBAAgB,CAAC,CAAE;AAC5E,eAAO,IAAI,uCAAuC,KAAK,SAAS,CAAC,mBAAmB,eAAe,EAAE;AACrG,YAAI,KAAK,WAAW;AAClB,eAAK,uBAAuB;AAAA,QAC9B;AACA,aAAK,YAAY,IAAI,SAAS,UAAU,KAAK,SAAS,KAAK,eAAe;AAC1E,aAAK,qBAAqB;AAC1B,aAAK,QAAQ,MAAM;AACnB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,MAAM,EAAC,eAA8B,IAAI;AAAA,MACvC,gBAAgB;AAAA,IAClB,GAAG;AACD,UAAI,CAAC,gBAAgB;AACnB,aAAK,QAAQ,KAAK;AAAA,MACpB;AACA,UAAI,KAAK,OAAO,GAAG;AACjB,eAAO,KAAK,UAAU,MAAM;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,SAAS;AACP,aAAO,IAAI,yCAAyC,KAAK,SAAS,CAAC,EAAE;AACrE,UAAI,KAAK,SAAS,GAAG;AACnB,YAAI;AACF,iBAAO,KAAK,MAAM;AAAA,QACpB,SAASK,QAAO;AACd,iBAAO,IAAI,8BAA8BA,MAAK;AAAA,QAChD,UAAE;AACA,iBAAO,IAAI,0BAA0B,KAAK,YAAY,WAAW,IAAI;AACrE,qBAAW,KAAK,MAAM,KAAK,YAAY,WAAW;AAAA,QACpD;AAAA,MACF,OAAO;AACL,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF;AAAA,IACA,cAAc;AACZ,UAAI,KAAK,WAAW;AAClB,eAAO,KAAK,UAAU;AAAA,MACxB;AAAA,IACF;AAAA,IACA,SAAS;AACP,aAAO,KAAK,QAAQ,MAAM;AAAA,IAC5B;AAAA,IACA,WAAW;AACT,aAAO,KAAK,QAAQ,QAAQ,YAAY;AAAA,IAC1C;AAAA,IACA,mBAAmB;AACjB,aAAO,KAAK,QAAQ,oBAAoB;AAAA,IAC1C;AAAA,IACA,sBAAsB;AACpB,aAAOH,SAAQ,KAAKD,qBAAoB,KAAK,YAAY,CAAC,KAAK;AAAA,IACjE;AAAA,IACA,WAAW,QAAQ;AACjB,aAAOC,SAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC,KAAK;AAAA,IAClD;AAAA,IACA,WAAW;AACT,UAAI,KAAK,WAAW;AAClB,iBAAS,SAAS,SAAS,WAAW;AACpC,cAAI,SAAS,UAAU,KAAK,MAAM,KAAK,UAAU,YAAY;AAC3D,mBAAO,MAAM,YAAY;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,uBAAuB;AACrB,eAAS,aAAa,KAAK,QAAQ;AACjC,cAAM,UAAU,KAAK,OAAO,SAAS,EAAE,KAAK,IAAI;AAChD,aAAK,UAAU,KAAK,SAAS,EAAE,IAAI;AAAA,MACrC;AAAA,IACF;AAAA,IACA,yBAAyB;AACvB,eAAS,aAAa,KAAK,QAAQ;AACjC,aAAK,UAAU,KAAK,SAAS,EAAE,IAAI,WAAW;AAAA,QAAC;AAAA,MACjD;AAAA,IACF;AAAA,EACF;AAEA,EAAAC,YAAW,cAAc;AAEzB,EAAAA,YAAW,UAAU,SAAS;AAAA,IAC5B,QAAQ,OAAO;AACb,UAAI,CAAC,KAAK,oBAAoB,GAAG;AAC/B;AAAA,MACF;AACA,YAAM,EAAC,YAAwB,SAAkB,QAAgB,WAAsB,KAAU,IAAI,KAAK,MAAM,MAAM,IAAI;AAC1H,cAAQ,MAAM;AAAA,QACb,KAAKJ,eAAc;AAClB,cAAI,KAAK,iBAAiB,GAAG;AAC3B,iBAAK,qBAAqB;AAAA,UAC5B;AACA,eAAK,QAAQ,cAAc;AAC3B,iBAAO,KAAK,cAAc,OAAO;AAAA,QAElC,KAAKA,eAAc;AAClB,iBAAO,IAAI,0BAA0B,MAAM,EAAE;AAC7C,iBAAO,KAAK,MAAM;AAAA,YAChB,gBAAgB;AAAA,UAClB,CAAC;AAAA,QAEF,KAAKA,eAAc;AAClB,iBAAO,KAAK,QAAQ,WAAW;AAAA,QAEhC,KAAKA,eAAc;AAClB,eAAK,cAAc,oBAAoB,UAAU;AACjD,cAAI,KAAK,oBAAoB;AAC3B,iBAAK,qBAAqB;AAC1B,mBAAO,KAAK,cAAc,OAAO,YAAY,aAAa;AAAA,cACxD,aAAa;AAAA,YACf,CAAC;AAAA,UACH,OAAO;AACL,mBAAO,KAAK,cAAc,OAAO,YAAY,aAAa;AAAA,cACxD,aAAa;AAAA,YACf,CAAC;AAAA,UACH;AAAA,QAED,KAAKA,eAAc;AAClB,iBAAO,KAAK,cAAc,OAAO,UAAU;AAAA,QAE5C;AACC,iBAAO,KAAK,cAAc,OAAO,YAAY,YAAY,OAAO;AAAA,MAClE;AAAA,IACF;AAAA,IACA,OAAO;AACL,aAAO,IAAI,kCAAkC,KAAK,YAAY,CAAC,eAAe;AAC9E,WAAK,eAAe;AACpB,UAAI,CAAC,KAAK,oBAAoB,GAAG;AAC/B,eAAO,IAAI,8DAA8D;AACzE,eAAO,KAAK,MAAM;AAAA,UAChB,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,MAAM,OAAO;AACX,aAAO,IAAI,yBAAyB;AACpC,UAAI,KAAK,cAAc;AACrB;AAAA,MACF;AACA,WAAK,eAAe;AACpB,WAAK,QAAQ,iBAAiB;AAC9B,aAAO,KAAK,cAAc,UAAU,gBAAgB;AAAA,QAClD,sBAAsB,KAAK,QAAQ,UAAU;AAAA,MAC/C,CAAC;AAAA,IACH;AAAA,IACA,QAAQ;AACN,aAAO,IAAI,yBAAyB;AAAA,IACtC;AAAA,EACF;AAEA,MAAMO,UAAS,SAAS,QAAQ,YAAY;AAC1C,QAAI,cAAc,MAAM;AACtB,eAAS,OAAO,YAAY;AAC1B,cAAM,QAAQ,WAAW,GAAG;AAC5B,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAEA,MAAMC,gBAAN,MAAmB;AAAA,IACjB,YAAYH,WAAU,SAAS,CAAC,GAAG,OAAO;AACxC,WAAK,WAAWA;AAChB,WAAK,aAAa,KAAK,UAAU,MAAM;AACvC,MAAAE,QAAO,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,QAAQ,QAAQ,OAAO,CAAC,GAAG;AACzB,WAAK,SAAS;AACd,aAAO,KAAK,KAAK,IAAI;AAAA,IACvB;AAAA,IACA,KAAK,MAAM;AACT,aAAO,KAAK,SAAS,KAAK;AAAA,QACxB,SAAS;AAAA,QACT,YAAY,KAAK;AAAA,QACjB,MAAM,KAAK,UAAU,IAAI;AAAA,MAC3B,CAAC;AAAA,IACH;AAAA,IACA,cAAc;AACZ,aAAO,KAAK,SAAS,cAAc,OAAO,IAAI;AAAA,IAChD;AAAA,EACF;AAEA,MAAME,yBAAN,MAA4B;AAAA,IAC1B,YAAY,eAAe;AACzB,WAAK,gBAAgB;AACrB,WAAK,uBAAuB,CAAC;AAAA,IAC/B;AAAA,IACA,UAAU,cAAc;AACtB,UAAI,KAAK,qBAAqB,QAAQ,YAAY,KAAK,IAAI;AACzD,eAAO,IAAI,sCAAsC,aAAa,UAAU,EAAE;AAC1E,aAAK,qBAAqB,KAAK,YAAY;AAAA,MAC7C,OAAO;AACL,eAAO,IAAI,8CAA8C,aAAa,UAAU,EAAE;AAAA,MACpF;AACA,WAAK,kBAAkB;AAAA,IACzB;AAAA,IACA,OAAO,cAAc;AACnB,aAAO,IAAI,oCAAoC,aAAa,UAAU,EAAE;AACxE,WAAK,uBAAuB,KAAK,qBAAqB,QAAQ,CAAAC,OAAKA,OAAM,aAAa;AAAA,IACxF;AAAA,IACA,oBAAoB;AAClB,WAAK,iBAAiB;AACtB,WAAK,iBAAiB;AAAA,IACxB;AAAA,IACA,mBAAmB;AACjB,mBAAa,KAAK,YAAY;AAAA,IAChC;AAAA,IACA,mBAAmB;AACjB,WAAK,eAAe,YAAY,MAAM;AACpC,YAAI,KAAK,iBAAiB,OAAO,KAAK,cAAc,cAAc,YAAY;AAC5E,eAAK,qBAAqB,KAAK,kBAAgB;AAC7C,mBAAO,IAAI,uCAAuC,aAAa,UAAU,EAAE;AAC3E,iBAAK,cAAc,UAAU,YAAY;AAAA,UAC3C,EAAE;AAAA,QACJ;AAAA,MACF,IAAI,GAAG;AAAA,IACT;AAAA,EACF;AAEA,MAAMC,iBAAN,MAAoB;AAAA,IAClB,YAAYN,WAAU;AACpB,WAAK,WAAWA;AAChB,WAAK,YAAY,IAAII,uBAAsB,IAAI;AAC/C,WAAK,gBAAgB,CAAC;AAAA,IACxB;AAAA,IACA,OAAO,aAAa,OAAO;AACzB,YAAM,UAAU;AAChB,YAAM,SAAS,OAAO,YAAY,WAAW,UAAU;AAAA,QACrD;AAAA,MACF;AACA,YAAM,eAAe,IAAID,cAAa,KAAK,UAAU,QAAQ,KAAK;AAClE,aAAO,KAAK,IAAI,YAAY;AAAA,IAC9B;AAAA,IACA,IAAI,cAAc;AAChB,WAAK,cAAc,KAAK,YAAY;AACpC,WAAK,SAAS,uBAAuB;AACrC,WAAK,OAAO,cAAc,aAAa;AACvC,WAAK,UAAU,YAAY;AAC3B,aAAO;AAAA,IACT;AAAA,IACA,OAAO,cAAc;AACnB,WAAK,OAAO,YAAY;AACxB,UAAI,CAAC,KAAK,QAAQ,aAAa,UAAU,EAAE,QAAQ;AACjD,aAAK,YAAY,cAAc,aAAa;AAAA,MAC9C;AACA,aAAO;AAAA,IACT;AAAA,IACA,OAAO,YAAY;AACjB,aAAO,KAAK,QAAQ,UAAU,EAAE,KAAK,kBAAgB;AACnD,aAAK,OAAO,YAAY;AACxB,aAAK,OAAO,cAAc,UAAU;AACpC,eAAO;AAAA,MACT,EAAE;AAAA,IACJ;AAAA,IACA,OAAO,cAAc;AACnB,WAAK,UAAU,OAAO,YAAY;AAClC,WAAK,gBAAgB,KAAK,cAAc,QAAQ,CAAAE,OAAKA,OAAM,aAAa;AACxE,aAAO;AAAA,IACT;AAAA,IACA,QAAQ,YAAY;AAClB,aAAO,KAAK,cAAc,QAAQ,CAAAA,OAAKA,GAAE,eAAe,WAAW;AAAA,IACrE;AAAA,IACA,SAAS;AACP,aAAO,KAAK,cAAc,KAAK,kBAAgB,KAAK,UAAU,YAAY,EAAE;AAAA,IAC9E;AAAA,IACA,UAAU,iBAAiB,MAAM;AAC/B,aAAO,KAAK,cAAc,KAAK,kBAAgB,KAAK,OAAO,cAAc,cAAc,GAAG,IAAI,EAAE;AAAA,IAClG;AAAA,IACA,OAAO,cAAc,iBAAiB,MAAM;AAC1C,UAAI;AACJ,UAAI,OAAO,iBAAiB,UAAU;AACpC,wBAAgB,KAAK,QAAQ,YAAY;AAAA,MAC3C,OAAO;AACL,wBAAgB,CAAE,YAAa;AAAA,MACjC;AACA,aAAO,cAAc,KAAK,CAAAE,kBAAgB,OAAOA,cAAa,YAAY,MAAM,aAAaA,cAAa,YAAY,EAAE,GAAG,IAAI,IAAI,OAAU;AAAA,IAC/I;AAAA,IACA,UAAU,cAAc;AACtB,UAAI,KAAK,YAAY,cAAc,WAAW,GAAG;AAC/C,aAAK,UAAU,UAAU,YAAY;AAAA,MACvC;AAAA,IACF;AAAA,IACA,oBAAoB,YAAY;AAC9B,aAAO,IAAI,0BAA0B,UAAU,EAAE;AACjD,WAAK,QAAQ,UAAU,EAAE,KAAK,kBAAgB,KAAK,UAAU,OAAO,YAAY,EAAE;AAAA,IACpF;AAAA,IACA,YAAY,cAAc,SAAS;AACjC,YAAM,EAAC,WAAsB,IAAI;AACjC,aAAO,KAAK,SAAS,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAMC,YAAN,MAAe;AAAA,IACb,YAAY,KAAK;AACf,WAAK,OAAO;AACZ,WAAK,gBAAgB,IAAIF,eAAc,IAAI;AAC3C,WAAK,aAAa,IAAIP,YAAW,IAAI;AACrC,WAAK,eAAe,CAAC;AAAA,IACvB;AAAA,IACA,IAAI,MAAM;AACR,aAAOU,oBAAmB,KAAK,IAAI;AAAA,IACrC;AAAA,IACA,KAAK,MAAM;AACT,aAAO,KAAK,WAAW,KAAK,IAAI;AAAA,IAClC;AAAA,IACA,UAAU;AACR,aAAO,KAAK,WAAW,KAAK;AAAA,IAC9B;AAAA,IACA,aAAa;AACX,aAAO,KAAK,WAAW,MAAM;AAAA,QAC3B,gBAAgB;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,IACA,yBAAyB;AACvB,UAAI,CAAC,KAAK,WAAW,SAAS,GAAG;AAC/B,eAAO,KAAK,WAAW,KAAK;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,eAAe,aAAa;AAC1B,WAAK,eAAe,CAAE,GAAG,KAAK,cAAc,WAAY;AAAA,IAC1D;AAAA,EACF;AAEA,WAASA,oBAAmB,KAAK;AAC/B,QAAI,OAAO,QAAQ,YAAY;AAC7B,YAAM,IAAI;AAAA,IACZ;AACA,QAAI,OAAO,CAAC,UAAU,KAAK,GAAG,GAAG;AAC/B,YAAMC,KAAI,SAAS,cAAc,GAAG;AACpC,MAAAA,GAAE,OAAO;AACT,MAAAA,GAAE,OAAOA,GAAE;AACX,MAAAA,GAAE,WAAWA,GAAE,SAAS,QAAQ,QAAQ,IAAI;AAC5C,aAAOA,GAAE;AAAA,IACX,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAEA,WAASC,gBAAe,MAAMC,WAAU,KAAK,KAAK,SAAS,oBAAoB;AAC7E,WAAO,IAAIJ,UAAS,GAAG;AAAA,EACzB;AAEA,WAASI,WAAU,MAAM;AACvB,UAAM,UAAU,SAAS,KAAK,cAAc,2BAA2B,IAAI,IAAI;AAC/E,QAAI,SAAS;AACX,aAAO,QAAQ,aAAa,SAAS;AAAA,IACvC;AAAA,EACF;;;ACxfA,MAAMC,YAAWC,gBAAe;AAEhC,WAAS,iBAAiB,cAAc,MAAM;AAC5C,QAAI,SAAS,cAAc,8BAA8B,GAAG;AAC1D,MAAAD,UAAS,WAAW;AACpB,MAAAA,UAAS,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AAED,MAAO,mBAAQA;;;ACZf,WAAS,iBAAiB,cAAc,MAAM;AAC5C,UAAM,eAAe,SAAS,eAAe,eAAe;AAC5D,QAAI,iBAAiB,MAAM;AACzB;AAAA,IACF;AAEA,UAAM,aAAa,aAAa,QAAQ;AAExC,qBAAS,cAAc,OAAO,EAAC,SAAS,iBAAiB,WAAsB,GAAG;AAAA,MAChF,iBAAiB;AAAA,MAEjB,cAAc;AACZ,aAAK,kBAAkB,SAAS,eAAe,kBAAkB;AAAA,MACnE;AAAA,MAEA,YAAY;AACV,cAAME,gBAAe,SAAS,eAAe,cAAc;AAE3D,qBAAa,UAAU,MAAM;AAC3B,uBAAa,UAAU,IAAI,QAAQ;AACnC,UAAAA,cAAa,UAAU,OAAO,QAAQ;AAAA,QACxC;AAAA,MACF;AAAA,MAEA,SAAS,MAAM;AACb,qBAAa,UAAU,IAAI,QAAQ;AACnC,qBAAa,UAAU,OAAO,QAAQ;AAEtC,YAAI,KAAK,WAAW,WAAW;AAC7B,gBAAM,WAAW,YAAY,KAAK,UAAU,iDAAiD,KAAK,UAAU;AAC5G,eAAK,gBAAgB,YAAY;AACjC,mBAAS,eAAe,aAAa,EAAE,MAAM;AAAA,QAC/C,OAAO;AACL,gBAAM,YAAY;AAClB,eAAK,gBAAgB,YAAY;AAAA,QACnC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,CAAC;;;ACnCD,MAAAC,iBAAmB;AACnB,SAAO,SAAS,eAAAC;",
  "names": ["consumer", "error", "consumer", "s", "consumer", "s", "subscription", "a", "fn", "i", "l", "e", "now", "Symbol", "Symbol", "e", "objectToString", "Symbol", "objectToString", "now", "debounce", "debounce", "throttle", "prettierBytes", "separator", "pattern", "classNames", "i", "prettierBytes", "has", "fn", "EventEmitter", "i", "l", "ee", "a2", "a3", "j", "a", "b", "i", "self", "fn", "i", "error", "i", "a", "b", "original", "require_retry", "global", "w", "window", "slice", "indexOf", "toString", "isFunction", "isWindow", "document", "i", "j", "arr", "support", "tokenize", "contains", "a", "b", "hasOwn", "push", "rtrim", "rhtml", "rquickExpr", "escape", "e", "Sizzle", "m", "match", "fn", "matches", "docElem", "id", "node", "nodeName", "start", "dir", "hash", "isXML", "n", "elem", "self", "l", "_", "add", "v", "value", "deferred", "process", "error", "data", "t", "expectSync", "name", "end", "p", "index", "length", "classNames", "max", "location", "s", "val", "completed", "offset", "top", "method", "type", "define", "$", "toastr", "error", "i", "options", "map", "duration", "s", "t", "n", "e", "i", "c", "r", "o", "a", "l", "h", "y", "p", "f", "d", "u", "m", "g", "v", "b", "_", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__hasOwnProp", "__export", "__copyProps", "c", "q", "o", "s", "a", "b", "k", "id2", "i", "e", "start", "utils", "id", "intlTelInput", "max", "match", "error", "module", "fn", "k", "m", "a", "b", "c", "d", "n", "e", "f", "g", "h", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "l", "T", "U", "V", "W", "X", "Y", "A", "Z", "HTMLElement", "FrameLoadingStyle", "location", "left", "right", "match", "i", "_", "FetchMethod", "error", "FormSubmissionState", "FormEnctype", "cookie", "id", "x", "y", "TimingMetric", "VisitState", "SystemStatusCode", "session", "visit", "PageStage", "element", "e", "c", "createConsumer", "m", "x", "left", "right", "application", "error", "_", "match", "e", "oldValue", "fetch", "left", "right", "_", "error", "constructor", "extend", "a", "b", "application", "logger", "element", "read", "write", "i", "interpolate", "n", "id", "i", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "id", "m", "defaultOptions", "f", "prettierBytes", "match", "error", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "Uppy", "ee", "throttle", "defaultOptions", "fn", "error", "totalProgress", "duration", "logger", "_", "MODE_HYDRATE", "slice", "options", "vnodeId", "isValidElement", "rerenderQueue", "prevDebounce", "defer", "depthSort", "i", "EMPTY_OBJ", "EMPTY_ARR", "IS_NON_DIMENSIONAL", "isArray", "Array", "assign", "obj", "props", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "constructor", "__v", "__i", "__u", "createRef", "current", "Fragment", "BaseComponent", "context", "this", "getDomSibling", "childIndex", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "push", "process", "debounceRendering", "renderQueueLength", "component", "newVNode", "oldVNode", "oldDom", "parentDom", "commitQueue", "refQueue", "sort", "shift", "__P", "diff", "__n", "ownerSVGElement", "commitRoot", "diffChildren", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "isSvg", "excessDomChildren", "isHydrating", "childVNode", "newDom", "firstChildDom", "oldChildren", "newChildrenLength", "constructNewChildrenArray", "applyRef", "insert", "nextSibling", "skewedIndex", "matchingIndex", "oldChildrenLength", "remainingOldChildren", "skew", "String", "findMatchingIndex", "unmount", "parentVNode", "insertBefore", "toChildArray", "out", "some", "x", "y", "setStyle", "style", "value", "setProperty", "test", "dom", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "l", "_attached", "Date", "now", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "eventHandler", "_dispatched", "event", "tmp", "isNew", "oldProps", "oldState", "snapshot", "clearProcessingException", "newProps", "provider", "componentContext", "renderHook", "count", "newType", "outer", "contextType", "__E", "prototype", "render", "doRender", "sub", "state", "__h", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "forEach", "componentWillUpdate", "componentDidUpdate", "__r", "getChildContext", "getSnapshotBeforeUpdate", "indexOf", "diffElementNodes", "diffed", "root", "cb", "newHtml", "oldHtml", "newChildren", "inputValue", "checked", "nodeType", "localName", "document", "createTextNode", "createElementNS", "is", "data", "childNodes", "attributes", "__html", "innerHTML", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "cloneElement", "vnode", "props", "children", "key", "ref", "i", "defaultProps", "normalizedProps", "assign", "type", "arguments", "length", "slice", "call", "createVNode", "slice", "EMPTY_ARR", "options", "__e", "error", "vnode", "oldVNode", "errorInfo", "component", "ctor", "handled", "__", "__c", "constructor", "getDerivedStateFromError", "setState", "__d", "componentDidCatch", "__E", "e", "vnodeId", "isValidElement", "undefined", "BaseComponent", "prototype", "update", "callback", "s", "this", "__s", "state", "assign", "props", "__v", "_sb", "push", "enqueueRender", "forceUpdate", "__h", "render", "Fragment", "rerenderQueue", "defer", "Promise", "then", "bind", "resolve", "setTimeout", "depthSort", "a", "b", "__b", "process", "__r", "i", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "fn", "p", "import_classnames", "import_prettier_bytes", "classNames", "prettierBytes", "supportsUploadProgress", "error", "error", "supportsUploadProgress", "classNames", "locale_default", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "error", "i", "defaultOptions", "StatusBar", "locale_default", "supportsUploadProgress", "c", "i", "transitionName", "packageJson", "i", "e", "t", "s", "i", "n", "r", "a", "h", "f", "l", "o", "u", "d", "c", "p", "g", "m", "y", "b", "w", "k", "v", "O", "S", "A", "x", "C", "I", "L", "T", "z", "P", "j", "E", "M", "_", "D", "N", "$", "H", "q", "ee", "e", "t", "H", "s", "i", "c", "a", "r", "n", "b", "A", "locale_default", "packageJson", "w", "h", "locale_default", "defaultOptions", "x", "error", "e", "error", "f", "a", "b", "f", "__classPrivateFieldGet", "AbortError", "EventEmitter", "error", "_PQueue_doesIntervalAllowAnother_get", "_PQueue_doesConcurrentAllowAnother_get", "_PQueue_next", "_PQueue_onResumeInterval", "_PQueue_isIntervalPaused_get", "now", "_PQueue_tryToStartAnother", "_PQueue_initializeIntervalIfNeeded", "_PQueue_onInterval", "_PQueue_processQueue", "_PQueue_throwOnAbort", "_PQueue_onEvent", "currentIndex", "currentComponent", "previousComponent", "prevRaf", "currentHook", "afterPaintEffects", "EMPTY", "oldBeforeDiff", "options", "__b", "oldBeforeRender", "__r", "oldAfterDiff", "diffed", "oldCommit", "__c", "oldBeforeUnmount", "unmount", "getHookState", "index", "type", "__h", "hooks", "__H", "__", "length", "push", "__V", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "_reducer", "action", "currentValue", "__N", "nextValue", "setState", "_hasScuFromHooks", "updateHookState", "p", "s", "c", "stateHooks", "filter", "x", "every", "prevScu", "call", "this", "shouldUpdate", "forEach", "hookItem", "props", "shouldComponentUpdate", "prevCWU", "componentWillUpdate", "__e", "tmp", "useEffect", "callback", "args", "state", "__s", "argsChanged", "_pendingArgs", "useMemo", "factory", "args", "state", "getHookState", "currentIndex", "argsChanged", "__V", "_pendingArgs", "__h", "__", "useCallback", "callback", "currentHook", "flushAfterPaintEffects", "component", "afterPaintEffects", "shift", "__P", "__H", "__h", "forEach", "invokeCleanup", "invokeEffect", "e", "options", "__e", "__v", "__b", "vnode", "currentComponent", "oldBeforeDiff", "__r", "oldBeforeRender", "currentIndex", "hooks", "__c", "previousComponent", "__", "hookItem", "__N", "EMPTY", "_pendingArgs", "diffed", "oldAfterDiff", "c", "length", "push", "prevRaf", "requestAnimationFrame", "afterNextFrame", "__V", "commitQueue", "some", "filter", "cb", "oldCommit", "unmount", "oldBeforeUnmount", "hasErrored", "s", "HAS_RAF", "callback", "raf", "done", "clearTimeout", "timeout", "cancelAnimationFrame", "setTimeout", "hook", "comp", "cleanup", "argsChanged", "oldArgs", "newArgs", "arg", "index", "invokeOrReturn", "f", "T", "e", "i", "import_classnames", "i", "offset", "start", "end", "h", "T", "p", "import_classnames", "import_classnames", "id", "classNames", "id", "_extends", "i", "classNames", "ListItem", "f", "F", "classNames", "View", "e", "currentSelection", "error", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "defaultOptions", "View", "error", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "defaultOptions", "View", "error", "i", "isEqual", "isFocusInOverlay", "debounce", "import_classnames", "import_classnames", "f", "import_prettier_bytes", "prettierBytes", "shallowEqual", "error", "classNames", "id", "error", "F", "_Symbol$for", "l", "import_classnames", "classNames", "import_classnames", "classNames", "import_classnames", "classNames", "getUploadingState", "i", "import_classnames", "id", "h", "T", "p", "classNames", "import_classnames", "classNames", "_extends", "i", "classNames", "locale_default", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "o", "Dashboard", "somePluginCanHandleRootDrop", "error", "isFocusInOverlay", "StatusBar", "locale_default", "defaultOptions", "_extends", "i", "l", "packageJson", "defaultOptions", "locale_default", "packageJson", "locale_default", "defaultOptions", "error", "AbortError", "error", "retry", "error", "import_throttle", "throttle", "_Symbol$for", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "AbortError", "_socket", "_", "error", "e", "import_namespace_emitter", "_Symbol$for", "_Symbol$for2", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "_emitter", "ee", "e", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "fn", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "i", "fn", "duration", "AbortController", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "defaultOptions", "_abortController", "_createUpload", "_createUpload2", "AbortController", "n", "c", "offset", "j", "end", "i2", "k", "i", "_Symbol$for", "_classPrivateFieldLooseBase", "id", "_classPrivateFieldLooseKey", "packageJson", "error", "chunks", "i", "defaultOptions", "location", "n", "Dashboard", "directUploadInputForm", "toastr", "e", "start", "name", "style", "x", "y", "getComputedStyle", "getComputedStyle", "window", "min", "max", "v", "toPaddingObject", "popperOffsets", "min", "max", "offset", "effect", "x", "y", "popper", "getComputedStyle", "effect", "window", "hash", "hash", "x", "y", "x", "y", "getComputedStyle", "getComputedStyle", "clippingParents", "getComputedStyle", "reference", "start", "popperOffsets", "offset", "placements", "placement", "a", "b", "placements", "placement", "i", "start", "_loop", "_i", "checks", "offset", "x", "y", "popperOffsets", "offset", "min", "max", "start", "debounce", "fn", "merged", "defaultModifiers", "defaultOptions", "createPopper", "reference", "popper", "options", "m", "fn", "debounce", "state", "effect", "noopFn", "id", "e", "e", "Redactor", "intlTelInput", "now", "secondsSince", "ConnectionMonitor", "message_types", "protocols", "supportedProtocols", "indexOf", "Connection", "consumer", "error", "extend", "Subscription", "SubscriptionGuarantor", "s", "Subscriptions", "subscription", "Consumer", "createWebSocketURL", "a", "createConsumer", "getConfig", "consumer", "createConsumer", "exportLoader", "import_toastr", "toastr"]
}
