import { defineComponent, toRef, shallowRef, getCurrentInstance, provide, cloneVNode, createElementBlock, computed, h, useAttrs, ref, mergeProps, unref, hasInjectionContext, inject, resolveComponent, isRef, defineAsyncComponent, shallowReactive, Suspense, Fragment, useSSRContext, createApp, createVNode, Text, watch, getCurrentScope, onScopeDispose, reactive, withCtx, createBlock, openBlock, renderList, createCommentVNode, createTextVNode, toDisplayString as toDisplayString$1, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, effectScope, isReadonly, isShallow, isReactive, toRaw, toValue, markRaw, nextTick } from 'vue';
import { j as createError$1, L as klona, M as defuFn, v as defu, N as sanitizeStatusCode, O as getContext, $ as $fetch$1, P as baseURL, Q as createHooks, R as executeAsync, S as getRequestProtocol, T as toRouteMatcher, U as createRouter$1, V as camelCase, d as destr, W as getRequestHeaders, X as parse$1, Y as getRequestHeader, Z as isEqual$1, _ as setCookie, a0 as getCookie, a1 as deleteCookie } from '../_/nitro.mjs';
import { createPinia, setActivePinia, shouldHydrate } from 'pinia';
import { PiniaColada, useQueryCache, serializeQueryCache, isQueryCache } from '@pinia/colada';
import { useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, START_LOCATION, isNavigationFailure } from 'vue-router';
import { defineWebSite, defineWebPage, SchemaOrgUnheadPlugin } from '@unhead/schema-org/vue';
import { deepPickUnsafe, deepOmitUnsafe } from 'deep-pick-omit';
import { _api, addAPIProvider, setCustomIconsLoader } from '@iconify/vue';
import { ssrRenderAttrs, ssrRenderSlot, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderStyle, ssrRenderSuspense, ssrRenderVNode } from 'vue/server-renderer';
import { u as useSeoMeta$1, a as useHead$1, h as headSymbol } from '../routes/renderer.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'nitropack/dist/runtime/plugin';
import 'packrup';
import 'consola';
import 'node:fs';
import 'node:url';
import '@iconify/utils';
import 'node:crypto';
import 'ipx';
import 'node:path';
import 'vue-bundle-renderer/runtime';
import 'unhead/server';
import 'devalue';
import 'unhead/plugins';
import 'unhead/utils';

if (!globalThis.$fetch) {
  globalThis.$fetch = $fetch$1.create({
    baseURL: baseURL()
  });
}
if (!("global" in globalThis)) {
  globalThis.global = globalThis;
}
const appLayoutTransition = false;
const nuxtLinkDefaults = { "componentName": "NuxtLink", "prefetch": true, "prefetchOn": { "visibility": true } };
const asyncDataDefaults = { "value": null, "errorValue": null, "deep": true };
const fetchDefaults = {};
const appId = "nuxt-app";
function getNuxtAppCtx(id = appId) {
  return getContext(id, {
    asyncContext: false
  });
}
const NuxtPluginIndicator = "__nuxt_plugin";
function createNuxtApp(options) {
  var _a;
  let hydratingCount = 0;
  const nuxtApp = {
    _id: options.id || appId || "nuxt-app",
    _scope: effectScope(),
    provide: void 0,
    globalName: "nuxt",
    versions: {
      get nuxt() {
        return "3.17.4";
      },
      get vue() {
        return nuxtApp.vueApp.version;
      }
    },
    payload: shallowReactive({
      ...((_a = options.ssrContext) == null ? void 0 : _a.payload) || {},
      data: shallowReactive({}),
      state: reactive({}),
      once: /* @__PURE__ */ new Set(),
      _errors: shallowReactive({})
    }),
    static: {
      data: {}
    },
    runWithContext(fn) {
      if (nuxtApp._scope.active && !getCurrentScope()) {
        return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));
      }
      return callWithNuxt(nuxtApp, fn);
    },
    isHydrating: false,
    deferHydration() {
      if (!nuxtApp.isHydrating) {
        return () => {
        };
      }
      hydratingCount++;
      let called = false;
      return () => {
        if (called) {
          return;
        }
        called = true;
        hydratingCount--;
        if (hydratingCount === 0) {
          nuxtApp.isHydrating = false;
          return nuxtApp.callHook("app:suspense:resolve");
        }
      };
    },
    _asyncDataPromises: {},
    _asyncData: shallowReactive({}),
    _payloadRevivers: {},
    ...options
  };
  {
    nuxtApp.payload.serverRendered = true;
  }
  if (nuxtApp.ssrContext) {
    nuxtApp.payload.path = nuxtApp.ssrContext.url;
    nuxtApp.ssrContext.nuxt = nuxtApp;
    nuxtApp.ssrContext.payload = nuxtApp.payload;
    nuxtApp.ssrContext.config = {
      public: nuxtApp.ssrContext.runtimeConfig.public,
      app: nuxtApp.ssrContext.runtimeConfig.app
    };
  }
  nuxtApp.hooks = createHooks();
  nuxtApp.hook = nuxtApp.hooks.hook;
  {
    const contextCaller = async function(hooks, args) {
      for (const hook of hooks) {
        await nuxtApp.runWithContext(() => hook(...args));
      }
    };
    nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);
  }
  nuxtApp.callHook = nuxtApp.hooks.callHook;
  nuxtApp.provide = (name, value) => {
    const $name = "$" + name;
    defineGetter(nuxtApp, $name, value);
    defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);
  };
  defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp);
  defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp);
  const runtimeConfig = options.ssrContext.runtimeConfig;
  nuxtApp.provide("config", runtimeConfig);
  return nuxtApp;
}
function registerPluginHooks(nuxtApp, plugin2) {
  if (plugin2.hooks) {
    nuxtApp.hooks.addHooks(plugin2.hooks);
  }
}
async function applyPlugin(nuxtApp, plugin2) {
  if (typeof plugin2 === "function") {
    const { provide: provide2 } = await nuxtApp.runWithContext(() => plugin2(nuxtApp)) || {};
    if (provide2 && typeof provide2 === "object") {
      for (const key in provide2) {
        nuxtApp.provide(key, provide2[key]);
      }
    }
  }
}
async function applyPlugins(nuxtApp, plugins2) {
  var _a, _b, _c, _d;
  const resolvedPlugins = /* @__PURE__ */ new Set();
  const unresolvedPlugins = [];
  const parallels = [];
  const errors = [];
  let promiseDepth = 0;
  async function executePlugin(plugin2) {
    var _a2;
    const unresolvedPluginsForThisPlugin = ((_a2 = plugin2.dependsOn) == null ? void 0 : _a2.filter((name) => plugins2.some((p) => p._name === name) && !resolvedPlugins.has(name))) ?? [];
    if (unresolvedPluginsForThisPlugin.length > 0) {
      unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin2]);
    } else {
      const promise = applyPlugin(nuxtApp, plugin2).then(async () => {
        if (plugin2._name) {
          resolvedPlugins.add(plugin2._name);
          await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {
            if (dependsOn.has(plugin2._name)) {
              dependsOn.delete(plugin2._name);
              if (dependsOn.size === 0) {
                promiseDepth++;
                await executePlugin(unexecutedPlugin);
              }
            }
          }));
        }
      });
      if (plugin2.parallel) {
        parallels.push(promise.catch((e) => errors.push(e)));
      } else {
        await promise;
      }
    }
  }
  for (const plugin2 of plugins2) {
    if (((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext) && ((_b = plugin2.env) == null ? void 0 : _b.islands) === false) {
      continue;
    }
    registerPluginHooks(nuxtApp, plugin2);
  }
  for (const plugin2 of plugins2) {
    if (((_c = nuxtApp.ssrContext) == null ? void 0 : _c.islandContext) && ((_d = plugin2.env) == null ? void 0 : _d.islands) === false) {
      continue;
    }
    await executePlugin(plugin2);
  }
  await Promise.all(parallels);
  if (promiseDepth) {
    for (let i = 0; i < promiseDepth; i++) {
      await Promise.all(parallels);
    }
  }
  if (errors.length) {
    throw errors[0];
  }
}
// @__NO_SIDE_EFFECTS__
function defineNuxtPlugin(plugin2) {
  if (typeof plugin2 === "function") {
    return plugin2;
  }
  const _name = plugin2._name || plugin2.name;
  delete plugin2.name;
  return Object.assign(plugin2.setup || (() => {
  }), plugin2, { [NuxtPluginIndicator]: true, _name });
}
const definePayloadPlugin = defineNuxtPlugin;
function callWithNuxt(nuxt, setup, args) {
  const fn = () => setup();
  const nuxtAppCtx = getNuxtAppCtx(nuxt._id);
  {
    return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));
  }
}
function tryUseNuxtApp(id) {
  var _a;
  let nuxtAppInstance;
  if (hasInjectionContext()) {
    nuxtAppInstance = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app.$nuxt;
  }
  nuxtAppInstance || (nuxtAppInstance = getNuxtAppCtx(id).tryUse());
  return nuxtAppInstance || null;
}
function useNuxtApp(id) {
  const nuxtAppInstance = tryUseNuxtApp(id);
  if (!nuxtAppInstance) {
    {
      throw new Error("[nuxt] instance unavailable");
    }
  }
  return nuxtAppInstance;
}
// @__NO_SIDE_EFFECTS__
function useRuntimeConfig(_event) {
  return useNuxtApp().$config;
}
function defineGetter(obj, key, val) {
  Object.defineProperty(obj, key, { get: () => val });
}
const HASH_RE = /#/g;
const AMPERSAND_RE = /&/g;
const SLASH_RE = /\//g;
const EQUAL_RE = /=/g;
const IM_RE = /\?/g;
const PLUS_RE = /\+/g;
const ENC_CARET_RE = /%5e/gi;
const ENC_BACKTICK_RE = /%60/gi;
const ENC_PIPE_RE = /%7c/gi;
const ENC_SPACE_RE = /%20/gi;
const ENC_ENC_SLASH_RE = /%252f/gi;
function encode(text) {
  return encodeURI("" + text).replace(ENC_PIPE_RE, "|");
}
function encodeQueryValue(input) {
  return encode(typeof input === "string" ? input : JSON.stringify(input)).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CARET_RE, "^").replace(SLASH_RE, "%2F");
}
function encodeQueryKey(text) {
  return encodeQueryValue(text).replace(EQUAL_RE, "%3D");
}
function encodePath(text) {
  return encode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F").replace(ENC_ENC_SLASH_RE, "%2F").replace(AMPERSAND_RE, "%26").replace(PLUS_RE, "%2B");
}
function encodeParam(text) {
  return encodePath(text).replace(SLASH_RE, "%2F");
}
function decode(text = "") {
  try {
    return decodeURIComponent("" + text);
  } catch {
    return "" + text;
  }
}
function decodeQueryKey(text) {
  return decode(text.replace(PLUS_RE, " "));
}
function decodeQueryValue(text) {
  return decode(text.replace(PLUS_RE, " "));
}
function parseQuery(parametersString = "") {
  const object = /* @__PURE__ */ Object.create(null);
  if (parametersString[0] === "?") {
    parametersString = parametersString.slice(1);
  }
  for (const parameter of parametersString.split("&")) {
    const s = parameter.match(/([^=]+)=?(.*)/) || [];
    if (s.length < 2) {
      continue;
    }
    const key = decodeQueryKey(s[1]);
    if (key === "__proto__" || key === "constructor") {
      continue;
    }
    const value = decodeQueryValue(s[2] || "");
    if (object[key] === void 0) {
      object[key] = value;
    } else if (Array.isArray(object[key])) {
      object[key].push(value);
    } else {
      object[key] = [object[key], value];
    }
  }
  return object;
}
function encodeQueryItem(key, value) {
  if (typeof value === "number" || typeof value === "boolean") {
    value = String(value);
  }
  if (!value) {
    return encodeQueryKey(key);
  }
  if (Array.isArray(value)) {
    return value.map(
      (_value) => `${encodeQueryKey(key)}=${encodeQueryValue(_value)}`
    ).join("&");
  }
  return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`;
}
function stringifyQuery(query) {
  return Object.keys(query).filter((k) => query[k] !== void 0).map((k) => encodeQueryItem(k, query[k])).filter(Boolean).join("&");
}
const PROTOCOL_STRICT_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{1,2})/;
const PROTOCOL_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{2})?/;
const PROTOCOL_RELATIVE_REGEX = /^([/\\]\s*){2,}[^/\\]/;
const PROTOCOL_SCRIPT_RE = /^[\s\0]*(blob|data|javascript|vbscript):$/i;
const TRAILING_SLASH_RE = /\/$|\/\?|\/#/;
const JOIN_LEADING_SLASH_RE = /^\.?\//;
function hasProtocol(inputString, opts = {}) {
  if (typeof opts === "boolean") {
    opts = { acceptRelative: opts };
  }
  if (opts.strict) {
    return PROTOCOL_STRICT_REGEX.test(inputString);
  }
  return PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false);
}
function isScriptProtocol(protocol) {
  return !!protocol && PROTOCOL_SCRIPT_RE.test(protocol);
}
function hasTrailingSlash(input = "", respectQueryAndFragment) {
  if (!respectQueryAndFragment) {
    return input.endsWith("/");
  }
  return TRAILING_SLASH_RE.test(input);
}
function withoutTrailingSlash(input = "", respectQueryAndFragment) {
  if (!respectQueryAndFragment) {
    return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || "/";
  }
  if (!hasTrailingSlash(input, true)) {
    return input || "/";
  }
  let path = input;
  let fragment = "";
  const fragmentIndex = input.indexOf("#");
  if (fragmentIndex !== -1) {
    path = input.slice(0, fragmentIndex);
    fragment = input.slice(fragmentIndex);
  }
  const [s0, ...s] = path.split("?");
  const cleanPath = s0.endsWith("/") ? s0.slice(0, -1) : s0;
  return (cleanPath || "/") + (s.length > 0 ? `?${s.join("?")}` : "") + fragment;
}
function withTrailingSlash(input = "", respectQueryAndFragment) {
  if (!respectQueryAndFragment) {
    return input.endsWith("/") ? input : input + "/";
  }
  if (hasTrailingSlash(input, true)) {
    return input || "/";
  }
  let path = input;
  let fragment = "";
  const fragmentIndex = input.indexOf("#");
  if (fragmentIndex !== -1) {
    path = input.slice(0, fragmentIndex);
    fragment = input.slice(fragmentIndex);
    if (!path) {
      return fragment;
    }
  }
  const [s0, ...s] = path.split("?");
  return s0 + "/" + (s.length > 0 ? `?${s.join("?")}` : "") + fragment;
}
function hasLeadingSlash(input = "") {
  return input.startsWith("/");
}
function withLeadingSlash(input = "") {
  return hasLeadingSlash(input) ? input : "/" + input;
}
function withBase(input, base) {
  if (isEmptyURL(base) || hasProtocol(input)) {
    return input;
  }
  const _base = withoutTrailingSlash(base);
  if (input.startsWith(_base)) {
    return input;
  }
  return joinURL(_base, input);
}
function withQuery(input, query) {
  const parsed = parseURL(input);
  const mergedQuery = { ...parseQuery(parsed.search), ...query };
  parsed.search = stringifyQuery(mergedQuery);
  return stringifyParsedURL(parsed);
}
function isEmptyURL(url) {
  return !url || url === "/";
}
function isNonEmptyURL(url) {
  return url && url !== "/";
}
function joinURL(base, ...input) {
  let url = base || "";
  for (const segment of input.filter((url2) => isNonEmptyURL(url2))) {
    if (url) {
      const _segment = segment.replace(JOIN_LEADING_SLASH_RE, "");
      url = withTrailingSlash(url) + _segment;
    } else {
      url = segment;
    }
  }
  return url;
}
function withHttps(input) {
  return withProtocol(input, "https://");
}
function withProtocol(input, protocol) {
  let match = input.match(PROTOCOL_REGEX);
  if (!match) {
    match = input.match(/^\/{2,}/);
  }
  if (!match) {
    return protocol + input;
  }
  return protocol + input.slice(match[0].length);
}
function isEqual(a, b, options = {}) {
  if (!options.trailingSlash) {
    a = withTrailingSlash(a);
    b = withTrailingSlash(b);
  }
  if (!options.leadingSlash) {
    a = withLeadingSlash(a);
    b = withLeadingSlash(b);
  }
  if (!options.encoding) {
    a = decode(a);
    b = decode(b);
  }
  return a === b;
}
const protocolRelative = Symbol.for("ufo:protocolRelative");
function parseURL(input = "", defaultProto) {
  const _specialProtoMatch = input.match(
    /^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i
  );
  if (_specialProtoMatch) {
    const [, _proto, _pathname = ""] = _specialProtoMatch;
    return {
      protocol: _proto.toLowerCase(),
      pathname: _pathname,
      href: _proto + _pathname,
      auth: "",
      host: "",
      search: "",
      hash: ""
    };
  }
  if (!hasProtocol(input, { acceptRelative: true })) {
    return defaultProto ? parseURL(defaultProto + input) : parsePath(input);
  }
  const [, protocol = "", auth, hostAndPath = ""] = input.replace(/\\/g, "/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/) || [];
  let [, host = "", path = ""] = hostAndPath.match(/([^#/?]*)(.*)?/) || [];
  if (protocol === "file:") {
    path = path.replace(/\/(?=[A-Za-z]:)/, "");
  }
  const { pathname, search, hash } = parsePath(path);
  return {
    protocol: protocol.toLowerCase(),
    auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : "",
    host,
    pathname,
    search,
    hash,
    [protocolRelative]: !protocol
  };
}
function parsePath(input = "") {
  const [pathname = "", search = "", hash = ""] = (input.match(/([^#?]*)(\?[^#]*)?(#.*)?/) || []).splice(1);
  return {
    pathname,
    search,
    hash
  };
}
function stringifyParsedURL(parsed) {
  const pathname = parsed.pathname || "";
  const search = parsed.search ? (parsed.search.startsWith("?") ? "" : "?") + parsed.search : "";
  const hash = parsed.hash || "";
  const auth = parsed.auth ? parsed.auth + "@" : "";
  const host = parsed.host || "";
  const proto = parsed.protocol || parsed[protocolRelative] ? (parsed.protocol || "") + "//" : "";
  return proto + auth + host + pathname + search + hash;
}
const LayoutMetaSymbol = Symbol("layout-meta");
const PageRouteSymbol = Symbol("route");
const useRouter = () => {
  var _a;
  return (_a = useNuxtApp()) == null ? void 0 : _a.$router;
};
const useRoute = () => {
  if (hasInjectionContext()) {
    return inject(PageRouteSymbol, useNuxtApp()._route);
  }
  return useNuxtApp()._route;
};
// @__NO_SIDE_EFFECTS__
function defineNuxtRouteMiddleware(middleware) {
  return middleware;
}
const addRouteMiddleware = (name, middleware, options = {}) => {
  const nuxtApp = useNuxtApp();
  const global2 = options.global || false;
  const mw = middleware;
  if (!mw) {
    console.warn("[nuxt] No route middleware passed to `addRouteMiddleware`.", name);
    return;
  }
  if (global2) {
    nuxtApp._middleware.global.push(mw);
  } else {
    nuxtApp._middleware.named[name] = mw;
  }
};
const isProcessingMiddleware = () => {
  try {
    if (useNuxtApp()._processingMiddleware) {
      return true;
    }
  } catch {
    return false;
  }
  return false;
};
const URL_QUOTE_RE = /"/g;
const navigateTo = (to, options) => {
  to || (to = "/");
  const toPath = typeof to === "string" ? to : "path" in to ? resolveRouteObject$1(to) : useRouter().resolve(to).href;
  const isExternalHost = hasProtocol(toPath, { acceptRelative: true });
  const isExternal = (options == null ? void 0 : options.external) || isExternalHost;
  if (isExternal) {
    if (!(options == null ? void 0 : options.external)) {
      throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");
    }
    const { protocol } = new URL(toPath, "http://localhost");
    if (protocol && isScriptProtocol(protocol)) {
      throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);
    }
  }
  const inMiddleware = isProcessingMiddleware();
  const router = useRouter();
  const nuxtApp = useNuxtApp();
  {
    if (nuxtApp.ssrContext) {
      const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/";
      const location2 = isExternal ? toPath : joinURL((/* @__PURE__ */ useRuntimeConfig()).app.baseURL, fullPath);
      const redirect = async function(response) {
        await nuxtApp.callHook("app:redirected");
        const encodedLoc = location2.replace(URL_QUOTE_RE, "%22");
        const encodedHeader = encodeURL(location2, isExternalHost);
        nuxtApp.ssrContext._renderResponse = {
          statusCode: sanitizeStatusCode((options == null ? void 0 : options.redirectCode) || 302, 302),
          body: `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0; url=${encodedLoc}"></head></html>`,
          headers: { location: encodedHeader }
        };
        return response;
      };
      if (!isExternal && inMiddleware) {
        router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);
        return to;
      }
      return redirect(!inMiddleware ? void 0 : (
        /* abort route navigation */
        false
      ));
    }
  }
  if (isExternal) {
    nuxtApp._scope.stop();
    if (options == null ? void 0 : options.replace) {
      (void 0).replace(toPath);
    } else {
      (void 0).href = toPath;
    }
    if (inMiddleware) {
      if (!nuxtApp.isHydrating) {
        return false;
      }
      return new Promise(() => {
      });
    }
    return Promise.resolve();
  }
  return (options == null ? void 0 : options.replace) ? router.replace(to) : router.push(to);
};
function resolveRouteObject$1(to) {
  return withQuery(to.path || "", to.query || {}) + (to.hash || "");
}
function encodeURL(location2, isExternalHost = false) {
  const url = new URL(location2, "http://localhost");
  if (!isExternalHost) {
    return url.pathname + url.search + url.hash;
  }
  if (location2.startsWith("//")) {
    return url.toString().replace(url.protocol, "");
  }
  return url.toString();
}
const NUXT_ERROR_SIGNATURE = "__nuxt_error";
const useError = () => toRef(useNuxtApp().payload, "error");
const showError = (error) => {
  const nuxtError = createError(error);
  try {
    const nuxtApp = useNuxtApp();
    const error2 = useError();
    if (false) ;
    error2.value || (error2.value = nuxtError);
  } catch {
    throw nuxtError;
  }
  return nuxtError;
};
const isNuxtError = (error) => !!error && typeof error === "object" && NUXT_ERROR_SIGNATURE in error;
const createError = (error) => {
  const nuxtError = createError$1(error);
  Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {
    value: true,
    configurable: false,
    writable: false
  });
  return nuxtError;
};
function injectHead(nuxtApp) {
  var _a;
  const nuxt = nuxtApp || tryUseNuxtApp();
  return ((_a = nuxt == null ? void 0 : nuxt.ssrContext) == null ? void 0 : _a.head) || (nuxt == null ? void 0 : nuxt.runWithContext(() => {
    if (hasInjectionContext()) {
      return inject(headSymbol);
    }
  }));
}
function useHead(input, options = {}) {
  const head = injectHead(options.nuxt);
  if (head) {
    return useHead$1(input, { head, ...options });
  }
}
function useSeoMeta(input, options = {}) {
  const head = injectHead(options.nuxt);
  if (head) {
    return useSeoMeta$1(input, { head, ...options });
  }
}
async function getRouteRules(arg) {
  const path = typeof arg === "string" ? arg : arg.path;
  {
    useNuxtApp().ssrContext._preloadManifest = true;
    const _routeRulesMatcher = toRouteMatcher(
      createRouter$1({ routes: (/* @__PURE__ */ useRuntimeConfig()).nitro.routeRules })
    );
    return defu({}, ..._routeRulesMatcher.matchAll(path).reverse());
  }
}
function definePayloadReducer(name, reduce) {
  {
    useNuxtApp().ssrContext._payloadReducers[name] = reduce;
  }
}
const payloadPlugin = definePayloadPlugin(() => {
  definePayloadReducer(
    "skipHydrate",
    // We need to return something truthy to be treated as a match
    (data) => !shouldHydrate(data) && 1
  );
});
const ServerPlaceholder = defineComponent({
  name: "ServerPlaceholder",
  render() {
    return createElementBlock("div");
  }
});
const serverPlaceholder = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: ServerPlaceholder
}, Symbol.toStringTag, { value: "Module" }));
const _wrapInTransition = (props, children) => {
  return { default: () => {
    var _a;
    return (_a = children.default) == null ? void 0 : _a.call(children);
  } };
};
const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g;
const ROUTE_KEY_SYMBOLS_RE = /(:\w+)[?+*]/g;
const ROUTE_KEY_NORMAL_RE = /:\w+/g;
function generateRouteKey(route) {
  const source = (route == null ? void 0 : route.meta.key) ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, "$1").replace(ROUTE_KEY_SYMBOLS_RE, "$1").replace(ROUTE_KEY_NORMAL_RE, (r) => {
    var _a;
    return ((_a = route.params[r.slice(1)]) == null ? void 0 : _a.toString()) || "";
  });
  return typeof source === "function" ? source(route) : source;
}
function isChangingPage(to, from) {
  if (to === from || from === START_LOCATION) {
    return false;
  }
  if (generateRouteKey(to) !== generateRouteKey(from)) {
    return true;
  }
  const areComponentsSame = to.matched.every(
    (comp, index) => {
      var _a, _b;
      return comp.components && comp.components.default === ((_b = (_a = from.matched[index]) == null ? void 0 : _a.components) == null ? void 0 : _b.default);
    }
  );
  if (areComponentsSame) {
    return false;
  }
  return true;
}
const clientOnlySymbol = Symbol.for("nuxt:client-only");
const __nuxt_component_0$1 = defineComponent({
  name: "ClientOnly",
  inheritAttrs: false,
  props: ["fallback", "placeholder", "placeholderTag", "fallbackTag"],
  setup(props, { slots, attrs }) {
    const mounted = shallowRef(false);
    const vm = getCurrentInstance();
    if (vm) {
      vm._nuxtClientOnly = true;
    }
    provide(clientOnlySymbol, true);
    return () => {
      var _a;
      if (mounted.value) {
        const vnodes = (_a = slots.default) == null ? void 0 : _a.call(slots);
        if (vnodes && vnodes.length === 1) {
          return [cloneVNode(vnodes[0], attrs)];
        }
        return vnodes;
      }
      const slot = slots.fallback || slots.placeholder;
      if (slot) {
        return slot();
      }
      const fallbackStr = props.fallback || props.placeholder || "";
      const fallbackTag = props.fallbackTag || props.placeholderTag || "span";
      return createElementBlock(fallbackTag, attrs, fallbackStr);
    };
  }
});
const useStateKeyPrefix = "$s";
function useState(...args) {
  const autoKey = typeof args[args.length - 1] === "string" ? args.pop() : void 0;
  if (typeof args[0] !== "string") {
    args.unshift(autoKey);
  }
  const [_key, init] = args;
  if (!_key || typeof _key !== "string") {
    throw new TypeError("[nuxt] [useState] key must be a string: " + _key);
  }
  if (init !== void 0 && typeof init !== "function") {
    throw new Error("[nuxt] [useState] init must be a function: " + init);
  }
  const key = useStateKeyPrefix + _key;
  const nuxtApp = useNuxtApp();
  const state = toRef(nuxtApp.payload.state, key);
  if (state.value === void 0 && init) {
    const initialValue = init();
    if (isRef(initialValue)) {
      nuxtApp.payload.state[key] = initialValue;
      return initialValue;
    }
    state.value = initialValue;
  }
  return state;
}
function useRequestEvent(nuxtApp) {
  var _a;
  nuxtApp || (nuxtApp = useNuxtApp());
  return (_a = nuxtApp.ssrContext) == null ? void 0 : _a.event;
}
function useRequestHeaders(include) {
  const event = useRequestEvent();
  const _headers = event ? getRequestHeaders(event) : {};
  if (!include || !event) {
    return _headers;
  }
  const headers = /* @__PURE__ */ Object.create(null);
  for (const _key of include) {
    const key = _key.toLowerCase();
    const header = _headers[key];
    if (header) {
      headers[key] = header;
    }
  }
  return headers;
}
function useRequestHeader(header) {
  const event = useRequestEvent();
  return event ? getRequestHeader(event, header) : void 0;
}
function useRequestFetch() {
  var _a;
  return ((_a = useRequestEvent()) == null ? void 0 : _a.$fetch) || globalThis.$fetch;
}
const CookieDefaults = {
  path: "/",
  watch: true,
  decode: (val) => destr(decodeURIComponent(val)),
  encode: (val) => encodeURIComponent(typeof val === "string" ? val : JSON.stringify(val))
};
function useCookie(name, _opts) {
  var _a;
  const opts = { ...CookieDefaults, ..._opts };
  opts.filter ?? (opts.filter = (key) => key === name);
  const cookies2 = readRawCookies(opts) || {};
  let delay;
  if (opts.maxAge !== void 0) {
    delay = opts.maxAge * 1e3;
  } else if (opts.expires) {
    delay = opts.expires.getTime() - Date.now();
  }
  const hasExpired = delay !== void 0 && delay <= 0;
  const cookieValue = klona(hasExpired ? void 0 : cookies2[name] ?? ((_a = opts.default) == null ? void 0 : _a.call(opts)));
  const cookie = ref(cookieValue);
  {
    const nuxtApp = useNuxtApp();
    const writeFinalCookieValue = () => {
      if (opts.readonly || isEqual$1(cookie.value, cookies2[name])) {
        return;
      }
      nuxtApp._cookies || (nuxtApp._cookies = {});
      if (name in nuxtApp._cookies) {
        if (isEqual$1(cookie.value, nuxtApp._cookies[name])) {
          return;
        }
      }
      nuxtApp._cookies[name] = cookie.value;
      writeServerCookie(useRequestEvent(nuxtApp), name, cookie.value, opts);
    };
    const unhook = nuxtApp.hooks.hookOnce("app:rendered", writeFinalCookieValue);
    nuxtApp.hooks.hookOnce("app:error", () => {
      unhook();
      return writeFinalCookieValue();
    });
  }
  return cookie;
}
function readRawCookies(opts = {}) {
  {
    return parse$1(getRequestHeader(useRequestEvent(), "cookie") || "", opts);
  }
}
function writeServerCookie(event, name, value, opts = {}) {
  if (event) {
    if (value !== null && value !== void 0) {
      return setCookie(event, name, value, opts);
    }
    if (getCookie(event, name) !== void 0) {
      return deleteCookie(event, name, opts);
    }
  }
}
const routerOptions0 = {
  scrollBehavior(to, from, savedPosition) {
    var _a;
    const nuxtApp = useNuxtApp();
    const behavior = ((_a = useRouter().options) == null ? void 0 : _a.scrollBehaviorType) ?? "auto";
    if (to.path === from.path) {
      if (from.hash && !to.hash) {
        return { left: 0, top: 0 };
      }
      if (to.hash) {
        return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };
      }
      return false;
    }
    const routeAllowsScrollToTop = typeof to.meta.scrollToTop === "function" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;
    if (routeAllowsScrollToTop === false) {
      return false;
    }
    let position = savedPosition || void 0;
    if (!position && isChangingPage(to, from)) {
      position = { left: 0, top: 0 };
    }
    const hookToWait = nuxtApp._runningTransition ? "page:transition:finish" : "page:loading:end";
    return new Promise((resolve2) => {
      if (from === START_LOCATION) {
        resolve2(_calculatePosition(to, "instant", position));
        return;
      }
      nuxtApp.hooks.hookOnce(hookToWait, () => {
        requestAnimationFrame(() => resolve2(_calculatePosition(to, "instant", position)));
      });
    });
  }
};
function _getHashElementScrollMarginTop(selector) {
  try {
    const elem = (void 0).querySelector(selector);
    if (elem) {
      return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle((void 0).documentElement).scrollPaddingTop) || 0);
    }
  } catch {
  }
  return 0;
}
function _calculatePosition(to, scrollBehaviorType, position) {
  if (position) {
    return position;
  }
  if (to.hash) {
    return {
      el: to.hash,
      top: _getHashElementScrollMarginTop(to.hash),
      behavior: scrollBehaviorType
    };
  }
  return { left: 0, top: 0, behavior: scrollBehaviorType };
}
const configRouterOptions = {
  hashMode: false,
  scrollBehaviorType: "auto"
};
const routerOptions = {
  ...configRouterOptions,
  ...routerOptions0
};
const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);
// @__NO_SIDE_EFFECTS__
function defineNuxtLink(options) {
  const componentName = options.componentName || "NuxtLink";
  function isHashLinkWithoutHashMode(link) {
    return typeof link === "string" && link.startsWith("#");
  }
  function resolveTrailingSlashBehavior(to, resolve2, trailingSlash) {
    const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;
    if (!to || effectiveTrailingSlash !== "append" && effectiveTrailingSlash !== "remove") {
      return to;
    }
    if (typeof to === "string") {
      return applyTrailingSlashBehavior(to, effectiveTrailingSlash);
    }
    const path = "path" in to && to.path !== void 0 ? to.path : resolve2(to).path;
    const resolvedPath = {
      ...to,
      name: void 0,
      // named routes would otherwise always override trailing slash behavior
      path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)
    };
    return resolvedPath;
  }
  function useNuxtLink(props) {
    const router = useRouter();
    const config = /* @__PURE__ */ useRuntimeConfig();
    const hasTarget = computed(() => !!props.target && props.target !== "_self");
    const isAbsoluteUrl = computed(() => {
      const path = props.to || props.href || "";
      return typeof path === "string" && hasProtocol(path, { acceptRelative: true });
    });
    const builtinRouterLink = resolveComponent("RouterLink");
    const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== "string" ? builtinRouterLink.useLink : void 0;
    const isExternal = computed(() => {
      if (props.external) {
        return true;
      }
      const path = props.to || props.href || "";
      if (typeof path === "object") {
        return false;
      }
      return path === "" || isAbsoluteUrl.value;
    });
    const to = computed(() => {
      const path = props.to || props.href || "";
      if (isExternal.value) {
        return path;
      }
      return resolveTrailingSlashBehavior(path, router.resolve, props.trailingSlash);
    });
    const link = isExternal.value ? void 0 : useBuiltinLink == null ? void 0 : useBuiltinLink({ ...props, to });
    const href = computed(() => {
      var _a;
      const effectiveTrailingSlash = props.trailingSlash ?? options.trailingSlash;
      if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {
        return to.value;
      }
      if (isExternal.value) {
        const path = typeof to.value === "object" && "path" in to.value ? resolveRouteObject$1(to.value) : to.value;
        const href2 = typeof path === "object" ? router.resolve(path).href : path;
        return applyTrailingSlashBehavior(href2, effectiveTrailingSlash);
      }
      if (typeof to.value === "object") {
        return ((_a = router.resolve(to.value)) == null ? void 0 : _a.href) ?? null;
      }
      return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);
    });
    return {
      to,
      hasTarget,
      isAbsoluteUrl,
      isExternal,
      //
      href,
      isActive: (link == null ? void 0 : link.isActive) ?? computed(() => to.value === router.currentRoute.value.path),
      isExactActive: (link == null ? void 0 : link.isExactActive) ?? computed(() => to.value === router.currentRoute.value.path),
      route: (link == null ? void 0 : link.route) ?? computed(() => router.resolve(to.value)),
      async navigate(_e) {
        await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value });
      }
    };
  }
  return defineComponent({
    name: componentName,
    props: {
      // Routing
      to: {
        type: [String, Object],
        default: void 0,
        required: false
      },
      href: {
        type: [String, Object],
        default: void 0,
        required: false
      },
      // Attributes
      target: {
        type: String,
        default: void 0,
        required: false
      },
      rel: {
        type: String,
        default: void 0,
        required: false
      },
      noRel: {
        type: Boolean,
        default: void 0,
        required: false
      },
      // Prefetching
      prefetch: {
        type: Boolean,
        default: void 0,
        required: false
      },
      prefetchOn: {
        type: [String, Object],
        default: void 0,
        required: false
      },
      noPrefetch: {
        type: Boolean,
        default: void 0,
        required: false
      },
      // Styling
      activeClass: {
        type: String,
        default: void 0,
        required: false
      },
      exactActiveClass: {
        type: String,
        default: void 0,
        required: false
      },
      prefetchedClass: {
        type: String,
        default: void 0,
        required: false
      },
      // Vue Router's `<RouterLink>` additional props
      replace: {
        type: Boolean,
        default: void 0,
        required: false
      },
      ariaCurrentValue: {
        type: String,
        default: void 0,
        required: false
      },
      // Edge cases handling
      external: {
        type: Boolean,
        default: void 0,
        required: false
      },
      // Slot API
      custom: {
        type: Boolean,
        default: void 0,
        required: false
      },
      // Behavior
      trailingSlash: {
        type: String,
        default: void 0,
        required: false
      }
    },
    useLink: useNuxtLink,
    setup(props, { slots }) {
      useRouter();
      const { to, href, navigate: navigate2, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);
      shallowRef(false);
      const el = void 0;
      const elRef = void 0;
      async function prefetch(nuxtApp = useNuxtApp()) {
        {
          return;
        }
      }
      return () => {
        var _a;
        if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {
          const routerLinkProps = {
            ref: elRef,
            to: to.value,
            activeClass: props.activeClass || options.activeClass,
            exactActiveClass: props.exactActiveClass || options.exactActiveClass,
            replace: props.replace,
            ariaCurrentValue: props.ariaCurrentValue,
            custom: props.custom
          };
          if (!props.custom) {
            routerLinkProps.rel = props.rel || void 0;
          }
          return h(
            resolveComponent("RouterLink"),
            routerLinkProps,
            slots.default
          );
        }
        const target = props.target || null;
        const rel = firstNonUndefined(
          // converts `""` to `null` to prevent the attribute from being added as empty (`rel=""`)
          props.noRel ? "" : props.rel,
          options.externalRelAttribute,
          /*
          * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.
          * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.
          */
          isAbsoluteUrl.value || hasTarget.value ? "noopener noreferrer" : ""
        ) || null;
        if (props.custom) {
          if (!slots.default) {
            return null;
          }
          return slots.default({
            href: href.value,
            navigate: navigate2,
            prefetch,
            get route() {
              if (!href.value) {
                return void 0;
              }
              const url = new URL(href.value, "http://localhost");
              return {
                path: url.pathname,
                fullPath: url.pathname,
                get query() {
                  return parseQuery(url.search);
                },
                hash: url.hash,
                params: {},
                name: void 0,
                matched: [],
                redirectedFrom: void 0,
                meta: {},
                href: href.value
              };
            },
            rel,
            target,
            isExternal: isExternal.value || hasTarget.value,
            isActive: false,
            isExactActive: false
          });
        }
        return h("a", { ref: el, href: href.value || null, rel, target }, (_a = slots.default) == null ? void 0 : _a.call(slots));
      };
    }
    // }) as unknown as DefineComponent<NuxtLinkProps, object, object, ComputedOptions, MethodOptions, object, object, EmitsOptions, string, object, NuxtLinkProps, object, SlotsType<NuxtLinkSlots>>
  });
}
const __nuxt_component_1$2 = /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);
function applyTrailingSlashBehavior(to, trailingSlash) {
  const normalizeFn = trailingSlash === "append" ? withTrailingSlash : withoutTrailingSlash;
  const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith("http");
  if (hasProtocolDifferentFromHttp) {
    return to;
  }
  return normalizeFn(to, true);
}
const inlineConfig = {
  "nuxt": {},
  "icon": {
    "provider": "server",
    "class": "",
    "aliases": {},
    "iconifyApiEndpoint": "https://api.iconify.design",
    "localApiEndpoint": "/api/_nuxt_icon",
    "fallbackToApi": true,
    "cssSelectorPrefix": "i-",
    "cssWherePseudo": true,
    "mode": "css",
    "attrs": {
      "aria-hidden": true
    },
    "collections": [
      "academicons",
      "akar-icons",
      "ant-design",
      "arcticons",
      "basil",
      "bi",
      "bitcoin-icons",
      "bpmn",
      "brandico",
      "bx",
      "bxl",
      "bxs",
      "bytesize",
      "carbon",
      "catppuccin",
      "cbi",
      "charm",
      "ci",
      "cib",
      "cif",
      "cil",
      "circle-flags",
      "circum",
      "clarity",
      "codicon",
      "covid",
      "cryptocurrency",
      "cryptocurrency-color",
      "dashicons",
      "devicon",
      "devicon-plain",
      "ei",
      "el",
      "emojione",
      "emojione-monotone",
      "emojione-v1",
      "entypo",
      "entypo-social",
      "eos-icons",
      "ep",
      "et",
      "eva",
      "f7",
      "fa",
      "fa-brands",
      "fa-regular",
      "fa-solid",
      "fa6-brands",
      "fa6-regular",
      "fa6-solid",
      "fad",
      "fe",
      "feather",
      "file-icons",
      "flag",
      "flagpack",
      "flat-color-icons",
      "flat-ui",
      "flowbite",
      "fluent",
      "fluent-emoji",
      "fluent-emoji-flat",
      "fluent-emoji-high-contrast",
      "fluent-mdl2",
      "fontelico",
      "fontisto",
      "formkit",
      "foundation",
      "fxemoji",
      "gala",
      "game-icons",
      "geo",
      "gg",
      "gis",
      "gravity-ui",
      "gridicons",
      "grommet-icons",
      "guidance",
      "healthicons",
      "heroicons",
      "heroicons-outline",
      "heroicons-solid",
      "hugeicons",
      "humbleicons",
      "ic",
      "icomoon-free",
      "icon-park",
      "icon-park-outline",
      "icon-park-solid",
      "icon-park-twotone",
      "iconamoon",
      "iconoir",
      "icons8",
      "il",
      "ion",
      "iwwa",
      "jam",
      "la",
      "lets-icons",
      "line-md",
      "logos",
      "ls",
      "lucide",
      "lucide-lab",
      "mage",
      "majesticons",
      "maki",
      "map",
      "marketeq",
      "material-symbols",
      "material-symbols-light",
      "mdi",
      "mdi-light",
      "medical-icon",
      "memory",
      "meteocons",
      "mi",
      "mingcute",
      "mono-icons",
      "mynaui",
      "nimbus",
      "nonicons",
      "noto",
      "noto-v1",
      "octicon",
      "oi",
      "ooui",
      "openmoji",
      "oui",
      "pajamas",
      "pepicons",
      "pepicons-pencil",
      "pepicons-pop",
      "pepicons-print",
      "ph",
      "pixelarticons",
      "prime",
      "ps",
      "quill",
      "radix-icons",
      "raphael",
      "ri",
      "rivet-icons",
      "si-glyph",
      "simple-icons",
      "simple-line-icons",
      "skill-icons",
      "solar",
      "streamline",
      "streamline-emojis",
      "subway",
      "svg-spinners",
      "system-uicons",
      "tabler",
      "tdesign",
      "teenyicons",
      "token",
      "token-branded",
      "topcoat",
      "twemoji",
      "typcn",
      "uil",
      "uim",
      "uis",
      "uit",
      "uiw",
      "unjs",
      "vaadin",
      "vs",
      "vscode-icons",
      "websymbol",
      "weui",
      "whh",
      "wi",
      "wpf",
      "zmdi",
      "zondicons"
    ],
    "fetchTimeout": 1500
  },
  "__swiper": {
    "bundled": true
  }
};
const __appConfig = /* @__PURE__ */ defuFn(inlineConfig);
function useAppConfig() {
  const nuxtApp = useNuxtApp();
  nuxtApp._appConfig || (nuxtApp._appConfig = klona(__appConfig));
  return nuxtApp._appConfig;
}
const payload_plugin_iD1SnIAnSpjrxq_KlzqxWf0xk_EfpfCXp1Wdn70pdqI = definePayloadPlugin(() => {
  definePayloadReducer("PiniaColada_QueryCache", (data) => {
    return isQueryCache(data) && serializeQueryCache(data);
  });
});
const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt:head",
  enforce: "pre",
  setup(nuxtApp) {
    const head = nuxtApp.ssrContext.head;
    nuxtApp.vueApp.use(head);
  }
});
function toArray$1(value) {
  return Array.isArray(value) ? value : [value];
}
const __nuxt_page_meta$9 = {
  showScrollToTop: false
};
const __nuxt_page_meta$8 = {
  layout: "card-layout",
  showScrollToTop: false
};
const __nuxt_page_meta$7 = {
  layout: "no-footer",
  middleware: [
    /* @__PURE__ */ defineNuxtRouteMiddleware(() => {
      const formSubmitted = useState("form-submitted", () => false);
      if (!formSubmitted.value) {
        return navigateTo("/");
      }
      formSubmitted.value = false;
    })
  ]
};
const __nuxt_page_meta$6 = {
  // Disable automatic i18n SEO head tags
  // Manually set them to use correct locale-specific slugs
  i18n: {
    seo: false
  }
};
const __nuxt_page_meta$5 = {
  layout: "card-layout",
  middleware: [
    /* @__PURE__ */ defineNuxtRouteMiddleware(() => {
      const formSubmitted = useState("form-submitted", () => false);
      if (!formSubmitted.value) {
        return navigateTo("/");
      }
      formSubmitted.value = false;
    })
  ]
};
const __nuxt_page_meta$4 = {
  // Disable automatic i18n SEO head tags
  // Manually set them to use correct locale-specific slugs
  i18n: {
    seo: false
  }
};
const __nuxt_page_meta$3 = {
  showScrollToTop: false
};
const __nuxt_page_meta$2 = {
  // Disable automatic i18n SEO head tags
  // Manually set them to use correct locale-specific slugs
  i18n: {
    seo: false
  }
};
const __nuxt_page_meta$1 = {
  layout: "card-layout",
  showScrollToTop: false
};
const component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ = {};
const _routes = [
  {
    name: "about___en",
    path: "/en/about",
    component: () => import('./about-DKdmcDxy.mjs')
  },
  {
    name: "about___ar___default",
    path: "/about",
    component: () => import('./about-DKdmcDxy.mjs')
  },
  {
    name: "about___ar",
    path: "/ar/about",
    component: () => import('./about-DKdmcDxy.mjs')
  },
  {
    name: "index___en",
    path: "/en",
    component: () => import('./index-Vcwpk8ot.mjs')
  },
  {
    name: "index___ar___default",
    path: "/",
    component: () => import('./index-Vcwpk8ot.mjs')
  },
  {
    name: "index___ar",
    path: "/ar",
    component: () => import('./index-Vcwpk8ot.mjs')
  },
  {
    name: "contact___en",
    path: "/en/contact",
    component: () => import('./contact-C71gVPSw.mjs')
  },
  {
    name: "contact___ar___default",
    path: "/contact",
    component: () => import('./contact-C71gVPSw.mjs')
  },
  {
    name: "contact___ar",
    path: "/ar/contact",
    component: () => import('./contact-C71gVPSw.mjs')
  },
  {
    name: "campaign___en",
    path: "/en/campaign",
    meta: __nuxt_page_meta$9 || {},
    component: () => import('./campaign-CZvSyVcr.mjs')
  },
  {
    name: "campaign___ar___default",
    path: "/campaign",
    meta: __nuxt_page_meta$9 || {},
    component: () => import('./campaign-CZvSyVcr.mjs')
  },
  {
    name: "campaign___ar",
    path: "/ar/campaign",
    meta: __nuxt_page_meta$9 || {},
    component: () => import('./campaign-CZvSyVcr.mjs')
  },
  {
    name: "card-id___en",
    path: "/en/card/:id()",
    meta: __nuxt_page_meta$8 || {},
    component: () => import('./_id_-p55xDPPA.mjs')
  },
  {
    name: "card-id___ar___default",
    path: "/card/:id()",
    meta: __nuxt_page_meta$8 || {},
    component: () => import('./_id_-p55xDPPA.mjs')
  },
  {
    name: "card-id___ar",
    path: "/ar/card/:id()",
    meta: __nuxt_page_meta$8 || {},
    component: () => import('./_id_-p55xDPPA.mjs')
  },
  {
    name: "thank-you___en",
    path: "/en/thank-you",
    meta: __nuxt_page_meta$7 || {},
    component: () => import('./thank-you-vCUF4yCT.mjs')
  },
  {
    name: "thank-you___ar___default",
    path: "/thank-you",
    meta: __nuxt_page_meta$7 || {},
    component: () => import('./thank-you-vCUF4yCT.mjs')
  },
  {
    name: "thank-you___ar",
    path: "/ar/thank-you",
    meta: __nuxt_page_meta$7 || {},
    component: () => import('./thank-you-vCUF4yCT.mjs')
  },
  {
    name: "blogs___en",
    path: "/en/blogs",
    component: () => import('./index-lmmcoSN8.mjs')
  },
  {
    name: "blogs___ar___default",
    path: "/blogs",
    component: () => import('./index-lmmcoSN8.mjs')
  },
  {
    name: "blogs___ar",
    path: "/ar/blogs",
    component: () => import('./index-lmmcoSN8.mjs')
  },
  {
    name: "blogs-slug___en",
    path: "/en/blogs/:slug()",
    meta: __nuxt_page_meta$6 || {},
    component: () => import('./_slug_-BTIa8Pm1.mjs')
  },
  {
    name: "blogs-slug___ar___default",
    path: "/blogs/:slug()",
    meta: __nuxt_page_meta$6 || {},
    component: () => import('./_slug_-BTIa8Pm1.mjs')
  },
  {
    name: "blogs-slug___ar",
    path: "/ar/blogs/:slug()",
    meta: __nuxt_page_meta$6 || {},
    component: () => import('./_slug_-BTIa8Pm1.mjs')
  },
  {
    name: "short-code___en",
    path: "/en/short/:code()",
    component: () => import('./_code_-BHr1bbDb.mjs')
  },
  {
    name: "short-code___ar___default",
    path: "/short/:code()",
    component: () => import('./_code_-BHr1bbDb.mjs')
  },
  {
    name: "short-code___ar",
    path: "/ar/short/:code()",
    component: () => import('./_code_-BHr1bbDb.mjs')
  },
  {
    name: "testimonials___en",
    path: "/en/testimonials",
    component: () => import('./testimonials-BYYceDTa.mjs')
  },
  {
    name: "testimonials___ar___default",
    path: "/testimonials",
    component: () => import('./testimonials-BYYceDTa.mjs')
  },
  {
    name: "testimonials___ar",
    path: "/ar/testimonials",
    component: () => import('./testimonials-BYYceDTa.mjs')
  },
  {
    name: "thank-you-v2___en",
    path: "/en/thank-you-v2",
    meta: __nuxt_page_meta$5 || {},
    component: () => import('./thank-you-v2-Dt-2gcYe.mjs')
  },
  {
    name: "thank-you-v2___ar___default",
    path: "/thank-you-v2",
    meta: __nuxt_page_meta$5 || {},
    component: () => import('./thank-you-v2-Dt-2gcYe.mjs')
  },
  {
    name: "thank-you-v2___ar",
    path: "/ar/thank-you-v2",
    meta: __nuxt_page_meta$5 || {},
    component: () => import('./thank-you-v2-Dt-2gcYe.mjs')
  },
  {
    name: "join-us___en",
    path: "/en/join-us",
    component: () => import('./index-Did7h7tu.mjs')
  },
  {
    name: "join-us___ar___default",
    path: "/join-us",
    component: () => import('./index-Did7h7tu.mjs')
  },
  {
    name: "join-us___ar",
    path: "/ar/join-us",
    component: () => import('./index-Did7h7tu.mjs')
  },
  {
    name: "join-us-slug___en",
    path: "/en/join-us/:slug()",
    meta: __nuxt_page_meta$4 || {},
    component: () => import('./_slug_-J3PgThkx.mjs')
  },
  {
    name: "join-us-slug___ar___default",
    path: "/join-us/:slug()",
    meta: __nuxt_page_meta$4 || {},
    component: () => import('./_slug_-J3PgThkx.mjs')
  },
  {
    name: "join-us-slug___ar",
    path: "/ar/join-us/:slug()",
    meta: __nuxt_page_meta$4 || {},
    component: () => import('./_slug_-J3PgThkx.mjs')
  },
  {
    name: "privacy-policy___en",
    path: "/en/privacy-policy",
    component: () => import('./privacy-policy-DSCPaGfe.mjs')
  },
  {
    name: "privacy-policy___ar___default",
    path: "/privacy-policy",
    component: () => import('./privacy-policy-DSCPaGfe.mjs')
  },
  {
    name: "privacy-policy___ar",
    path: "/ar/privacy-policy",
    component: () => import('./privacy-policy-DSCPaGfe.mjs')
  },
  {
    name: "services___en",
    path: "/en/services",
    component: () => import('./index-ys31QO_8.mjs')
  },
  {
    name: "services___ar___default",
    path: "/services",
    component: () => import('./index-ys31QO_8.mjs')
  },
  {
    name: "services___ar",
    path: "/ar/services",
    component: () => import('./index-ys31QO_8.mjs')
  },
  {
    name: "campaign-v2___en",
    path: "/en/campaign-v2",
    meta: __nuxt_page_meta$3 || {},
    component: () => import('./index-BSio5Fnk.mjs')
  },
  {
    name: "campaign-v2___ar___default",
    path: "/campaign-v2",
    meta: __nuxt_page_meta$3 || {},
    component: () => import('./index-BSio5Fnk.mjs')
  },
  {
    name: "campaign-v2___ar",
    path: "/ar/campaign-v2",
    meta: __nuxt_page_meta$3 || {},
    component: () => import('./index-BSio5Fnk.mjs')
  },
  {
    name: "our-projects___en",
    path: "/en/our-projects",
    component: () => import('./index-D2ndRtL3.mjs')
  },
  {
    name: "our-projects___ar___default",
    path: "/our-projects",
    component: () => import('./index-D2ndRtL3.mjs')
  },
  {
    name: "our-projects___ar",
    path: "/ar/our-projects",
    component: () => import('./index-D2ndRtL3.mjs')
  },
  {
    name: "our-projects-slug___en",
    path: "/en/our-projects/:slug()",
    meta: __nuxt_page_meta$2 || {},
    component: () => import('./_slug_-KXFucipl.mjs')
  },
  {
    name: "our-projects-slug___ar___default",
    path: "/our-projects/:slug()",
    meta: __nuxt_page_meta$2 || {},
    component: () => import('./_slug_-KXFucipl.mjs')
  },
  {
    name: "our-projects-slug___ar",
    path: "/ar/our-projects/:slug()",
    meta: __nuxt_page_meta$2 || {},
    component: () => import('./_slug_-KXFucipl.mjs')
  },
  {
    name: "terms-and-conditions___en",
    path: "/en/terms-and-conditions",
    component: () => import('./terms-and-conditions-Djqu5MEs.mjs')
  },
  {
    name: "terms-and-conditions___ar___default",
    path: "/terms-and-conditions",
    component: () => import('./terms-and-conditions-Djqu5MEs.mjs')
  },
  {
    name: "terms-and-conditions___ar",
    path: "/ar/terms-and-conditions",
    component: () => import('./terms-and-conditions-Djqu5MEs.mjs')
  },
  {
    name: "campaign-v2-stepper-form___en",
    path: "/en/campaign-v2/stepper-form",
    meta: __nuxt_page_meta$1 || {},
    component: () => import('./stepper-form-DZT3t3Uc.mjs')
  },
  {
    name: "campaign-v2-stepper-form___ar___default",
    path: "/campaign-v2/stepper-form",
    meta: __nuxt_page_meta$1 || {},
    component: () => import('./stepper-form-DZT3t3Uc.mjs')
  },
  {
    name: "campaign-v2-stepper-form___ar",
    path: "/ar/campaign-v2/stepper-form",
    meta: __nuxt_page_meta$1 || {},
    component: () => import('./stepper-form-DZT3t3Uc.mjs')
  },
  {
    name: "services-web-applications___en",
    path: "/en/services/web-applications",
    component: () => import('./web-applications-XwoN1qiu.mjs')
  },
  {
    name: "services-web-applications___ar___default",
    path: "/services/web-applications",
    component: () => import('./web-applications-XwoN1qiu.mjs')
  },
  {
    name: "services-web-applications___ar",
    path: "/ar/services/web-applications",
    component: () => import('./web-applications-XwoN1qiu.mjs')
  },
  {
    name: "services-digital-marketing___en",
    path: "/en/services/digital-marketing",
    component: () => import('./digital-marketing-8Dp6yo4g.mjs')
  },
  {
    name: "services-digital-marketing___ar___default",
    path: "/services/digital-marketing",
    component: () => import('./digital-marketing-8Dp6yo4g.mjs')
  },
  {
    name: "services-digital-marketing___ar",
    path: "/ar/services/digital-marketing",
    component: () => import('./digital-marketing-8Dp6yo4g.mjs')
  },
  {
    name: "services-mobile-applications___en",
    path: "/en/services/mobile-applications",
    component: () => import('./mobile-applications-D27CFse4.mjs')
  },
  {
    name: "services-mobile-applications___ar___default",
    path: "/services/mobile-applications",
    component: () => import('./mobile-applications-D27CFse4.mjs')
  },
  {
    name: "services-mobile-applications___ar",
    path: "/ar/services/mobile-applications",
    component: () => import('./mobile-applications-D27CFse4.mjs')
  },
  {
    name: void 0 ,
    path: "/en/ar/portfolio",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/portfolio",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/portfolio",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/portfolio",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/portfolio",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/portfolio",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/services/websites-apps-maintenance",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/services/websites-apps-maintenance",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/services/websites-apps-maintenance",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/services/websites-apps-maintenance",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/services/websites-apps-maintenance",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/services/websites-apps-maintenance",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/service/7",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/service/7",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/service/7",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/service/7",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/service/7",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/service/7",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/services/mobile-apps-development",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/services/mobile-apps-development",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/services/mobile-apps-development",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/services/mobile-apps-development",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/services/mobile-apps-development",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/services/mobile-apps-development",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/services/digital-marketing",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/services/digital-marketing",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/services/digital-marketing",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/services/digital-marketing",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/services/digital-marketing",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/services/digital-marketing",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/index-test",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/index-test",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/index-test",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/index-test",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/index-test",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/index-test",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/services/brand-identity-design",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/services/brand-identity-design",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/services/brand-identity-design",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/services/brand-identity-design",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/services/brand-identity-design",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/services/brand-identity-design",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/ar/online-meeting-request",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/online-meeting-request",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/ar/online-meeting-request",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/en/online-meeting-request",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/online-meeting-request",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/en/online-meeting-request",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/en/sitemap.xml",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/sitemap.xml",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  },
  {
    name: void 0 ,
    path: "/ar/sitemap.xml",
    component: component_45stub3yzQ_gLlT7DXAK4E5BAi1RkOTOUv7dq439fbF4KTxAQ
  }
];
const validate = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to, from) => {
  var _a;
  let __temp, __restore;
  if (!((_a = to.meta) == null ? void 0 : _a.validate)) {
    return;
  }
  const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp);
  if (result === true) {
    return;
  }
  const error = createError({
    fatal: false,
    statusCode: result && result.statusCode || 404,
    statusMessage: result && result.statusMessage || `Page Not Found: ${to.fullPath}`,
    data: {
      path: to.fullPath
    }
  });
  return error;
});
const manifest_45route_45rule = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
  {
    return;
  }
});
const globalMiddleware = [
  validate,
  manifest_45route_45rule
];
const namedMiddleware = {};
const plugin$1 = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt:router",
  enforce: "pre",
  async setup(nuxtApp) {
    var _a, _b, _c;
    let __temp, __restore;
    let routerBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL;
    const history = ((_a = routerOptions.history) == null ? void 0 : _a.call(routerOptions, routerBase)) ?? createMemoryHistory(routerBase);
    const routes = routerOptions.routes ? ([__temp, __restore] = executeAsync(() => routerOptions.routes(_routes)), __temp = await __temp, __restore(), __temp) ?? _routes : _routes;
    let startPosition;
    const router = createRouter({
      ...routerOptions,
      scrollBehavior: (to, from, savedPosition) => {
        if (from === START_LOCATION) {
          startPosition = savedPosition;
          return;
        }
        if (routerOptions.scrollBehavior) {
          router.options.scrollBehavior = routerOptions.scrollBehavior;
          if ("scrollRestoration" in (void 0).history) {
            const unsub = router.beforeEach(() => {
              unsub();
              (void 0).history.scrollRestoration = "manual";
            });
          }
          return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);
        }
      },
      history,
      routes
    });
    nuxtApp.vueApp.use(router);
    const previousRoute = shallowRef(router.currentRoute.value);
    router.afterEach((_to, from) => {
      previousRoute.value = from;
    });
    Object.defineProperty(nuxtApp.vueApp.config.globalProperties, "previousRoute", {
      get: () => previousRoute.value
    });
    const initialURL = nuxtApp.ssrContext.url;
    const _route = shallowRef(router.currentRoute.value);
    const syncCurrentRoute = () => {
      _route.value = router.currentRoute.value;
    };
    nuxtApp.hook("page:finish", syncCurrentRoute);
    router.afterEach((to, from) => {
      var _a2, _b2, _c2, _d;
      if (((_b2 = (_a2 = to.matched[0]) == null ? void 0 : _a2.components) == null ? void 0 : _b2.default) === ((_d = (_c2 = from.matched[0]) == null ? void 0 : _c2.components) == null ? void 0 : _d.default)) {
        syncCurrentRoute();
      }
    });
    const route = {};
    for (const key in _route.value) {
      Object.defineProperty(route, key, {
        get: () => _route.value[key],
        enumerable: true
      });
    }
    nuxtApp._route = shallowReactive(route);
    nuxtApp._middleware || (nuxtApp._middleware = {
      global: [],
      named: {}
    });
    useError();
    if (!((_b = nuxtApp.ssrContext) == null ? void 0 : _b.islandContext)) {
      router.afterEach(async (to, _from, failure) => {
        delete nuxtApp._processingMiddleware;
        if (failure) {
          await nuxtApp.callHook("page:loading:end");
        }
        if ((failure == null ? void 0 : failure.type) === 4) {
          return;
        }
        if (to.redirectedFrom && to.fullPath !== initialURL) {
          await nuxtApp.runWithContext(() => navigateTo(to.fullPath || "/"));
        }
      });
    }
    try {
      if (true) {
        ;
        [__temp, __restore] = executeAsync(() => router.push(initialURL)), await __temp, __restore();
        ;
      }
      ;
      [__temp, __restore] = executeAsync(() => router.isReady()), await __temp, __restore();
      ;
    } catch (error2) {
      [__temp, __restore] = executeAsync(() => nuxtApp.runWithContext(() => showError(error2))), await __temp, __restore();
    }
    const resolvedInitialRoute = router.currentRoute.value;
    syncCurrentRoute();
    if ((_c = nuxtApp.ssrContext) == null ? void 0 : _c.islandContext) {
      return { provide: { router } };
    }
    const initialLayout = nuxtApp.payload.state._layout;
    router.beforeEach(async (to, from) => {
      var _a2, _b2;
      await nuxtApp.callHook("page:loading:start");
      to.meta = reactive(to.meta);
      if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {
        to.meta.layout = initialLayout;
      }
      nuxtApp._processingMiddleware = true;
      if (!((_a2 = nuxtApp.ssrContext) == null ? void 0 : _a2.islandContext)) {
        const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);
        for (const component of to.matched) {
          const componentMiddleware = component.meta.middleware;
          if (!componentMiddleware) {
            continue;
          }
          for (const entry2 of toArray$1(componentMiddleware)) {
            middlewareEntries.add(entry2);
          }
        }
        {
          const routeRules = await nuxtApp.runWithContext(() => getRouteRules({ path: to.path }));
          if (routeRules.appMiddleware) {
            for (const key in routeRules.appMiddleware) {
              if (routeRules.appMiddleware[key]) {
                middlewareEntries.add(key);
              } else {
                middlewareEntries.delete(key);
              }
            }
          }
        }
        for (const entry2 of middlewareEntries) {
          const middleware = typeof entry2 === "string" ? nuxtApp._middleware.named[entry2] || await ((_b2 = namedMiddleware[entry2]) == null ? void 0 : _b2.call(namedMiddleware).then((r) => r.default || r)) : entry2;
          if (!middleware) {
            throw new Error(`Unknown route middleware: '${entry2}'.`);
          }
          try {
            const result = await nuxtApp.runWithContext(() => middleware(to, from));
            if (true) {
              if (result === false || result instanceof Error) {
                const error2 = result || createError({
                  statusCode: 404,
                  statusMessage: `Page Not Found: ${initialURL}`
                });
                await nuxtApp.runWithContext(() => showError(error2));
                return false;
              }
            }
            if (result === true) {
              continue;
            }
            if (result === false) {
              return result;
            }
            if (result) {
              if (isNuxtError(result) && result.fatal) {
                await nuxtApp.runWithContext(() => showError(result));
              }
              return result;
            }
          } catch (err) {
            const error2 = createError(err);
            if (error2.fatal) {
              await nuxtApp.runWithContext(() => showError(error2));
            }
            return error2;
          }
        }
      }
    });
    router.onError(async () => {
      delete nuxtApp._processingMiddleware;
      await nuxtApp.callHook("page:loading:end");
    });
    router.afterEach(async (to, _from) => {
      if (to.matched.length === 0) {
        await nuxtApp.runWithContext(() => showError(createError({
          statusCode: 404,
          fatal: false,
          statusMessage: `Page not found: ${to.fullPath}`,
          data: {
            path: to.fullPath
          }
        })));
      }
    });
    nuxtApp.hooks.hookOnce("app:created", async () => {
      try {
        if ("name" in resolvedInitialRoute) {
          resolvedInitialRoute.name = void 0;
        }
        await router.replace({
          ...resolvedInitialRoute,
          force: true
        });
        router.options.scrollBehavior = routerOptions.scrollBehavior;
      } catch (error2) {
        await nuxtApp.runWithContext(() => showError(error2));
      }
    });
    return { provide: { router } };
  }
});
const _0_siteConfig_tU0SxKrPeVRXWcGu2sOnIfhNDbYiKNfDCvYZhRueG0Q = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt-site-config:init",
  enforce: "pre",
  async setup(nuxtApp) {
    var _a, _b;
    const stack = (_b = (_a = useRequestEvent()) == null ? void 0 : _a.context) == null ? void 0 : _b.siteConfig;
    const state = useState("site-config");
    {
      nuxtApp.hooks.hook("app:rendered", () => {
        state.value = stack == null ? void 0 : stack.get({
          debug: (/* @__PURE__ */ useRuntimeConfig())["nuxt-site-config"].debug,
          resolveRefs: true
        });
      });
    }
    return {
      provide: {
        nuxtSiteConfig: stack
      }
    };
  }
});
const reducers = [
  ["NuxtError", (data) => isNuxtError(data) && data.toJSON()],
  ["EmptyShallowRef", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")],
  ["EmptyRef", (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")],
  ["ShallowRef", (data) => isRef(data) && isShallow(data) && data.value],
  ["ShallowReactive", (data) => isReactive(data) && isShallow(data) && toRaw(data)],
  ["Ref", (data) => isRef(data) && data.value],
  ["Reactive", (data) => isReactive(data) && toRaw(data)]
];
const revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt:revive-payload:server",
  setup() {
    for (const [reducer, fn] of reducers) {
      definePayloadReducer(reducer, fn);
    }
  }
});
const plugin = /* @__PURE__ */ defineNuxtPlugin({
  name: "pinia",
  setup(nuxtApp) {
    const pinia = createPinia();
    nuxtApp.vueApp.use(pinia);
    setActivePinia(pinia);
    {
      nuxtApp.payload.pinia = toRaw(pinia.state.value);
    }
    return {
      provide: {
        pinia
      }
    };
  }
});
/*!
  * shared v10.0.8
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
function warn(msg, err) {
  if (typeof console !== "undefined") {
    console.warn(`[intlify] ` + msg);
    if (err) {
      console.warn(err.stack);
    }
  }
}
const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);
const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });
const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027");
const isNumber = (val) => typeof val === "number" && isFinite(val);
const isDate = (val) => toTypeString(val) === "[object Date]";
const isRegExp = (val) => toTypeString(val) === "[object RegExp]";
const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;
const assign = Object.assign;
const _create = Object.create;
const create = (obj = null) => _create(obj);
function escapeHtml(rawText) {
  return rawText.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/\//g, "&#x2F;").replace(/=/g, "&#x3D;");
}
function escapeAttributeValue(value) {
  return value.replace(/&(?![a-zA-Z0-9#]{2,6};)/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
function sanitizeTranslatedHtml(html) {
  html = html.replace(/(\w+)\s*=\s*"([^"]*)"/g, (_, attrName, attrValue) => `${attrName}="${escapeAttributeValue(attrValue)}"`);
  html = html.replace(/(\w+)\s*=\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);
  const eventHandlerPattern = /\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi;
  if (eventHandlerPattern.test(html)) {
    html = html.replace(/(\s+)(on)(\w+\s*=)/gi, "$1&#111;n$3");
  }
  const javascriptUrlPattern = [
    // In href, src, action, formaction attributes
    /(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,
    // In style attributes within url()
    /(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi
  ];
  javascriptUrlPattern.forEach((pattern) => {
    html = html.replace(pattern, "$1javascript&#58;");
  });
  return html;
}
const hasOwnProperty = Object.prototype.hasOwnProperty;
function hasOwn(obj, key) {
  return hasOwnProperty.call(obj, key);
}
const isArray = Array.isArray;
const isFunction = (val) => typeof val === "function";
const isString = (val) => typeof val === "string";
const isBoolean = (val) => typeof val === "boolean";
const isObject = (val) => val !== null && typeof val === "object";
const isPromise = (val) => {
  return isObject(val) && isFunction(val.then) && isFunction(val.catch);
};
const objectToString = Object.prototype.toString;
const toTypeString = (value) => objectToString.call(value);
const isPlainObject = (val) => toTypeString(val) === "[object Object]";
const toDisplayString = (val) => {
  return val == null ? "" : isArray(val) || isPlainObject(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val);
};
function join(items, separator = "") {
  return items.reduce((str, item, index) => index === 0 ? str + item : str + separator + item, "");
}
const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);
function deepCopy(src, des) {
  if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {
    throw new Error("Invalid value");
  }
  const stack = [{ src, des }];
  while (stack.length) {
    const { src: src2, des: des2 } = stack.pop();
    Object.keys(src2).forEach((key) => {
      if (key === "__proto__") {
        return;
      }
      if (isObject(src2[key]) && !isObject(des2[key])) {
        des2[key] = Array.isArray(src2[key]) ? [] : create();
      }
      if (isNotObjectOrIsArray(des2[key]) || isNotObjectOrIsArray(src2[key])) {
        des2[key] = src2[key];
      } else {
        stack.push({ src: src2[key], des: des2[key] });
      }
    });
  }
}
const localeCodes = [
  "en",
  "ar"
];
const localeLoaders = {
  en: [
    {
      key: "locale_general_46json_f0702e89",
      load: () => import(
        './general-CfWyj_uj.mjs'
        /* webpackChunkName: "locale_general_46json_f0702e89" */
      ),
      cache: true
    },
    {
      key: "locale_blogs_46json_49c3a5b4",
      load: () => import(
        './blogs-DWIHi-AH.mjs'
        /* webpackChunkName: "locale_blogs_46json_49c3a5b4" */
      ),
      cache: true
    },
    {
      key: "locale_forms_46json_23a3a034",
      load: () => import(
        './forms-Cdgo4x-B.mjs'
        /* webpackChunkName: "locale_forms_46json_23a3a034" */
      ),
      cache: true
    },
    {
      key: "locale_sections_46json_37fed3bb",
      load: () => import(
        './sections-BAuLDcrq.mjs'
        /* webpackChunkName: "locale_sections_46json_37fed3bb" */
      ),
      cache: true
    },
    {
      key: "locale_about_46json_6d3b9556",
      load: () => import(
        './about-D6nySuug.mjs'
        /* webpackChunkName: "locale_about_46json_6d3b9556" */
      ),
      cache: true
    },
    {
      key: "locale_home_46json_49543df9",
      load: () => import(
        './home-CWgnujB9.mjs'
        /* webpackChunkName: "locale_home_46json_49543df9" */
      ),
      cache: true
    },
    {
      key: "locale_join_45us_46json_b8cf12f5",
      load: () => import(
        './join-us-D21pa3ZI.mjs'
        /* webpackChunkName: "locale_join_45us_46json_b8cf12f5" */
      ),
      cache: true
    },
    {
      key: "locale_heros_46json_57eee5d6",
      load: () => import(
        './heros-CZGxb15D.mjs'
        /* webpackChunkName: "locale_heros_46json_57eee5d6" */
      ),
      cache: true
    },
    {
      key: "locale_digital_45marketing_46json_c0a555b1",
      load: () => import(
        './digital-marketing-DZ11K-3W.mjs'
        /* webpackChunkName: "locale_digital_45marketing_46json_c0a555b1" */
      ),
      cache: true
    },
    {
      key: "locale_our_45projects_46json_d8e6ea79",
      load: () => import(
        './our-projects-CLWRpScR.mjs'
        /* webpackChunkName: "locale_our_45projects_46json_d8e6ea79" */
      ),
      cache: true
    },
    {
      key: "locale_mobile_45applications_46json_8deef32a",
      load: () => import(
        './mobile-applications-DalA_SIn.mjs'
        /* webpackChunkName: "locale_mobile_45applications_46json_8deef32a" */
      ),
      cache: true
    },
    {
      key: "locale_web_45applications_46json_ea38e91a",
      load: () => import(
        './web-applications-DgiKCh4X.mjs'
        /* webpackChunkName: "locale_web_45applications_46json_ea38e91a" */
      ),
      cache: true
    },
    {
      key: "locale_campaign_46json_2b31fa14",
      load: () => import(
        './campaign-DkA0Wsj4.mjs'
        /* webpackChunkName: "locale_campaign_46json_2b31fa14" */
      ),
      cache: true
    },
    {
      key: "locale_privacy_45policy_46json_3e2574d7",
      load: () => import(
        './privacy-policy-Dvv-UQfq.mjs'
        /* webpackChunkName: "locale_privacy_45policy_46json_3e2574d7" */
      ),
      cache: true
    },
    {
      key: "locale_terms_45and_45conditions_46json_a95ddc57",
      load: () => import(
        './terms-and-conditions-D64WRXpY.mjs'
        /* webpackChunkName: "locale_terms_45and_45conditions_46json_a95ddc57" */
      ),
      cache: true
    },
    {
      key: "locale_seo_46json_e2e3021b",
      load: () => import(
        './seo-XlNdHB1u.mjs'
        /* webpackChunkName: "locale_seo_46json_e2e3021b" */
      ),
      cache: true
    }
  ],
  ar: [
    {
      key: "locale_general_46json_22fd33f5",
      load: () => import(
        './general-CdwkFrHy.mjs'
        /* webpackChunkName: "locale_general_46json_22fd33f5" */
      ),
      cache: true
    },
    {
      key: "locale_blogs_46json_9cfed6ed",
      load: () => import(
        './blogs-D-WVZQ5w.mjs'
        /* webpackChunkName: "locale_blogs_46json_9cfed6ed" */
      ),
      cache: true
    },
    {
      key: "locale_forms_46json_f18d2151",
      load: () => import(
        './forms-Cjyr6yiC.mjs'
        /* webpackChunkName: "locale_forms_46json_f18d2151" */
      ),
      cache: true
    },
    {
      key: "locale_sections_46json_7f38fb1a",
      load: () => import(
        './sections-DuWX1uL9.mjs'
        /* webpackChunkName: "locale_sections_46json_7f38fb1a" */
      ),
      cache: true
    },
    {
      key: "locale_about_46json_e9445c21",
      load: () => import(
        './about-UsEAv4J8.mjs'
        /* webpackChunkName: "locale_about_46json_e9445c21" */
      ),
      cache: true
    },
    {
      key: "locale_home_46json_5bcc660a",
      load: () => import(
        './home-BP0CEn5Q.mjs'
        /* webpackChunkName: "locale_home_46json_5bcc660a" */
      ),
      cache: true
    },
    {
      key: "locale_join_45us_46json_67802803",
      load: () => import(
        './join-us-I1i9FD9V.mjs'
        /* webpackChunkName: "locale_join_45us_46json_67802803" */
      ),
      cache: true
    },
    {
      key: "locale_heros_46json_2c1706e8",
      load: () => import(
        './heros-1Uygyku-.mjs'
        /* webpackChunkName: "locale_heros_46json_2c1706e8" */
      ),
      cache: true
    },
    {
      key: "locale_digital_45marketing_46json_64735bed",
      load: () => import(
        './digital-marketing-BTvFb-hZ.mjs'
        /* webpackChunkName: "locale_digital_45marketing_46json_64735bed" */
      ),
      cache: true
    },
    {
      key: "locale_our_45projects_46json_281358d5",
      load: () => import(
        './our-projects-B_Jxcocy.mjs'
        /* webpackChunkName: "locale_our_45projects_46json_281358d5" */
      ),
      cache: true
    },
    {
      key: "locale_mobile_45applications_46json_a183fa36",
      load: () => import(
        './mobile-applications-e_dIdcix.mjs'
        /* webpackChunkName: "locale_mobile_45applications_46json_a183fa36" */
      ),
      cache: true
    },
    {
      key: "locale_web_45applications_46json_089963f7",
      load: () => import(
        './web-applications-8lrcWpyj.mjs'
        /* webpackChunkName: "locale_web_45applications_46json_089963f7" */
      ),
      cache: true
    },
    {
      key: "locale_campaign_46json_4301df54",
      load: () => import(
        './campaign-8EDfhkkj.mjs'
        /* webpackChunkName: "locale_campaign_46json_4301df54" */
      ),
      cache: true
    },
    {
      key: "locale_privacy_45policy_46json_790b1007",
      load: () => import(
        './privacy-policy-CXA88Q0O.mjs'
        /* webpackChunkName: "locale_privacy_45policy_46json_790b1007" */
      ),
      cache: true
    },
    {
      key: "locale_terms_45and_45conditions_46json_faa211a2",
      load: () => import(
        './terms-and-conditions-lxG2hcab.mjs'
        /* webpackChunkName: "locale_terms_45and_45conditions_46json_faa211a2" */
      ),
      cache: true
    },
    {
      key: "locale_seo_46json_d043e34b",
      load: () => import(
        './seo-DbvAgCdo.mjs'
        /* webpackChunkName: "locale_seo_46json_d043e34b" */
      ),
      cache: true
    }
  ]
};
const vueI18nConfigs = [];
const normalizedLocales = [
  {
    code: "en",
    language: "en",
    name: "EN",
    dir: "ltr",
    files: [
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/general.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/blogs.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/forms.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/sections.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/about.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/home.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/join-us.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/heros.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/digital-marketing.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/our-projects.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/mobile-applications.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/web-applications.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/campaign.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/privacy-policy.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/terms-and-conditions.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/en/seo.json",
        cache: void 0
      }
    ],
    _hreflang: "en",
    _sitemap: "en"
  },
  {
    code: "ar",
    language: "ar",
    name: "AR",
    dir: "rtl",
    files: [
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/general.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/blogs.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/forms.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/sections.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/about.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/home.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/join-us.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/heros.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/digital-marketing.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/our-projects.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/mobile-applications.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/web-applications.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/campaign.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/privacy-policy.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/terms-and-conditions.json",
        cache: void 0
      },
      {
        path: "D:/marwa/front/webstdy-v2-frontend/i18n/locales/ar/seo.json",
        cache: void 0
      }
    ],
    _hreflang: "ar",
    _sitemap: "ar"
  }
];
const NUXT_I18N_MODULE_ID = "@nuxtjs/i18n";
const parallelPlugin = false;
const DEFAULT_COOKIE_KEY = "i18n_redirected";
const DEFAULT_DYNAMIC_PARAMS_KEY = "nuxtI18nInternal";
const SWITCH_LOCALE_PATH_LINK_IDENTIFIER = "nuxt-i18n-slp";
function getRouteName(routeName) {
  if (isString(routeName)) return routeName;
  if (routeName != null) return routeName.toString();
  return "(null)";
}
function getLocaleRouteName(routeName, locale, opts) {
  const { defaultLocale, strategy, routesNameSeparator, defaultLocaleRouteNameSuffix, differentDomains } = opts;
  const localizedRoutes = strategy !== "no_prefix" || differentDomains;
  const name = getRouteName(routeName) + (localizedRoutes ? routesNameSeparator + locale : "");
  if (locale === defaultLocale && strategy === "prefix_and_default") {
    return name + routesNameSeparator + defaultLocaleRouteNameSuffix;
  }
  return name;
}
function matchBrowserLocale(locales, browserLocales) {
  const matchedLocales = [];
  for (const [index, browserCode] of browserLocales.entries()) {
    const matchedLocale = locales.find((l) => {
      var _a;
      return ((_a = l.language) == null ? void 0 : _a.toLowerCase()) === browserCode.toLowerCase();
    });
    if (matchedLocale) {
      matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length });
      break;
    }
  }
  for (const [index, browserCode] of browserLocales.entries()) {
    const languageCode = browserCode.split("-")[0].toLowerCase();
    const matchedLocale = locales.find((l) => {
      var _a;
      return ((_a = l.language) == null ? void 0 : _a.split("-")[0].toLowerCase()) === languageCode;
    });
    if (matchedLocale) {
      matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length });
      break;
    }
  }
  return matchedLocales;
}
function compareBrowserLocale(a, b) {
  if (a.score === b.score) {
    return b.code.length - a.code.length;
  }
  return b.score - a.score;
}
function findBrowserLocale(locales, browserLocales) {
  const normalizedLocales2 = locales.map((l) => ({ code: l.code, language: l.language || l.code }));
  const matchedLocales = matchBrowserLocale(normalizedLocales2, browserLocales);
  if (matchedLocales.length === 0) {
    return "";
  }
  if (matchedLocales.length > 1) {
    matchedLocales.sort(compareBrowserLocale);
  }
  return matchedLocales[0].code;
}
function getLocalesRegex(localeCodes2) {
  return new RegExp(`^/(${localeCodes2.join("|")})(?:/|$)`, "i");
}
const localesPattern = `(${localeCodes.join("|")})`;
const regexpPath = getLocalesRegex(localeCodes);
function createLocaleFromRouteGetter() {
  const { routesNameSeparator, defaultLocaleRouteNameSuffix } = (/* @__PURE__ */ useRuntimeConfig()).public.i18n;
  const defaultSuffixPattern = `(?:${routesNameSeparator}${defaultLocaleRouteNameSuffix})?`;
  const regexpName = new RegExp(`${routesNameSeparator}${localesPattern}${defaultSuffixPattern}$`, "i");
  return (route) => {
    var _a, _b, _c;
    if (isString(route)) {
      return ((_a = route.match(regexpPath)) == null ? void 0 : _a[1]) ?? "";
    }
    if (route.name) {
      return ((_b = getRouteName(route.name).match(regexpName)) == null ? void 0 : _b[1]) ?? "";
    }
    if (route.path) {
      return ((_c = route.path.match(regexpPath)) == null ? void 0 : _c[1]) ?? "";
    }
    return "";
  };
}
function isI18nInstance(i18n) {
  return i18n != null && "global" in i18n && "mode" in i18n;
}
function isComposer(target) {
  return target != null && !("__composer" in target) && "locale" in target && isRef(target.locale);
}
function isVueI18n(target) {
  return target != null && "__composer" in target;
}
function getI18nTarget(i18n) {
  return isI18nInstance(i18n) ? i18n.global : i18n;
}
function getComposer$3(i18n) {
  const target = getI18nTarget(i18n);
  if (isComposer(target)) return target;
  if (isVueI18n(target)) return target.__composer;
  return target;
}
function getHost() {
  const header = useRequestHeaders(["x-forwarded-host", "host"]);
  return header["x-forwarded-host"] || header["host"] || "";
}
function getLocaleDomain(locales, strategy, route) {
  var _a, _b, _c;
  const host = getHost();
  if (!host) {
    return host;
  }
  const routePath = isString(route) ? route : route.path;
  const matchingLocales = locales.filter((locale) => {
    if (locale.domain) {
      return (hasProtocol(locale.domain) ? locale.domain.replace(/(http|https):\/\//, "") : locale.domain) === host;
    }
    return isArray(locale == null ? void 0 : locale.domains) ? locale.domains.includes(host) : false;
  });
  if (matchingLocales.length === 0) {
    return "";
  }
  if (matchingLocales.length === 1) {
    return ((_a = matchingLocales[0]) == null ? void 0 : _a.code) ?? "";
  }
  if (strategy === "no_prefix") {
    console.warn(
      formatMessage(
        "Multiple matching domains found! This is not supported for no_prefix strategy in combination with differentDomains!"
      )
    );
    return ((_b = matchingLocales[0]) == null ? void 0 : _b.code) ?? "";
  }
  if (route && routePath) {
    const matched = (_c = routePath.match(getLocalesRegex(matchingLocales.map((l) => l.code)))) == null ? void 0 : _c.at(1);
    if (matched) {
      const matchingLocale2 = matchingLocales.find((l) => l.code === matched);
      return (matchingLocale2 == null ? void 0 : matchingLocale2.code) ?? "";
    }
  }
  const matchingLocale = matchingLocales.find((l) => {
    var _a2;
    return ((_a2 = l.defaultForDomains) == null ? void 0 : _a2.includes(host)) ?? l.domainDefault;
  });
  return (matchingLocale == null ? void 0 : matchingLocale.code) ?? "";
}
function getDomainFromLocale(localeCode) {
  var _a, _b;
  const nuxt = useNuxtApp();
  const host = getHost();
  const { domainLocales } = (/* @__PURE__ */ useRuntimeConfig()).public.i18n;
  const lang = normalizedLocales.find((locale) => locale.code === localeCode);
  const domain = ((_a = domainLocales == null ? void 0 : domainLocales[localeCode]) == null ? void 0 : _a.domain) || (lang == null ? void 0 : lang.domain) || ((_b = lang == null ? void 0 : lang.domains) == null ? void 0 : _b.find((v) => v === host));
  if (!domain) {
    console.warn(formatMessage("Could not find domain name for locale " + localeCode));
    return;
  }
  if (hasProtocol(domain, { strict: true })) {
    return domain;
  }
  const protocol = getRequestProtocol(useRequestEvent(nuxt)) + ":";
  return protocol + "//" + domain;
}
function setupMultiDomainLocales(runtimeI18n, defaultLocaleDomain) {
  const { multiDomainLocales, strategy, routesNameSeparator, defaultLocaleRouteNameSuffix } = runtimeI18n;
  if (!multiDomainLocales) return;
  if (!(strategy === "prefix_except_default" || strategy === "prefix_and_default")) return;
  const router = useRouter();
  const defaultRouteSuffix = [routesNameSeparator, defaultLocaleRouteNameSuffix].join("");
  for (const route of router.getRoutes()) {
    const routeName = getRouteName(route.name);
    if (routeName.endsWith(defaultRouteSuffix)) {
      router.removeRoute(routeName);
      continue;
    }
    const routeNameLocale = routeName.split(routesNameSeparator)[1];
    if (routeNameLocale === defaultLocaleDomain) {
      router.addRoute({
        ...route,
        path: route.path === `/${routeNameLocale}` ? "/" : route.path.replace(`/${routeNameLocale}`, "")
      });
    }
  }
}
function getDefaultLocaleForDomain(runtimeI18n) {
  const { locales, defaultLocale, multiDomainLocales } = runtimeI18n;
  if (!multiDomainLocales) {
    return defaultLocale || "";
  }
  const host = getHost();
  if (locales.some((l) => !isString(l) && l.defaultForDomains != null)) {
    const findDefaultLocale = locales.find(
      (l) => {
        var _a;
        return !isString(l) && !!((_a = l.defaultForDomains) == null ? void 0 : _a.includes(host));
      }
    );
    return (findDefaultLocale == null ? void 0 : findDefaultLocale.code) ?? "";
  }
  return defaultLocale || "";
}
const cacheMessages = /* @__PURE__ */ new Map();
async function loadVueI18nOptions(vueI18nConfigs2, nuxt) {
  const vueI18nOptions = { messages: {} };
  for (const configFile of vueI18nConfigs2) {
    const { default: resolver } = await configFile();
    const resolved = isFunction(resolver) ? await nuxt.runWithContext(() => resolver()) : resolver;
    deepCopy(resolved, vueI18nOptions);
  }
  return vueI18nOptions;
}
function makeFallbackLocaleCodes(fallback, locales) {
  if (fallback === false) return [];
  if (isArray(fallback)) return fallback;
  let fallbackLocales = [];
  if (isString(fallback)) {
    if (locales.every((locale) => locale !== fallback)) {
      fallbackLocales.push(fallback);
    }
    return fallbackLocales;
  }
  const targets = [...locales, "default"];
  for (const locale of targets) {
    if (locale in fallback == false) continue;
    fallbackLocales = [...fallbackLocales, ...fallback[locale].filter(Boolean)];
  }
  return fallbackLocales;
}
const isModule = (val) => toTypeString(val) === "[object Module]";
async function loadMessage(locale, { key, load }, nuxt) {
  let message = null;
  try {
    const getter = await load().then((x) => isModule(x) ? x.default : x);
    if (isFunction(getter)) {
      message = await nuxt.runWithContext(() => getter(locale));
    } else {
      message = getter;
      if (message != null && cacheMessages && true) {
        cacheMessages.set(key, message);
      }
    }
  } catch (e) {
    console.error("Failed locale loading: " + e.message);
  }
  return message;
}
async function loadLocale(locale, localeLoaders2, setter, nuxt) {
  const loaders = localeLoaders2[locale];
  if (loaders == null) {
    return;
  }
  const targetMessage = {};
  for (const loader of loaders) {
    let message = null;
    if (cacheMessages && cacheMessages.has(loader.key) && loader.cache) {
      message = cacheMessages.get(loader.key);
    } else {
      message = await nuxt.runWithContext(() => loadMessage(locale, loader, nuxt));
    }
    if (message != null) {
      deepCopy(message, targetMessage);
    }
  }
  setter(locale, targetMessage);
}
function getRouteBaseName(common, route) {
  const _route = unref(route);
  const routeName = isObject(_route) ? _route == null ? void 0 : _route.name : _route;
  if (_route == null || !routeName) {
    return;
  }
  return getRouteName(routeName).split(common.runtimeConfig.public.i18n.routesNameSeparator)[0];
}
function localePath(common, route, locale) {
  var _a;
  if (isString(route) && hasProtocol(route, { acceptRelative: true })) {
    return route;
  }
  const localizedRoute = resolveRoute(common, route, locale);
  return localizedRoute == null ? "" : ((_a = localizedRoute.redirectedFrom) == null ? void 0 : _a.fullPath) || localizedRoute.fullPath;
}
function localeRoute(common, route, locale) {
  return resolveRoute(common, route, locale) ?? void 0;
}
function normalizeRawLocation(route) {
  if (!isString(route)) {
    return assign({}, route);
  }
  if (route[0] === "/") {
    const { pathname: path, search, hash } = parsePath(route);
    return { path, query: parseQuery(search), hash };
  }
  return { name: route };
}
const isRouteLocationPathRaw = (val) => !!val.path && !val.name;
function resolveRouteObject(common, route, locale) {
  const runtimeI18n = common.runtimeConfig.public.i18n;
  if (isRouteLocationPathRaw(route)) {
    const resolved = resolve(common, route, locale);
    const resolvedName = getRouteBaseName(common, resolved);
    if (resolvedName) {
      resolved.name = getLocaleRouteName(resolvedName, locale, runtimeI18n);
      return resolved;
    }
    if (!runtimeI18n.differentDomains && prefixable(locale, runtimeI18n.defaultLocale, runtimeI18n.strategy)) {
      route.path = "/" + locale + route.path;
    }
    route.path = (runtimeI18n.trailingSlash ? withTrailingSlash : withoutTrailingSlash)(route.path, true);
    return route;
  }
  route.name || (route.name = getRouteBaseName(common, common.router.currentRoute.value));
  const localizedName = getLocaleRouteName(route.name, locale, runtimeI18n);
  if (common.router.hasRoute(localizedName)) {
    route.name = localizedName;
  }
  return route;
}
function resolveRoute(common, route, locale) {
  try {
    const _locale = locale || unref(getI18nTarget(common.i18n).locale);
    const normalized = normalizeRawLocation(route);
    const resolved = common.router.resolve(resolveRouteObject(common, normalized, _locale));
    if (resolved.name) {
      return resolved;
    }
    return common.router.resolve(route);
  } catch (e) {
    if (isNavigationFailure(
      e,
      1
      /* No match */
    )) {
      return null;
    }
  }
}
function getLocalizableMetaFromDynamicParams(common, route) {
  var _a;
  if (common.runtimeConfig.public.i18n.experimental.switchLocalePathLinkSSR) {
    return unref(common.metaState.value);
  }
  const meta = route.meta || {};
  return ((_a = unref(meta)) == null ? void 0 : _a[DEFAULT_DYNAMIC_PARAMS_KEY]) || {};
}
function switchLocalePath(common, locale, _route) {
  const route = _route ?? common.router.currentRoute.value;
  const name = getRouteBaseName(common, route);
  if (!name) {
    return "";
  }
  const resolvedParams = getLocalizableMetaFromDynamicParams(common, route)[locale];
  const routeCopy = {
    name,
    params: assign({}, route.params, resolvedParams),
    fullPath: route.fullPath,
    query: route.query,
    hash: route.hash,
    path: route.path,
    meta: route.meta
    // matched: route.matched,
    // redirectedFrom: route.redirectedFrom
  };
  const path = localePath(common, routeCopy, locale);
  if (common.runtimeConfig.public.i18n.differentDomains) {
    const domain = getDomainFromLocale(locale);
    return domain && joinURL(domain, path) || path;
  }
  return path;
}
function resolve(common, route, locale) {
  if (common.runtimeConfig.public.i18n.strategy === "no_prefix") {
    return route;
  }
  if (common.runtimeConfig.public.i18n.strategy !== "prefix") {
    return common.router.resolve(route);
  }
  const restPath = route.path.slice(1);
  const targetPath = route.path[0] + locale + (restPath && "/" + restPath);
  const _route = common.router.options.routes.find((r) => r.path === targetPath);
  if (_route == null) {
    return route;
  }
  return common.router.resolve(assign({}, route, _route, { path: targetPath }));
}
function formatMessage(message) {
  return `[${NUXT_I18N_MODULE_ID}]: ${message}`;
}
function initCommonComposableOptions(i18n) {
  return {
    i18n: i18n ?? useNuxtApp().$i18n,
    router: useRouter(),
    runtimeConfig: /* @__PURE__ */ useRuntimeConfig(),
    metaState: useState("nuxt-i18n-meta", () => ({}))
  };
}
async function loadAndSetLocale(newLocale, initial = false) {
  const nuxtApp = useNuxtApp();
  const { differentDomains, skipSettingLocaleOnNavigate } = nuxtApp.$config.public.i18n;
  const opts = runtimeDetectBrowserLanguage();
  const oldLocale = unref(nuxtApp.$i18n.locale);
  const localeCodes2 = unref(nuxtApp.$i18n.localeCodes);
  function syncCookie(locale = oldLocale) {
    if (opts === false || !opts.useCookie) return;
    if (skipSettingLocaleOnNavigate) return;
    nuxtApp.$i18n.setLocaleCookie(locale);
  }
  const localeOverride = await nuxtApp.$i18n.onBeforeLanguageSwitch(oldLocale, newLocale, initial, nuxtApp);
  if (localeOverride && localeCodes2.includes(localeOverride)) {
    if (oldLocale === localeOverride) {
      syncCookie();
      return false;
    }
    newLocale = localeOverride;
  }
  if (!newLocale) {
    syncCookie();
    return false;
  }
  if (!initial && differentDomains) {
    syncCookie();
    return false;
  }
  if (oldLocale === newLocale) {
    syncCookie();
    return false;
  }
  const i18nFallbackLocales = unref(nuxtApp.$i18n.fallbackLocale);
  const setter = nuxtApp.$i18n.mergeLocaleMessage.bind(nuxtApp.$i18n);
  if (i18nFallbackLocales) {
    const fallbackLocales = makeFallbackLocaleCodes(i18nFallbackLocales, [newLocale]);
    await Promise.all(fallbackLocales.map((locale) => loadLocale(locale, localeLoaders, setter, nuxtApp)));
  }
  await loadLocale(newLocale, localeLoaders, setter, nuxtApp);
  if (skipSettingLocaleOnNavigate) {
    return false;
  }
  syncCookie(newLocale);
  nuxtApp._vueI18n.__setLocale(newLocale);
  await nuxtApp.$i18n.onLanguageSwitched(oldLocale, newLocale);
  return true;
}
function detectLocale(route, routeLocale, currentLocale, localeCookie) {
  const nuxtApp = useNuxtApp();
  const { strategy, defaultLocale, differentDomains, multiDomainLocales } = nuxtApp.$config.public.i18n;
  const _detectBrowserLanguage = runtimeDetectBrowserLanguage();
  const detectedBrowser = detectBrowserLanguage(route, localeCookie, currentLocale);
  if (detectedBrowser.locale && detectedBrowser.from != null && localeCodes.includes(detectedBrowser.locale)) {
    return detectedBrowser.locale;
  }
  let detected = "";
  if (differentDomains || multiDomainLocales) {
    detected || (detected = getLocaleDomain(normalizedLocales, strategy, route));
  } else if (strategy !== "no_prefix") {
    detected || (detected = routeLocale);
  }
  const cookieLocale = (localeCodes.includes(detectedBrowser.locale) || localeCookie && localeCodes.includes(localeCookie)) && _detectBrowserLanguage && _detectBrowserLanguage.useCookie && localeCookie;
  detected || (detected = cookieLocale || currentLocale || defaultLocale || "");
  return detected;
}
function detectRedirect({ to, from, locale, routeLocale }, inMiddleware = false) {
  if (routeLocale === locale || useNuxtApp().$i18n.strategy === "no_prefix") {
    return "";
  }
  const common = initCommonComposableOptions();
  let redirectPath = switchLocalePath(common, locale, to);
  if (inMiddleware && !redirectPath) {
    redirectPath = localePath(common, to.fullPath, locale);
  }
  if (isEqual(redirectPath, to.fullPath) || from && isEqual(redirectPath, from.fullPath)) {
    return "";
  }
  return redirectPath;
}
const useRedirectState = () => useState(NUXT_I18N_MODULE_ID + ":redirect", () => "");
async function navigate({ nuxt, locale, route, redirectPath }, enableNavigate = false) {
  const { rootRedirect, differentDomains, multiDomainLocales, skipSettingLocaleOnNavigate, locales, strategy } = nuxt.$config.public.i18n;
  if (route.path === "/" && rootRedirect) {
    let redirectCode = 302;
    if (isString(rootRedirect)) {
      redirectPath = "/" + rootRedirect;
    } else {
      redirectPath = "/" + rootRedirect.path;
      redirectCode = rootRedirect.statusCode;
    }
    redirectPath = nuxt.$localePath(redirectPath, locale);
    return navigateTo(redirectPath, { redirectCode });
  }
  if (multiDomainLocales && strategy === "prefix_except_default") {
    const host = getHost();
    const currentDomain = locales.find((locale2) => {
      var _a;
      if (isString(locale2)) return;
      return (_a = locale2.defaultForDomains) == null ? void 0 : _a.find((domain) => domain === host);
    });
    const defaultLocaleForDomain = !isString(currentDomain) ? currentDomain == null ? void 0 : currentDomain.code : void 0;
    if (route.path.startsWith(`/${defaultLocaleForDomain}`)) {
      return navigateTo(route.path.replace(`/${defaultLocaleForDomain}`, ""));
    }
    if (!route.path.startsWith(`/${locale}`) && locale !== defaultLocaleForDomain) {
      const oldLocale = nuxt._vueI18n.__localeFromRoute(route.path);
      if (oldLocale !== "") {
        return navigateTo(`/${locale + route.path.replace(`/${oldLocale}`, "")}`);
      }
      return navigateTo(`/${locale + (route.path === "/" ? "" : route.path)}`);
    }
    if (redirectPath && route.path !== redirectPath) {
      return navigateTo(redirectPath);
    }
    return;
  }
  if (differentDomains) {
    const state = useRedirectState();
    if (state.value && state.value !== redirectPath) {
      {
        state.value = redirectPath;
      }
    }
  } else if (redirectPath) {
    return navigateTo(redirectPath);
  }
}
function prefixable(currentLocale, defaultLocale, strategy) {
  return (
    // strategy has no prefixes
    strategy !== "no_prefix" && // strategy should not prefix default locale
    !(currentLocale === defaultLocale && (strategy === "prefix_and_default" || strategy === "prefix_except_default"))
  );
}
function extendBaseUrl(ctx) {
  const { baseUrl, defaultLocale, differentDomains } = ctx.$config.public.i18n;
  if (isFunction(baseUrl)) {
    return () => {
      const baseUrlResult = baseUrl(ctx);
      return baseUrlResult;
    };
  }
  const localeCode = isFunction(defaultLocale) ? defaultLocale() : defaultLocale;
  return () => {
    if (differentDomains && localeCode) {
      const domain = getDomainFromLocale(localeCode);
      if (domain) {
        return domain;
      }
    }
    return baseUrl ?? "";
  };
}
function toArray(value) {
  return isArray(value) ? value : [value];
}
function wrapComposable(fn, common = initCommonComposableOptions()) {
  return (...args) => fn(common, ...args);
}
function parseAcceptLanguage(input = "") {
  return input.split(",").map((tag) => tag.split(";")[0]);
}
function getBrowserLocale() {
  const browserLocales = parseAcceptLanguage(useRequestHeader("accept-language"));
  return findBrowserLocale(normalizedLocales, browserLocales) || void 0;
}
function createI18nCookie() {
  const detect = runtimeDetectBrowserLanguage();
  const cookieKey = detect && detect.cookieKey || DEFAULT_COOKIE_KEY;
  const date = /* @__PURE__ */ new Date();
  const cookieOptions = {
    path: "/",
    readonly: false,
    expires: new Date(date.setDate(date.getDate() + 365)),
    sameSite: detect && detect.cookieCrossOrigin ? "none" : "lax",
    domain: detect && detect.cookieDomain || void 0,
    secure: detect && detect.cookieCrossOrigin || detect && detect.cookieSecure
  };
  return useCookie(cookieKey, cookieOptions);
}
function getLocaleCookie(cookieRef, detect, defaultLocale) {
  if (detect === false || !detect.useCookie) {
    return;
  }
  const localeCode = cookieRef.value ?? void 0;
  if (localeCode == null) {
    return;
  }
  if (localeCodes.includes(localeCode)) {
    return localeCode;
  }
  if (defaultLocale) {
    cookieRef.value = defaultLocale;
    return defaultLocale;
  }
  cookieRef.value = void 0;
}
function detectBrowserLanguage(route, localeCookie, locale = "") {
  const _detect = runtimeDetectBrowserLanguage();
  if (!_detect) {
    return { locale: "", error: "disabled" };
  }
  const nuxtApp = useNuxtApp();
  const strategy = nuxtApp.$i18n.strategy;
  const firstAccess = nuxtApp._vueI18n.__firstAccess;
  if (!firstAccess) {
    return { locale: strategy === "no_prefix" ? locale : "", error: "first_access_only" };
  }
  if (strategy !== "no_prefix") {
    const path = isString(route) ? route : route.path;
    if (_detect.redirectOn === "root" && path !== "/") {
      return { locale: "", error: "not_redirect_on_root" };
    }
    if (_detect.redirectOn === "no prefix" && !_detect.alwaysRedirect && path.match(regexpPath)) {
      return { locale: "", error: "not_redirect_on_no_prefix" };
    }
  }
  const cookieMatch = _detect.useCookie && localeCookie || void 0;
  if (cookieMatch) {
    return { locale: cookieMatch, from: "cookie" };
  }
  const browserMatch = nuxtApp.$i18n.getBrowserLocale();
  if (browserMatch) {
    return { locale: browserMatch, from: "navigator_or_header" };
  }
  return { locale: _detect.fallbackLocale || "", from: "fallback" };
}
function runtimeDetectBrowserLanguage(opts = (/* @__PURE__ */ useRuntimeConfig()).public.i18n) {
  if ((opts == null ? void 0 : opts.detectBrowserLanguage) === false) return false;
  return opts == null ? void 0 : opts.detectBrowserLanguage;
}
function createHeadContext(options) {
  const nuxtApp = useNuxtApp();
  const locale = unref(nuxtApp.$i18n.locale);
  const locales = unref(nuxtApp.$i18n.locales).map((x) => isString(x) ? { code: x } : x);
  const currentLocale = locales.find((l) => l.code === locale) || { code: locale };
  const baseUrl = joinURL(unref(getComposer$3(nuxtApp.$i18n).baseUrl), nuxtApp.$config.app.baseURL);
  const runtimeI18n = nuxtApp.$config.public.i18n;
  if (!baseUrl) {
    console.warn("I18n `baseUrl` is required to generate valid SEO tag links.");
  }
  return {
    dir: options.dir,
    lang: options.lang,
    key: options.key,
    seo: options.seo,
    locale,
    locales,
    currentDir: currentLocale.dir || runtimeI18n.defaultDirection,
    currentLocale,
    currentLanguage: currentLocale.language,
    baseUrl,
    runtimeI18n
  };
}
function localeHead(common, { dir = true, lang = true, seo = true, key = "hid" }) {
  return _localeHead(common, { dir, lang, seo, key });
}
function _useLocaleHead(common, options) {
  const metaObject = ref(_localeHead(common, options));
  return metaObject;
}
function _useSetI18nParams(common, seo) {
  const head = useHead({});
  const router = common.router;
  const experimentalSSR = common.runtimeConfig.public.i18n.experimental.switchLocalePathLinkSSR;
  const _i18nParams = ref({});
  const i18nParams = computed({
    get() {
      return experimentalSSR ? common.metaState.value : router.currentRoute.value.meta[DEFAULT_DYNAMIC_PARAMS_KEY] ?? {};
    },
    set(val) {
      common.metaState.value = val;
      _i18nParams.value = val;
      router.currentRoute.value.meta[DEFAULT_DYNAMIC_PARAMS_KEY] = val;
    }
  });
  const unsub = watch(
    () => router.currentRoute.value.fullPath,
    () => {
      router.currentRoute.value.meta[DEFAULT_DYNAMIC_PARAMS_KEY] = experimentalSSR ? common.metaState.value : _i18nParams.value;
    }
  );
  if (getCurrentScope()) {
    onScopeDispose(unsub);
  }
  const ctxOptions = { dir: false, lang: false, key: "id", seo: seo ?? true };
  return function(params) {
    i18nParams.value = { ...params };
    const { link, meta } = _localeHead(common, ctxOptions);
    head == null ? void 0 : head.patch({ link, meta });
  };
}
function _localeHead(common, options) {
  const metaObject = {
    htmlAttrs: {},
    link: [],
    meta: []
  };
  const ctx = createHeadContext(options);
  if (ctx.baseUrl == null) {
    return metaObject;
  }
  if (ctx.dir) {
    metaObject.htmlAttrs.dir = ctx.currentDir;
  }
  if (ctx.lang && ctx.currentLanguage) {
    metaObject.htmlAttrs.lang = ctx.currentLanguage;
  }
  if (ctx.seo) {
    metaObject.link = metaObject.link.concat(
      getHreflangLinks(common, ctx),
      getCanonicalLink(common, ctx)
    );
    metaObject.meta = metaObject.meta.concat(
      getOgUrl(common, ctx),
      getCurrentOgLocale(ctx),
      getAlternateOgLocales(ctx)
    );
  }
  return metaObject;
}
function getHreflangLinks(common, ctx) {
  const { defaultLocale, strategy, differentDomains } = ctx.runtimeI18n;
  const links = [];
  if (strategy === "no_prefix" && !differentDomains) return links;
  const localeMap = /* @__PURE__ */ new Map();
  for (const locale of ctx.locales) {
    if (!locale.language) {
      console.warn("Locale `language` ISO code is required to generate alternate link");
      continue;
    }
    const [language, region] = locale.language.split("-");
    if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) {
      localeMap.set(language, locale);
    }
    localeMap.set(locale.language, locale);
  }
  const strictCanonicals = ctx.runtimeI18n.experimental.alternateLinkCanonicalQueries === true;
  const routeWithoutQuery = strictCanonicals ? common.router.resolve({ query: {} }) : void 0;
  if (!ctx.runtimeI18n.experimental.switchLocalePathLinkSSR && strictCanonicals) {
    routeWithoutQuery.meta = common.router.currentRoute.value.meta;
  }
  for (const [language, mapLocale] of localeMap.entries()) {
    const localePath2 = switchLocalePath(common, mapLocale.code, routeWithoutQuery);
    if (!localePath2) continue;
    const fullPath = differentDomains && mapLocale.domain ? localePath2 : joinURL(ctx.baseUrl, localePath2);
    const href = withQuery(fullPath, strictCanonicals ? getCanonicalQueryParams(common, ctx) : {});
    links.push({ [ctx.key]: `i18n-alt-${language}`, rel: "alternate", href, hreflang: language });
    if (defaultLocale && defaultLocale === mapLocale.code) {
      links.unshift({ [ctx.key]: "i18n-xd", rel: "alternate", href, hreflang: "x-default" });
    }
  }
  return links;
}
function getCanonicalUrl(common, ctx) {
  const route = common.router.currentRoute.value;
  const currentRoute = localeRoute(
    common,
    assign({}, route, { path: void 0, name: getRouteBaseName(common, route) })
  );
  if (!currentRoute) return "";
  return withQuery(joinURL(ctx.baseUrl, currentRoute.path), getCanonicalQueryParams(common, ctx));
}
function getCanonicalLink(common, ctx) {
  const href = getCanonicalUrl(common, ctx);
  if (!href) return [];
  return [{ [ctx.key]: "i18n-can", rel: "canonical", href }];
}
function getCanonicalQueryParams(common, ctx) {
  var _a;
  const route = common.router.currentRoute.value;
  const currentRoute = localeRoute(
    common,
    assign({}, route, { path: void 0, name: getRouteBaseName(common, route) })
  );
  const canonicalQueries = isObject(ctx.seo) && ((_a = ctx.seo) == null ? void 0 : _a.canonicalQueries) || [];
  const currentRouteQuery = (currentRoute == null ? void 0 : currentRoute.query) || {};
  const params = {};
  for (const param of canonicalQueries.filter((x) => x in currentRouteQuery)) {
    params[param] ?? (params[param] = []);
    for (const val of toArray(currentRouteQuery[param])) {
      params[param].push(val || "");
    }
  }
  return params;
}
function getOgUrl(common, ctx) {
  const href = getCanonicalUrl(common, ctx);
  if (!href) return [];
  return [{ [ctx.key]: "i18n-og-url", property: "og:url", content: href }];
}
function getCurrentOgLocale(ctx) {
  if (!ctx.currentLanguage) return [];
  return [{ [ctx.key]: "i18n-og", property: "og:locale", content: hyphenToUnderscore(ctx.currentLanguage) }];
}
function getAlternateOgLocales(ctx) {
  const alternateLocales = ctx.locales.filter((locale) => locale.language && locale.language !== ctx.currentLanguage);
  return alternateLocales.map((locale) => ({
    [ctx.key]: `i18n-og-alt-${locale.language}`,
    property: "og:locale:alternate",
    content: hyphenToUnderscore(locale.language)
  }));
}
function hyphenToUnderscore(val = "") {
  return val.replace(/-/g, "_");
}
/*!
  * message-compiler v10.0.8
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
function createPosition(line, column, offset) {
  return { line, column, offset };
}
function createLocation(start, end, source) {
  const loc = { start, end };
  return loc;
}
const CompileErrorCodes = {
  // tokenizer error codes
  EXPECTED_TOKEN: 1,
  INVALID_TOKEN_IN_PLACEHOLDER: 2,
  UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,
  UNKNOWN_ESCAPE_SEQUENCE: 4,
  INVALID_UNICODE_ESCAPE_SEQUENCE: 5,
  UNBALANCED_CLOSING_BRACE: 6,
  UNTERMINATED_CLOSING_BRACE: 7,
  EMPTY_PLACEHOLDER: 8,
  NOT_ALLOW_NEST_PLACEHOLDER: 9,
  INVALID_LINKED_FORMAT: 10,
  // parser error codes
  MUST_HAVE_MESSAGES_IN_PLURAL: 11,
  UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,
  UNEXPECTED_EMPTY_LINKED_KEY: 13,
  UNEXPECTED_LEXICAL_ANALYSIS: 14};
const COMPILE_ERROR_CODES_EXTEND_POINT = 17;
function createCompileError(code, loc, options = {}) {
  const { domain, messages, args } = options;
  const msg = code;
  const error = new SyntaxError(String(msg));
  error.code = code;
  if (loc) {
    error.location = loc;
  }
  error.domain = domain;
  return error;
}
function defaultOnError(error) {
  throw error;
}
const CHAR_SP = " ";
const CHAR_CR = "\r";
const CHAR_LF = "\n";
const CHAR_LS = String.fromCharCode(8232);
const CHAR_PS = String.fromCharCode(8233);
function createScanner(str) {
  const _buf = str;
  let _index = 0;
  let _line = 1;
  let _column = 1;
  let _peekOffset = 0;
  const isCRLF = (index2) => _buf[index2] === CHAR_CR && _buf[index2 + 1] === CHAR_LF;
  const isLF = (index2) => _buf[index2] === CHAR_LF;
  const isPS = (index2) => _buf[index2] === CHAR_PS;
  const isLS = (index2) => _buf[index2] === CHAR_LS;
  const isLineEnd = (index2) => isCRLF(index2) || isLF(index2) || isPS(index2) || isLS(index2);
  const index = () => _index;
  const line = () => _line;
  const column = () => _column;
  const peekOffset = () => _peekOffset;
  const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];
  const currentChar = () => charAt(_index);
  const currentPeek = () => charAt(_index + _peekOffset);
  function next() {
    _peekOffset = 0;
    if (isLineEnd(_index)) {
      _line++;
      _column = 0;
    }
    if (isCRLF(_index)) {
      _index++;
    }
    _index++;
    _column++;
    return _buf[_index];
  }
  function peek() {
    if (isCRLF(_index + _peekOffset)) {
      _peekOffset++;
    }
    _peekOffset++;
    return _buf[_index + _peekOffset];
  }
  function reset() {
    _index = 0;
    _line = 1;
    _column = 1;
    _peekOffset = 0;
  }
  function resetPeek(offset = 0) {
    _peekOffset = offset;
  }
  function skipToPeek() {
    const target = _index + _peekOffset;
    while (target !== _index) {
      next();
    }
    _peekOffset = 0;
  }
  return {
    index,
    line,
    column,
    peekOffset,
    charAt,
    currentChar,
    currentPeek,
    next,
    peek,
    reset,
    resetPeek,
    skipToPeek
  };
}
const EOF = void 0;
const DOT = ".";
const LITERAL_DELIMITER = "'";
const ERROR_DOMAIN$3 = "tokenizer";
function createTokenizer(source, options = {}) {
  const location = options.location !== false;
  const _scnr = createScanner(source);
  const currentOffset = () => _scnr.index();
  const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());
  const _initLoc = currentPosition();
  const _initOffset = currentOffset();
  const _context = {
    currentType: 13,
    offset: _initOffset,
    startLoc: _initLoc,
    endLoc: _initLoc,
    lastType: 13,
    lastOffset: _initOffset,
    lastStartLoc: _initLoc,
    lastEndLoc: _initLoc,
    braceNest: 0,
    inLinked: false,
    text: ""
  };
  const context = () => _context;
  const { onError } = options;
  function emitError(code, pos, offset, ...args) {
    const ctx = context();
    pos.column += offset;
    pos.offset += offset;
    if (onError) {
      const loc = location ? createLocation(ctx.startLoc, pos) : null;
      const err = createCompileError(code, loc, {
        domain: ERROR_DOMAIN$3,
        args
      });
      onError(err);
    }
  }
  function getToken(context2, type, value) {
    context2.endLoc = currentPosition();
    context2.currentType = type;
    const token = { type };
    if (location) {
      token.loc = createLocation(context2.startLoc, context2.endLoc);
    }
    if (value != null) {
      token.value = value;
    }
    return token;
  }
  const getEndToken = (context2) => getToken(
    context2,
    13
    /* TokenTypes.EOF */
  );
  function eat(scnr, ch) {
    if (scnr.currentChar() === ch) {
      scnr.next();
      return ch;
    } else {
      emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
      return "";
    }
  }
  function peekSpaces(scnr) {
    let buf = "";
    while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {
      buf += scnr.currentPeek();
      scnr.peek();
    }
    return buf;
  }
  function skipSpaces(scnr) {
    const buf = peekSpaces(scnr);
    scnr.skipToPeek();
    return buf;
  }
  function isIdentifierStart(ch) {
    if (ch === EOF) {
      return false;
    }
    const cc = ch.charCodeAt(0);
    return cc >= 97 && cc <= 122 || // a-z
    cc >= 65 && cc <= 90 || // A-Z
    cc === 95;
  }
  function isNumberStart(ch) {
    if (ch === EOF) {
      return false;
    }
    const cc = ch.charCodeAt(0);
    return cc >= 48 && cc <= 57;
  }
  function isNamedIdentifierStart(scnr, context2) {
    const { currentType } = context2;
    if (currentType !== 2) {
      return false;
    }
    peekSpaces(scnr);
    const ret = isIdentifierStart(scnr.currentPeek());
    scnr.resetPeek();
    return ret;
  }
  function isListIdentifierStart(scnr, context2) {
    const { currentType } = context2;
    if (currentType !== 2) {
      return false;
    }
    peekSpaces(scnr);
    const ch = scnr.currentPeek() === "-" ? scnr.peek() : scnr.currentPeek();
    const ret = isNumberStart(ch);
    scnr.resetPeek();
    return ret;
  }
  function isLiteralStart(scnr, context2) {
    const { currentType } = context2;
    if (currentType !== 2) {
      return false;
    }
    peekSpaces(scnr);
    const ret = scnr.currentPeek() === LITERAL_DELIMITER;
    scnr.resetPeek();
    return ret;
  }
  function isLinkedDotStart(scnr, context2) {
    const { currentType } = context2;
    if (currentType !== 7) {
      return false;
    }
    peekSpaces(scnr);
    const ret = scnr.currentPeek() === ".";
    scnr.resetPeek();
    return ret;
  }
  function isLinkedModifierStart(scnr, context2) {
    const { currentType } = context2;
    if (currentType !== 8) {
      return false;
    }
    peekSpaces(scnr);
    const ret = isIdentifierStart(scnr.currentPeek());
    scnr.resetPeek();
    return ret;
  }
  function isLinkedDelimiterStart(scnr, context2) {
    const { currentType } = context2;
    if (!(currentType === 7 || currentType === 11)) {
      return false;
    }
    peekSpaces(scnr);
    const ret = scnr.currentPeek() === ":";
    scnr.resetPeek();
    return ret;
  }
  function isLinkedReferStart(scnr, context2) {
    const { currentType } = context2;
    if (currentType !== 9) {
      return false;
    }
    const fn = () => {
      const ch = scnr.currentPeek();
      if (ch === "{") {
        return isIdentifierStart(scnr.peek());
      } else if (ch === "@" || ch === "|" || ch === ":" || ch === "." || ch === CHAR_SP || !ch) {
        return false;
      } else if (ch === CHAR_LF) {
        scnr.peek();
        return fn();
      } else {
        return isTextStart(scnr, false);
      }
    };
    const ret = fn();
    scnr.resetPeek();
    return ret;
  }
  function isPluralStart(scnr) {
    peekSpaces(scnr);
    const ret = scnr.currentPeek() === "|";
    scnr.resetPeek();
    return ret;
  }
  function isTextStart(scnr, reset = true) {
    const fn = (hasSpace = false, prev = "") => {
      const ch = scnr.currentPeek();
      if (ch === "{") {
        return hasSpace;
      } else if (ch === "@" || !ch) {
        return hasSpace;
      } else if (ch === "|") {
        return !(prev === CHAR_SP || prev === CHAR_LF);
      } else if (ch === CHAR_SP) {
        scnr.peek();
        return fn(true, CHAR_SP);
      } else if (ch === CHAR_LF) {
        scnr.peek();
        return fn(true, CHAR_LF);
      } else {
        return true;
      }
    };
    const ret = fn();
    reset && scnr.resetPeek();
    return ret;
  }
  function takeChar(scnr, fn) {
    const ch = scnr.currentChar();
    if (ch === EOF) {
      return EOF;
    }
    if (fn(ch)) {
      scnr.next();
      return ch;
    }
    return null;
  }
  function isIdentifier(ch) {
    const cc = ch.charCodeAt(0);
    return cc >= 97 && cc <= 122 || // a-z
    cc >= 65 && cc <= 90 || // A-Z
    cc >= 48 && cc <= 57 || // 0-9
    cc === 95 || // _
    cc === 36;
  }
  function takeIdentifierChar(scnr) {
    return takeChar(scnr, isIdentifier);
  }
  function isNamedIdentifier(ch) {
    const cc = ch.charCodeAt(0);
    return cc >= 97 && cc <= 122 || // a-z
    cc >= 65 && cc <= 90 || // A-Z
    cc >= 48 && cc <= 57 || // 0-9
    cc === 95 || // _
    cc === 36 || // $
    cc === 45;
  }
  function takeNamedIdentifierChar(scnr) {
    return takeChar(scnr, isNamedIdentifier);
  }
  function isDigit(ch) {
    const cc = ch.charCodeAt(0);
    return cc >= 48 && cc <= 57;
  }
  function takeDigit(scnr) {
    return takeChar(scnr, isDigit);
  }
  function isHexDigit(ch) {
    const cc = ch.charCodeAt(0);
    return cc >= 48 && cc <= 57 || // 0-9
    cc >= 65 && cc <= 70 || // A-F
    cc >= 97 && cc <= 102;
  }
  function takeHexDigit(scnr) {
    return takeChar(scnr, isHexDigit);
  }
  function getDigits(scnr) {
    let ch = "";
    let num = "";
    while (ch = takeDigit(scnr)) {
      num += ch;
    }
    return num;
  }
  function readText(scnr) {
    let buf = "";
    while (true) {
      const ch = scnr.currentChar();
      if (ch === "{" || ch === "}" || ch === "@" || ch === "|" || !ch) {
        break;
      } else if (ch === CHAR_SP || ch === CHAR_LF) {
        if (isTextStart(scnr)) {
          buf += ch;
          scnr.next();
        } else if (isPluralStart(scnr)) {
          break;
        } else {
          buf += ch;
          scnr.next();
        }
      } else {
        buf += ch;
        scnr.next();
      }
    }
    return buf;
  }
  function readNamedIdentifier(scnr) {
    skipSpaces(scnr);
    let ch = "";
    let name = "";
    while (ch = takeNamedIdentifierChar(scnr)) {
      name += ch;
    }
    if (scnr.currentChar() === EOF) {
      emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
    }
    return name;
  }
  function readListIdentifier(scnr) {
    skipSpaces(scnr);
    let value = "";
    if (scnr.currentChar() === "-") {
      scnr.next();
      value += `-${getDigits(scnr)}`;
    } else {
      value += getDigits(scnr);
    }
    if (scnr.currentChar() === EOF) {
      emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
    }
    return value;
  }
  function isLiteral2(ch) {
    return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;
  }
  function readLiteral(scnr) {
    skipSpaces(scnr);
    eat(scnr, `'`);
    let ch = "";
    let literal = "";
    while (ch = takeChar(scnr, isLiteral2)) {
      if (ch === "\\") {
        literal += readEscapeSequence(scnr);
      } else {
        literal += ch;
      }
    }
    const current = scnr.currentChar();
    if (current === CHAR_LF || current === EOF) {
      emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);
      if (current === CHAR_LF) {
        scnr.next();
        eat(scnr, `'`);
      }
      return literal;
    }
    eat(scnr, `'`);
    return literal;
  }
  function readEscapeSequence(scnr) {
    const ch = scnr.currentChar();
    switch (ch) {
      case "\\":
      case `'`:
        scnr.next();
        return `\\${ch}`;
      case "u":
        return readUnicodeEscapeSequence(scnr, ch, 4);
      case "U":
        return readUnicodeEscapeSequence(scnr, ch, 6);
      default:
        emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);
        return "";
    }
  }
  function readUnicodeEscapeSequence(scnr, unicode, digits) {
    eat(scnr, unicode);
    let sequence = "";
    for (let i = 0; i < digits; i++) {
      const ch = takeHexDigit(scnr);
      if (!ch) {
        emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`);
        break;
      }
      sequence += ch;
    }
    return `\\${unicode}${sequence}`;
  }
  function isInvalidIdentifier(ch) {
    return ch !== "{" && ch !== "}" && ch !== CHAR_SP && ch !== CHAR_LF;
  }
  function readInvalidIdentifier(scnr) {
    skipSpaces(scnr);
    let ch = "";
    let identifiers = "";
    while (ch = takeChar(scnr, isInvalidIdentifier)) {
      identifiers += ch;
    }
    return identifiers;
  }
  function readLinkedModifier(scnr) {
    let ch = "";
    let name = "";
    while (ch = takeIdentifierChar(scnr)) {
      name += ch;
    }
    return name;
  }
  function readLinkedRefer(scnr) {
    const fn = (buf) => {
      const ch = scnr.currentChar();
      if (ch === "{" || ch === "@" || ch === "|" || ch === "(" || ch === ")" || !ch) {
        return buf;
      } else if (ch === CHAR_SP) {
        return buf;
      } else if (ch === CHAR_LF || ch === DOT) {
        buf += ch;
        scnr.next();
        return fn(buf);
      } else {
        buf += ch;
        scnr.next();
        return fn(buf);
      }
    };
    return fn("");
  }
  function readPlural(scnr) {
    skipSpaces(scnr);
    const plural = eat(
      scnr,
      "|"
      /* TokenChars.Pipe */
    );
    skipSpaces(scnr);
    return plural;
  }
  function readTokenInPlaceholder(scnr, context2) {
    let token = null;
    const ch = scnr.currentChar();
    switch (ch) {
      case "{":
        if (context2.braceNest >= 1) {
          emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);
        }
        scnr.next();
        token = getToken(
          context2,
          2,
          "{"
          /* TokenChars.BraceLeft */
        );
        skipSpaces(scnr);
        context2.braceNest++;
        return token;
      case "}":
        if (context2.braceNest > 0 && context2.currentType === 2) {
          emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);
        }
        scnr.next();
        token = getToken(
          context2,
          3,
          "}"
          /* TokenChars.BraceRight */
        );
        context2.braceNest--;
        context2.braceNest > 0 && skipSpaces(scnr);
        if (context2.inLinked && context2.braceNest === 0) {
          context2.inLinked = false;
        }
        return token;
      case "@":
        if (context2.braceNest > 0) {
          emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
        }
        token = readTokenInLinked(scnr, context2) || getEndToken(context2);
        context2.braceNest = 0;
        return token;
      default: {
        let validNamedIdentifier = true;
        let validListIdentifier = true;
        let validLiteral = true;
        if (isPluralStart(scnr)) {
          if (context2.braceNest > 0) {
            emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
          }
          token = getToken(context2, 1, readPlural(scnr));
          context2.braceNest = 0;
          context2.inLinked = false;
          return token;
        }
        if (context2.braceNest > 0 && (context2.currentType === 4 || context2.currentType === 5 || context2.currentType === 6)) {
          emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
          context2.braceNest = 0;
          return readToken(scnr, context2);
        }
        if (validNamedIdentifier = isNamedIdentifierStart(scnr, context2)) {
          token = getToken(context2, 4, readNamedIdentifier(scnr));
          skipSpaces(scnr);
          return token;
        }
        if (validListIdentifier = isListIdentifierStart(scnr, context2)) {
          token = getToken(context2, 5, readListIdentifier(scnr));
          skipSpaces(scnr);
          return token;
        }
        if (validLiteral = isLiteralStart(scnr, context2)) {
          token = getToken(context2, 6, readLiteral(scnr));
          skipSpaces(scnr);
          return token;
        }
        if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {
          token = getToken(context2, 12, readInvalidIdentifier(scnr));
          emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);
          skipSpaces(scnr);
          return token;
        }
        break;
      }
    }
    return token;
  }
  function readTokenInLinked(scnr, context2) {
    const { currentType } = context2;
    let token = null;
    const ch = scnr.currentChar();
    if ((currentType === 7 || currentType === 8 || currentType === 11 || currentType === 9) && (ch === CHAR_LF || ch === CHAR_SP)) {
      emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
    }
    switch (ch) {
      case "@":
        scnr.next();
        token = getToken(
          context2,
          7,
          "@"
          /* TokenChars.LinkedAlias */
        );
        context2.inLinked = true;
        return token;
      case ".":
        skipSpaces(scnr);
        scnr.next();
        return getToken(
          context2,
          8,
          "."
          /* TokenChars.LinkedDot */
        );
      case ":":
        skipSpaces(scnr);
        scnr.next();
        return getToken(
          context2,
          9,
          ":"
          /* TokenChars.LinkedDelimiter */
        );
      default:
        if (isPluralStart(scnr)) {
          token = getToken(context2, 1, readPlural(scnr));
          context2.braceNest = 0;
          context2.inLinked = false;
          return token;
        }
        if (isLinkedDotStart(scnr, context2) || isLinkedDelimiterStart(scnr, context2)) {
          skipSpaces(scnr);
          return readTokenInLinked(scnr, context2);
        }
        if (isLinkedModifierStart(scnr, context2)) {
          skipSpaces(scnr);
          return getToken(context2, 11, readLinkedModifier(scnr));
        }
        if (isLinkedReferStart(scnr, context2)) {
          skipSpaces(scnr);
          if (ch === "{") {
            return readTokenInPlaceholder(scnr, context2) || token;
          } else {
            return getToken(context2, 10, readLinkedRefer(scnr));
          }
        }
        if (currentType === 7) {
          emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
        }
        context2.braceNest = 0;
        context2.inLinked = false;
        return readToken(scnr, context2);
    }
  }
  function readToken(scnr, context2) {
    let token = {
      type: 13
      /* TokenTypes.EOF */
    };
    if (context2.braceNest > 0) {
      return readTokenInPlaceholder(scnr, context2) || getEndToken(context2);
    }
    if (context2.inLinked) {
      return readTokenInLinked(scnr, context2) || getEndToken(context2);
    }
    const ch = scnr.currentChar();
    switch (ch) {
      case "{":
        return readTokenInPlaceholder(scnr, context2) || getEndToken(context2);
      case "}":
        emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);
        scnr.next();
        return getToken(
          context2,
          3,
          "}"
          /* TokenChars.BraceRight */
        );
      case "@":
        return readTokenInLinked(scnr, context2) || getEndToken(context2);
      default: {
        if (isPluralStart(scnr)) {
          token = getToken(context2, 1, readPlural(scnr));
          context2.braceNest = 0;
          context2.inLinked = false;
          return token;
        }
        if (isTextStart(scnr)) {
          return getToken(context2, 0, readText(scnr));
        }
        break;
      }
    }
    return token;
  }
  function nextToken() {
    const { currentType, offset, startLoc, endLoc } = _context;
    _context.lastType = currentType;
    _context.lastOffset = offset;
    _context.lastStartLoc = startLoc;
    _context.lastEndLoc = endLoc;
    _context.offset = currentOffset();
    _context.startLoc = currentPosition();
    if (_scnr.currentChar() === EOF) {
      return getToken(
        _context,
        13
        /* TokenTypes.EOF */
      );
    }
    return readToken(_scnr, _context);
  }
  return {
    nextToken,
    currentOffset,
    currentPosition,
    context
  };
}
const ERROR_DOMAIN$2 = "parser";
const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;
function fromEscapeSequence(match, codePoint4, codePoint6) {
  switch (match) {
    case `\\\\`:
      return `\\`;
    // eslint-disable-next-line no-useless-escape
    case `\\'`:
      return `'`;
    default: {
      const codePoint = parseInt(codePoint4 || codePoint6, 16);
      if (codePoint <= 55295 || codePoint >= 57344) {
        return String.fromCodePoint(codePoint);
      }
      return "�";
    }
  }
}
function createParser(options = {}) {
  const location = options.location !== false;
  const { onError } = options;
  function emitError(tokenzer, code, start, offset, ...args) {
    const end = tokenzer.currentPosition();
    end.offset += offset;
    end.column += offset;
    if (onError) {
      const loc = location ? createLocation(start, end) : null;
      const err = createCompileError(code, loc, {
        domain: ERROR_DOMAIN$2,
        args
      });
      onError(err);
    }
  }
  function startNode(type, offset, loc) {
    const node = { type };
    if (location) {
      node.start = offset;
      node.end = offset;
      node.loc = { start: loc, end: loc };
    }
    return node;
  }
  function endNode(node, offset, pos, type) {
    if (location) {
      node.end = offset;
      if (node.loc) {
        node.loc.end = pos;
      }
    }
  }
  function parseText(tokenizer, value) {
    const context = tokenizer.context();
    const node = startNode(3, context.offset, context.startLoc);
    node.value = value;
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  function parseList(tokenizer, index) {
    const context = tokenizer.context();
    const { lastOffset: offset, lastStartLoc: loc } = context;
    const node = startNode(5, offset, loc);
    node.index = parseInt(index, 10);
    tokenizer.nextToken();
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  function parseNamed(tokenizer, key) {
    const context = tokenizer.context();
    const { lastOffset: offset, lastStartLoc: loc } = context;
    const node = startNode(4, offset, loc);
    node.key = key;
    tokenizer.nextToken();
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  function parseLiteral(tokenizer, value) {
    const context = tokenizer.context();
    const { lastOffset: offset, lastStartLoc: loc } = context;
    const node = startNode(9, offset, loc);
    node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);
    tokenizer.nextToken();
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  function parseLinkedModifier(tokenizer) {
    const token = tokenizer.nextToken();
    const context = tokenizer.context();
    const { lastOffset: offset, lastStartLoc: loc } = context;
    const node = startNode(8, offset, loc);
    if (token.type !== 11) {
      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);
      node.value = "";
      endNode(node, offset, loc);
      return {
        nextConsumeToken: token,
        node
      };
    }
    if (token.value == null) {
      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
    }
    node.value = token.value || "";
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return {
      node
    };
  }
  function parseLinkedKey(tokenizer, value) {
    const context = tokenizer.context();
    const node = startNode(7, context.offset, context.startLoc);
    node.value = value;
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  function parseLinked(tokenizer) {
    const context = tokenizer.context();
    const linkedNode = startNode(6, context.offset, context.startLoc);
    let token = tokenizer.nextToken();
    if (token.type === 8) {
      const parsed = parseLinkedModifier(tokenizer);
      linkedNode.modifier = parsed.node;
      token = parsed.nextConsumeToken || tokenizer.nextToken();
    }
    if (token.type !== 9) {
      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
    }
    token = tokenizer.nextToken();
    if (token.type === 2) {
      token = tokenizer.nextToken();
    }
    switch (token.type) {
      case 10:
        if (token.value == null) {
          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
        }
        linkedNode.key = parseLinkedKey(tokenizer, token.value || "");
        break;
      case 4:
        if (token.value == null) {
          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
        }
        linkedNode.key = parseNamed(tokenizer, token.value || "");
        break;
      case 5:
        if (token.value == null) {
          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
        }
        linkedNode.key = parseList(tokenizer, token.value || "");
        break;
      case 6:
        if (token.value == null) {
          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
        }
        linkedNode.key = parseLiteral(tokenizer, token.value || "");
        break;
      default: {
        emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);
        const nextContext = tokenizer.context();
        const emptyLinkedKeyNode = startNode(7, nextContext.offset, nextContext.startLoc);
        emptyLinkedKeyNode.value = "";
        endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);
        linkedNode.key = emptyLinkedKeyNode;
        endNode(linkedNode, nextContext.offset, nextContext.startLoc);
        return {
          nextConsumeToken: token,
          node: linkedNode
        };
      }
    }
    endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());
    return {
      node: linkedNode
    };
  }
  function parseMessage(tokenizer) {
    const context = tokenizer.context();
    const startOffset = context.currentType === 1 ? tokenizer.currentOffset() : context.offset;
    const startLoc = context.currentType === 1 ? context.endLoc : context.startLoc;
    const node = startNode(2, startOffset, startLoc);
    node.items = [];
    let nextToken = null;
    do {
      const token = nextToken || tokenizer.nextToken();
      nextToken = null;
      switch (token.type) {
        case 0:
          if (token.value == null) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
          }
          node.items.push(parseText(tokenizer, token.value || ""));
          break;
        case 5:
          if (token.value == null) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
          }
          node.items.push(parseList(tokenizer, token.value || ""));
          break;
        case 4:
          if (token.value == null) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
          }
          node.items.push(parseNamed(tokenizer, token.value || ""));
          break;
        case 6:
          if (token.value == null) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
          }
          node.items.push(parseLiteral(tokenizer, token.value || ""));
          break;
        case 7: {
          const parsed = parseLinked(tokenizer);
          node.items.push(parsed.node);
          nextToken = parsed.nextConsumeToken || null;
          break;
        }
      }
    } while (context.currentType !== 13 && context.currentType !== 1);
    const endOffset = context.currentType === 1 ? context.lastOffset : tokenizer.currentOffset();
    const endLoc = context.currentType === 1 ? context.lastEndLoc : tokenizer.currentPosition();
    endNode(node, endOffset, endLoc);
    return node;
  }
  function parsePlural(tokenizer, offset, loc, msgNode) {
    const context = tokenizer.context();
    let hasEmptyMessage = msgNode.items.length === 0;
    const node = startNode(1, offset, loc);
    node.cases = [];
    node.cases.push(msgNode);
    do {
      const msg = parseMessage(tokenizer);
      if (!hasEmptyMessage) {
        hasEmptyMessage = msg.items.length === 0;
      }
      node.cases.push(msg);
    } while (context.currentType !== 13);
    if (hasEmptyMessage) {
      emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);
    }
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  function parseResource(tokenizer) {
    const context = tokenizer.context();
    const { offset, startLoc } = context;
    const msgNode = parseMessage(tokenizer);
    if (context.currentType === 13) {
      return msgNode;
    } else {
      return parsePlural(tokenizer, offset, startLoc, msgNode);
    }
  }
  function parse2(source) {
    const tokenizer = createTokenizer(source, assign({}, options));
    const context = tokenizer.context();
    const node = startNode(0, context.offset, context.startLoc);
    if (location && node.loc) {
      node.loc.source = source;
    }
    node.body = parseResource(tokenizer);
    if (options.onCacheKey) {
      node.cacheKey = options.onCacheKey(source);
    }
    if (context.currentType !== 13) {
      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || "");
    }
    endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
    return node;
  }
  return { parse: parse2 };
}
function getTokenCaption(token) {
  if (token.type === 13) {
    return "EOF";
  }
  const name = (token.value || "").replace(/\r?\n/gu, "\\n");
  return name.length > 10 ? name.slice(0, 9) + "…" : name;
}
function createTransformer(ast, options = {}) {
  const _context = {
    ast,
    helpers: /* @__PURE__ */ new Set()
  };
  const context = () => _context;
  const helper = (name) => {
    _context.helpers.add(name);
    return name;
  };
  return { context, helper };
}
function traverseNodes(nodes, transformer) {
  for (let i = 0; i < nodes.length; i++) {
    traverseNode(nodes[i], transformer);
  }
}
function traverseNode(node, transformer) {
  switch (node.type) {
    case 1:
      traverseNodes(node.cases, transformer);
      transformer.helper(
        "plural"
        /* HelperNameMap.PLURAL */
      );
      break;
    case 2:
      traverseNodes(node.items, transformer);
      break;
    case 6: {
      const linked = node;
      traverseNode(linked.key, transformer);
      transformer.helper(
        "linked"
        /* HelperNameMap.LINKED */
      );
      transformer.helper(
        "type"
        /* HelperNameMap.TYPE */
      );
      break;
    }
    case 5:
      transformer.helper(
        "interpolate"
        /* HelperNameMap.INTERPOLATE */
      );
      transformer.helper(
        "list"
        /* HelperNameMap.LIST */
      );
      break;
    case 4:
      transformer.helper(
        "interpolate"
        /* HelperNameMap.INTERPOLATE */
      );
      transformer.helper(
        "named"
        /* HelperNameMap.NAMED */
      );
      break;
  }
}
function transform(ast, options = {}) {
  const transformer = createTransformer(ast);
  transformer.helper(
    "normalize"
    /* HelperNameMap.NORMALIZE */
  );
  ast.body && traverseNode(ast.body, transformer);
  const context = transformer.context();
  ast.helpers = Array.from(context.helpers);
}
function optimize(ast) {
  const body = ast.body;
  if (body.type === 2) {
    optimizeMessageNode(body);
  } else {
    body.cases.forEach((c) => optimizeMessageNode(c));
  }
  return ast;
}
function optimizeMessageNode(message) {
  if (message.items.length === 1) {
    const item = message.items[0];
    if (item.type === 3 || item.type === 9) {
      message.static = item.value;
      delete item.value;
    }
  } else {
    const values = [];
    for (let i = 0; i < message.items.length; i++) {
      const item = message.items[i];
      if (!(item.type === 3 || item.type === 9)) {
        break;
      }
      if (item.value == null) {
        break;
      }
      values.push(item.value);
    }
    if (values.length === message.items.length) {
      message.static = join(values);
      for (let i = 0; i < message.items.length; i++) {
        const item = message.items[i];
        if (item.type === 3 || item.type === 9) {
          delete item.value;
        }
      }
    }
  }
}
function minify(node) {
  node.t = node.type;
  switch (node.type) {
    case 0: {
      const resource = node;
      minify(resource.body);
      resource.b = resource.body;
      delete resource.body;
      break;
    }
    case 1: {
      const plural = node;
      const cases = plural.cases;
      for (let i = 0; i < cases.length; i++) {
        minify(cases[i]);
      }
      plural.c = cases;
      delete plural.cases;
      break;
    }
    case 2: {
      const message = node;
      const items = message.items;
      for (let i = 0; i < items.length; i++) {
        minify(items[i]);
      }
      message.i = items;
      delete message.items;
      if (message.static) {
        message.s = message.static;
        delete message.static;
      }
      break;
    }
    case 3:
    case 9:
    case 8:
    case 7: {
      const valueNode = node;
      if (valueNode.value) {
        valueNode.v = valueNode.value;
        delete valueNode.value;
      }
      break;
    }
    case 6: {
      const linked = node;
      minify(linked.key);
      linked.k = linked.key;
      delete linked.key;
      if (linked.modifier) {
        minify(linked.modifier);
        linked.m = linked.modifier;
        delete linked.modifier;
      }
      break;
    }
    case 5: {
      const list = node;
      list.i = list.index;
      delete list.index;
      break;
    }
    case 4: {
      const named = node;
      named.k = named.key;
      delete named.key;
      break;
    }
  }
  delete node.type;
}
function createCodeGenerator(ast, options) {
  const { filename, breakLineCode, needIndent: _needIndent } = options;
  const location = options.location !== false;
  const _context = {
    filename,
    code: "",
    column: 1,
    line: 1,
    offset: 0,
    map: void 0,
    breakLineCode,
    needIndent: _needIndent,
    indentLevel: 0
  };
  if (location && ast.loc) {
    _context.source = ast.loc.source;
  }
  const context = () => _context;
  function push(code, node) {
    _context.code += code;
  }
  function _newline(n, withBreakLine = true) {
    const _breakLineCode = withBreakLine ? breakLineCode : "";
    push(_needIndent ? _breakLineCode + `  `.repeat(n) : _breakLineCode);
  }
  function indent(withNewLine = true) {
    const level = ++_context.indentLevel;
    withNewLine && _newline(level);
  }
  function deindent(withNewLine = true) {
    const level = --_context.indentLevel;
    withNewLine && _newline(level);
  }
  function newline() {
    _newline(_context.indentLevel);
  }
  const helper = (key) => `_${key}`;
  const needIndent = () => _context.needIndent;
  return {
    context,
    push,
    indent,
    deindent,
    newline,
    helper,
    needIndent
  };
}
function generateLinkedNode(generator, node) {
  const { helper } = generator;
  generator.push(`${helper(
    "linked"
    /* HelperNameMap.LINKED */
  )}(`);
  generateNode(generator, node.key);
  if (node.modifier) {
    generator.push(`, `);
    generateNode(generator, node.modifier);
    generator.push(`, _type`);
  } else {
    generator.push(`, undefined, _type`);
  }
  generator.push(`)`);
}
function generateMessageNode(generator, node) {
  const { helper, needIndent } = generator;
  generator.push(`${helper(
    "normalize"
    /* HelperNameMap.NORMALIZE */
  )}([`);
  generator.indent(needIndent());
  const length = node.items.length;
  for (let i = 0; i < length; i++) {
    generateNode(generator, node.items[i]);
    if (i === length - 1) {
      break;
    }
    generator.push(", ");
  }
  generator.deindent(needIndent());
  generator.push("])");
}
function generatePluralNode(generator, node) {
  const { helper, needIndent } = generator;
  if (node.cases.length > 1) {
    generator.push(`${helper(
      "plural"
      /* HelperNameMap.PLURAL */
    )}([`);
    generator.indent(needIndent());
    const length = node.cases.length;
    for (let i = 0; i < length; i++) {
      generateNode(generator, node.cases[i]);
      if (i === length - 1) {
        break;
      }
      generator.push(", ");
    }
    generator.deindent(needIndent());
    generator.push(`])`);
  }
}
function generateResource(generator, node) {
  if (node.body) {
    generateNode(generator, node.body);
  } else {
    generator.push("null");
  }
}
function generateNode(generator, node) {
  const { helper } = generator;
  switch (node.type) {
    case 0:
      generateResource(generator, node);
      break;
    case 1:
      generatePluralNode(generator, node);
      break;
    case 2:
      generateMessageNode(generator, node);
      break;
    case 6:
      generateLinkedNode(generator, node);
      break;
    case 8:
      generator.push(JSON.stringify(node.value), node);
      break;
    case 7:
      generator.push(JSON.stringify(node.value), node);
      break;
    case 5:
      generator.push(`${helper(
        "interpolate"
        /* HelperNameMap.INTERPOLATE */
      )}(${helper(
        "list"
        /* HelperNameMap.LIST */
      )}(${node.index}))`, node);
      break;
    case 4:
      generator.push(`${helper(
        "interpolate"
        /* HelperNameMap.INTERPOLATE */
      )}(${helper(
        "named"
        /* HelperNameMap.NAMED */
      )}(${JSON.stringify(node.key)}))`, node);
      break;
    case 9:
      generator.push(JSON.stringify(node.value), node);
      break;
    case 3:
      generator.push(JSON.stringify(node.value), node);
      break;
  }
}
const generate = (ast, options = {}) => {
  const mode2 = isString(options.mode) ? options.mode : "normal";
  const filename = isString(options.filename) ? options.filename : "message.intl";
  !!options.sourceMap;
  const breakLineCode = options.breakLineCode != null ? options.breakLineCode : mode2 === "arrow" ? ";" : "\n";
  const needIndent = options.needIndent ? options.needIndent : mode2 !== "arrow";
  const helpers = ast.helpers || [];
  const generator = createCodeGenerator(ast, {
    filename,
    breakLineCode,
    needIndent
  });
  generator.push(mode2 === "normal" ? `function __msg__ (ctx) {` : `(ctx) => {`);
  generator.indent(needIndent);
  if (helpers.length > 0) {
    generator.push(`const { ${join(helpers.map((s) => `${s}: _${s}`), ", ")} } = ctx`);
    generator.newline();
  }
  generator.push(`return `);
  generateNode(generator, ast);
  generator.deindent(needIndent);
  generator.push(`}`);
  delete ast.helpers;
  const { code, map } = generator.context();
  return {
    ast,
    code,
    map: map ? map.toJSON() : void 0
    // eslint-disable-line @typescript-eslint/no-explicit-any
  };
};
function baseCompile$1(source, options = {}) {
  const assignedOptions = assign({}, options);
  const jit = !!assignedOptions.jit;
  const enalbeMinify = !!assignedOptions.minify;
  const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;
  const parser = createParser(assignedOptions);
  const ast = parser.parse(source);
  if (!jit) {
    transform(ast, assignedOptions);
    return generate(ast, assignedOptions);
  } else {
    enambeOptimize && optimize(ast);
    enalbeMinify && minify(ast);
    return { ast, code: "" };
  }
}
function isMessageAST(val) {
  return isObject(val) && resolveType(val) === 0 && (hasOwn(val, "b") || hasOwn(val, "body"));
}
const PROPS_BODY = ["b", "body"];
function resolveBody(node) {
  return resolveProps(node, PROPS_BODY);
}
const PROPS_CASES = ["c", "cases"];
function resolveCases(node) {
  return resolveProps(node, PROPS_CASES, []);
}
const PROPS_STATIC = ["s", "static"];
function resolveStatic(node) {
  return resolveProps(node, PROPS_STATIC);
}
const PROPS_ITEMS = ["i", "items"];
function resolveItems(node) {
  return resolveProps(node, PROPS_ITEMS, []);
}
const PROPS_TYPE = ["t", "type"];
function resolveType(node) {
  return resolveProps(node, PROPS_TYPE);
}
const PROPS_VALUE = ["v", "value"];
function resolveValue$1(node, type) {
  const resolved = resolveProps(node, PROPS_VALUE);
  if (resolved != null) {
    return resolved;
  } else {
    throw createUnhandleNodeError(type);
  }
}
const PROPS_MODIFIER = ["m", "modifier"];
function resolveLinkedModifier(node) {
  return resolveProps(node, PROPS_MODIFIER);
}
const PROPS_KEY = ["k", "key"];
function resolveLinkedKey(node) {
  const resolved = resolveProps(node, PROPS_KEY);
  if (resolved) {
    return resolved;
  } else {
    throw createUnhandleNodeError(
      6
      /* NodeTypes.Linked */
    );
  }
}
function resolveProps(node, props, defaultValue) {
  for (let i = 0; i < props.length; i++) {
    const prop = props[i];
    if (hasOwn(node, prop) && node[prop] != null) {
      return node[prop];
    }
  }
  return defaultValue;
}
const AST_NODE_PROPS_KEYS = [
  ...PROPS_BODY,
  ...PROPS_CASES,
  ...PROPS_STATIC,
  ...PROPS_ITEMS,
  ...PROPS_KEY,
  ...PROPS_MODIFIER,
  ...PROPS_VALUE,
  ...PROPS_TYPE
];
function createUnhandleNodeError(type) {
  return new Error(`unhandled node type: ${type}`);
}
function format(ast) {
  const msg = (ctx) => formatParts(ctx, ast);
  return msg;
}
function formatParts(ctx, ast) {
  const body = resolveBody(ast);
  if (body == null) {
    throw createUnhandleNodeError(
      0
      /* NodeTypes.Resource */
    );
  }
  const type = resolveType(body);
  if (type === 1) {
    const plural = body;
    const cases = resolveCases(plural);
    return ctx.plural(cases.reduce((messages, c) => [
      ...messages,
      formatMessageParts(ctx, c)
    ], []));
  } else {
    return formatMessageParts(ctx, body);
  }
}
function formatMessageParts(ctx, node) {
  const static_ = resolveStatic(node);
  if (static_ != null) {
    return ctx.type === "text" ? static_ : ctx.normalize([static_]);
  } else {
    const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);
    return ctx.normalize(messages);
  }
}
function formatMessagePart(ctx, node) {
  const type = resolveType(node);
  switch (type) {
    case 3: {
      return resolveValue$1(node, type);
    }
    case 9: {
      return resolveValue$1(node, type);
    }
    case 4: {
      const named = node;
      if (hasOwn(named, "k") && named.k) {
        return ctx.interpolate(ctx.named(named.k));
      }
      if (hasOwn(named, "key") && named.key) {
        return ctx.interpolate(ctx.named(named.key));
      }
      throw createUnhandleNodeError(type);
    }
    case 5: {
      const list = node;
      if (hasOwn(list, "i") && isNumber(list.i)) {
        return ctx.interpolate(ctx.list(list.i));
      }
      if (hasOwn(list, "index") && isNumber(list.index)) {
        return ctx.interpolate(ctx.list(list.index));
      }
      throw createUnhandleNodeError(type);
    }
    case 6: {
      const linked = node;
      const modifier = resolveLinkedModifier(linked);
      const key = resolveLinkedKey(linked);
      return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : void 0, ctx.type);
    }
    case 7: {
      return resolveValue$1(node, type);
    }
    case 8: {
      return resolveValue$1(node, type);
    }
    default:
      throw new Error(`unhandled node on format message part: ${type}`);
  }
}
const defaultOnCacheKey = (message) => message;
let compileCache = create();
function baseCompile(message, options = {}) {
  let detectError = false;
  const onError = options.onError || defaultOnError;
  options.onError = (err) => {
    detectError = true;
    onError(err);
  };
  return { ...baseCompile$1(message, options), detectError };
}
// @__NO_SIDE_EFFECTS__
function compile(message, context) {
  if (isString(message)) {
    isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true;
    const onCacheKey = context.onCacheKey || defaultOnCacheKey;
    const cacheKey = onCacheKey(message);
    const cached = compileCache[cacheKey];
    if (cached) {
      return cached;
    }
    const { ast, detectError } = baseCompile(message, {
      ...context,
      location: "production" !== "production",
      jit: true
    });
    const msg = format(ast);
    return !detectError ? compileCache[cacheKey] = msg : msg;
  } else {
    const cacheKey = message.cacheKey;
    if (cacheKey) {
      const cached = compileCache[cacheKey];
      if (cached) {
        return cached;
      }
      return compileCache[cacheKey] = format(message);
    } else {
      return format(message);
    }
  }
}
const CoreErrorCodes = {
  INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT,
  // 17
  INVALID_DATE_ARGUMENT: 18,
  INVALID_ISO_DATE_ARGUMENT: 19,
  NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21,
  NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22,
  NOT_SUPPORT_LOCALE_TYPE: 23
};
const CORE_ERROR_CODES_EXTEND_POINT = 24;
function createCoreError(code) {
  return createCompileError(code, null, void 0);
}
function getLocale(context, options) {
  return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale);
}
let _resolveLocale;
function resolveLocale(locale) {
  if (isString(locale)) {
    return locale;
  } else {
    if (isFunction(locale)) {
      if (locale.resolvedOnce && _resolveLocale != null) {
        return _resolveLocale;
      } else if (locale.constructor.name === "Function") {
        const resolve2 = locale();
        if (isPromise(resolve2)) {
          throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);
        }
        return _resolveLocale = resolve2;
      } else {
        throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);
      }
    } else {
      throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);
    }
  }
}
function fallbackWithSimple(ctx, fallback, start) {
  return [.../* @__PURE__ */ new Set([
    start,
    ...isArray(fallback) ? fallback : isObject(fallback) ? Object.keys(fallback) : isString(fallback) ? [fallback] : [start]
  ])];
}
function fallbackWithLocaleChain(ctx, fallback, start) {
  const startLocale = isString(start) ? start : DEFAULT_LOCALE;
  const context = ctx;
  if (!context.__localeChainCache) {
    context.__localeChainCache = /* @__PURE__ */ new Map();
  }
  let chain = context.__localeChainCache.get(startLocale);
  if (!chain) {
    chain = [];
    let block = [start];
    while (isArray(block)) {
      block = appendBlockToChain(chain, block, fallback);
    }
    const defaults = isArray(fallback) || !isPlainObject(fallback) ? fallback : fallback["default"] ? fallback["default"] : null;
    block = isString(defaults) ? [defaults] : defaults;
    if (isArray(block)) {
      appendBlockToChain(chain, block, false);
    }
    context.__localeChainCache.set(startLocale, chain);
  }
  return chain;
}
function appendBlockToChain(chain, block, blocks) {
  let follow = true;
  for (let i = 0; i < block.length && isBoolean(follow); i++) {
    const locale = block[i];
    if (isString(locale)) {
      follow = appendLocaleToChain(chain, block[i], blocks);
    }
  }
  return follow;
}
function appendLocaleToChain(chain, locale, blocks) {
  let follow;
  const tokens = locale.split("-");
  do {
    const target = tokens.join("-");
    follow = appendItemToChain(chain, target, blocks);
    tokens.splice(-1, 1);
  } while (tokens.length && follow === true);
  return follow;
}
function appendItemToChain(chain, target, blocks) {
  let follow = false;
  if (!chain.includes(target)) {
    follow = true;
    if (target) {
      follow = target[target.length - 1] !== "!";
      const locale = target.replace(/!/g, "");
      chain.push(locale);
      if ((isArray(blocks) || isPlainObject(blocks)) && blocks[locale]) {
        follow = blocks[locale];
      }
    }
  }
  return follow;
}
const pathStateMachine = [];
pathStateMachine[
  0
  /* States.BEFORE_PATH */
] = {
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    0
    /* States.BEFORE_PATH */
  ],
  [
    "i"
    /* PathCharTypes.IDENT */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4
    /* States.IN_SUB_PATH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: [
    7
    /* States.AFTER_PATH */
  ]
};
pathStateMachine[
  1
  /* States.IN_PATH */
] = {
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    1
    /* States.IN_PATH */
  ],
  [
    "."
    /* PathCharTypes.DOT */
  ]: [
    2
    /* States.BEFORE_IDENT */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4
    /* States.IN_SUB_PATH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: [
    7
    /* States.AFTER_PATH */
  ]
};
pathStateMachine[
  2
  /* States.BEFORE_IDENT */
] = {
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    2
    /* States.BEFORE_IDENT */
  ],
  [
    "i"
    /* PathCharTypes.IDENT */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "0"
    /* PathCharTypes.ZERO */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ]
};
pathStateMachine[
  3
  /* States.IN_IDENT */
] = {
  [
    "i"
    /* PathCharTypes.IDENT */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "0"
    /* PathCharTypes.ZERO */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    1,
    1
    /* Actions.PUSH */
  ],
  [
    "."
    /* PathCharTypes.DOT */
  ]: [
    2,
    1
    /* Actions.PUSH */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4,
    1
    /* Actions.PUSH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: [
    7,
    1
    /* Actions.PUSH */
  ]
};
pathStateMachine[
  4
  /* States.IN_SUB_PATH */
] = {
  [
    "'"
    /* PathCharTypes.SINGLE_QUOTE */
  ]: [
    5,
    0
    /* Actions.APPEND */
  ],
  [
    '"'
    /* PathCharTypes.DOUBLE_QUOTE */
  ]: [
    6,
    0
    /* Actions.APPEND */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4,
    2
    /* Actions.INC_SUB_PATH_DEPTH */
  ],
  [
    "]"
    /* PathCharTypes.RIGHT_BRACKET */
  ]: [
    1,
    3
    /* Actions.PUSH_SUB_PATH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: 8,
  [
    "l"
    /* PathCharTypes.ELSE */
  ]: [
    4,
    0
    /* Actions.APPEND */
  ]
};
pathStateMachine[
  5
  /* States.IN_SINGLE_QUOTE */
] = {
  [
    "'"
    /* PathCharTypes.SINGLE_QUOTE */
  ]: [
    4,
    0
    /* Actions.APPEND */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: 8,
  [
    "l"
    /* PathCharTypes.ELSE */
  ]: [
    5,
    0
    /* Actions.APPEND */
  ]
};
pathStateMachine[
  6
  /* States.IN_DOUBLE_QUOTE */
] = {
  [
    '"'
    /* PathCharTypes.DOUBLE_QUOTE */
  ]: [
    4,
    0
    /* Actions.APPEND */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: 8,
  [
    "l"
    /* PathCharTypes.ELSE */
  ]: [
    6,
    0
    /* Actions.APPEND */
  ]
};
const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;
function isLiteral(exp) {
  return literalValueRE.test(exp);
}
function stripQuotes(str) {
  const a = str.charCodeAt(0);
  const b = str.charCodeAt(str.length - 1);
  return a === b && (a === 34 || a === 39) ? str.slice(1, -1) : str;
}
function getPathCharType(ch) {
  if (ch === void 0 || ch === null) {
    return "o";
  }
  const code = ch.charCodeAt(0);
  switch (code) {
    case 91:
    // [
    case 93:
    // ]
    case 46:
    // .
    case 34:
    // "
    case 39:
      return ch;
    case 95:
    // _
    case 36:
    // $
    case 45:
      return "i";
    case 9:
    // Tab (HT)
    case 10:
    // Newline (LF)
    case 13:
    // Return (CR)
    case 160:
    // No-break space (NBSP)
    case 65279:
    // Byte Order Mark (BOM)
    case 8232:
    // Line Separator (LS)
    case 8233:
      return "w";
  }
  return "i";
}
function formatSubPath(path) {
  const trimmed = path.trim();
  if (path.charAt(0) === "0" && isNaN(parseInt(path))) {
    return false;
  }
  return isLiteral(trimmed) ? stripQuotes(trimmed) : "*" + trimmed;
}
function parse(path) {
  const keys = [];
  let index = -1;
  let mode2 = 0;
  let subPathDepth = 0;
  let c;
  let key;
  let newChar;
  let type;
  let transition;
  let action;
  let typeMap;
  const actions = [];
  actions[
    0
    /* Actions.APPEND */
  ] = () => {
    if (key === void 0) {
      key = newChar;
    } else {
      key += newChar;
    }
  };
  actions[
    1
    /* Actions.PUSH */
  ] = () => {
    if (key !== void 0) {
      keys.push(key);
      key = void 0;
    }
  };
  actions[
    2
    /* Actions.INC_SUB_PATH_DEPTH */
  ] = () => {
    actions[
      0
      /* Actions.APPEND */
    ]();
    subPathDepth++;
  };
  actions[
    3
    /* Actions.PUSH_SUB_PATH */
  ] = () => {
    if (subPathDepth > 0) {
      subPathDepth--;
      mode2 = 4;
      actions[
        0
        /* Actions.APPEND */
      ]();
    } else {
      subPathDepth = 0;
      if (key === void 0) {
        return false;
      }
      key = formatSubPath(key);
      if (key === false) {
        return false;
      } else {
        actions[
          1
          /* Actions.PUSH */
        ]();
      }
    }
  };
  function maybeUnescapeQuote() {
    const nextChar = path[index + 1];
    if (mode2 === 5 && nextChar === "'" || mode2 === 6 && nextChar === '"') {
      index++;
      newChar = "\\" + nextChar;
      actions[
        0
        /* Actions.APPEND */
      ]();
      return true;
    }
  }
  while (mode2 !== null) {
    index++;
    c = path[index];
    if (c === "\\" && maybeUnescapeQuote()) {
      continue;
    }
    type = getPathCharType(c);
    typeMap = pathStateMachine[mode2];
    transition = typeMap[type] || typeMap[
      "l"
      /* PathCharTypes.ELSE */
    ] || 8;
    if (transition === 8) {
      return;
    }
    mode2 = transition[0];
    if (transition[1] !== void 0) {
      action = actions[transition[1]];
      if (action) {
        newChar = c;
        if (action() === false) {
          return;
        }
      }
    }
    if (mode2 === 7) {
      return keys;
    }
  }
}
const cache = /* @__PURE__ */ new Map();
function resolveWithKeyValue(obj, path) {
  return isObject(obj) ? obj[path] : null;
}
function resolveValue(obj, path) {
  if (!isObject(obj)) {
    return null;
  }
  let hit = cache.get(path);
  if (!hit) {
    hit = parse(path);
    if (hit) {
      cache.set(path, hit);
    }
  }
  if (!hit) {
    return null;
  }
  const len = hit.length;
  let last = obj;
  let i = 0;
  while (i < len) {
    const key = hit[i];
    if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) {
      return null;
    }
    const val = last[key];
    if (val === void 0) {
      return null;
    }
    if (isFunction(last)) {
      return null;
    }
    last = val;
    i++;
  }
  return last;
}
const VERSION$1 = "10.0.8";
const NOT_REOSLVED = -1;
const DEFAULT_LOCALE = "en-US";
const MISSING_RESOLVE_VALUE = "";
const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;
function getDefaultLinkedModifiers() {
  return {
    upper: (val, type) => {
      return type === "text" && isString(val) ? val.toUpperCase() : type === "vnode" && isObject(val) && "__v_isVNode" in val ? val.children.toUpperCase() : val;
    },
    lower: (val, type) => {
      return type === "text" && isString(val) ? val.toLowerCase() : type === "vnode" && isObject(val) && "__v_isVNode" in val ? val.children.toLowerCase() : val;
    },
    capitalize: (val, type) => {
      return type === "text" && isString(val) ? capitalize(val) : type === "vnode" && isObject(val) && "__v_isVNode" in val ? capitalize(val.children) : val;
    }
  };
}
let _compiler;
function registerMessageCompiler(compiler) {
  _compiler = compiler;
}
let _resolver;
function registerMessageResolver(resolver) {
  _resolver = resolver;
}
let _fallbacker;
function registerLocaleFallbacker(fallbacker) {
  _fallbacker = fallbacker;
}
const setAdditionalMeta = /* @__NO_SIDE_EFFECTS__ */ (meta) => {
};
let _fallbackContext = null;
const setFallbackContext = (context) => {
  _fallbackContext = context;
};
const getFallbackContext = () => _fallbackContext;
let _cid = 0;
function createCoreContext(options = {}) {
  const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;
  const version = isString(options.version) ? options.version : VERSION$1;
  const locale = isString(options.locale) || isFunction(options.locale) ? options.locale : DEFAULT_LOCALE;
  const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;
  const fallbackLocale = isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || isString(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale;
  const messages = isPlainObject(options.messages) ? options.messages : createResources(_locale);
  const datetimeFormats = isPlainObject(options.datetimeFormats) ? options.datetimeFormats : createResources(_locale);
  const numberFormats = isPlainObject(options.numberFormats) ? options.numberFormats : createResources(_locale);
  const modifiers = assign(create(), options.modifiers, getDefaultLinkedModifiers());
  const pluralRules = options.pluralRules || create();
  const missing = isFunction(options.missing) ? options.missing : null;
  const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true;
  const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true;
  const fallbackFormat = !!options.fallbackFormat;
  const unresolving = !!options.unresolving;
  const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null;
  const processor = isPlainObject(options.processor) ? options.processor : null;
  const warnHtmlMessage = isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true;
  const escapeParameter = !!options.escapeParameter;
  const messageCompiler = isFunction(options.messageCompiler) ? options.messageCompiler : _compiler;
  const messageResolver = isFunction(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue;
  const localeFallbacker = isFunction(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple;
  const fallbackContext = isObject(options.fallbackContext) ? options.fallbackContext : void 0;
  const internalOptions = options;
  const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : /* @__PURE__ */ new Map();
  const __numberFormatters = isObject(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : /* @__PURE__ */ new Map();
  const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};
  _cid++;
  const context = {
    version,
    cid: _cid,
    locale,
    fallbackLocale,
    messages,
    modifiers,
    pluralRules,
    missing,
    missingWarn,
    fallbackWarn,
    fallbackFormat,
    unresolving,
    postTranslation,
    processor,
    warnHtmlMessage,
    escapeParameter,
    messageCompiler,
    messageResolver,
    localeFallbacker,
    fallbackContext,
    onWarn,
    __meta
  };
  {
    context.datetimeFormats = datetimeFormats;
    context.numberFormats = numberFormats;
    context.__datetimeFormatters = __datetimeFormatters;
    context.__numberFormatters = __numberFormatters;
  }
  return context;
}
const createResources = (locale) => ({ [locale]: create() });
function handleMissing(context, key, locale, missingWarn, type) {
  const { missing, onWarn } = context;
  if (missing !== null) {
    const ret = missing(context, locale, key, type);
    return isString(ret) ? ret : key;
  } else {
    return key;
  }
}
function updateFallbackLocale(ctx, locale, fallback) {
  const context = ctx;
  context.__localeChainCache = /* @__PURE__ */ new Map();
  ctx.localeFallbacker(ctx, fallback, locale);
}
function isAlmostSameLocale(locale, compareLocale) {
  if (locale === compareLocale)
    return false;
  return locale.split("-")[0] === compareLocale.split("-")[0];
}
function isImplicitFallback(targetLocale, locales) {
  const index = locales.indexOf(targetLocale);
  if (index === -1) {
    return false;
  }
  for (let i = index + 1; i < locales.length; i++) {
    if (isAlmostSameLocale(targetLocale, locales[i])) {
      return true;
    }
  }
  return false;
}
function datetime(context, ...args) {
  const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;
  const { __datetimeFormatters } = context;
  const [key, value, options, overrides] = parseDateTimeArgs(...args);
  const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn;
  isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;
  const part = !!options.part;
  const locale = getLocale(context, options);
  const locales = localeFallbacker(
    context,
    // eslint-disable-line @typescript-eslint/no-explicit-any
    fallbackLocale,
    locale
  );
  if (!isString(key) || key === "") {
    return new Intl.DateTimeFormat(locale, overrides).format(value);
  }
  let datetimeFormat = {};
  let targetLocale;
  let format2 = null;
  const type = "datetime format";
  for (let i = 0; i < locales.length; i++) {
    targetLocale = locales[i];
    datetimeFormat = datetimeFormats[targetLocale] || {};
    format2 = datetimeFormat[key];
    if (isPlainObject(format2))
      break;
    handleMissing(context, key, targetLocale, missingWarn, type);
  }
  if (!isPlainObject(format2) || !isString(targetLocale)) {
    return unresolving ? NOT_REOSLVED : key;
  }
  let id = `${targetLocale}__${key}`;
  if (!isEmptyObject(overrides)) {
    id = `${id}__${JSON.stringify(overrides)}`;
  }
  let formatter = __datetimeFormatters.get(id);
  if (!formatter) {
    formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format2, overrides));
    __datetimeFormatters.set(id, formatter);
  }
  return !part ? formatter.format(value) : formatter.formatToParts(value);
}
const DATETIME_FORMAT_OPTIONS_KEYS = [
  "localeMatcher",
  "weekday",
  "era",
  "year",
  "month",
  "day",
  "hour",
  "minute",
  "second",
  "timeZoneName",
  "formatMatcher",
  "hour12",
  "timeZone",
  "dateStyle",
  "timeStyle",
  "calendar",
  "dayPeriod",
  "numberingSystem",
  "hourCycle",
  "fractionalSecondDigits"
];
function parseDateTimeArgs(...args) {
  const [arg1, arg2, arg3, arg4] = args;
  const options = create();
  let overrides = create();
  let value;
  if (isString(arg1)) {
    const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);
    if (!matches) {
      throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);
    }
    const dateTime = matches[3] ? matches[3].trim().startsWith("T") ? `${matches[1].trim()}${matches[3].trim()}` : `${matches[1].trim()}T${matches[3].trim()}` : matches[1].trim();
    value = new Date(dateTime);
    try {
      value.toISOString();
    } catch {
      throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);
    }
  } else if (isDate(arg1)) {
    if (isNaN(arg1.getTime())) {
      throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);
    }
    value = arg1;
  } else if (isNumber(arg1)) {
    value = arg1;
  } else {
    throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);
  }
  if (isString(arg2)) {
    options.key = arg2;
  } else if (isPlainObject(arg2)) {
    Object.keys(arg2).forEach((key) => {
      if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {
        overrides[key] = arg2[key];
      } else {
        options[key] = arg2[key];
      }
    });
  }
  if (isString(arg3)) {
    options.locale = arg3;
  } else if (isPlainObject(arg3)) {
    overrides = arg3;
  }
  if (isPlainObject(arg4)) {
    overrides = arg4;
  }
  return [options.key || "", value, options, overrides];
}
function clearDateTimeFormat(ctx, locale, format2) {
  const context = ctx;
  for (const key in format2) {
    const id = `${locale}__${key}`;
    if (!context.__datetimeFormatters.has(id)) {
      continue;
    }
    context.__datetimeFormatters.delete(id);
  }
}
function number(context, ...args) {
  const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;
  const { __numberFormatters } = context;
  const [key, value, options, overrides] = parseNumberArgs(...args);
  const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn;
  isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;
  const part = !!options.part;
  const locale = getLocale(context, options);
  const locales = localeFallbacker(
    context,
    // eslint-disable-line @typescript-eslint/no-explicit-any
    fallbackLocale,
    locale
  );
  if (!isString(key) || key === "") {
    return new Intl.NumberFormat(locale, overrides).format(value);
  }
  let numberFormat = {};
  let targetLocale;
  let format2 = null;
  const type = "number format";
  for (let i = 0; i < locales.length; i++) {
    targetLocale = locales[i];
    numberFormat = numberFormats[targetLocale] || {};
    format2 = numberFormat[key];
    if (isPlainObject(format2))
      break;
    handleMissing(context, key, targetLocale, missingWarn, type);
  }
  if (!isPlainObject(format2) || !isString(targetLocale)) {
    return unresolving ? NOT_REOSLVED : key;
  }
  let id = `${targetLocale}__${key}`;
  if (!isEmptyObject(overrides)) {
    id = `${id}__${JSON.stringify(overrides)}`;
  }
  let formatter = __numberFormatters.get(id);
  if (!formatter) {
    formatter = new Intl.NumberFormat(targetLocale, assign({}, format2, overrides));
    __numberFormatters.set(id, formatter);
  }
  return !part ? formatter.format(value) : formatter.formatToParts(value);
}
const NUMBER_FORMAT_OPTIONS_KEYS = [
  "localeMatcher",
  "style",
  "currency",
  "currencyDisplay",
  "currencySign",
  "useGrouping",
  "minimumIntegerDigits",
  "minimumFractionDigits",
  "maximumFractionDigits",
  "minimumSignificantDigits",
  "maximumSignificantDigits",
  "compactDisplay",
  "notation",
  "signDisplay",
  "unit",
  "unitDisplay",
  "roundingMode",
  "roundingPriority",
  "roundingIncrement",
  "trailingZeroDisplay"
];
function parseNumberArgs(...args) {
  const [arg1, arg2, arg3, arg4] = args;
  const options = create();
  let overrides = create();
  if (!isNumber(arg1)) {
    throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);
  }
  const value = arg1;
  if (isString(arg2)) {
    options.key = arg2;
  } else if (isPlainObject(arg2)) {
    Object.keys(arg2).forEach((key) => {
      if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {
        overrides[key] = arg2[key];
      } else {
        options[key] = arg2[key];
      }
    });
  }
  if (isString(arg3)) {
    options.locale = arg3;
  } else if (isPlainObject(arg3)) {
    overrides = arg3;
  }
  if (isPlainObject(arg4)) {
    overrides = arg4;
  }
  return [options.key || "", value, options, overrides];
}
function clearNumberFormat(ctx, locale, format2) {
  const context = ctx;
  for (const key in format2) {
    const id = `${locale}__${key}`;
    if (!context.__numberFormatters.has(id)) {
      continue;
    }
    context.__numberFormatters.delete(id);
  }
}
const DEFAULT_MODIFIER = (str) => str;
const DEFAULT_MESSAGE = (ctx) => "";
const DEFAULT_MESSAGE_DATA_TYPE = "text";
const DEFAULT_NORMALIZE = (values) => values.length === 0 ? "" : join(values);
const DEFAULT_INTERPOLATE = toDisplayString;
function pluralDefault(choice, choicesLength) {
  choice = Math.abs(choice);
  if (choicesLength === 2) {
    return choice ? choice > 1 ? 1 : 0 : 1;
  }
  return choice ? Math.min(choice, 2) : 0;
}
function getPluralIndex(options) {
  const index = isNumber(options.pluralIndex) ? options.pluralIndex : -1;
  return options.named && (isNumber(options.named.count) || isNumber(options.named.n)) ? isNumber(options.named.count) ? options.named.count : isNumber(options.named.n) ? options.named.n : index : index;
}
function normalizeNamed(pluralIndex, props) {
  if (!props.count) {
    props.count = pluralIndex;
  }
  if (!props.n) {
    props.n = pluralIndex;
  }
}
function createMessageContext(options = {}) {
  const locale = options.locale;
  const pluralIndex = getPluralIndex(options);
  const pluralRule = isObject(options.pluralRules) && isString(locale) && isFunction(options.pluralRules[locale]) ? options.pluralRules[locale] : pluralDefault;
  const orgPluralRule = isObject(options.pluralRules) && isString(locale) && isFunction(options.pluralRules[locale]) ? pluralDefault : void 0;
  const plural = (messages) => {
    return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];
  };
  const _list = options.list || [];
  const list = (index) => _list[index];
  const _named = options.named || create();
  isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);
  const named = (key) => _named[key];
  function message(key, useLinked) {
    const msg = isFunction(options.messages) ? options.messages(key, !!useLinked) : isObject(options.messages) ? options.messages[key] : false;
    return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg;
  }
  const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER;
  const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE;
  const interpolate = isPlainObject(options.processor) && isFunction(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE;
  const type = isPlainObject(options.processor) && isString(options.processor.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE;
  const linked = (key, ...args) => {
    const [arg1, arg2] = args;
    let type2 = "text";
    let modifier = "";
    if (args.length === 1) {
      if (isObject(arg1)) {
        modifier = arg1.modifier || modifier;
        type2 = arg1.type || type2;
      } else if (isString(arg1)) {
        modifier = arg1 || modifier;
      }
    } else if (args.length === 2) {
      if (isString(arg1)) {
        modifier = arg1 || modifier;
      }
      if (isString(arg2)) {
        type2 = arg2 || type2;
      }
    }
    const ret = message(key, true)(ctx);
    const msg = (
      // The message in vnode resolved with linked are returned as an array by processor.nomalize
      type2 === "vnode" && isArray(ret) && modifier ? ret[0] : ret
    );
    return modifier ? _modifier(modifier)(msg, type2) : msg;
  };
  const ctx = {
    [
      "list"
      /* HelperNameMap.LIST */
    ]: list,
    [
      "named"
      /* HelperNameMap.NAMED */
    ]: named,
    [
      "plural"
      /* HelperNameMap.PLURAL */
    ]: plural,
    [
      "linked"
      /* HelperNameMap.LINKED */
    ]: linked,
    [
      "message"
      /* HelperNameMap.MESSAGE */
    ]: message,
    [
      "type"
      /* HelperNameMap.TYPE */
    ]: type,
    [
      "interpolate"
      /* HelperNameMap.INTERPOLATE */
    ]: interpolate,
    [
      "normalize"
      /* HelperNameMap.NORMALIZE */
    ]: normalize,
    [
      "values"
      /* HelperNameMap.VALUES */
    ]: assign(create(), _list, _named)
  };
  return ctx;
}
const NOOP_MESSAGE_FUNCTION = () => "";
const isMessageFunction = (val) => isFunction(val);
function translate(context, ...args) {
  const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;
  const [key, options] = parseTranslateArgs(...args);
  const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn;
  const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;
  const escapeParameter = isBoolean(options.escapeParameter) ? options.escapeParameter : context.escapeParameter;
  const resolvedMessage = !!options.resolvedMessage;
  const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) ? !isBoolean(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat ? !messageCompiler ? () => key : key : null;
  const enableDefaultMsg = fallbackFormat || defaultMsgOrKey != null && (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey));
  const locale = getLocale(context, options);
  escapeParameter && escapeParams(options);
  let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) : [
    key,
    locale,
    messages[locale] || create()
  ];
  let format2 = formatScope;
  let cacheBaseKey = key;
  if (!resolvedMessage && !(isString(format2) || isMessageAST(format2) || isMessageFunction(format2))) {
    if (enableDefaultMsg) {
      format2 = defaultMsgOrKey;
      cacheBaseKey = format2;
    }
  }
  if (!resolvedMessage && (!(isString(format2) || isMessageAST(format2) || isMessageFunction(format2)) || !isString(targetLocale))) {
    return unresolving ? NOT_REOSLVED : key;
  }
  let occurred = false;
  const onError = () => {
    occurred = true;
  };
  const msg = !isMessageFunction(format2) ? compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) : format2;
  if (occurred) {
    return format2;
  }
  const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);
  const msgContext = createMessageContext(ctxOptions);
  const messaged = evaluateMessage(context, msg, msgContext);
  let ret = postTranslation ? postTranslation(messaged, key) : messaged;
  if (escapeParameter && isString(ret)) {
    ret = sanitizeTranslatedHtml(ret);
  }
  return ret;
}
function escapeParams(options) {
  if (isArray(options.list)) {
    options.list = options.list.map((item) => isString(item) ? escapeHtml(item) : item);
  } else if (isObject(options.named)) {
    Object.keys(options.named).forEach((key) => {
      if (isString(options.named[key])) {
        options.named[key] = escapeHtml(options.named[key]);
      }
    });
  }
}
function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {
  const { messages, onWarn, messageResolver: resolveValue2, localeFallbacker } = context;
  const locales = localeFallbacker(context, fallbackLocale, locale);
  let message = create();
  let targetLocale;
  let format2 = null;
  const type = "translate";
  for (let i = 0; i < locales.length; i++) {
    targetLocale = locales[i];
    message = messages[targetLocale] || create();
    if ((format2 = resolveValue2(message, key)) === null) {
      format2 = message[key];
    }
    if (isString(format2) || isMessageAST(format2) || isMessageFunction(format2)) {
      break;
    }
    if (!isImplicitFallback(targetLocale, locales)) {
      const missingRet = handleMissing(
        context,
        // eslint-disable-line @typescript-eslint/no-explicit-any
        key,
        targetLocale,
        missingWarn,
        type
      );
      if (missingRet !== key) {
        format2 = missingRet;
      }
    }
  }
  return [format2, targetLocale, message];
}
function compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) {
  const { messageCompiler, warnHtmlMessage } = context;
  if (isMessageFunction(format2)) {
    const msg2 = format2;
    msg2.locale = msg2.locale || targetLocale;
    msg2.key = msg2.key || key;
    return msg2;
  }
  if (messageCompiler == null) {
    const msg2 = () => format2;
    msg2.locale = targetLocale;
    msg2.key = key;
    return msg2;
  }
  const msg = messageCompiler(format2, getCompileContext(context, targetLocale, cacheBaseKey, format2, warnHtmlMessage, onError));
  msg.locale = targetLocale;
  msg.key = key;
  msg.source = format2;
  return msg;
}
function evaluateMessage(context, msg, msgCtx) {
  const messaged = msg(msgCtx);
  return messaged;
}
function parseTranslateArgs(...args) {
  const [arg1, arg2, arg3] = args;
  const options = create();
  if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) {
    throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);
  }
  const key = isNumber(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1;
  if (isNumber(arg2)) {
    options.plural = arg2;
  } else if (isString(arg2)) {
    options.default = arg2;
  } else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {
    options.named = arg2;
  } else if (isArray(arg2)) {
    options.list = arg2;
  }
  if (isNumber(arg3)) {
    options.plural = arg3;
  } else if (isString(arg3)) {
    options.default = arg3;
  } else if (isPlainObject(arg3)) {
    assign(options, arg3);
  }
  return [key, options];
}
function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {
  return {
    locale,
    key,
    warnHtmlMessage,
    onError: (err) => {
      onError && onError(err);
      {
        throw err;
      }
    },
    onCacheKey: (source2) => generateFormatCacheKey(locale, key, source2)
  };
}
function getMessageContextOptions(context, locale, message, options) {
  const { modifiers, pluralRules, messageResolver: resolveValue2, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;
  const resolveMessage = (key, useLinked) => {
    let val = resolveValue2(message, key);
    if (val == null && (fallbackContext || useLinked)) {
      const [, , message2] = resolveMessageFormat(
        fallbackContext || context,
        // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context
        key,
        locale,
        fallbackLocale,
        fallbackWarn,
        missingWarn
      );
      val = resolveValue2(message2, key);
    }
    if (isString(val) || isMessageAST(val)) {
      let occurred = false;
      const onError = () => {
        occurred = true;
      };
      const msg = compileMessageFormat(context, key, locale, val, key, onError);
      return !occurred ? msg : NOOP_MESSAGE_FUNCTION;
    } else if (isMessageFunction(val)) {
      return val;
    } else {
      return NOOP_MESSAGE_FUNCTION;
    }
  };
  const ctxOptions = {
    locale,
    modifiers,
    pluralRules,
    messages: resolveMessage
  };
  if (context.processor) {
    ctxOptions.processor = context.processor;
  }
  if (options.list) {
    ctxOptions.list = options.list;
  }
  if (options.named) {
    ctxOptions.named = options.named;
  }
  if (isNumber(options.plural)) {
    ctxOptions.pluralIndex = options.plural;
  }
  return ctxOptions;
}
/*!
  * vue-i18n v10.0.8
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
const VERSION = "10.0.8";
const I18nErrorCodes = {
  // composer module errors
  UNEXPECTED_RETURN_TYPE: CORE_ERROR_CODES_EXTEND_POINT,
  // 24
  // legacy module errors
  INVALID_ARGUMENT: 25,
  // i18n module errors
  MUST_BE_CALL_SETUP_TOP: 26,
  NOT_INSTALLED: 27,
  // directive module errors
  REQUIRED_VALUE: 28,
  INVALID_VALUE: 29,
  NOT_INSTALLED_WITH_PROVIDE: 31,
  // unexpected error
  UNEXPECTED_ERROR: 32};
function createI18nError(code, ...args) {
  return createCompileError(code, null, void 0);
}
const TranslateVNodeSymbol = /* @__PURE__ */ makeSymbol("__translateVNode");
const DatetimePartsSymbol = /* @__PURE__ */ makeSymbol("__datetimeParts");
const NumberPartsSymbol = /* @__PURE__ */ makeSymbol("__numberParts");
const SetPluralRulesSymbol = makeSymbol("__setPluralRules");
const InejctWithOptionSymbol = /* @__PURE__ */ makeSymbol("__injectWithOption");
const DisposeSymbol = /* @__PURE__ */ makeSymbol("__dispose");
function handleFlatJson(obj) {
  if (!isObject(obj)) {
    return obj;
  }
  if (isMessageAST(obj)) {
    return obj;
  }
  for (const key in obj) {
    if (!hasOwn(obj, key)) {
      continue;
    }
    if (!key.includes(".")) {
      if (isObject(obj[key])) {
        handleFlatJson(obj[key]);
      }
    } else {
      const subKeys = key.split(".");
      const lastIndex = subKeys.length - 1;
      let currentObj = obj;
      let hasStringValue = false;
      for (let i = 0; i < lastIndex; i++) {
        if (subKeys[i] === "__proto__") {
          throw new Error(`unsafe key: ${subKeys[i]}`);
        }
        if (!(subKeys[i] in currentObj)) {
          currentObj[subKeys[i]] = create();
        }
        if (!isObject(currentObj[subKeys[i]])) {
          hasStringValue = true;
          break;
        }
        currentObj = currentObj[subKeys[i]];
      }
      if (!hasStringValue) {
        if (!isMessageAST(currentObj)) {
          currentObj[subKeys[lastIndex]] = obj[key];
          delete obj[key];
        } else {
          if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) {
            delete obj[key];
          }
        }
      }
      if (!isMessageAST(currentObj)) {
        const target = currentObj[subKeys[lastIndex]];
        if (isObject(target)) {
          handleFlatJson(target);
        }
      }
    }
  }
  return obj;
}
function getLocaleMessages(locale, options) {
  const { messages, __i18n, messageResolver, flatJson } = options;
  const ret = isPlainObject(messages) ? messages : isArray(__i18n) ? create() : { [locale]: create() };
  if (isArray(__i18n)) {
    __i18n.forEach((custom) => {
      if ("locale" in custom && "resource" in custom) {
        const { locale: locale2, resource } = custom;
        if (locale2) {
          ret[locale2] = ret[locale2] || create();
          deepCopy(resource, ret[locale2]);
        } else {
          deepCopy(resource, ret);
        }
      } else {
        isString(custom) && deepCopy(JSON.parse(custom), ret);
      }
    });
  }
  if (messageResolver == null && flatJson) {
    for (const key in ret) {
      if (hasOwn(ret, key)) {
        handleFlatJson(ret[key]);
      }
    }
  }
  return ret;
}
function getComponentOptions(instance) {
  return instance.type;
}
function adjustI18nResources(gl, options, componentOptions) {
  let messages = isObject(options.messages) ? options.messages : create();
  if ("__i18nGlobal" in componentOptions) {
    messages = getLocaleMessages(gl.locale.value, {
      messages,
      __i18n: componentOptions.__i18nGlobal
    });
  }
  const locales = Object.keys(messages);
  if (locales.length) {
    locales.forEach((locale) => {
      gl.mergeLocaleMessage(locale, messages[locale]);
    });
  }
  {
    if (isObject(options.datetimeFormats)) {
      const locales2 = Object.keys(options.datetimeFormats);
      if (locales2.length) {
        locales2.forEach((locale) => {
          gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);
        });
      }
    }
    if (isObject(options.numberFormats)) {
      const locales2 = Object.keys(options.numberFormats);
      if (locales2.length) {
        locales2.forEach((locale) => {
          gl.mergeNumberFormat(locale, options.numberFormats[locale]);
        });
      }
    }
  }
}
function createTextNode(key) {
  return createVNode(Text, null, key, 0);
}
const DEVTOOLS_META = "__INTLIFY_META__";
const NOOP_RETURN_ARRAY = () => [];
const NOOP_RETURN_FALSE = () => false;
let composerID = 0;
function defineCoreMissingHandler(missing) {
  return (ctx, locale, key, type) => {
    return missing(locale, key, getCurrentInstance() || void 0, type);
  };
}
const getMetaInfo = /* @__NO_SIDE_EFFECTS__ */ () => {
  const instance = getCurrentInstance();
  let meta = null;
  return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) ? { [DEVTOOLS_META]: meta } : null;
};
function createComposer(options = {}) {
  const { __root, __injectWithOption } = options;
  const _isGlobal = __root === void 0;
  const flatJson = options.flatJson;
  const _ref = shallowRef;
  let _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : true;
  const _locale = _ref(
    // prettier-ignore
    __root && _inheritLocale ? __root.locale.value : isString(options.locale) ? options.locale : DEFAULT_LOCALE
  );
  const _fallbackLocale = _ref(
    // prettier-ignore
    __root && _inheritLocale ? __root.fallbackLocale.value : isString(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value
  );
  const _messages = _ref(getLocaleMessages(_locale.value, options));
  const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} });
  const _numberFormats = _ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} });
  let _missingWarn = __root ? __root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true;
  let _fallbackWarn = __root ? __root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true;
  let _fallbackRoot = __root ? __root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true;
  let _fallbackFormat = !!options.fallbackFormat;
  let _missing = isFunction(options.missing) ? options.missing : null;
  let _runtimeMissing = isFunction(options.missing) ? defineCoreMissingHandler(options.missing) : null;
  let _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null;
  let _warnHtmlMessage = __root ? __root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true;
  let _escapeParameter = !!options.escapeParameter;
  const _modifiers = __root ? __root.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {};
  let _pluralRules = options.pluralRules || __root && __root.pluralRules;
  let _context;
  const getCoreContext = () => {
    _isGlobal && setFallbackContext(null);
    const ctxOptions = {
      version: VERSION,
      locale: _locale.value,
      fallbackLocale: _fallbackLocale.value,
      messages: _messages.value,
      modifiers: _modifiers,
      pluralRules: _pluralRules,
      missing: _runtimeMissing === null ? void 0 : _runtimeMissing,
      missingWarn: _missingWarn,
      fallbackWarn: _fallbackWarn,
      fallbackFormat: _fallbackFormat,
      unresolving: true,
      postTranslation: _postTranslation === null ? void 0 : _postTranslation,
      warnHtmlMessage: _warnHtmlMessage,
      escapeParameter: _escapeParameter,
      messageResolver: options.messageResolver,
      messageCompiler: options.messageCompiler,
      __meta: { framework: "vue" }
    };
    {
      ctxOptions.datetimeFormats = _datetimeFormats.value;
      ctxOptions.numberFormats = _numberFormats.value;
      ctxOptions.__datetimeFormatters = isPlainObject(_context) ? _context.__datetimeFormatters : void 0;
      ctxOptions.__numberFormatters = isPlainObject(_context) ? _context.__numberFormatters : void 0;
    }
    const ctx = createCoreContext(ctxOptions);
    _isGlobal && setFallbackContext(ctx);
    return ctx;
  };
  _context = getCoreContext();
  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);
  function trackReactivityValues() {
    return [
      _locale.value,
      _fallbackLocale.value,
      _messages.value,
      _datetimeFormats.value,
      _numberFormats.value
    ];
  }
  const locale = computed({
    get: () => _locale.value,
    set: (val) => {
      _locale.value = val;
      _context.locale = _locale.value;
    }
  });
  const fallbackLocale = computed({
    get: () => _fallbackLocale.value,
    set: (val) => {
      _fallbackLocale.value = val;
      _context.fallbackLocale = _fallbackLocale.value;
      updateFallbackLocale(_context, _locale.value, val);
    }
  });
  const messages = computed(() => _messages.value);
  const datetimeFormats = /* @__PURE__ */ computed(() => _datetimeFormats.value);
  const numberFormats = /* @__PURE__ */ computed(() => _numberFormats.value);
  function getPostTranslationHandler() {
    return isFunction(_postTranslation) ? _postTranslation : null;
  }
  function setPostTranslationHandler(handler) {
    _postTranslation = handler;
    _context.postTranslation = handler;
  }
  function getMissingHandler() {
    return _missing;
  }
  function setMissingHandler(handler) {
    if (handler !== null) {
      _runtimeMissing = defineCoreMissingHandler(handler);
    }
    _missing = handler;
    _context.missing = _runtimeMissing;
  }
  const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {
    trackReactivityValues();
    let ret;
    try {
      if ("production" !== "production" || false) ;
      if (!_isGlobal) {
        _context.fallbackContext = __root ? getFallbackContext() : void 0;
      }
      ret = fn(_context);
    } finally {
      if (!_isGlobal) {
        _context.fallbackContext = void 0;
      }
    }
    if (warnType !== "translate exists" && // for not `te` (e.g `t`)
    isNumber(ret) && ret === NOT_REOSLVED || warnType === "translate exists" && !ret) {
      const [key, arg2] = argumentParser();
      return __root && _fallbackRoot ? fallbackSuccess(__root) : fallbackFail(key);
    } else if (successCondition(ret)) {
      return ret;
    } else {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);
    }
  };
  function t(...args) {
    return wrapWithDeps((context) => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), "translate", (root) => Reflect.apply(root.t, root, [...args]), (key) => key, (val) => isString(val));
  }
  function rt(...args) {
    const [arg1, arg2, arg3] = args;
    if (arg3 && !isObject(arg3)) {
      throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);
    }
    return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);
  }
  function d(...args) {
    return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString(val));
  }
  function n(...args) {
    return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString(val));
  }
  function normalize(values) {
    return values.map((val) => isString(val) || isNumber(val) || isBoolean(val) ? createTextNode(String(val)) : val);
  }
  const interpolate = (val) => val;
  const processor = {
    normalize,
    interpolate,
    type: "vnode"
  };
  function translateVNode(...args) {
    return wrapWithDeps((context) => {
      let ret;
      const _context2 = context;
      try {
        _context2.processor = processor;
        ret = Reflect.apply(translate, null, [_context2, ...args]);
      } finally {
        _context2.processor = null;
      }
      return ret;
    }, () => parseTranslateArgs(...args), "translate", (root) => root[TranslateVNodeSymbol](...args), (key) => [createTextNode(key)], (val) => isArray(val));
  }
  function numberParts(...args) {
    return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString(val) || isArray(val));
  }
  function datetimeParts(...args) {
    return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString(val) || isArray(val));
  }
  function setPluralRules(rules) {
    _pluralRules = rules;
    _context.pluralRules = _pluralRules;
  }
  function te(key, locale2) {
    return wrapWithDeps(() => {
      if (!key) {
        return false;
      }
      const targetLocale = isString(locale2) ? locale2 : _locale.value;
      const message = getLocaleMessage(targetLocale);
      const resolved = _context.messageResolver(message, key);
      return isMessageAST(resolved) || isMessageFunction(resolved) || isString(resolved);
    }, () => [key], "translate exists", (root) => {
      return Reflect.apply(root.te, root, [key, locale2]);
    }, NOOP_RETURN_FALSE, (val) => isBoolean(val));
  }
  function resolveMessages(key) {
    let messages2 = null;
    const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);
    for (let i = 0; i < locales.length; i++) {
      const targetLocaleMessages = _messages.value[locales[i]] || {};
      const messageValue = _context.messageResolver(targetLocaleMessages, key);
      if (messageValue != null) {
        messages2 = messageValue;
        break;
      }
    }
    return messages2;
  }
  function tm(key) {
    const messages2 = resolveMessages(key);
    return messages2 != null ? messages2 : __root ? __root.tm(key) || {} : {};
  }
  function getLocaleMessage(locale2) {
    return _messages.value[locale2] || {};
  }
  function setLocaleMessage(locale2, message) {
    if (flatJson) {
      const _message = { [locale2]: message };
      for (const key in _message) {
        if (hasOwn(_message, key)) {
          handleFlatJson(_message[key]);
        }
      }
      message = _message[locale2];
    }
    _messages.value[locale2] = message;
    _context.messages = _messages.value;
  }
  function mergeLocaleMessage(locale2, message) {
    _messages.value[locale2] = _messages.value[locale2] || {};
    const _message = { [locale2]: message };
    if (flatJson) {
      for (const key in _message) {
        if (hasOwn(_message, key)) {
          handleFlatJson(_message[key]);
        }
      }
    }
    message = _message[locale2];
    deepCopy(message, _messages.value[locale2]);
    _context.messages = _messages.value;
  }
  function getDateTimeFormat(locale2) {
    return _datetimeFormats.value[locale2] || {};
  }
  function setDateTimeFormat(locale2, format2) {
    _datetimeFormats.value[locale2] = format2;
    _context.datetimeFormats = _datetimeFormats.value;
    clearDateTimeFormat(_context, locale2, format2);
  }
  function mergeDateTimeFormat(locale2, format2) {
    _datetimeFormats.value[locale2] = assign(_datetimeFormats.value[locale2] || {}, format2);
    _context.datetimeFormats = _datetimeFormats.value;
    clearDateTimeFormat(_context, locale2, format2);
  }
  function getNumberFormat(locale2) {
    return _numberFormats.value[locale2] || {};
  }
  function setNumberFormat(locale2, format2) {
    _numberFormats.value[locale2] = format2;
    _context.numberFormats = _numberFormats.value;
    clearNumberFormat(_context, locale2, format2);
  }
  function mergeNumberFormat(locale2, format2) {
    _numberFormats.value[locale2] = assign(_numberFormats.value[locale2] || {}, format2);
    _context.numberFormats = _numberFormats.value;
    clearNumberFormat(_context, locale2, format2);
  }
  composerID++;
  const composer = {
    id: composerID,
    locale,
    fallbackLocale,
    get inheritLocale() {
      return _inheritLocale;
    },
    set inheritLocale(val) {
      _inheritLocale = val;
      if (val && __root) {
        _locale.value = __root.locale.value;
        _fallbackLocale.value = __root.fallbackLocale.value;
        updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);
      }
    },
    get availableLocales() {
      return Object.keys(_messages.value).sort();
    },
    messages,
    get modifiers() {
      return _modifiers;
    },
    get pluralRules() {
      return _pluralRules || {};
    },
    get isGlobal() {
      return _isGlobal;
    },
    get missingWarn() {
      return _missingWarn;
    },
    set missingWarn(val) {
      _missingWarn = val;
      _context.missingWarn = _missingWarn;
    },
    get fallbackWarn() {
      return _fallbackWarn;
    },
    set fallbackWarn(val) {
      _fallbackWarn = val;
      _context.fallbackWarn = _fallbackWarn;
    },
    get fallbackRoot() {
      return _fallbackRoot;
    },
    set fallbackRoot(val) {
      _fallbackRoot = val;
    },
    get fallbackFormat() {
      return _fallbackFormat;
    },
    set fallbackFormat(val) {
      _fallbackFormat = val;
      _context.fallbackFormat = _fallbackFormat;
    },
    get warnHtmlMessage() {
      return _warnHtmlMessage;
    },
    set warnHtmlMessage(val) {
      _warnHtmlMessage = val;
      _context.warnHtmlMessage = val;
    },
    get escapeParameter() {
      return _escapeParameter;
    },
    set escapeParameter(val) {
      _escapeParameter = val;
      _context.escapeParameter = val;
    },
    t,
    getLocaleMessage,
    setLocaleMessage,
    mergeLocaleMessage,
    getPostTranslationHandler,
    setPostTranslationHandler,
    getMissingHandler,
    setMissingHandler,
    [SetPluralRulesSymbol]: setPluralRules
  };
  {
    composer.datetimeFormats = datetimeFormats;
    composer.numberFormats = numberFormats;
    composer.rt = rt;
    composer.te = te;
    composer.tm = tm;
    composer.d = d;
    composer.n = n;
    composer.getDateTimeFormat = getDateTimeFormat;
    composer.setDateTimeFormat = setDateTimeFormat;
    composer.mergeDateTimeFormat = mergeDateTimeFormat;
    composer.getNumberFormat = getNumberFormat;
    composer.setNumberFormat = setNumberFormat;
    composer.mergeNumberFormat = mergeNumberFormat;
    composer[InejctWithOptionSymbol] = __injectWithOption;
    composer[TranslateVNodeSymbol] = translateVNode;
    composer[DatetimePartsSymbol] = datetimeParts;
    composer[NumberPartsSymbol] = numberParts;
  }
  return composer;
}
const baseFormatProps = {
  tag: {
    type: [String, Object]
  },
  locale: {
    type: String
  },
  scope: {
    type: String,
    // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050
    validator: (val) => val === "parent" || val === "global",
    default: "parent"
    /* ComponentI18nScope */
  },
  i18n: {
    type: Object
  }
};
function getInterpolateArg({ slots }, keys) {
  if (keys.length === 1 && keys[0] === "default") {
    const ret = slots.default ? slots.default() : [];
    return ret.reduce((slot, current) => {
      return [
        ...slot,
        // prettier-ignore
        ...current.type === Fragment ? current.children : [current]
      ];
    }, []);
  } else {
    return keys.reduce((arg, key) => {
      const slot = slots[key];
      if (slot) {
        arg[key] = slot();
      }
      return arg;
    }, create());
  }
}
function getFragmentableTag() {
  return Fragment;
}
const TranslationImpl = /* @__PURE__ */ defineComponent({
  /* eslint-disable */
  name: "i18n-t",
  props: assign({
    keypath: {
      type: String,
      required: true
    },
    plural: {
      type: [Number, String],
      validator: (val) => isNumber(val) || !isNaN(val)
    }
  }, baseFormatProps),
  /* eslint-enable */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  setup(props, context) {
    const { slots, attrs } = context;
    const i18n = props.i18n || useI18n({
      useScope: props.scope,
      __useComponent: true
    });
    return () => {
      const keys = Object.keys(slots).filter((key) => key !== "_");
      const options = create();
      if (props.locale) {
        options.locale = props.locale;
      }
      if (props.plural !== void 0) {
        options.plural = isString(props.plural) ? +props.plural : props.plural;
      }
      const arg = getInterpolateArg(context, keys);
      const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);
      const assignedAttrs = assign(create(), attrs);
      const tag = isString(props.tag) || isObject(props.tag) ? props.tag : getFragmentableTag();
      return h(tag, assignedAttrs, children);
    };
  }
});
const Translation = TranslationImpl;
function isVNode(target) {
  return isArray(target) && !isString(target[0]);
}
function renderFormatter(props, context, slotKeys, partFormatter) {
  const { slots, attrs } = context;
  return () => {
    const options = { part: true };
    let overrides = create();
    if (props.locale) {
      options.locale = props.locale;
    }
    if (isString(props.format)) {
      options.key = props.format;
    } else if (isObject(props.format)) {
      if (isString(props.format.key)) {
        options.key = props.format.key;
      }
      overrides = Object.keys(props.format).reduce((options2, prop) => {
        return slotKeys.includes(prop) ? assign(create(), options2, { [prop]: props.format[prop] }) : options2;
      }, create());
    }
    const parts = partFormatter(...[props.value, options, overrides]);
    let children = [options.key];
    if (isArray(parts)) {
      children = parts.map((part, index) => {
        const slot = slots[part.type];
        const node = slot ? slot({ [part.type]: part.value, index, parts }) : [part.value];
        if (isVNode(node)) {
          node[0].key = `${part.type}-${index}`;
        }
        return node;
      });
    } else if (isString(parts)) {
      children = [parts];
    }
    const assignedAttrs = assign(create(), attrs);
    const tag = isString(props.tag) || isObject(props.tag) ? props.tag : getFragmentableTag();
    return h(tag, assignedAttrs, children);
  };
}
const NumberFormatImpl = /* @__PURE__ */ defineComponent({
  /* eslint-disable */
  name: "i18n-n",
  props: assign({
    value: {
      type: Number,
      required: true
    },
    format: {
      type: [String, Object]
    }
  }, baseFormatProps),
  /* eslint-enable */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  setup(props, context) {
    const i18n = props.i18n || useI18n({
      useScope: props.scope,
      __useComponent: true
    });
    return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => (
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      i18n[NumberPartsSymbol](...args)
    ));
  }
});
const NumberFormat = NumberFormatImpl;
const DatetimeFormatImpl = /* @__PURE__ */ defineComponent({
  /* eslint-disable */
  name: "i18n-d",
  props: assign({
    value: {
      type: [Number, Date],
      required: true
    },
    format: {
      type: [String, Object]
    }
  }, baseFormatProps),
  /* eslint-enable */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  setup(props, context) {
    const i18n = props.i18n || useI18n({
      useScope: props.scope,
      __useComponent: true
    });
    return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => (
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      i18n[DatetimePartsSymbol](...args)
    ));
  }
});
const DatetimeFormat = DatetimeFormatImpl;
function getComposer$1(i18n, instance) {
  const i18nInternal = i18n;
  if (i18n.mode === "composition") {
    return i18nInternal.__getInstance(instance) || i18n.global;
  } else {
    const vueI18n = i18nInternal.__getInstance(instance);
    return vueI18n != null ? vueI18n.__composer : i18n.global.__composer;
  }
}
function vTDirective(i18n) {
  const _process = (binding) => {
    const { instance, value } = binding;
    if (!instance || !instance.$) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    const composer = getComposer$1(i18n, instance.$);
    const parsedValue = parseValue(value);
    return [
      Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),
      composer
    ];
  };
  const register = (el, binding) => {
    const [textContent, composer] = _process(binding);
    el.__composer = composer;
    el.textContent = textContent;
  };
  const unregister = (el) => {
    if (el.__composer) {
      el.__composer = void 0;
      delete el.__composer;
    }
  };
  const update = (el, { value }) => {
    if (el.__composer) {
      const composer = el.__composer;
      const parsedValue = parseValue(value);
      el.textContent = Reflect.apply(composer.t, composer, [
        ...makeParams(parsedValue)
      ]);
    }
  };
  const getSSRProps = (binding) => {
    const [textContent] = _process(binding);
    return { textContent };
  };
  return {
    created: register,
    unmounted: unregister,
    beforeUpdate: update,
    getSSRProps
  };
}
function parseValue(value) {
  if (isString(value)) {
    return { path: value };
  } else if (isPlainObject(value)) {
    if (!("path" in value)) {
      throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, "path");
    }
    return value;
  } else {
    throw createI18nError(I18nErrorCodes.INVALID_VALUE);
  }
}
function makeParams(value) {
  const { path, locale, args, choice, plural } = value;
  const options = {};
  const named = args || {};
  if (isString(locale)) {
    options.locale = locale;
  }
  if (isNumber(choice)) {
    options.plural = choice;
  }
  if (isNumber(plural)) {
    options.plural = plural;
  }
  return [path, named, options];
}
function apply(app, i18n, ...options) {
  const pluginOptions = isPlainObject(options[0]) ? options[0] : {};
  const globalInstall = isBoolean(pluginOptions.globalInstall) ? pluginOptions.globalInstall : true;
  if (globalInstall) {
    [Translation.name, "I18nT"].forEach((name) => app.component(name, Translation));
    [NumberFormat.name, "I18nN"].forEach((name) => app.component(name, NumberFormat));
    [DatetimeFormat.name, "I18nD"].forEach((name) => app.component(name, DatetimeFormat));
  }
  {
    app.directive("t", vTDirective(i18n));
  }
}
const I18nInjectionKey = /* @__PURE__ */ makeSymbol("global-vue-i18n");
function createI18n(options = {}, VueI18nLegacy) {
  const __globalInjection = isBoolean(options.globalInjection) ? options.globalInjection : true;
  const __instances = /* @__PURE__ */ new Map();
  const [globalScope, __global] = createGlobal(options);
  const symbol = /* @__PURE__ */ makeSymbol("");
  function __getInstance(component) {
    return __instances.get(component) || null;
  }
  function __setInstance(component, instance) {
    __instances.set(component, instance);
  }
  function __deleteInstance(component) {
    __instances.delete(component);
  }
  const i18n = {
    // mode
    get mode() {
      return "composition";
    },
    // install plugin
    async install(app, ...options2) {
      app.__VUE_I18N_SYMBOL__ = symbol;
      app.provide(app.__VUE_I18N_SYMBOL__, i18n);
      if (isPlainObject(options2[0])) {
        const opts = options2[0];
        i18n.__composerExtend = opts.__composerExtend;
        i18n.__vueI18nExtend = opts.__vueI18nExtend;
      }
      let globalReleaseHandler = null;
      if (__globalInjection) {
        globalReleaseHandler = injectGlobalFields(app, i18n.global);
      }
      {
        apply(app, i18n, ...options2);
      }
      const unmountApp = app.unmount;
      app.unmount = () => {
        globalReleaseHandler && globalReleaseHandler();
        i18n.dispose();
        unmountApp();
      };
    },
    // global accessor
    get global() {
      return __global;
    },
    dispose() {
      globalScope.stop();
    },
    // @internal
    __instances,
    // @internal
    __getInstance,
    // @internal
    __setInstance,
    // @internal
    __deleteInstance
  };
  return i18n;
}
function useI18n(options = {}) {
  const instance = getCurrentInstance();
  if (instance == null) {
    throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);
  }
  if (!instance.isCE && instance.appContext.app != null && !instance.appContext.app.__VUE_I18N_SYMBOL__) {
    throw createI18nError(I18nErrorCodes.NOT_INSTALLED);
  }
  const i18n = getI18nInstance(instance);
  const gl = getGlobalComposer(i18n);
  const componentOptions = getComponentOptions(instance);
  const scope = getScope(options, componentOptions);
  if (scope === "global") {
    adjustI18nResources(gl, options, componentOptions);
    return gl;
  }
  if (scope === "parent") {
    let composer2 = getComposer(i18n, instance, options.__useComponent);
    if (composer2 == null) {
      composer2 = gl;
    }
    return composer2;
  }
  const i18nInternal = i18n;
  let composer = i18nInternal.__getInstance(instance);
  if (composer == null) {
    const composerOptions = assign({}, options);
    if ("__i18n" in componentOptions) {
      composerOptions.__i18n = componentOptions.__i18n;
    }
    if (gl) {
      composerOptions.__root = gl;
    }
    composer = createComposer(composerOptions);
    if (i18nInternal.__composerExtend) {
      composer[DisposeSymbol] = i18nInternal.__composerExtend(composer);
    }
    i18nInternal.__setInstance(instance, composer);
  }
  return composer;
}
function createGlobal(options, legacyMode, VueI18nLegacy) {
  const scope = effectScope();
  const obj = scope.run(() => createComposer(options));
  if (obj == null) {
    throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
  }
  return [scope, obj];
}
function getI18nInstance(instance) {
  const i18n = inject(!instance.isCE ? instance.appContext.app.__VUE_I18N_SYMBOL__ : I18nInjectionKey);
  if (!i18n) {
    throw createI18nError(!instance.isCE ? I18nErrorCodes.UNEXPECTED_ERROR : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);
  }
  return i18n;
}
function getScope(options, componentOptions) {
  return isEmptyObject(options) ? "__i18n" in componentOptions ? "local" : "global" : !options.useScope ? "local" : options.useScope;
}
function getGlobalComposer(i18n) {
  return i18n.mode === "composition" ? i18n.global : i18n.global.__composer;
}
function getComposer(i18n, target, useComponent = false) {
  let composer = null;
  const root = target.root;
  let current = getParentComponentInstance(target, useComponent);
  while (current != null) {
    const i18nInternal = i18n;
    if (i18n.mode === "composition") {
      composer = i18nInternal.__getInstance(current);
    }
    if (composer != null) {
      break;
    }
    if (root === current) {
      break;
    }
    current = current.parent;
  }
  return composer;
}
function getParentComponentInstance(target, useComponent = false) {
  if (target == null) {
    return null;
  }
  return !useComponent ? target.parent : target.vnode.ctx || target.parent;
}
const globalExportProps = [
  "locale",
  "fallbackLocale",
  "availableLocales"
];
const globalExportMethods = ["t", "rt", "d", "n", "tm", "te"];
function injectGlobalFields(app, composer) {
  const i18n = /* @__PURE__ */ Object.create(null);
  globalExportProps.forEach((prop) => {
    const desc = Object.getOwnPropertyDescriptor(composer, prop);
    if (!desc) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    const wrap = isRef(desc.value) ? {
      get() {
        return desc.value.value;
      },
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      set(val) {
        desc.value.value = val;
      }
    } : {
      get() {
        return desc.get && desc.get();
      }
    };
    Object.defineProperty(i18n, prop, wrap);
  });
  app.config.globalProperties.$i18n = i18n;
  globalExportMethods.forEach((method) => {
    const desc = Object.getOwnPropertyDescriptor(composer, method);
    if (!desc || !desc.value) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    Object.defineProperty(app.config.globalProperties, `$${method}`, desc);
  });
  const dispose = () => {
    delete app.config.globalProperties.$i18n;
    globalExportMethods.forEach((method) => {
      delete app.config.globalProperties[`$${method}`];
    });
  };
  return dispose;
}
registerMessageCompiler(compile);
registerMessageResolver(resolveValue);
registerLocaleFallbacker(fallbackWithLocaleChain);
function useSetI18nParams(seo) {
  return wrapComposable(_useSetI18nParams)(seo);
}
function useLocaleHead({
  dir = true,
  lang = true,
  seo = true,
  key = "hid"
} = {}) {
  return wrapComposable(_useLocaleHead)({ dir, lang, seo, key });
}
function useRouteBaseName() {
  return wrapComposable(getRouteBaseName);
}
function useLocalePath() {
  return wrapComposable(localePath);
}
function useLocaleRoute() {
  return wrapComposable(localeRoute);
}
function useLocaleLocation() {
  return wrapComposable(localeRoute);
}
function useSwitchLocalePath() {
  return wrapComposable(switchLocalePath);
}
const switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw = /* @__PURE__ */ defineNuxtPlugin({
  name: "i18n:plugin:switch-locale-path-ssr",
  dependsOn: ["i18n:plugin"],
  setup() {
    const nuxt = useNuxtApp();
    if (nuxt.$config.public.i18n.experimental.switchLocalePathLinkSSR !== true) return;
    const switchLocalePath2 = useSwitchLocalePath();
    const switchLocalePathLinkWrapperExpr = new RegExp(
      [
        `<!--${SWITCH_LOCALE_PATH_LINK_IDENTIFIER}-\\[(\\w+)\\]-->`,
        `.+?`,
        `<!--/${SWITCH_LOCALE_PATH_LINK_IDENTIFIER}-->`
      ].join(""),
      "g"
    );
    nuxt.hook("app:rendered", (ctx) => {
      var _a;
      if (((_a = ctx.renderResult) == null ? void 0 : _a.html) == null) return;
      ctx.renderResult.html = ctx.renderResult.html.replaceAll(
        switchLocalePathLinkWrapperExpr,
        (match, p1) => match.replace(/href="([^"]+)"/, `href="${encodeURI(switchLocalePath2(p1 ?? ""))}"`)
      );
    });
  }
});
const route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U = /* @__PURE__ */ defineNuxtPlugin({
  name: "i18n:plugin:route-locale-detect",
  dependsOn: ["i18n:plugin"],
  async setup() {
    let __temp, __restore;
    const nuxt = useNuxtApp();
    const currentRoute = nuxt.$router.currentRoute;
    async function handleRouteDetect(to) {
      let detected = detectLocale(
        to,
        nuxt._vueI18n.__localeFromRoute(to),
        unref(nuxt.$i18n.locale),
        nuxt.$i18n.getLocaleCookie()
      );
      if (nuxt._vueI18n.__firstAccess) {
        nuxt._vueI18n.__setLocale(detected);
        const fallbackLocales = makeFallbackLocaleCodes(unref(nuxt._vueI18n.global.fallbackLocale), [detected]);
        await Promise.all(fallbackLocales.map((x) => nuxt.$i18n.loadLocaleMessages(x)));
        await nuxt.$i18n.loadLocaleMessages(detected);
      }
      const modified = await nuxt.runWithContext(() => loadAndSetLocale(detected, nuxt._vueI18n.__firstAccess));
      if (modified) {
        detected = unref(nuxt.$i18n.locale);
      }
      return detected;
    }
    [__temp, __restore] = executeAsync(() => handleRouteDetect(currentRoute.value)), await __temp, __restore();
    const localeChangeMiddleware = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to, from) => {
      let __temp2, __restore2;
      const locale = ([__temp2, __restore2] = executeAsync(() => nuxt.runWithContext(() => handleRouteDetect(to))), __temp2 = await __temp2, __restore2(), __temp2);
      const redirectPath = ([__temp2, __restore2] = executeAsync(() => nuxt.runWithContext(
        () => detectRedirect({ to, from, locale, routeLocale: nuxt._vueI18n.__localeFromRoute(to) }, true)
      )), __temp2 = await __temp2, __restore2(), __temp2);
      nuxt._vueI18n.__firstAccess = false;
      return [__temp2, __restore2] = executeAsync(() => nuxt.runWithContext(() => navigate({ nuxt, redirectPath, locale, route: to }))), __temp2 = await __temp2, __restore2(), __temp2;
    });
    addRouteMiddleware("locale-changing", localeChangeMiddleware, { global: true });
  }
});
function extendI18n(i18n, { extendComposer, extendComposerInstance }) {
  const scope = effectScope();
  const installI18n = i18n.install.bind(i18n);
  i18n.install = (app, ...options) => {
    const pluginOptions = assign({}, options[0]);
    pluginOptions.__composerExtend = (c) => {
      extendComposerInstance(c, getComposer$3(i18n));
      return () => {
      };
    };
    if (i18n.mode === "legacy") {
      pluginOptions.__vueI18nExtend = (vueI18n) => {
        extendComposerInstance(vueI18n, getComposer$3(vueI18n));
        return () => {
        };
      };
    }
    Reflect.apply(installI18n, i18n, [app, pluginOptions]);
    const globalComposer = getComposer$3(i18n);
    scope.run(() => {
      extendComposer(globalComposer);
      if (i18n.mode === "legacy" && isVueI18n(i18n.global)) {
        extendComposerInstance(i18n.global, getComposer$3(i18n.global));
      }
    });
    if (i18n.mode === "composition" && app.config.globalProperties.$i18n != null) {
      extendComposerInstance(app.config.globalProperties.$i18n, globalComposer);
    }
    if (app.unmount) {
      const unmountApp = app.unmount.bind(app);
      app.unmount = () => {
        scope.stop();
        unmountApp();
      };
    }
  };
}
const i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM = /* @__PURE__ */ defineNuxtPlugin({
  name: "i18n:plugin",
  parallel: parallelPlugin,
  async setup(_nuxt) {
    var _a;
    let __temp, __restore;
    Object.defineProperty(_nuxt.versions, "nuxtI18n", { get: () => "9.5.5" });
    const nuxt = useNuxtApp();
    const _runtimeI18n = nuxt.$config.public.i18n;
    const defaultLocaleDomain = getDefaultLocaleForDomain(_runtimeI18n);
    setupMultiDomainLocales(_runtimeI18n, defaultLocaleDomain);
    nuxt.$config.public.i18n.defaultLocale = defaultLocaleDomain;
    const runtimeI18n = {
      ..._runtimeI18n,
      defaultLocale: defaultLocaleDomain,
      baseUrl: extendBaseUrl(nuxt)
    };
    const vueI18nOptions = ([__temp, __restore] = executeAsync(() => loadVueI18nOptions(vueI18nConfigs, useNuxtApp())), __temp = await __temp, __restore(), __temp);
    vueI18nOptions.messages || (vueI18nOptions.messages = {});
    vueI18nOptions.fallbackLocale ?? (vueI18nOptions.fallbackLocale = false);
    if (defaultLocaleDomain) {
      vueI18nOptions.locale = defaultLocaleDomain;
    }
    for (const l of localeCodes) {
      (_a = vueI18nOptions.messages)[l] ?? (_a[l] = {});
    }
    const i18n = createI18n(vueI18nOptions);
    nuxt._vueI18n = i18n;
    i18n.__localeFromRoute = createLocaleFromRouteGetter();
    i18n.__firstAccess = true;
    i18n.__setLocale = (locale) => {
      const i = getI18nTarget(i18n);
      if (isRef(i.locale)) {
        i.locale.value = locale;
      } else {
        i.locale = locale;
      }
    };
    const localeCookie = createI18nCookie();
    const detectBrowserOptions = runtimeDetectBrowserLanguage();
    extendI18n(i18n, {
      extendComposer(composer) {
        const _locales = ref(runtimeI18n.locales);
        composer.locales = computed(() => _locales.value);
        const _localeCodes = ref(localeCodes);
        composer.localeCodes = computed(() => _localeCodes.value);
        const _baseUrl = ref(runtimeI18n.baseUrl());
        composer.baseUrl = computed(() => _baseUrl.value);
        composer.strategy = runtimeI18n.strategy;
        composer.localeProperties = computed(
          () => normalizedLocales.find((l) => l.code === composer.locale.value) || { code: composer.locale.value }
        );
        composer.setLocale = async (locale) => {
          await loadAndSetLocale(locale, i18n.__firstAccess);
          if (composer.strategy === "no_prefix" || false) {
            await composer.loadLocaleMessages(locale);
            i18n.__setLocale(locale);
            return;
          }
          const route = nuxt.$router.currentRoute.value;
          const redirectPath = await nuxt.runWithContext(
            () => detectRedirect({ to: route, locale, routeLocale: i18n.__localeFromRoute(route) })
          );
          await nuxt.runWithContext(() => navigate({ nuxt, redirectPath, locale, route }, true));
        };
        composer.loadLocaleMessages = async (locale) => await loadLocale(locale, localeLoaders, composer.mergeLocaleMessage.bind(composer), nuxt);
        composer.differentDomains = runtimeI18n.differentDomains;
        composer.defaultLocale = runtimeI18n.defaultLocale;
        composer.getBrowserLocale = () => getBrowserLocale();
        composer.getLocaleCookie = () => getLocaleCookie(localeCookie, detectBrowserOptions, composer.defaultLocale);
        composer.setLocaleCookie = (locale) => {
          if (!detectBrowserOptions || !detectBrowserOptions.useCookie) return;
          localeCookie.value = locale;
        };
        composer.onBeforeLanguageSwitch = (oldLocale, newLocale, initialSetup, context) => nuxt.callHook("i18n:beforeLocaleSwitch", {
          oldLocale,
          newLocale,
          initialSetup,
          context
        });
        composer.onLanguageSwitched = (oldLocale, newLocale) => nuxt.callHook("i18n:localeSwitched", { oldLocale, newLocale });
        composer.finalizePendingLocaleChange = async () => {
          var _a2;
          if (!i18n.__pendingLocale) return;
          i18n.__setLocale(i18n.__pendingLocale);
          (_a2 = i18n.__resolvePendingLocalePromise) == null ? void 0 : _a2.call(i18n);
          i18n.__pendingLocale = void 0;
        };
        composer.waitForPendingLocaleChange = async () => {
          if (i18n.__pendingLocale && i18n.__pendingLocalePromise) {
            await i18n.__pendingLocalePromise;
          }
        };
      },
      extendComposerInstance(instance, c) {
        const props = [
          ["locales", () => c.locales],
          ["localeCodes", () => c.localeCodes],
          ["baseUrl", () => c.baseUrl],
          ["strategy", () => c.strategy],
          ["localeProperties", () => c.localeProperties],
          ["setLocale", () => async (locale) => Reflect.apply(c.setLocale, c, [locale])],
          ["loadLocaleMessages", () => async (locale) => Reflect.apply(c.loadLocaleMessages, c, [locale])],
          ["differentDomains", () => c.differentDomains],
          ["defaultLocale", () => c.defaultLocale],
          ["getBrowserLocale", () => () => Reflect.apply(c.getBrowserLocale, c, [])],
          ["getLocaleCookie", () => () => Reflect.apply(c.getLocaleCookie, c, [])],
          ["setLocaleCookie", () => (locale) => Reflect.apply(c.setLocaleCookie, c, [locale])],
          [
            "onBeforeLanguageSwitch",
            () => (oldLocale, newLocale, initialSetup, context) => Reflect.apply(c.onBeforeLanguageSwitch, c, [oldLocale, newLocale, initialSetup, context])
          ],
          [
            "onLanguageSwitched",
            () => (oldLocale, newLocale) => Reflect.apply(c.onLanguageSwitched, c, [oldLocale, newLocale])
          ],
          ["finalizePendingLocaleChange", () => () => Reflect.apply(c.finalizePendingLocaleChange, c, [])],
          ["waitForPendingLocaleChange", () => () => Reflect.apply(c.waitForPendingLocaleChange, c, [])]
        ];
        for (const [key, get] of props) {
          Object.defineProperty(instance, key, { get });
        }
      }
    });
    nuxt.vueApp.use(i18n);
    Object.defineProperty(nuxt, "$i18n", { get: () => getI18nTarget(i18n) });
    return {
      provide: {
        /**
         * TODO: remove type assertions while type narrowing based on generated types
         */
        localeHead: wrapComposable(localeHead),
        localePath: useLocalePath(),
        localeRoute: useLocaleRoute(),
        getRouteBaseName: useRouteBaseName(),
        switchLocalePath: useSwitchLocalePath(),
        // TODO: remove in v10
        resolveRoute: wrapComposable(resolveRoute),
        // TODO: remove in v10
        localeLocation: useLocaleLocation()
      }
    };
  }
});
const LazyColorModeSelector = defineAsyncComponent(() => import('./ColorModeSelector-C4TWII1Y.mjs').then((r) => r["default"] || r.default || r));
const LazyContact = defineAsyncComponent(() => import('./Contact-Ik5xD7tN.mjs').then((r) => r["default"] || r.default || r));
const LazyCount = defineAsyncComponent(() => import('./Count-BGEyTm0C.mjs').then((r) => r["default"] || r.default || r));
const LazyDefaultHorizontalCarousel = defineAsyncComponent(() => import('./DefaultHorizontalCarousel-B0yOvkoi.mjs').then((r) => r["default"] || r.default || r));
const LazyEmptyState = defineAsyncComponent(() => import('./EmptyState-CWK2sm1Q.mjs').then((r) => r["default"] || r.default || r));
const LazyGlobalLoader = defineAsyncComponent(() => import('./GlobalLoader-CBULtKs6.mjs').then((r) => r["default"] || r.default || r));
const LazyGlowWrapper = defineAsyncComponent(() => import('./GlowWrapper-3dIWLl4d.mjs').then((r) => r["default"] || r.default || r));
const LazyHeroClientsLogos = defineAsyncComponent(() => import('./HeroClientsLogos-DH0O2b6I.mjs').then((r) => r["default"] || r.default || r));
const LazyHorizontalCarouselWithControls = defineAsyncComponent(() => import('./HorizontalCarouselWithControls-BnGcAouy.mjs').then((r) => r["default"] || r.default || r));
const LazyHorizontalTabsWithContent = defineAsyncComponent(() => import('./HorizontalTabsWithContent-BjNCIRTE.mjs').then((r) => r["default"] || r.default || r));
const LazyInternalHeaderSection = defineAsyncComponent(() => import('./InternalHeaderSection-DIj5MLKD.mjs').then((r) => r["default"] || r.default || r));
const LazyLanguageSwitcher = defineAsyncComponent(() => import('./LanguageSwitcher-hWE4P39-.mjs').then((r) => r["default"] || r.default || r));
const LazyMainButton = defineAsyncComponent(() => import('./MainButton-ul6epHgF.mjs').then((r) => r["default"] || r.default || r));
const LazyNoNetworkBanner = defineAsyncComponent(() => import('./NoNetworkBanner-CRsTWqYY.mjs').then((r) => r["default"] || r.default || r));
const LazyScrollToTop = defineAsyncComponent(() => import('./ScrollToTop-f92Wcp6u.mjs').then((r) => r["default"] || r.default || r));
const LazySectionHeadline = defineAsyncComponent(() => import('./SectionHeadline-0zkilFRp.mjs').then((r) => r["default"] || r.default || r));
const LazySocialSliderWithControls = defineAsyncComponent(() => import('./SocialSliderWithControls-2I3NCkag.mjs').then((r) => r["default"] || r.default || r));
const LazySocialStatus = defineAsyncComponent(() => import('./SocialStatus-D-MhVDyi.mjs').then((r) => r["default"] || r.default || r));
const LazySocialVideosSlider = defineAsyncComponent(() => import('./SocialVideosSlider-DQncfJv-.mjs').then((r) => r["default"] || r.default || r));
const LazySpacer = defineAsyncComponent(() => import('./Spacer-DtCydRp3.mjs').then((r) => r["default"] || r.default || r));
const LazyStackedProductsCarousel = defineAsyncComponent(() => import('./StackedProductsCarousel-4aoLqnSs.mjs').then((r) => r["default"] || r.default || r));
const LazyStackedProductsCarouselMobile = defineAsyncComponent(() => import('./StackedProductsCarouselMobile-DKe-POM2.mjs').then((r) => r["default"] || r.default || r));
const LazyStatus = defineAsyncComponent(() => import('./Status-BYdyeHNd.mjs').then((r) => r["default"] || r.default || r));
const LazySubscribeSection = defineAsyncComponent(() => import('./SubscribeSection-D6lSAdXw.mjs').then(function(n) {
  return n.S;
}).then((r) => r["default"] || r.default || r));
const LazyTrust = defineAsyncComponent(() => import('./Trust-Bw9N0iEr.mjs').then((r) => r["default"] || r.default || r));
const LazyVerticalStackedCardsCarousel = defineAsyncComponent(() => import('./VerticalStackedCardsCarousel-BVtIaAtr.mjs').then((r) => r["default"] || r.default || r));
const LazyVerticalTabsWithContent = defineAsyncComponent(() => import('./VerticalTabsWithContent-DGT0LoPh.mjs').then((r) => r["default"] || r.default || r));
const LazyContactBrancheCard = defineAsyncComponent(() => import('./BrancheCard-DdXAv4Sd.mjs').then((r) => r["default"] || r.default || r));
const LazyContactFlagComponent = defineAsyncComponent(() => import('./FlagComponent-tWUs0Zo0.mjs').then((r) => r["default"] || r.default || r));
const LazyContactForm = defineAsyncComponent(() => import('./Form-BItdTITZ.mjs').then((r) => r["default"] || r.default || r));
const LazyIcon = defineAsyncComponent(() => import('./index-3TKRMC31.mjs').then((r) => r["default"] || r.default || r));
const LazyLottie = defineAsyncComponent(() => Promise.resolve().then(function() {
  return serverPlaceholder;
}).then((r) => r["default"] || r.default || r));
const lazyGlobalComponents = [
  ["ColorModeSelector", LazyColorModeSelector],
  ["Contact", LazyContact],
  ["Count", LazyCount],
  ["DefaultHorizontalCarousel", LazyDefaultHorizontalCarousel],
  ["EmptyState", LazyEmptyState],
  ["GlobalLoader", LazyGlobalLoader],
  ["GlowWrapper", LazyGlowWrapper],
  ["HeroClientsLogos", LazyHeroClientsLogos],
  ["HorizontalCarouselWithControls", LazyHorizontalCarouselWithControls],
  ["HorizontalTabsWithContent", LazyHorizontalTabsWithContent],
  ["InternalHeaderSection", LazyInternalHeaderSection],
  ["LanguageSwitcher", LazyLanguageSwitcher],
  ["MainButton", LazyMainButton],
  ["NoNetworkBanner", LazyNoNetworkBanner],
  ["ScrollToTop", LazyScrollToTop],
  ["SectionHeadline", LazySectionHeadline],
  ["SocialSliderWithControls", LazySocialSliderWithControls],
  ["SocialStatus", LazySocialStatus],
  ["SocialVideosSlider", LazySocialVideosSlider],
  ["Spacer", LazySpacer],
  ["StackedProductsCarousel", LazyStackedProductsCarousel],
  ["StackedProductsCarouselMobile", LazyStackedProductsCarouselMobile],
  ["Status", LazyStatus],
  ["SubscribeSection", LazySubscribeSection],
  ["Trust", LazyTrust],
  ["VerticalStackedCardsCarousel", LazyVerticalStackedCardsCarousel],
  ["VerticalTabsWithContent", LazyVerticalTabsWithContent],
  ["ContactBrancheCard", LazyContactBrancheCard],
  ["ContactFlagComponent", LazyContactFlagComponent],
  ["ContactForm", LazyContactForm],
  ["Icon", LazyIcon],
  ["Lottie", LazyLottie]
];
const components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt:global-components",
  setup(nuxtApp) {
    for (const [name, component] of lazyGlobalComponents) {
      nuxtApp.vueApp.component(name, component);
      nuxtApp.vueApp.component("Lazy" + name, component);
    }
  }
});
const plugin_l6YJPtLxShfgXgM3y1nZcTIaptNSI0QJJXTEeq0cmSw = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
  const data = ref([]);
  const processUtmData = () => {
    return;
  };
  nuxtApp.hook("app:mounted", processUtmData);
  return {
    provide: {
      utm: data
    }
  };
});
function useSiteConfig(options) {
  var _a;
  const stack = (_a = useRequestEvent()) == null ? void 0 : _a.context.siteConfig.get(defu({ resolveRefs: true }, options));
  delete stack._priority;
  return stack;
}
function resolveSitePath(pathOrUrl, options) {
  let path = pathOrUrl;
  if (hasProtocol(pathOrUrl, { strict: false, acceptRelative: true })) {
    const parsed = parseURL(pathOrUrl);
    path = parsed.pathname;
  }
  const base = withLeadingSlash(options.base || "/");
  if (base !== "/" && path.startsWith(base)) {
    path = path.slice(base.length);
  }
  let origin = withoutTrailingSlash(options.absolute ? options.siteUrl : "");
  if (base !== "/" && origin.endsWith(base)) {
    origin = origin.slice(0, origin.indexOf(base));
  }
  const baseWithOrigin = options.withBase ? withBase(base, origin || "/") : origin;
  const resolvedUrl = withBase(path, baseWithOrigin);
  return path === "/" && !options.withBase ? withTrailingSlash(resolvedUrl) : fixSlashes(options.trailingSlash, resolvedUrl);
}
const fileExtensions = [
  // Images
  "jpg",
  "jpeg",
  "png",
  "gif",
  "bmp",
  "webp",
  "svg",
  "ico",
  // Documents
  "pdf",
  "doc",
  "docx",
  "xls",
  "xlsx",
  "ppt",
  "pptx",
  "txt",
  "md",
  "markdown",
  // Archives
  "zip",
  "rar",
  "7z",
  "tar",
  "gz",
  // Audio
  "mp3",
  "wav",
  "flac",
  "ogg",
  "opus",
  "m4a",
  "aac",
  "midi",
  "mid",
  // Video
  "mp4",
  "avi",
  "mkv",
  "mov",
  "wmv",
  "flv",
  "webm",
  // Web
  "html",
  "css",
  "js",
  "json",
  "xml",
  "tsx",
  "jsx",
  "ts",
  "vue",
  "svelte",
  "xsl",
  "rss",
  "atom",
  // Programming
  "php",
  "py",
  "rb",
  "java",
  "c",
  "cpp",
  "h",
  "go",
  // Data formats
  "csv",
  "tsv",
  "sql",
  "yaml",
  "yml",
  // Fonts
  "woff",
  "woff2",
  "ttf",
  "otf",
  "eot",
  // Executables/Binaries
  "exe",
  "msi",
  "apk",
  "ipa",
  "dmg",
  "iso",
  "bin",
  // Scripts/Config
  "bat",
  "cmd",
  "sh",
  "env",
  "htaccess",
  "conf",
  "toml",
  "ini",
  // Package formats
  "deb",
  "rpm",
  "jar",
  "war",
  // E-books
  "epub",
  "mobi",
  // Common temporary/backup files
  "log",
  "tmp",
  "bak",
  "old",
  "sav"
];
function isPathFile(path) {
  var _a;
  const lastSegment = path.split("/").pop();
  const ext = (_a = (lastSegment || path).match(/\.[0-9a-z]+$/i)) == null ? void 0 : _a[0];
  return ext && fileExtensions.includes(ext.replace(".", ""));
}
function fixSlashes(trailingSlash, pathOrUrl) {
  const $url = parseURL(pathOrUrl);
  if (isPathFile($url.pathname))
    return pathOrUrl;
  const fixedPath = trailingSlash ? withTrailingSlash($url.pathname) : withoutTrailingSlash($url.pathname);
  return `${$url.protocol ? `${$url.protocol}//` : ""}${$url.host || ""}${fixedPath}${$url.search || ""}${$url.hash || ""}`;
}
function useNitroOrigin(e) {
  var _a;
  {
    e = e || useRequestEvent();
    return ((_a = e == null ? void 0 : e.context) == null ? void 0 : _a.siteConfigNitroOrigin) || "";
  }
}
function createSitePathResolver(options = {}) {
  const siteConfig = useSiteConfig();
  const nitroOrigin = useNitroOrigin();
  const nuxtBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL || "/";
  return (path) => {
    return computed(() => resolveSitePath(unref(path), {
      absolute: unref(options.absolute),
      withBase: unref(options.withBase),
      siteUrl: unref(options.canonical) !== false || false ? siteConfig.url : nitroOrigin,
      trailingSlash: siteConfig.trailingSlash,
      base: nuxtBase
    }));
  };
}
function useSchemaOrgConfig() {
  const runtimeConfig = /* @__PURE__ */ useRuntimeConfig();
  return defu(runtimeConfig["nuxt-schema-org"], {
    scriptAttributes: {}
  });
}
function useSchemaOrg(input) {
  const config = useSchemaOrgConfig();
  const script = {
    type: "application/ld+json",
    key: "schema-org-graph",
    // @ts-expect-error untyped
    nodes: input,
    tagPriority: "high",
    ...config.scriptAttributes
  };
  {
    return useHead({
      script: [script]
    });
  }
}
function initPlugin(nuxtApp) {
  const head = injectHead();
  const config = useSchemaOrgConfig();
  const route = useRoute();
  const siteConfig = useSiteConfig();
  const resolvePath = createSitePathResolver({
    absolute: false,
    withBase: true
  });
  const resolveUrl = createSitePathResolver({
    canonical: true,
    absolute: true,
    withBase: true
  });
  const schemaOrg = computed(() => {
    var _a;
    const siteConfigResolved = {};
    for (const key in siteConfig) {
      if (key.startsWith("_")) {
        continue;
      }
      siteConfigResolved[key] = toValue(siteConfig[key]);
      if (typeof siteConfigResolved[key] === "object") {
        for (const k in siteConfigResolved[key]) {
          siteConfigResolved[key][k] = toValue(siteConfigResolved[key][k]);
        }
      }
    }
    return {
      ...((_a = route.meta) == null ? void 0 : _a.schemaOrg) || {},
      ...siteConfigResolved,
      url: toValue(resolveUrl(route.path)),
      host: withTrailingSlash(siteConfigResolved.url),
      inLanguage: toValue(siteConfigResolved.currentLocale) || toValue(siteConfigResolved.defaultLocale),
      path: toValue(resolvePath(route.path))
    };
  });
  const templateParamEntry = useHead({
    templateParams: { schemaOrg: schemaOrg.value }
  });
  watch(() => siteConfig, () => {
    templateParamEntry.patch({
      templateParams: { schemaOrg: schemaOrg.value }
    });
  }, { deep: true });
  head.use(
    SchemaOrgUnheadPlugin({}, async () => {
      const meta = {};
      await nuxtApp.hooks.callHook("schema-org:meta", meta);
      return meta;
    }, {
      minify: config.minify,
      trailingSlash: siteConfig.trailingSlash
    })
  );
}
function maybeAddIdentitySchemaOrg() {
  const config = useSchemaOrgConfig();
  const siteConfig = useSiteConfig({
    resolveRefs: true
  });
  if (config.identity || siteConfig.identity) {
    const identity = config.identity || siteConfig.identity;
    let identityPayload = {
      name: () => toValue(siteConfig.name),
      url: () => toValue(siteConfig.url)
    };
    let identityType;
    if (typeof identity !== "string") {
      identityPayload = {
        ...identityPayload,
        ...identity
      };
      identityType = identity.type;
      delete identityPayload.type;
    } else {
      identityType = identity;
    }
    if (siteConfig.twitter) {
      const id = siteConfig.twitter.startsWith("@") ? siteConfig.twitter.slice(1) : siteConfig.twitter;
      identityPayload.sameAs = [
        `https://twitter.com/${id}`
      ];
    }
    identityPayload._resolver = identityPayload._resolver || camelCase(identityType);
    useSchemaOrg([identityPayload]);
  }
}
const defaults_YlXDnzKDrNotL_BrBwgqlwKVZIfmVSvhRtsEp2y7vZ0 = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt-schema-org:defaults",
  dependsOn: [
    "nuxt-schema-org:init"
  ],
  setup(nuxtApp) {
    var _a, _b;
    const error = useError();
    if ((_a = error.value) == null ? void 0 : _a.error) {
      return;
    }
    const siteConfig = useSiteConfig();
    const pathResolver = createSitePathResolver({
      canonical: true,
      absolute: true
    });
    if (!nuxtApp.$i18n)
      return;
    const localePath2 = useLocalePath();
    const locales = ((_b = nuxtApp.$i18n) == null ? void 0 : _b.locales.value) || [];
    const siteUrl = () => pathResolver(localePath2("index")).value;
    const websiteId = () => `${siteUrl()}#website`;
    const website = defineWebSite({
      "@id": websiteId,
      "url": siteUrl,
      "name": () => toValue(siteConfig.name) || "",
      // @ts-expect-error untyped
      "inLanguage": () => toValue(nuxtApp.$i18n.localeProperties.value.language) || "",
      "description": () => toValue(siteConfig.description) || ""
    });
    const nuxtBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL || "/";
    const resolveIdForLocale = (locale) => {
      if (locale.domain) {
        return resolveSitePath(localePath2("index", locale.code), {
          absolute: true,
          siteUrl: hasProtocol(locale.domain, { acceptRelative: false }) ? locale.domain : withHttps(locale.domain),
          trailingSlash: siteConfig.trailingSlash,
          base: nuxtBase
        });
      }
      return pathResolver(localePath2("index", locale.code)).value;
    };
    if (siteConfig.defaultLocale) {
      if (siteConfig.currentLocale && siteConfig.currentLocale !== siteConfig.defaultLocale) {
        website.translationOfWork = {
          "@type": "WebSite",
          "@id": () => `${resolveIdForLocale({ code: toValue(siteConfig.defaultLocale) })}#website`
        };
      } else {
        website.workTranslation = locales.filter((locale) => locale.code !== siteConfig.defaultLocale).map((locale) => {
          return {
            "@type": "WebSite",
            "@id": () => `${resolveIdForLocale(locale)}#website`
          };
        });
      }
    }
    useSchemaOrg([
      website,
      defineWebPage({
        isPartOf: {
          "@id": websiteId()
        }
      })
    ]);
    maybeAddIdentitySchemaOrg();
  }
});
const robot_meta_server_bRHpso_4KN_Ec3RJzqCvbuvfZsNOeE_4TgpL8dCNuwk = /* @__PURE__ */ defineNuxtPlugin({
  setup() {
    var _a;
    const event = useRequestEvent();
    const ctx = (_a = event == null ? void 0 : event.context) == null ? void 0 : _a.robots;
    if (!ctx)
      return;
    useHead({
      meta: [
        {
          "name": "robots",
          "content": () => ctx.rule || "",
          "data-hint": () => void 0
        }
      ]
    });
  }
});
const i18nPluginDeps = ["i18n:plugin", "i18n:plugin:ssg-detect", "i18n:plugin:route-locale-detect"];
const i18n_84QbCrEJidQfHX79evFy6rRgOFjwLXHugOxbWoIVeIQ = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt-site-config:i18n",
  dependsOn: i18nPluginDeps,
  setup(nuxtApp) {
    var _a;
    const i18n = nuxtApp.$i18n;
    if (!i18n)
      return;
    const stack = (_a = useRequestEvent()) == null ? void 0 : _a.context.siteConfig;
    const i18nBaseUrl = toValue(i18n.baseUrl);
    if (i18nBaseUrl) {
      const siteConfig = stack.get({ resolveRefs: true });
      const currentUrl = siteConfig.url;
      if (currentUrl && !currentUrl.includes("localhost")) {
        const i18nURL = parseURL(i18nBaseUrl, "https://");
        const siteConfigURL = parseURL(currentUrl, "https://");
        if (i18nURL.host !== siteConfigURL.host) {
          if (siteConfig.env === "production") {
            console.error(`[Nuxt Site Config] Your I18n baseUrl \`${i18nURL.host}\` doesn't match your site url ${siteConfigURL.host}. This will cause production SEO issues. Either provide a matching baseUrl or remove the site url config.`);
          }
        }
      }
    }
    let siteConfigEntry;
    watch(i18n.locale, () => {
      if (siteConfigEntry) {
        siteConfigEntry();
      }
      const defaultLocale = computed(() => {
        const locale = toValue(i18n.locales).find((l) => l.code === i18n.defaultLocale);
        return (locale == null ? void 0 : locale.language) || (locale == null ? void 0 : locale.iso) || i18n.defaultLocale;
      });
      siteConfigEntry = stack.push({
        _priority: -2,
        _context: "@nuxtjs/i18n",
        url: computed(() => {
          const url = toValue(i18n.baseUrl);
          return url || void 0;
        }),
        defaultLocale,
        currentLocale: computed(() => {
          const properties = toValue(i18n.localeProperties);
          if (properties.language) {
            return properties.language;
          }
          return defaultLocale.value;
        }),
        // @ts-expect-error untyped
        description: computed(() => i18n.te("nuxtSiteConfig.description") ? i18n.t("nuxtSiteConfig.description") : void 0),
        // @ts-expect-error untyped
        name: computed(() => i18n.te("nuxtSiteConfig.name") ? i18n.t("nuxtSiteConfig.name") : void 0)
      });
    }, {
      immediate: true
    });
  }
});
const mode = "init";
const nuxt_plugin_UFMCqFAmT_rT4NcMBSUgq5IuOGNlCK5IH_2sTbP0mGc = /* @__PURE__ */ defineNuxtPlugin(async (nuxtApp) => {
  var _a, _b, _c;
  const hydrationMode = useState("nuxt-delay-hydration-mode", () => mode);
  {
    const event = useRequestEvent();
    if ((_c = (_b = (_a = event == null ? void 0 : event.context) == null ? void 0 : _a._nitro) == null ? void 0 : _b.routeRules) == null ? void 0 : _c.delayHydration)
      hydrationMode.value = event.context._nitro.routeRules.delayHydration;
  }
});
const coladaOptions = {};
const plugin_7k3FxwqWkK_kZlK_9MYz6mBBFR5gYeCkG918Y5EEzBM = /* @__PURE__ */ defineNuxtPlugin({
  name: "Pinia Colada",
  // makes this plugin run after the Pinia plugin
  dependsOn: ["pinia"],
  setup(nuxtApp) {
    nuxtApp.vueApp.use(PiniaColada, {
      ...coladaOptions
    });
    const queryCache = useQueryCache();
    {
      nuxtApp.hook("app:rendered", ({ ssrContext }) => {
        if (ssrContext) {
          ssrContext.payload.pinia_colada = markRaw(serializeQueryCache(queryCache));
        }
      });
    }
  }
});
function hydrateStore(store, {
  storage,
  serializer,
  key,
  debug,
  pick,
  omit,
  beforeHydrate,
  afterHydrate
}, context, runHooks = true) {
  try {
    if (runHooks)
      beforeHydrate == null ? void 0 : beforeHydrate(context);
    const fromStorage = storage.getItem(key);
    if (fromStorage) {
      const deserialized = serializer.deserialize(fromStorage);
      const picked = pick ? deepPickUnsafe(deserialized, pick) : deserialized;
      const omitted = omit ? deepOmitUnsafe(picked, omit) : picked;
      store.$patch(omitted);
    }
    if (runHooks)
      afterHydrate == null ? void 0 : afterHydrate(context);
  } catch (error) {
    if (debug)
      console.error("[pinia-plugin-persistedstate]", error);
  }
}
function persistState(state, {
  storage,
  serializer,
  key,
  debug,
  pick,
  omit
}) {
  try {
    const picked = pick ? deepPickUnsafe(state, pick) : state;
    const omitted = omit ? deepOmitUnsafe(picked, omit) : picked;
    const toStorage = serializer.serialize(omitted);
    storage.setItem(key, toStorage);
  } catch (error) {
    if (debug)
      console.error("[pinia-plugin-persistedstate]", error);
  }
}
function createPersistence(context, optionsParser, auto) {
  const { pinia, store, options: { persist = auto } } = context;
  if (!persist)
    return;
  if (!(store.$id in pinia.state.value)) {
    const originalStore = pinia._s.get(store.$id.replace("__hot:", ""));
    if (originalStore)
      void Promise.resolve().then(() => originalStore.$persist());
    return;
  }
  const persistenceOptions = Array.isArray(persist) ? persist : persist === true ? [{}] : [persist];
  const persistences = persistenceOptions.map(optionsParser);
  store.$hydrate = ({ runHooks = true } = {}) => {
    persistences.forEach((p) => {
      hydrateStore(store, p, context, runHooks);
    });
  };
  store.$persist = () => {
    persistences.forEach((p) => {
      persistState(store.$state, p);
    });
  };
  persistences.forEach((p) => {
    hydrateStore(store, p, context);
    store.$subscribe(
      (_mutation, state) => persistState(state, p),
      { detached: true }
    );
  });
}
function cookies(options) {
  return {
    getItem: (key) => useCookie(
      key,
      {
        ...options ?? (/* @__PURE__ */ useRuntimeConfig()).public.piniaPluginPersistedstate.cookieOptions ?? {},
        decode: (options == null ? void 0 : options.decode) ?? decodeURIComponent,
        readonly: true
      }
    ).value,
    setItem: (key, value) => useCookie(
      key,
      {
        ...options ?? (/* @__PURE__ */ useRuntimeConfig()).public.piniaPluginPersistedstate.cookieOptions ?? {},
        encode: (options == null ? void 0 : options.encode) ?? encodeURIComponent
      }
    ).value = value
  };
}
function localStorage() {
  return {
    getItem: (key) => null,
    setItem: (key, value) => null
  };
}
function sessionStorage() {
  return {
    getItem: (key) => null,
    setItem: (key, value) => null
  };
}
const storages = {
  cookies,
  localStorage,
  sessionStorage
};
function piniaPlugin(context) {
  const config = /* @__PURE__ */ useRuntimeConfig();
  const options = config.public.piniaPluginPersistedstate;
  createPersistence(
    context,
    (p) => ({
      key: options.key ? options.key.replace(/%id/g, p.key ?? context.store.$id) : p.key ?? context.store.$id,
      debug: p.debug ?? options.debug ?? false,
      serializer: p.serializer ?? {
        serialize: (data) => JSON.stringify(data),
        deserialize: (data) => destr(data)
      },
      storage: p.storage ?? (options.storage ? options.storage === "cookies" ? storages.cookies(options.cookieOptions) : storages[options.storage]() : storages.cookies()),
      beforeHydrate: p.beforeHydrate,
      afterHydrate: p.afterHydrate,
      pick: p.pick,
      omit: p.omit
    }),
    options.auto ?? false
  );
}
const plugin_jjl2DFTrQxMG7TqNyE_rvcIV8r2uFVLO_Sius2B7lXg = /* @__PURE__ */ defineNuxtPlugin({
  name: "pinia-plugin-persistedstate",
  setup({ $pinia }) {
    $pinia.use(piniaPlugin);
  }
});
const preference = "system";
const plugin_server_9Ca9_HhnjAGwBWpwAydRauMHxWoxTDY60BrArRnXN_A = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
  var _a;
  const colorMode = ((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext) ? ref({}) : useState("color-mode", () => reactive({
    preference,
    value: preference,
    unknown: true,
    forced: false
  })).value;
  const htmlAttrs = {};
  {
    useHead({ htmlAttrs });
  }
  useRouter().afterEach((to) => {
    const forcedColorMode = to.meta.colorMode;
    if (forcedColorMode && forcedColorMode !== "system") {
      colorMode.value = htmlAttrs["data-color-mode-forced"] = forcedColorMode;
      colorMode.forced = true;
    } else if (forcedColorMode === "system") {
      console.warn("You cannot force the colorMode to system at the page level.");
    }
  });
  nuxtApp.provide("colorMode", colorMode);
});
const plugin_MeUvTuoKUi51yb_kBguab6hdcExVXeTtZtTg9TZZBB8 = /* @__PURE__ */ defineNuxtPlugin({
  name: "@nuxt/icon",
  setup() {
    var _a, _b;
    const configs = /* @__PURE__ */ useRuntimeConfig();
    const options = useAppConfig().icon;
    _api.setFetch($fetch.native);
    const resources = [];
    if (options.provider === "server") {
      const baseURL2 = ((_b = (_a = configs.app) == null ? void 0 : _a.baseURL) == null ? void 0 : _b.replace(/\/$/, "")) ?? "";
      resources.push(baseURL2 + (options.localApiEndpoint || "/api/_nuxt_icon"));
      if (options.fallbackToApi === true || options.fallbackToApi === "client-only") {
        resources.push(options.iconifyApiEndpoint);
      }
    } else if (options.provider === "none") {
      _api.setFetch(() => Promise.resolve(new Response()));
    } else {
      resources.push(options.iconifyApiEndpoint);
    }
    async function customIconLoader(icons, prefix) {
      try {
        const data = await $fetch(resources[0] + "/" + prefix + ".json", {
          query: {
            icons: icons.join(",")
          }
        });
        if (!data || data.prefix !== prefix || !data.icons)
          throw new Error("Invalid data" + JSON.stringify(data));
        return data;
      } catch (e) {
        console.error("Failed to load custom icons", e);
        return null;
      }
    }
    addAPIProvider("", { resources });
    for (const prefix of options.customCollections || []) {
      if (prefix)
        setCustomIconsLoader(customIconLoader, prefix);
    }
  }
  // For type portability
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
});
const ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs = /* @__PURE__ */ defineNuxtPlugin({
  name: "i18n:plugin:ssg-detect",
  dependsOn: ["i18n:plugin", "i18n:plugin:route-locale-detect"],
  enforce: "post",
  setup() {
    useNuxtApp();
    return;
  }
});
const init_IycSiUTa0ooOjNElHE0EG94Rz0cZb4_bKuXwa_4z9aY = /* @__PURE__ */ defineNuxtPlugin({
  name: "nuxt-schema-org:init",
  order: 999,
  // @ts-expect-error untyped
  dependsOn: ["i18n:plugin"],
  setup(nuxtApp) {
    initPlugin(nuxtApp);
  }
});
const plugins = [
  payloadPlugin,
  payload_plugin_iD1SnIAnSpjrxq_KlzqxWf0xk_EfpfCXp1Wdn70pdqI,
  unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,
  plugin$1,
  _0_siteConfig_tU0SxKrPeVRXWcGu2sOnIfhNDbYiKNfDCvYZhRueG0Q,
  revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,
  plugin,
  switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw,
  route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U,
  i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM,
  components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,
  plugin_l6YJPtLxShfgXgM3y1nZcTIaptNSI0QJJXTEeq0cmSw,
  defaults_YlXDnzKDrNotL_BrBwgqlwKVZIfmVSvhRtsEp2y7vZ0,
  robot_meta_server_bRHpso_4KN_Ec3RJzqCvbuvfZsNOeE_4TgpL8dCNuwk,
  i18n_84QbCrEJidQfHX79evFy6rRgOFjwLXHugOxbWoIVeIQ,
  nuxt_plugin_UFMCqFAmT_rT4NcMBSUgq5IuOGNlCK5IH_2sTbP0mGc,
  plugin_7k3FxwqWkK_kZlK_9MYz6mBBFR5gYeCkG918Y5EEzBM,
  plugin_jjl2DFTrQxMG7TqNyE_rvcIV8r2uFVLO_Sius2B7lXg,
  plugin_server_9Ca9_HhnjAGwBWpwAydRauMHxWoxTDY60BrArRnXN_A,
  plugin_MeUvTuoKUi51yb_kBguab6hdcExVXeTtZtTg9TZZBB8,
  ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs,
  init_IycSiUTa0ooOjNElHE0EG94Rz0cZb4_bKuXwa_4z9aY
];
const HeadComponentCtxSymbol = Symbol("head-component");
const TagPositionProps = {
  /**
   * @deprecated Use tagPosition
   */
  body: { type: Boolean, default: void 0 },
  tagPosition: { type: String }
};
const normalizeProps = (_props) => {
  const props = Object.fromEntries(
    Object.entries(_props).filter(([_, value]) => value !== void 0)
  );
  if (typeof props.body !== "undefined") {
    props.tagPosition = props.body ? "bodyClose" : "head";
  }
  if (typeof props.renderPriority !== "undefined") {
    props.tagPriority = props.renderPriority;
  }
  return props;
};
function useHeadComponentCtx() {
  return inject(HeadComponentCtxSymbol, createHeadComponentCtx, true);
}
function createHeadComponentCtx() {
  const prev = inject(HeadComponentCtxSymbol, null);
  if (prev) {
    return prev;
  }
  const input = reactive({});
  const entry2 = useHead(input);
  const ctx = { input, entry: entry2 };
  provide(HeadComponentCtxSymbol, ctx);
  return ctx;
}
const globalProps = {
  accesskey: String,
  autocapitalize: String,
  autofocus: {
    type: Boolean,
    default: void 0
  },
  class: { type: [String, Object, Array], default: void 0 },
  contenteditable: {
    type: Boolean,
    default: void 0
  },
  contextmenu: String,
  dir: String,
  draggable: {
    type: Boolean,
    default: void 0
  },
  enterkeyhint: String,
  exportparts: String,
  hidden: {
    type: Boolean,
    default: void 0
  },
  id: String,
  inputmode: String,
  is: String,
  itemid: String,
  itemprop: String,
  itemref: String,
  itemscope: String,
  itemtype: String,
  lang: String,
  nonce: String,
  part: String,
  slot: String,
  spellcheck: {
    type: Boolean,
    default: void 0
  },
  style: { type: [String, Object, Array], default: void 0 },
  tabindex: String,
  title: String,
  translate: String,
  /**
   * @deprecated Use tagPriority
   */
  renderPriority: [String, Number],
  /**
   * Unhead prop to modify the priority of the tag.
   */
  tagPriority: { type: [String, Number] }
};
defineComponent({
  name: "NoScript",
  inheritAttrs: false,
  props: {
    ...globalProps,
    ...TagPositionProps,
    title: String
  },
  setup(props, { slots }) {
    const { input } = useHeadComponentCtx();
    input.noscript || (input.noscript = []);
    const idx = input.noscript.push({}) - 1;
    return () => {
      var _a;
      const noscript = normalizeProps(props);
      const slotVnodes = (_a = slots.default) == null ? void 0 : _a.call(slots);
      const textContent = slotVnodes ? slotVnodes.filter(({ children }) => children).map(({ children }) => children).join("") : "";
      if (textContent) {
        noscript.innerHTML = textContent;
      }
      input.noscript[idx] = noscript;
      return null;
    };
  }
});
const Link = defineComponent({
  name: "Link",
  inheritAttrs: false,
  props: {
    ...globalProps,
    ...TagPositionProps,
    as: String,
    crossorigin: String,
    disabled: Boolean,
    fetchpriority: String,
    href: String,
    hreflang: String,
    imagesizes: String,
    imagesrcset: String,
    integrity: String,
    media: String,
    prefetch: {
      type: Boolean,
      default: void 0
    },
    referrerpolicy: String,
    rel: String,
    sizes: String,
    title: String,
    type: String,
    /** @deprecated **/
    methods: String,
    /** @deprecated **/
    target: String
  },
  setup(props) {
    const { input } = useHeadComponentCtx();
    input.link || (input.link = []);
    const idx = input.link.push({}) - 1;
    return () => {
      input.link[idx] = normalizeProps(props);
      return null;
    };
  }
});
defineComponent({
  name: "Base",
  inheritAttrs: false,
  props: {
    ...globalProps,
    href: String,
    target: String
  },
  setup(props) {
    const { input } = useHeadComponentCtx();
    return () => {
      input.base = normalizeProps(props);
      return null;
    };
  }
});
defineComponent({
  name: "Title",
  inheritAttrs: false,
  setup(_, { slots }) {
    const { input } = useHeadComponentCtx();
    return () => {
      var _a, _b, _c;
      const defaultSlot = (_a = slots.default) == null ? void 0 : _a.call(slots);
      input.title = ((_b = defaultSlot == null ? void 0 : defaultSlot[0]) == null ? void 0 : _b.children) ? String((_c = defaultSlot == null ? void 0 : defaultSlot[0]) == null ? void 0 : _c.children) : void 0;
      return null;
    };
  }
});
const Meta = defineComponent({
  name: "Meta",
  inheritAttrs: false,
  props: {
    ...globalProps,
    charset: String,
    content: String,
    httpEquiv: String,
    name: String,
    property: String
  },
  setup(props) {
    const { input } = useHeadComponentCtx();
    input.meta || (input.meta = []);
    const idx = input.meta.push({}) - 1;
    return () => {
      const meta = { "http-equiv": props.httpEquiv, ...normalizeProps(props) };
      if ("httpEquiv" in meta) {
        delete meta.httpEquiv;
      }
      input.meta[idx] = meta;
      return null;
    };
  }
});
defineComponent({
  name: "Style",
  inheritAttrs: false,
  props: {
    ...globalProps,
    ...TagPositionProps,
    type: String,
    media: String,
    nonce: String,
    title: String,
    /** @deprecated **/
    scoped: {
      type: Boolean,
      default: void 0
    }
  },
  setup(props, { slots }) {
    const { input } = useHeadComponentCtx();
    input.style || (input.style = []);
    const idx = input.style.push({}) - 1;
    return () => {
      var _a, _b, _c;
      const style = normalizeProps(props);
      const textContent = (_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children;
      if (textContent) {
        input.style[idx] = style;
        style.textContent = textContent;
      }
      return null;
    };
  }
});
const Head = defineComponent({
  name: "Head",
  inheritAttrs: false,
  setup: (_props, ctx) => {
    createHeadComponentCtx();
    return () => {
      var _a, _b;
      return (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a);
    };
  }
});
const Html = defineComponent({
  name: "Html",
  inheritAttrs: false,
  props: {
    ...globalProps,
    manifest: String,
    version: String,
    xmlns: String
  },
  setup(_props, ctx) {
    const { input } = useHeadComponentCtx();
    return () => {
      var _a, _b;
      input.htmlAttrs = { ..._props, ...ctx.attrs };
      return (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a);
    };
  }
});
const Body = defineComponent({
  name: "Body",
  inheritAttrs: false,
  props: globalProps,
  setup(_props, ctx) {
    const { input } = useHeadComponentCtx();
    return () => {
      var _a, _b;
      input.bodyAttrs = { ..._props, ...ctx.attrs };
      return (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a);
    };
  }
});
function defaultEstimatedProgress(duration, elapsed) {
  const completionPercentage = elapsed / duration * 100;
  return 2 / Math.PI * 100 * Math.atan(completionPercentage / 50);
}
function createLoadingIndicator(opts = {}) {
  const { duration = 2e3, throttle = 200, hideDelay = 500, resetDelay = 400 } = opts;
  opts.estimatedProgress || defaultEstimatedProgress;
  const nuxtApp = useNuxtApp();
  const progress = shallowRef(0);
  const isLoading = shallowRef(false);
  const error = shallowRef(false);
  const start = (opts2 = {}) => {
    error.value = false;
    set(0, opts2);
  };
  function set(at = 0, opts2 = {}) {
    if (nuxtApp.isHydrating) {
      return;
    }
    if (at >= 100) {
      return finish({ force: opts2.force });
    }
    progress.value = at < 0 ? 0 : at;
    opts2.force ? 0 : throttle;
    {
      isLoading.value = true;
    }
  }
  function finish(opts2 = {}) {
    progress.value = 100;
    if (opts2.error) {
      error.value = true;
    }
    if (opts2.force) {
      progress.value = 0;
      isLoading.value = false;
    }
  }
  function clear() {
  }
  let _cleanup = () => {
  };
  return {
    _cleanup,
    progress: computed(() => progress.value),
    isLoading: computed(() => isLoading.value),
    error: computed(() => error.value),
    start,
    set,
    finish,
    clear
  };
}
function useLoadingIndicator(opts = {}) {
  const nuxtApp = useNuxtApp();
  const indicator = nuxtApp._loadingIndicator || (nuxtApp._loadingIndicator = createLoadingIndicator(opts));
  return indicator;
}
const __nuxt_component_5 = defineComponent({
  name: "NuxtLoadingIndicator",
  props: {
    throttle: {
      type: Number,
      default: 200
    },
    duration: {
      type: Number,
      default: 2e3
    },
    hideDelay: {
      type: Number,
      default: 500
    },
    resetDelay: {
      type: Number,
      default: 400
    },
    height: {
      type: Number,
      default: 3
    },
    color: {
      type: [String, Boolean],
      default: "repeating-linear-gradient(to right,#00dc82 0%,#34cdfe 50%,#0047e1 100%)"
    },
    errorColor: {
      type: String,
      default: "repeating-linear-gradient(to right,#f87171 0%,#ef4444 100%)"
    },
    estimatedProgress: {
      type: Function,
      required: false
    }
  },
  setup(props, { slots, expose }) {
    const { progress, isLoading, error, start, finish, clear } = useLoadingIndicator({
      duration: props.duration,
      throttle: props.throttle,
      hideDelay: props.hideDelay,
      resetDelay: props.resetDelay,
      estimatedProgress: props.estimatedProgress
    });
    expose({
      progress,
      isLoading,
      error,
      start,
      finish,
      clear
    });
    return () => h("div", {
      class: "nuxt-loading-indicator",
      style: {
        position: "fixed",
        top: 0,
        right: 0,
        left: 0,
        pointerEvents: "none",
        width: "auto",
        height: `${props.height}px`,
        opacity: isLoading.value ? 1 : 0,
        background: error.value ? props.errorColor : props.color || void 0,
        backgroundSize: `${100 / progress.value * 100}% auto`,
        transform: `scaleX(${progress.value}%)`,
        transformOrigin: "left",
        transition: "transform 0.1s, height 0.4s, opacity 0.4s",
        zIndex: 999999
      }
    }, slots);
  }
});
const layouts = {
  "card-layout": defineAsyncComponent(() => import('./cardLayout-DWX3VdRI.mjs').then((m) => m.default || m)),
  default: defineAsyncComponent(() => import('./default-B5CAL7eb.mjs').then((m) => m.default || m)),
  "no-footer": defineAsyncComponent(() => import('./noFooter-DAEF70fR.mjs').then((m) => m.default || m))
};
const LayoutLoader = defineComponent({
  name: "LayoutLoader",
  inheritAttrs: false,
  props: {
    name: String,
    layoutProps: Object
  },
  setup(props, context) {
    return () => h(layouts[props.name], props.layoutProps, context.slots);
  }
});
const nuxtLayoutProps = {
  name: {
    type: [String, Boolean, Object],
    default: null
  },
  fallback: {
    type: [String, Object],
    default: null
  }
};
const __nuxt_component_9 = defineComponent({
  name: "NuxtLayout",
  inheritAttrs: false,
  props: nuxtLayoutProps,
  setup(props, context) {
    const nuxtApp = useNuxtApp();
    const injectedRoute = inject(PageRouteSymbol);
    const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();
    const route = shouldUseEagerRoute ? useRoute$1() : injectedRoute;
    const layout = computed(() => {
      let layout2 = unref(props.name) ?? (route == null ? void 0 : route.meta.layout) ?? "default";
      if (layout2 && !(layout2 in layouts)) {
        if (props.fallback) {
          layout2 = unref(props.fallback);
        }
      }
      return layout2;
    });
    const layoutRef = shallowRef();
    context.expose({ layoutRef });
    const done = nuxtApp.deferHydration();
    let lastLayout;
    return () => {
      const hasLayout = layout.value && layout.value in layouts;
      const transitionProps = (route == null ? void 0 : route.meta.layoutTransition) ?? appLayoutTransition;
      const previouslyRenderedLayout = lastLayout;
      lastLayout = layout.value;
      return _wrapInTransition(hasLayout && transitionProps, {
        default: () => h(Suspense, { suspensible: true, onResolve: () => {
          nextTick(done);
        } }, {
          default: () => h(
            LayoutProvider,
            {
              layoutProps: mergeProps(context.attrs, { ref: layoutRef }),
              key: layout.value || void 0,
              name: layout.value,
              shouldProvide: !props.name,
              isRenderingNewLayout: (name) => {
                return name !== previouslyRenderedLayout && name === layout.value;
              },
              hasTransition: !!transitionProps
            },
            context.slots
          )
        })
      }).default();
    };
  }
});
const LayoutProvider = defineComponent({
  name: "NuxtLayoutProvider",
  inheritAttrs: false,
  props: {
    name: {
      type: [String, Boolean]
    },
    layoutProps: {
      type: Object
    },
    hasTransition: {
      type: Boolean
    },
    shouldProvide: {
      type: Boolean
    },
    isRenderingNewLayout: {
      type: Function,
      required: true
    }
  },
  setup(props, context) {
    const name = props.name;
    if (props.shouldProvide) {
      provide(LayoutMetaSymbol, {
        isCurrent: (route) => name === (route.meta.layout ?? "default")
      });
    }
    const injectedRoute = inject(PageRouteSymbol);
    const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();
    if (isNotWithinNuxtPage) {
      const vueRouterRoute = useRoute$1();
      const reactiveChildRoute = {};
      for (const _key in vueRouterRoute) {
        const key = _key;
        Object.defineProperty(reactiveChildRoute, key, {
          enumerable: true,
          get: () => {
            return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];
          }
        });
      }
      provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));
    }
    return () => {
      var _a, _b;
      if (!name || typeof name === "string" && !(name in layouts)) {
        return (_b = (_a = context.slots).default) == null ? void 0 : _b.call(_a);
      }
      return h(
        LayoutLoader,
        { key: name, layoutProps: props.layoutProps, name },
        context.slots
      );
    };
  }
});
const defineRouteProvider = (name = "RouteProvider") => defineComponent({
  name,
  props: {
    vnode: {
      type: Object,
      required: true
    },
    route: {
      type: Object,
      required: true
    },
    vnodeRef: Object,
    renderKey: String,
    trackRootNodes: Boolean
  },
  setup(props) {
    const previousKey = props.renderKey;
    const previousRoute = props.route;
    const route = {};
    for (const key in props.route) {
      Object.defineProperty(route, key, {
        get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],
        enumerable: true
      });
    }
    provide(PageRouteSymbol, shallowReactive(route));
    return () => {
      return h(props.vnode, { ref: props.vnodeRef });
    };
  }
});
const RouteProvider = defineRouteProvider();
const __nuxt_component_10 = defineComponent({
  name: "NuxtPage",
  inheritAttrs: false,
  props: {
    name: {
      type: String
    },
    transition: {
      type: [Boolean, Object],
      default: void 0
    },
    keepalive: {
      type: [Boolean, Object],
      default: void 0
    },
    route: {
      type: Object
    },
    pageKey: {
      type: [Function, String],
      default: null
    }
  },
  setup(props, { attrs, slots, expose }) {
    const nuxtApp = useNuxtApp();
    const pageRef = ref();
    inject(PageRouteSymbol, null);
    expose({ pageRef });
    inject(LayoutMetaSymbol, null);
    nuxtApp.deferHydration();
    return () => {
      return h(RouterView, { name: props.name, route: props.route, ...attrs }, {
        default: (routeProps) => {
          return h(Suspense, { suspensible: true }, {
            default() {
              return h(RouteProvider, {
                vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,
                route: routeProps.route,
                vnodeRef: pageRef
              });
            }
          });
        }
      });
    };
  }
});
function normalizeSlot(slot, data) {
  const slotContent = slot(data);
  return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);
}
const __nuxt_component_6_lazy = defineAsyncComponent(() => import('./index-DfBkCElN.mjs').then((c) => c.Toaster || c));
const __nuxt_component_7_lazy = defineAsyncComponent(() => import('./NoNetworkBanner-CRsTWqYY.mjs').then((c) => c.default || c));
const __nuxt_component_8_lazy = defineAsyncComponent(() => import('./ScrollToTop-f92Wcp6u.mjs').then((c) => c.default || c));
const _sfc_main$e = /* @__PURE__ */ defineComponent({
  __name: "app",
  __ssrInlineRender: true,
  setup(__props) {
    const { locale, finalizePendingLocaleChange, t } = useI18n();
    const route = useRoute();
    const showScrollToTop = computed(() => route.meta.showScrollToTop !== false);
    const localeHead2 = useLocaleHead();
    const dir = computed(() => locale.value === "ar" ? "rtl" : "ltr");
    useSeoMeta({
      title: computed(() => t("homeSeo.title")),
      description: computed(() => t("homeSeo.description")),
      ogSiteName: computed(() => t("generalOg.siteName")),
      ogType: "website",
      twitterCard: "summary"
    });
    let html;
    return (_ctx, _push, _parent, _attrs) => {
      const _component_Html = Html;
      const _component_Head = Head;
      const _component_Link = Link;
      const _component_Meta = Meta;
      const _component_Body = Body;
      const _component_NuxtLoadingIndicator = __nuxt_component_5;
      const _component_LazyToaster = __nuxt_component_6_lazy;
      const _component_LazyNoNetworkBanner = __nuxt_component_7_lazy;
      const _component_LazyScrollToTop = __nuxt_component_8_lazy;
      const _component_NuxtLayout = __nuxt_component_9;
      const _component_NuxtPage = __nuxt_component_10;
      _push(ssrRenderComponent(_component_Html, mergeProps({
        lang: unref(localeHead2).htmlAttrs.lang,
        dir: unref(localeHead2).htmlAttrs.dir
      }, _attrs), {
        default: withCtx((_, _push2, _parent2, _scopeId) => {
          if (_push2) {
            _push2(ssrRenderComponent(_component_Head, null, {
              default: withCtx((_2, _push3, _parent3, _scopeId2) => {
                if (_push3) {
                  _push3(`<!--[-->`);
                  ssrRenderList(unref(localeHead2).link, (link) => {
                    var _a;
                    _push3(`<!--[-->`);
                    if (!(((_a = unref(route).meta.i18n) == null ? void 0 : _a.seo) === false && (link.rel === "alternate" || link.rel === "canonical"))) {
                      _push3(ssrRenderComponent(_component_Link, {
                        id: link.key,
                        rel: link.rel,
                        href: link.href,
                        hreflang: link.hreflang
                      }, null, _parent3, _scopeId2));
                    } else {
                      _push3(`<!---->`);
                    }
                    _push3(`<!--]-->`);
                  });
                  _push3(`<!--]--><!--[-->`);
                  ssrRenderList(unref(localeHead2).meta, (meta) => {
                    _push3(ssrRenderComponent(_component_Meta, {
                      id: meta.key,
                      property: meta.property,
                      content: meta.content
                    }, null, _parent3, _scopeId2));
                  });
                  _push3(`<!--]-->`);
                } else {
                  return [
                    (openBlock(true), createBlock(Fragment, null, renderList(unref(localeHead2).link, (link) => {
                      var _a;
                      return openBlock(), createBlock(Fragment, {
                        key: link.key
                      }, [
                        !(((_a = unref(route).meta.i18n) == null ? void 0 : _a.seo) === false && (link.rel === "alternate" || link.rel === "canonical")) ? (openBlock(), createBlock(_component_Link, {
                          key: 0,
                          id: link.key,
                          rel: link.rel,
                          href: link.href,
                          hreflang: link.hreflang
                        }, null, 8, ["id", "rel", "href", "hreflang"])) : createCommentVNode("", true)
                      ], 64);
                    }), 128)),
                    (openBlock(true), createBlock(Fragment, null, renderList(unref(localeHead2).meta, (meta) => {
                      return openBlock(), createBlock(_component_Meta, {
                        key: meta.key,
                        id: meta.key,
                        property: meta.property,
                        content: meta.content
                      }, null, 8, ["id", "property", "content"]);
                    }), 128))
                  ];
                }
              }),
              _: 1
            }, _parent2, _scopeId));
            _push2(ssrRenderComponent(_component_Body, null, {
              default: withCtx((_2, _push3, _parent3, _scopeId2) => {
                if (_push3) {
                  _push3(ssrRenderComponent(_component_NuxtLoadingIndicator, { color: "var(--accent)" }, null, _parent3, _scopeId2));
                  _push3(ssrRenderComponent(_component_LazyToaster, {
                    position: "top-right",
                    duration: 3e3,
                    dir: unref(dir)
                  }, null, _parent3, _scopeId2));
                  _push3(ssrRenderComponent(_component_LazyNoNetworkBanner, null, null, _parent3, _scopeId2));
                  if (unref(showScrollToTop)) {
                    _push3(ssrRenderComponent(_component_LazyScrollToTop, null, null, _parent3, _scopeId2));
                  } else {
                    _push3(`<!---->`);
                  }
                  _push3(ssrRenderComponent(_component_NuxtLayout, null, {
                    default: withCtx((_3, _push4, _parent4, _scopeId3) => {
                      if (_push4) {
                        _push4(ssrRenderComponent(_component_NuxtPage, {
                          transition: {
                            name: "page",
                            mode: "out-in",
                            onBeforeLeave: () => {
                              unref(html).style.overflowX = "hidden";
                            },
                            onBeforeEnter: async () => {
                              await unref(finalizePendingLocaleChange)();
                            },
                            onAfterEnter: () => {
                              unref(html).style.overflowX = "";
                            },
                            onEnterCancelled: () => {
                              unref(html).style.overflowX = "";
                            }
                          }
                        }, null, _parent4, _scopeId3));
                      } else {
                        return [
                          createVNode(_component_NuxtPage, {
                            transition: {
                              name: "page",
                              mode: "out-in",
                              onBeforeLeave: () => {
                                unref(html).style.overflowX = "hidden";
                              },
                              onBeforeEnter: async () => {
                                await unref(finalizePendingLocaleChange)();
                              },
                              onAfterEnter: () => {
                                unref(html).style.overflowX = "";
                              },
                              onEnterCancelled: () => {
                                unref(html).style.overflowX = "";
                              }
                            }
                          }, null, 8, ["transition"])
                        ];
                      }
                    }),
                    _: 1
                  }, _parent3, _scopeId2));
                } else {
                  return [
                    createVNode(_component_NuxtLoadingIndicator, { color: "var(--accent)" }),
                    createVNode(_component_LazyToaster, {
                      position: "top-right",
                      duration: 3e3,
                      dir: unref(dir)
                    }, null, 8, ["dir"]),
                    createVNode(_component_LazyNoNetworkBanner),
                    unref(showScrollToTop) ? (openBlock(), createBlock(_component_LazyScrollToTop, { key: 0 })) : createCommentVNode("", true),
                    createVNode(_component_NuxtLayout, null, {
                      default: withCtx(() => [
                        createVNode(_component_NuxtPage, {
                          transition: {
                            name: "page",
                            mode: "out-in",
                            onBeforeLeave: () => {
                              unref(html).style.overflowX = "hidden";
                            },
                            onBeforeEnter: async () => {
                              await unref(finalizePendingLocaleChange)();
                            },
                            onAfterEnter: () => {
                              unref(html).style.overflowX = "";
                            },
                            onEnterCancelled: () => {
                              unref(html).style.overflowX = "";
                            }
                          }
                        }, null, 8, ["transition"])
                      ]),
                      _: 1
                    })
                  ];
                }
              }),
              _: 1
            }, _parent2, _scopeId));
          } else {
            return [
              createVNode(_component_Head, null, {
                default: withCtx(() => [
                  (openBlock(true), createBlock(Fragment, null, renderList(unref(localeHead2).link, (link) => {
                    var _a;
                    return openBlock(), createBlock(Fragment, {
                      key: link.key
                    }, [
                      !(((_a = unref(route).meta.i18n) == null ? void 0 : _a.seo) === false && (link.rel === "alternate" || link.rel === "canonical")) ? (openBlock(), createBlock(_component_Link, {
                        key: 0,
                        id: link.key,
                        rel: link.rel,
                        href: link.href,
                        hreflang: link.hreflang
                      }, null, 8, ["id", "rel", "href", "hreflang"])) : createCommentVNode("", true)
                    ], 64);
                  }), 128)),
                  (openBlock(true), createBlock(Fragment, null, renderList(unref(localeHead2).meta, (meta) => {
                    return openBlock(), createBlock(_component_Meta, {
                      key: meta.key,
                      id: meta.key,
                      property: meta.property,
                      content: meta.content
                    }, null, 8, ["id", "property", "content"]);
                  }), 128))
                ]),
                _: 1
              }),
              createVNode(_component_Body, null, {
                default: withCtx(() => [
                  createVNode(_component_NuxtLoadingIndicator, { color: "var(--accent)" }),
                  createVNode(_component_LazyToaster, {
                    position: "top-right",
                    duration: 3e3,
                    dir: unref(dir)
                  }, null, 8, ["dir"]),
                  createVNode(_component_LazyNoNetworkBanner),
                  unref(showScrollToTop) ? (openBlock(), createBlock(_component_LazyScrollToTop, { key: 0 })) : createCommentVNode("", true),
                  createVNode(_component_NuxtLayout, null, {
                    default: withCtx(() => [
                      createVNode(_component_NuxtPage, {
                        transition: {
                          name: "page",
                          mode: "out-in",
                          onBeforeLeave: () => {
                            unref(html).style.overflowX = "hidden";
                          },
                          onBeforeEnter: async () => {
                            await unref(finalizePendingLocaleChange)();
                          },
                          onAfterEnter: () => {
                            unref(html).style.overflowX = "";
                          },
                          onEnterCancelled: () => {
                            unref(html).style.overflowX = "";
                          }
                        }
                      }, null, 8, ["transition"])
                    ]),
                    _: 1
                  })
                ]),
                _: 1
              })
            ];
          }
        }),
        _: 1
      }, _parent));
    };
  }
});
const _sfc_setup$e = _sfc_main$e.setup;
_sfc_main$e.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue");
  return _sfc_setup$e ? _sfc_setup$e(props, ctx) : void 0;
};
async function imageMeta(_ctx, url) {
  const meta = await _imageMeta(url).catch((err) => {
    console.error("Failed to get image meta for " + url, err + "");
    return {
      width: 0,
      height: 0,
      ratio: 0
    };
  });
  return meta;
}
async function _imageMeta(url) {
  {
    const imageMeta2 = await import('image-meta').then((r) => r.imageMeta);
    const data = await fetch(url).then((res) => res.buffer());
    const metadata = imageMeta2(data);
    if (!metadata) {
      throw new Error(`No metadata could be extracted from the image \`${url}\`.`);
    }
    const { width, height } = metadata;
    const meta = {
      width,
      height,
      ratio: width && height ? width / height : void 0
    };
    return meta;
  }
}
function getFileExtension(url = "") {
  const extension = url.split(/[?#]/).shift().split("/").pop().split(".").pop();
  return extension;
}
function createMapper(map) {
  return (key) => {
    return key ? map[key] || key : map.missingValue;
  };
}
function createOperationsGenerator({ formatter, keyMap, joinWith = "/", valueMap } = {}) {
  if (!formatter) {
    formatter = (key, value) => `${key}=${value}`;
  }
  if (keyMap && typeof keyMap !== "function") {
    keyMap = createMapper(keyMap);
  }
  const map = valueMap || {};
  Object.keys(map).forEach((valueKey) => {
    if (typeof map[valueKey] !== "function") {
      map[valueKey] = createMapper(map[valueKey]);
    }
  });
  return (modifiers = {}) => {
    const operations = Object.entries(modifiers).filter(([_, value]) => typeof value !== "undefined").map(([key, value]) => {
      const mapper = map[key];
      if (typeof mapper === "function") {
        value = mapper(modifiers[key]);
      }
      key = typeof keyMap === "function" ? keyMap(key) : key;
      return formatter(key, value);
    });
    return operations.join(joinWith);
  };
}
function parseSize(input = "") {
  if (typeof input === "number") {
    return input;
  }
  if (typeof input === "string") {
    if (input.replace("px", "").match(/^\d+$/g)) {
      return Number.parseInt(input, 10);
    }
  }
}
function parseDensities(input = "") {
  if (input === void 0 || !input.length) {
    return [];
  }
  const densities = /* @__PURE__ */ new Set();
  for (const density of input.split(" ")) {
    const d = Number.parseInt(density.replace("x", ""));
    if (d) {
      densities.add(d);
    }
  }
  return Array.from(densities);
}
function checkDensities(densities) {
  if (densities.length === 0) {
    throw new Error("`densities` must not be empty, configure to `1` to render regular size only (DPR 1.0)");
  }
}
function parseSizes(input) {
  const sizes = {};
  if (typeof input === "string") {
    for (const entry2 of input.split(/[\s,]+/).filter((e) => e)) {
      const s = entry2.split(":");
      if (s.length !== 2) {
        sizes["1px"] = s[0].trim();
      } else {
        sizes[s[0].trim()] = s[1].trim();
      }
    }
  } else {
    Object.assign(sizes, input);
  }
  return sizes;
}
function prerenderStaticImages(src = "", srcset = "") {
  {
    return;
  }
}
function createImage(globalOptions) {
  const ctx = {
    options: globalOptions
  };
  const getImage2 = (input, options = {}) => {
    const image = resolveImage(ctx, input, options);
    return image;
  };
  const $img = (input, modifiers = {}, options = {}) => {
    return getImage2(input, {
      ...options,
      modifiers: defu(modifiers, options.modifiers || {})
    }).url;
  };
  for (const presetName in globalOptions.presets) {
    $img[presetName] = (source, modifiers, options) => $img(source, modifiers, { ...globalOptions.presets[presetName], ...options });
  }
  $img.options = globalOptions;
  $img.getImage = getImage2;
  $img.getMeta = (input, options) => getMeta(ctx, input, options);
  $img.getSizes = (input, options) => getSizes(ctx, input, options);
  ctx.$img = $img;
  return $img;
}
async function getMeta(ctx, input, options) {
  const image = resolveImage(ctx, input, { ...options });
  if (typeof image.getMeta === "function") {
    return await image.getMeta();
  } else {
    return await imageMeta(ctx, image.url);
  }
}
function resolveImage(ctx, input, options) {
  var _a, _b;
  if (input && typeof input !== "string") {
    throw new TypeError(`input must be a string (received ${typeof input}: ${JSON.stringify(input)})`);
  }
  if (!input || input.startsWith("data:")) {
    return {
      url: input
    };
  }
  const { provider, defaults } = getProvider(ctx, options.provider || ctx.options.provider);
  const preset = getPreset(ctx, options.preset);
  input = hasProtocol(input) ? input : withLeadingSlash(input);
  if (!provider.supportsAlias) {
    for (const base in ctx.options.alias) {
      if (input.startsWith(base)) {
        const alias = ctx.options.alias[base];
        if (alias) {
          input = joinURL(alias, input.slice(base.length));
        }
      }
    }
  }
  if (provider.validateDomains && hasProtocol(input)) {
    const inputHost = parseURL(input).host;
    if (!ctx.options.domains.find((d) => d === inputHost)) {
      return {
        url: input
      };
    }
  }
  const _options = defu(options, preset, defaults);
  _options.modifiers = { ..._options.modifiers };
  const expectedFormat = _options.modifiers.format;
  if ((_a = _options.modifiers) == null ? void 0 : _a.width) {
    _options.modifiers.width = parseSize(_options.modifiers.width);
  }
  if ((_b = _options.modifiers) == null ? void 0 : _b.height) {
    _options.modifiers.height = parseSize(_options.modifiers.height);
  }
  const image = provider.getImage(input, _options, ctx);
  image.format = image.format || expectedFormat || "";
  return image;
}
function getProvider(ctx, name) {
  const provider = ctx.options.providers[name];
  if (!provider) {
    throw new Error("Unknown provider: " + name);
  }
  return provider;
}
function getPreset(ctx, name) {
  if (!name) {
    return {};
  }
  if (!ctx.options.presets[name]) {
    throw new Error("Unknown preset: " + name);
  }
  return ctx.options.presets[name];
}
function getSizes(ctx, input, opts) {
  var _a, _b, _c, _d, _e;
  const width = parseSize((_a = opts.modifiers) == null ? void 0 : _a.width);
  const height = parseSize((_b = opts.modifiers) == null ? void 0 : _b.height);
  const sizes = parseSizes(opts.sizes);
  const densities = ((_c = opts.densities) == null ? void 0 : _c.trim()) ? parseDensities(opts.densities.trim()) : ctx.options.densities;
  checkDensities(densities);
  const hwRatio = width && height ? height / width : 0;
  const sizeVariants = [];
  const srcsetVariants = [];
  if (Object.keys(sizes).length >= 1) {
    for (const key in sizes) {
      const variant = getSizesVariant(key, String(sizes[key]), height, hwRatio, ctx);
      if (variant === void 0) {
        continue;
      }
      sizeVariants.push({
        size: variant.size,
        screenMaxWidth: variant.screenMaxWidth,
        media: `(max-width: ${variant.screenMaxWidth}px)`
      });
      for (const density of densities) {
        srcsetVariants.push({
          width: variant._cWidth * density,
          src: getVariantSrc(ctx, input, opts, variant, density)
        });
      }
    }
    finaliseSizeVariants(sizeVariants);
  } else {
    for (const density of densities) {
      const key = Object.keys(sizes)[0];
      let variant = key ? getSizesVariant(key, String(sizes[key]), height, hwRatio, ctx) : void 0;
      if (variant === void 0) {
        variant = {
          size: "",
          screenMaxWidth: 0,
          _cWidth: (_d = opts.modifiers) == null ? void 0 : _d.width,
          _cHeight: (_e = opts.modifiers) == null ? void 0 : _e.height
        };
      }
      srcsetVariants.push({
        width: density,
        src: getVariantSrc(ctx, input, opts, variant, density)
      });
    }
  }
  finaliseSrcsetVariants(srcsetVariants);
  const defaultVariant = srcsetVariants[srcsetVariants.length - 1];
  const sizesVal = sizeVariants.length ? sizeVariants.map((v) => `${v.media ? v.media + " " : ""}${v.size}`).join(", ") : void 0;
  const suffix = sizesVal ? "w" : "x";
  const srcsetVal = srcsetVariants.map((v) => `${v.src} ${v.width}${suffix}`).join(", ");
  return {
    sizes: sizesVal,
    srcset: srcsetVal,
    src: defaultVariant == null ? void 0 : defaultVariant.src
  };
}
function getSizesVariant(key, size, height, hwRatio, ctx) {
  const screenMaxWidth = ctx.options.screens && ctx.options.screens[key] || Number.parseInt(key);
  const isFluid = size.endsWith("vw");
  if (!isFluid && /^\d+$/.test(size)) {
    size = size + "px";
  }
  if (!isFluid && !size.endsWith("px")) {
    return void 0;
  }
  let _cWidth = Number.parseInt(size);
  if (!screenMaxWidth || !_cWidth) {
    return void 0;
  }
  if (isFluid) {
    _cWidth = Math.round(_cWidth / 100 * screenMaxWidth);
  }
  const _cHeight = hwRatio ? Math.round(_cWidth * hwRatio) : height;
  return {
    size,
    screenMaxWidth,
    _cWidth,
    _cHeight
  };
}
function getVariantSrc(ctx, input, opts, variant, density) {
  return ctx.$img(
    input,
    {
      ...opts.modifiers,
      width: variant._cWidth ? variant._cWidth * density : void 0,
      height: variant._cHeight ? variant._cHeight * density : void 0
    },
    opts
  );
}
function finaliseSizeVariants(sizeVariants) {
  var _a;
  sizeVariants.sort((v1, v2) => v1.screenMaxWidth - v2.screenMaxWidth);
  let previousMedia = null;
  for (let i = sizeVariants.length - 1; i >= 0; i--) {
    const sizeVariant = sizeVariants[i];
    if (sizeVariant.media === previousMedia) {
      sizeVariants.splice(i, 1);
    }
    previousMedia = sizeVariant.media;
  }
  for (let i = 0; i < sizeVariants.length; i++) {
    sizeVariants[i].media = ((_a = sizeVariants[i + 1]) == null ? void 0 : _a.media) || "";
  }
}
function finaliseSrcsetVariants(srcsetVariants) {
  srcsetVariants.sort((v1, v2) => v1.width - v2.width);
  let previousWidth = null;
  for (let i = srcsetVariants.length - 1; i >= 0; i--) {
    const sizeVariant = srcsetVariants[i];
    if (sizeVariant.width === previousWidth) {
      srcsetVariants.splice(i, 1);
    }
    previousWidth = sizeVariant.width;
  }
}
const operationsGenerator = createOperationsGenerator({
  keyMap: {
    format: "f",
    fit: "fit",
    width: "w",
    height: "h",
    resize: "s",
    quality: "q",
    background: "b"
  },
  joinWith: "&",
  formatter: (key, val) => encodeParam(key) + "_" + encodeParam(val)
});
const getImage = (src, { modifiers = {}, baseURL: baseURL2 } = {}, ctx) => {
  if (modifiers.width && modifiers.height) {
    modifiers.resize = `${modifiers.width}x${modifiers.height}`;
    delete modifiers.width;
    delete modifiers.height;
  }
  const params = operationsGenerator(modifiers) || "_";
  if (!baseURL2) {
    baseURL2 = joinURL(ctx.options.nuxt.baseURL, "/_ipx");
  }
  return {
    url: joinURL(baseURL2, params, encodePath(src))
  };
};
const validateDomains = true;
const supportsAlias = true;
const ipxRuntime$ePpaO3vzki_45NrZmWJpYLzGKLgwHEdBccBGNxeFwvEi4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  getImage,
  supportsAlias,
  validateDomains
}, Symbol.toStringTag, { value: "Module" }));
const imageOptions = {
  "screens": {
    "xs": 320,
    "sm": 640,
    "md": 768,
    "lg": 1024,
    "xl": 1280,
    "xxl": 1536,
    "2xl": 1536
  },
  "presets": {
    "default": {
      "modifiers": {
        "format": "webp",
        "quality": 80
      }
    }
  },
  "provider": "ipx",
  "domains": [
    "admin.p4.webstdy.com",
    "picsum.photos"
  ],
  "alias": {},
  "densities": [
    1,
    2
  ],
  "format": [
    "avif",
    "webp",
    "webp"
  ],
  "quality": 80
};
imageOptions.providers = {
  ["ipx"]: { provider: ipxRuntime$ePpaO3vzki_45NrZmWJpYLzGKLgwHEdBccBGNxeFwvEi4, defaults: {} }
};
const useImage = () => {
  const config = /* @__PURE__ */ useRuntimeConfig();
  const nuxtApp = useNuxtApp();
  return nuxtApp.$img || nuxtApp._img || (nuxtApp._img = createImage({
    ...imageOptions,
    nuxt: {
      baseURL: config.app.baseURL
    },
    runtimeConfig: config
  }));
};
const baseImageProps = {
  // input source
  src: { type: String, required: false },
  // modifiers
  format: { type: String, required: false },
  quality: { type: [Number, String], required: false },
  background: { type: String, required: false },
  fit: { type: String, required: false },
  modifiers: { type: Object, required: false },
  // options
  preset: { type: String, required: false },
  provider: { type: String, required: false },
  sizes: { type: [Object, String], required: false },
  densities: { type: String, required: false },
  preload: {
    type: [Boolean, Object],
    required: false
  },
  // <img> attributes
  width: { type: [String, Number], required: false },
  height: { type: [String, Number], required: false },
  alt: { type: String, required: false },
  referrerpolicy: { type: String, required: false },
  usemap: { type: String, required: false },
  longdesc: { type: String, required: false },
  ismap: { type: Boolean, required: false },
  loading: {
    type: String,
    required: false,
    validator: (val) => ["lazy", "eager"].includes(val)
  },
  crossorigin: {
    type: [Boolean, String],
    required: false,
    validator: (val) => ["anonymous", "use-credentials", "", true, false].includes(val)
  },
  decoding: {
    type: String,
    required: false,
    validator: (val) => ["async", "auto", "sync"].includes(val)
  },
  // csp
  nonce: { type: [String], required: false }
};
const useBaseImage = (props) => {
  const options = computed(() => {
    return {
      provider: props.provider,
      preset: props.preset
    };
  });
  const attrs = computed(() => {
    return {
      width: parseSize(props.width),
      height: parseSize(props.height),
      alt: props.alt,
      referrerpolicy: props.referrerpolicy,
      usemap: props.usemap,
      longdesc: props.longdesc,
      ismap: props.ismap,
      crossorigin: props.crossorigin === true ? "anonymous" : props.crossorigin || void 0,
      loading: props.loading,
      decoding: props.decoding,
      nonce: props.nonce
    };
  });
  const $img = useImage();
  const modifiers = computed(() => {
    return {
      ...props.modifiers,
      width: parseSize(props.width),
      height: parseSize(props.height),
      format: props.format,
      quality: props.quality || $img.options.quality,
      background: props.background,
      fit: props.fit
    };
  });
  return {
    options,
    attrs,
    modifiers
  };
};
const pictureProps = {
  ...baseImageProps,
  legacyFormat: { type: String, default: null },
  imgAttrs: { type: Object, default: null }
};
const imgProps = {
  ...baseImageProps,
  placeholder: { type: [Boolean, String, Number, Array], required: false },
  placeholderClass: { type: String, required: false },
  custom: { type: Boolean, required: false }
};
const _sfc_main$d = /* @__PURE__ */ defineComponent({
  __name: "NuxtImg",
  __ssrInlineRender: true,
  props: imgProps,
  emits: ["load", "error"],
  setup(__props, { emit: __emit }) {
    const props = __props;
    const attrs = useAttrs();
    const isServer = true;
    const $img = useImage();
    const _base = useBaseImage(props);
    const placeholderLoaded = ref(false);
    const imgEl = ref();
    const sizes = computed(() => $img.getSizes(props.src, {
      ..._base.options.value,
      sizes: props.sizes,
      densities: props.densities,
      modifiers: {
        ..._base.modifiers.value,
        width: parseSize(props.width),
        height: parseSize(props.height)
      }
    }));
    const imgAttrs = computed(() => {
      const attrs2 = { ..._base.attrs.value, "data-nuxt-img": "" };
      if (!props.placeholder || placeholderLoaded.value) {
        attrs2.sizes = sizes.value.sizes;
        attrs2.srcset = sizes.value.srcset;
      }
      return attrs2;
    });
    const placeholder = computed(() => {
      let placeholder2 = props.placeholder;
      if (placeholder2 === "") {
        placeholder2 = true;
      }
      if (!placeholder2 || placeholderLoaded.value) {
        return false;
      }
      if (typeof placeholder2 === "string") {
        return placeholder2;
      }
      const size = Array.isArray(placeholder2) ? placeholder2 : typeof placeholder2 === "number" ? [placeholder2, placeholder2] : [10, 10];
      return $img(props.src, {
        ..._base.modifiers.value,
        width: size[0],
        height: size[1],
        quality: size[2] || 50,
        blur: size[3] || 3
      }, _base.options.value);
    });
    const mainSrc = computed(
      () => props.sizes ? sizes.value.src : $img(props.src, _base.modifiers.value, _base.options.value)
    );
    const src = computed(() => placeholder.value ? placeholder.value : mainSrc.value);
    if (props.preload) {
      const isResponsive = Object.values(sizes.value).every((v) => v);
      useHead({
        link: [{
          rel: "preload",
          as: "image",
          nonce: props.nonce,
          ...!isResponsive ? { href: src.value } : {
            href: sizes.value.src,
            imagesizes: sizes.value.sizes,
            imagesrcset: sizes.value.srcset
          },
          ...typeof props.preload !== "boolean" && props.preload.fetchPriority ? { fetchpriority: props.preload.fetchPriority } : {}
        }]
      });
    }
    const nuxtApp = useNuxtApp();
    nuxtApp.isHydrating;
    return (_ctx, _push, _parent, _attrs) => {
      if (!_ctx.custom) {
        _push(`<img${ssrRenderAttrs(mergeProps({
          ref_key: "imgEl",
          ref: imgEl,
          class: placeholder.value && !placeholderLoaded.value ? _ctx.placeholderClass : void 0
        }, {
          ...unref(isServer) ? { onerror: "this.setAttribute('data-error', 1)" } : {},
          ...imgAttrs.value,
          ...unref(attrs)
        }, { src: src.value }, _attrs))}>`);
      } else {
        ssrRenderSlot(_ctx.$slots, "default", {
          ...unref(isServer) ? { onerror: "this.setAttribute('data-error', 1)" } : {},
          imgAttrs: {
            ...imgAttrs.value,
            ...unref(attrs)
          },
          isLoaded: placeholderLoaded.value,
          src: src.value
        }, null, _push, _parent);
      }
    };
  }
});
const _sfc_setup$d = _sfc_main$d.setup;
_sfc_main$d.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/@nuxt/image/dist/runtime/components/NuxtImg.vue");
  return _sfc_setup$d ? _sfc_setup$d(props, ctx) : void 0;
};
const _export_sfc = (sfc, props) => {
  const target = sfc.__vccOpts || sfc;
  for (const [key, val] of props) {
    target[key] = val;
  }
  return target;
};
const _sfc_main$c = {};
function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs) {
  _push(`<svg${ssrRenderAttrs(mergeProps({
    xmlns: "http://www.w3.org/2000/svg",
    width: "370",
    height: "374",
    viewBox: "0 0 370 374",
    fill: "none"
  }, _attrs))} data-v-52d04bd6><path d="M258.585 101.661C258.585 101.661 273.152 103.342 278.48 115.479C283.808 127.615 263.812 172.708 263.812 172.708L158.187 147.703L173.646 88.6711L258.585 101.661Z" fill="#C7DCF9" data-v-52d04bd6></path><path d="M241.383 119.091C241.383 119.091 253.766 126.46 259.701 136.695C265.637 146.929 271.299 166.529 272.781 174.041C261.885 191.331 201.608 195.442 201.608 195.442L129.026 145.311C129.026 145.311 133.622 125.042 137.067 118.9C140.511 112.758 154.284 102.578 173.96 104.967C188.349 116.968 241.383 119.091 241.383 119.091Z" fill="#E1ECFF" data-v-52d04bd6></path><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" data-v-52d04bd6><path d="M247.1 123.086C247.1 123.086 227.516 135.703 200.901 132.849C174.286 129.995 162.885 104.924 162.885 104.924L173.974 104.967L241.383 119.091L247.1 123.086Z" fill="#E1ECFF" data-v-52d04bd6></path></g><path d="M181.444 226.952C181.444 226.952 154.4 234.385 147.309 238.369C140.218 242.354 132.289 293.352 125.122 299.951C117.955 306.551 108.931 301.196 98.303 298.273C87.6753 295.349 77.5115 291.089 76.5194 288.44C75.5273 285.791 76.5167 273.88 79.3033 270.783C82.09 267.686 91.8454 264.906 97.9681 266.853C100.041 243.877 102.783 210.445 111.668 203.564C120.553 196.682 150.353 186.555 150.353 186.555L181.444 226.952Z" fill="#E1ECFF" data-v-52d04bd6></path><path d="M253.124 203.336C253.124 203.336 245.828 242.738 233.273 256.316C220.719 269.894 193.14 276.457 187.262 284.721C181.384 292.985 191.013 322.537 185.594 332.5C180.176 342.464 170.862 350.175 160.697 351.939C150.532 353.703 141.315 351.07 140.018 346.631C138.72 342.191 138.081 338.211 142.107 334.578C146.133 330.946 152.171 327.202 151.71 324.349C151.248 321.496 145.194 277.795 144.303 265.715C143.412 253.635 156.126 233.092 175.875 219.169C191.965 196.24 225.822 195.144 225.822 195.144L253.124 203.336Z" fill="#E1ECFF" data-v-52d04bd6></path><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" data-v-52d04bd6><path d="M250.782 213.982C250.782 213.982 231.926 220.081 212.736 217.139C211.336 198.789 220.076 190.917 220.076 190.917L253.123 203.336L250.782 213.982Z" fill="#E1ECFF" data-v-52d04bd6></path></g><path d="M175.438 38.6161C188.263 26.5893 218.917 15.4776 244.723 34.3094C270.529 53.1411 267.55 80.6406 262.519 94.4197C257.258 108.875 232.948 135.327 197.001 126.233C161.054 117.14 144.322 67.805 175.438 38.6161Z" fill="#E1ECFF" data-v-52d04bd6></path><path d="M181.952 52.6155C169.504 59.3555 165.865 80.3306 175.119 97C184.373 113.669 202.979 121.559 220.274 117.029C237.57 112.498 251.583 96.1048 245.582 74.0797C239.811 52.9147 208.984 37.9818 181.952 52.6155Z" fill="#1C3177" data-v-52d04bd6></path><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" data-v-52d04bd6><path d="M257.663 181.908C238.18 178.509 246.222 156.674 227.829 157.126C205.923 166.467 199.312 166.993 199.312 166.993C199.312 166.993 253.135 193.584 257.663 181.908Z" fill="#E1ECFF" data-v-52d04bd6></path></g><path d="M230.064 136.664L221.11 218.595L180.054 228.553L136.404 214.931L116.243 184.161L121.537 95.9324L144.802 130.338L185.983 148.239L230.064 136.664Z" fill="#FF97C9" data-v-52d04bd6></path><path d="M257.663 181.908C247.894 183.695 241.357 178.775 237.719 176.789C235.865 175.774 235.829 174.46 235.483 170.193C235.137 165.926 231.439 162.445 227.435 161.604C226.894 167.333 224.78 168.959 222.879 169.206C220.977 169.454 216.151 158.989 210.172 160.695C204.194 162.401 201.508 171.636 201.769 175.818C202.03 180 208.939 190.276 215.933 196.914C222.926 203.551 232.425 211.544 248.702 210.479C264.979 209.414 271.651 199.169 274.041 187.837C274.847 184.013 274.216 179.196 272.773 174.027C272.773 174.027 270.538 179.521 257.663 181.908Z" fill="#E1ECFF" data-v-52d04bd6></path><path d="M119.715 126.319C119.715 126.319 119.479 132.797 121.343 134.797C123.208 136.797 125.414 138.274 127.454 140.928C129.494 143.583 130.674 155.332 125.734 158.728C120.793 162.124 114.921 158.275 112.695 155.732C110.469 153.19 109.207 145.286 109.905 139.353C110.602 133.419 113.339 127.579 119.715 126.319Z" fill="#E1ECFF" data-v-52d04bd6></path><path d="M93.5135 53.6382L92.9537 56.4455C92.9206 56.6154 92.8466 56.7746 92.7379 56.9094C92.6293 57.0441 92.4894 57.1503 92.3305 57.2187L89.6954 58.3399C89.5113 58.4187 89.353 58.5474 89.2384 58.7116C89.1238 58.8758 89.0575 59.0688 89.0471 59.2688C89.0367 59.4688 89.0825 59.6677 89.1795 59.8429C89.2764 60.0181 89.4205 60.1626 89.5955 60.26L92.094 61.6665C92.2455 61.7509 92.3742 61.871 92.4689 62.0164C92.5636 62.1618 92.6214 62.3281 92.6372 62.5008L92.899 65.3371C92.917 65.5361 92.9904 65.726 93.1108 65.8855C93.2312 66.0449 93.3938 66.1675 93.5802 66.2394C93.7667 66.3112 93.9695 66.3295 94.1658 66.2921C94.362 66.2547 94.5439 66.1632 94.6909 66.0278L96.7984 64.0847C96.9254 63.9666 97.0793 63.8815 97.2468 63.8366C97.4142 63.7918 97.5901 63.7885 97.7591 63.8272L100.556 64.4563C100.751 64.5011 100.955 64.4902 101.145 64.4248C101.334 64.3594 101.501 64.2421 101.628 64.0863C101.754 63.9305 101.833 63.7425 101.858 63.5436C101.883 63.3447 101.851 63.1429 101.766 62.9611L100.571 60.375C100.498 60.2175 100.465 60.0446 100.474 59.8713C100.484 59.6981 100.535 59.5298 100.624 59.3809L102.085 56.9135C102.188 56.7417 102.24 56.5445 102.236 56.3443C102.233 56.1441 102.173 55.9489 102.064 55.7809C101.955 55.613 101.801 55.4789 101.62 55.394C101.438 55.3091 101.237 55.2768 101.038 55.3007L98.1955 55.6472C98.0236 55.6674 97.8494 55.6454 97.6879 55.583C97.5265 55.5206 97.3827 55.4198 97.2692 55.2892L95.3807 53.1379C95.2486 52.9856 95.0763 52.8736 94.8836 52.8145C94.6908 52.7555 94.4853 52.7518 94.2906 52.804C94.0959 52.8562 93.9197 52.9621 93.7823 53.1096C93.6449 53.2571 93.5518 53.4403 93.5135 53.6382Z" fill="#FEC272" data-v-52d04bd6></path><path d="M294.876 280.893L294.407 283.248C294.38 283.391 294.318 283.525 294.226 283.638C294.135 283.751 294.017 283.839 293.883 283.895L291.675 284.844C291.521 284.91 291.389 285.018 291.293 285.156C291.198 285.293 291.142 285.455 291.134 285.622C291.125 285.79 291.163 285.956 291.244 286.103C291.325 286.249 291.445 286.371 291.591 286.453L293.687 287.627C293.816 287.698 293.924 287.8 294.004 287.923C294.083 288.047 294.131 288.188 294.143 288.335L294.368 290.724C294.384 290.891 294.446 291.05 294.547 291.183C294.648 291.316 294.785 291.419 294.941 291.479C295.097 291.539 295.267 291.555 295.431 291.524C295.596 291.494 295.749 291.418 295.873 291.305L297.636 289.674C297.743 289.576 297.872 289.505 298.013 289.467C298.153 289.43 298.3 289.427 298.442 289.458L300.775 289.983C300.939 290.02 301.11 290.011 301.268 289.956C301.427 289.901 301.567 289.802 301.673 289.671C301.778 289.54 301.845 289.383 301.865 289.216C301.886 289.049 301.859 288.88 301.788 288.728L300.788 286.546C300.727 286.413 300.698 286.266 300.706 286.119C300.714 285.973 300.757 285.83 300.832 285.704L302.056 283.64C302.142 283.496 302.186 283.331 302.182 283.164C302.179 282.996 302.129 282.833 302.038 282.692C301.946 282.552 301.818 282.44 301.666 282.368C301.514 282.297 301.346 282.27 301.179 282.289L298.797 282.57C298.652 282.588 298.506 282.571 298.369 282.519C298.233 282.467 298.112 282.383 298.016 282.273L296.432 280.468C296.32 280.342 296.176 280.25 296.015 280.202C295.855 280.154 295.684 280.152 295.522 280.196C295.36 280.241 295.214 280.329 295.099 280.453C294.985 280.576 294.908 280.728 294.876 280.893Z" fill="#FEC272" data-v-52d04bd6></path><g style="${ssrRenderStyle({ "mix-blend-mode": "soft-light" })}" opacity="0.48" data-v-52d04bd6><path d="M199.527 71.779C189.431 72.2322 181.116 69.7045 180.956 66.1331C180.795 62.5618 188.85 59.2993 198.947 58.8461C209.044 58.3929 217.358 60.9207 217.519 64.492C217.679 68.0633 209.624 71.3258 199.527 71.779Z" fill="white" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" data-v-52d04bd6><path d="M206.958 186.352C206.958 186.352 215.299 173.612 217.286 173.08C219.273 172.547 226.641 178.877 225.998 181.25C225.355 183.623 221.028 191.99 214.854 195.862C211.558 192.286 206.958 186.352 206.958 186.352Z" fill="#E1ECFF" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" opacity="0.5" data-v-52d04bd6><path d="M185.982 148.239L180.053 228.553L136.403 214.931L144.801 130.338L185.982 148.239Z" fill="#FF97C9" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" data-v-52d04bd6><path d="M145.864 280.334C150.555 282.486 155.554 283.888 160.679 284.49C165.47 285 167.856 288.031 168.227 294.666C168.597 301.302 170.486 311.296 168.466 314.602C166.445 317.909 156.75 319.037 150.308 314.336C148.657 302.115 145.864 280.334 145.864 280.334Z" fill="#E1ECFF" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" data-v-52d04bd6><path d="M103.423 223.045C103.423 223.045 109.479 223.955 109.974 227.863C110.469 231.77 109.811 251.473 108.066 253.701C106.321 255.929 99.0752 254.748 99.0752 254.748C100.674 234.158 103.423 223.045 103.423 223.045Z" fill="#E1ECFF" data-v-52d04bd6></path></g><path d="M343.972 205.317C345.888 195.221 329.274 189.417 317.504 193.31C305.734 197.203 303.667 209.586 300.536 214.838C293.995 225.8 296.526 234.132 303.619 236.105C310.712 238.078 341.435 218.673 343.972 205.317Z" fill="#99ADF9" data-v-52d04bd6></path><path d="M65.6876 131.429C68.3561 127.442 60.9242 114.054 51.7885 112.903C42.6527 111.751 33.4097 118.163 32.7674 124.505C32.125 130.847 60.2157 139.596 65.6876 131.429Z" fill="#99ADF9" data-v-52d04bd6></path><path d="M27.388 149.921C29.8558 151.987 32.9872 158.917 29.5636 161.216C26.14 163.516 21.2906 156.823 21.5754 152.587C21.8602 148.35 25.7392 148.54 27.388 149.921Z" fill="#99ADF9" data-v-52d04bd6></path><path opacity="0.44" d="M8.91614 91.8305C12.0836 92.4017 18.2464 96.8538 16.4146 100.554C14.5827 104.254 7.05602 100.849 5.1989 97.0324C3.34177 93.2161 6.80065 91.4506 8.91614 91.8305Z" fill="#99ADF9" data-v-52d04bd6></path><path opacity="0.44" d="M334.271 248.236C336.185 245.647 342.899 242.084 345.412 245.359C347.926 248.634 341.54 253.87 337.312 253.865C333.084 253.86 332.999 249.964 334.271 248.236Z" fill="#99ADF9" data-v-52d04bd6></path><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" opacity="0.64" data-v-52d04bd6><path d="M301.998 211.818C306.543 211.472 306.883 215.529 306.435 219.406C305.988 223.284 301.374 225.591 297.072 223.31C297.882 217.393 301.998 211.818 301.998 211.818Z" fill="#99ADF9" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" opacity="0.64" data-v-52d04bd6><path d="M325.307 199.315C328.498 198.83 332.226 202.639 331.016 206.862C329.806 211.085 326.351 214.85 323.703 214.497C321.055 214.144 319.219 208.889 320.018 204.988C320.816 201.087 322.239 199.78 325.307 199.315Z" fill="#99ADF9" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" opacity="0.64" data-v-52d04bd6><path d="M41.6378 118.936C43.4838 119.022 45.7007 120.4 46.0821 122.428C46.4635 124.456 45.193 126.656 43.247 126.925C41.301 127.193 38.8824 124.581 38.6844 122.293C38.4863 120.004 40.2301 118.873 41.6378 118.936Z" fill="#99ADF9" data-v-52d04bd6></path></g><g style="${ssrRenderStyle({ "mix-blend-mode": "multiply" })}" opacity="0.64" data-v-52d04bd6><path d="M60.6865 117.984C60.6865 117.984 58.985 120.931 60.0793 123.465C61.1736 125.999 65.1137 124.682 65.1137 124.682C65.1137 124.682 63.312 120.344 60.6865 117.984Z" fill="#99ADF9" data-v-52d04bd6></path></g></svg>`);
}
const _sfc_setup$c = _sfc_main$c.setup;
_sfc_main$c.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/ErrorIcon.vue");
  return _sfc_setup$c ? _sfc_setup$c(props, ctx) : void 0;
};
const __nuxt_component_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["ssrRender", _sfc_ssrRender$1], ["__scopeId", "data-v-52d04bd6"]]);
const NuxtLinkLocale = /* @__PURE__ */ defineNuxtLink({ ...nuxtLinkDefaults, componentName: "NuxtLinkLocale" });
const __nuxt_component_0 = defineComponent({
  name: "NuxtLinkLocale",
  props: {
    ...NuxtLinkLocale.props,
    locale: {
      type: String,
      default: void 0,
      required: false
    }
  },
  setup(props, { slots }) {
    const localePath2 = useLocalePath();
    const resolvedPath = computed(() => {
      const destination = props.to ?? props.href;
      return destination != null ? localePath2(destination, props.locale) : destination;
    });
    const isExternal = computed(() => {
      if (props.external) {
        return true;
      }
      if (props.target && props.target !== "_self") {
        return true;
      }
      const destination = props.to ?? props.href;
      if (isObject(destination)) {
        return false;
      }
      return destination === "" || destination == null || hasProtocol(destination, { acceptRelative: true });
    });
    const getNuxtLinkProps = () => {
      const _props = {
        ...props
      };
      if (!isExternal.value) {
        _props.to = resolvedPath.value;
      }
      delete _props.href;
      delete _props.locale;
      return _props;
    };
    return () => h(NuxtLinkLocale, getNuxtLinkProps(), slots.default);
  }
});
const _sfc_main$b = /* @__PURE__ */ defineComponent({
  __name: "Error404",
  __ssrInlineRender: true,
  props: {
    error: {
      type: Object,
      default: () => ({})
    }
  },
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      var _a, _b;
      const _component_NuxtImg = _sfc_main$d;
      const _component_SvgErrorIcon = __nuxt_component_1$1;
      const _component_NuxtLinkLocale = __nuxt_component_0;
      _push(`<div${ssrRenderAttrs(mergeProps({
        dir: "rtl",
        class: "container mx-auto flex min-h-screen items-center justify-center px-4"
      }, _attrs))}><div class="grid w-full md:grid-cols-2"><div class="relative z-1 hidden h-full max-h-[580px] w-full max-w-[650px] md:block">`);
      _push(ssrRenderComponent(_component_NuxtImg, {
        src: "/images/error-bg.webp",
        alt: "Error Image",
        class: "h-full w-full object-contain"
      }, null, _parent));
      _push(ssrRenderComponent(_component_SvgErrorIcon, { class: "absolute top-1/2 left-1/2 w-full -translate-1/2" }, null, _parent));
      _push(`</div><div class="z-2 flex h-full w-full flex-col items-center justify-center"><h1 class="dark-text-gradient mb-[24px] flex items-center gap-2 text-center text-[60px] font-bold md:text-[80px]">${ssrInterpolate(_ctx.$t("errorPage.error"))} <span>${ssrInterpolate((_a = __props.error) == null ? void 0 : _a.statusCode)}</span></h1><h3 class="mb-[32px] text-center text-[28px] font-bold md:text-[40px]">${ssrInterpolate((_b = __props.error) == null ? void 0 : _b.statusMessage)}</h3><p class="text-muted-foreground mb-[32px] w-full max-w-[450px] text-center text-lg">${ssrInterpolate(_ctx.$t("errorPage.description"))}</p>`);
      _push(ssrRenderComponent(_component_NuxtLinkLocale, {
        class: "ws-gradient-border w-full max-w-[400px] cursor-pointer py-4 text-center",
        to: "/"
      }, {
        default: withCtx((_, _push2, _parent2, _scopeId) => {
          if (_push2) {
            _push2(`${ssrInterpolate(_ctx.$t("errorPage.goBack"))}`);
          } else {
            return [
              createTextVNode(toDisplayString$1(_ctx.$t("errorPage.goBack")), 1)
            ];
          }
        }),
        _: 1
      }, _parent));
      _push(`</div></div></div>`);
    };
  }
});
const _sfc_setup$b = _sfc_main$b.setup;
_sfc_main$b.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/error/Error404.vue");
  return _sfc_setup$b ? _sfc_setup$b(props, ctx) : void 0;
};
const _sfc_main$a = /* @__PURE__ */ defineComponent({
  ...{
    inheritAttrs: false
  },
  __name: "WarningTriangleIcon",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        fill: "none",
        stroke: "currentColor",
        viewBox: "0 0 24 24"
      }, _ctx.$attrs, _attrs))}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"></path></svg>`);
    };
  }
});
const _sfc_setup$a = _sfc_main$a.setup;
_sfc_main$a.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/WarningTriangleIcon.vue");
  return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
};
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
  ...{
    inheritAttrs: false
  },
  __name: "RefreshIcon",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        class: "h-5 w-5 transition-transform group-hover:rotate-180",
        fill: "none",
        stroke: "currentColor",
        viewBox: "0 0 24 24"
      }, _ctx.$attrs, _attrs))}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg>`);
    };
  }
});
const _sfc_setup$9 = _sfc_main$9.setup;
_sfc_main$9.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/RefreshIcon.vue");
  return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
};
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
  ...{
    inheritAttrs: false
  },
  __name: "ArrowLeftV2Icon",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        class: "h-5 w-5 transition-transform group-hover:-translate-x-1",
        fill: "none",
        stroke: "currentColor",
        viewBox: "0 0 24 24"
      }, _ctx.$attrs, _attrs))}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path></svg>`);
    };
  }
});
const _sfc_setup$8 = _sfc_main$8.setup;
_sfc_main$8.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/ArrowLeftV2Icon.vue");
  return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
};
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
  ...{
    inheritAttrs: false
  },
  __name: "GeneralHomeIcon",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        fill: "none",
        stroke: "currentColor",
        viewBox: "0 0 24 24"
      }, _ctx.$attrs, _attrs))}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg>`);
    };
  }
});
const _sfc_setup$7 = _sfc_main$7.setup;
_sfc_main$7.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/GeneralHomeIcon.vue");
  return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
};
const _sfc_main$6 = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
  _push(`<svg${ssrRenderAttrs(mergeProps({
    width: "151",
    height: "24",
    viewBox: "0 0 151 24",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, _attrs))}><g clip-path="url(#clip0_451_1815)"><path d="M31.2344 0.0969497L30.8666 1.29643L29.5815 5.48933L28.596 8.7071L26.5483 14.6964L25.19 9.74253L24.3545 7.0163L25.861 2.15137L25.919 1.96358C26.1092 1.41353 26.4659 0.936535 26.9394 0.598989C27.413 0.261444 27.9798 0.0801381 28.5611 0.0803014H31.1782L31.2344 0.0969497Z" fill="currentColor"></path><path d="M24.5484 14.2946H24.5391C23.7559 14.2938 22.9812 14.4561 22.2641 14.7714C21.547 15.0866 20.9033 15.5478 20.3738 16.1257L18.092 8.70729L17.8262 7.83955L17.5602 8.70729L13.7658 21.0422C13.5804 21.8703 13.1189 22.6104 12.4573 23.1408C11.7957 23.6712 10.9736 23.9602 10.1261 23.9603H10.073C9.22554 23.9602 8.40335 23.6712 7.74179 23.1408C7.08023 22.6104 6.61873 21.8703 6.43326 21.0422L2.63882 8.70729L1.65332 5.48831L0.36756 1.29682L0 0.0969372L0.0547429 0.0798799H2.6731C3.25425 0.079685 3.82099 0.260913 4.2945 0.598345C4.768 0.935776 5.12471 1.41263 5.31496 1.96255L5.37272 2.15055L9.77213 16.5059L10.0989 17.5726L10.4258 16.5059L14.8251 2.15055L14.8829 1.96255C15.0735 1.41286 15.4303 0.936245 15.9037 0.598871C16.3772 0.261498 16.9437 0.0801053 17.5248 0.0798799H18.1253C18.7063 0.0801053 19.2729 0.261498 19.7463 0.598871C20.2197 0.936245 20.5765 1.41286 20.7671 1.96255L20.8249 2.15055L23.3417 10.3628L24.5484 14.2946Z" fill="#00BED7"></path><path d="M36.2199 7.18888C36.2202 7.7808 36.4192 8.35544 36.7848 8.82049C37.1505 9.28554 37.6616 9.614 38.2361 9.7531H41.9148L45.4732 9.75919L47.5209 9.76244L48.2998 9.76386C49.9021 9.8546 51.4264 10.4864 52.624 11.5562C53.8216 12.626 54.6219 14.0706 54.8943 15.6544C55.1666 17.2382 54.8951 18.8677 54.1238 20.2771C53.3525 21.6864 52.1271 22.7925 50.6475 23.4148C51.1718 22.5453 51.4908 21.5674 51.5803 20.5557C51.6697 19.5439 51.5272 18.5251 51.1637 17.5769C51.1625 17.5721 51.1609 17.5673 51.159 17.5627C50.7758 16.5973 50.1118 15.7694 49.2531 15.1865C48.3943 14.6037 47.3804 14.2927 46.343 14.294H38.7947C37.2956 14.2813 35.839 13.7935 34.6339 12.9005C33.4287 12.0075 32.537 10.7552 32.0866 9.3232C31.6362 7.89125 31.6502 6.35323 32.1267 4.92977C32.6032 3.50631 33.5177 2.27056 34.7389 1.39978C34.7391 1.39862 34.7397 1.39755 34.7405 1.39673C35.8214 0.624977 37.0974 0.173358 38.4225 0.0935008L39.2671 0.0918775L46.0616 0.0811214L49.4211 0.0825403L53.8003 0.0811214H55.0548V0.138979L54.2868 2.64514C54.1163 3.20155 53.7769 3.69092 53.3157 4.04518C52.8546 4.39945 52.2947 4.601 51.7139 4.62181H51.5166L45.4761 4.62343H38.2311C37.6572 4.76353 37.147 5.0926 36.7823 5.55786C36.4175 6.02311 36.2194 6.59757 36.2197 7.18908" fill="#00BED7"></path><path d="M51.1631 17.5766C51.1963 17.661 51.2267 17.7467 51.2555 17.8331C51.2263 17.7469 51.1947 17.6612 51.1631 17.5766Z" fill="#00BED7"></path><path d="M27.684 19.9683C27.684 20.6005 27.4968 21.2186 27.146 21.7443C26.7953 22.27 26.2967 22.6797 25.7135 22.9216C25.1302 23.1636 24.4884 23.2269 23.8691 23.1035C23.2499 22.9802 22.6812 22.6757 22.2347 22.2287C21.7883 21.7816 21.4843 21.212 21.3611 20.5919C21.238 19.9719 21.3012 19.3291 21.5428 18.745C21.7844 18.1609 22.1935 17.6616 22.7185 17.3104C23.2434 16.9591 23.8606 16.7717 24.4919 16.7717C25.3385 16.7717 26.1504 17.1084 26.749 17.7079C27.3477 18.3074 27.684 19.1205 27.684 19.9683Z" fill="currentColor"></path><path d="M48.1459 19.9683C48.1459 20.6005 47.9587 21.2186 47.6079 21.7443C47.2572 22.27 46.7586 22.6797 46.1754 22.9216C45.5921 23.1636 44.9503 23.2269 44.3311 23.1035C43.7119 22.9802 43.1431 22.6757 42.6967 22.2287C42.2502 21.7816 41.9462 21.212 41.8231 20.5919C41.6999 19.9719 41.7631 19.3291 42.0047 18.745C42.2463 18.1609 42.6555 17.6616 43.1804 17.3104C43.7053 16.9591 44.3225 16.7717 44.9538 16.7717C45.8004 16.7717 46.6123 17.1084 47.211 17.7079C47.8096 18.3074 48.1459 19.1205 48.1459 19.9683Z" fill="currentColor"></path><path d="M38.0639 19.9683C38.0639 20.6005 37.8767 21.2186 37.5259 21.7442C37.1752 22.2699 36.6767 22.6797 36.0934 22.9216C35.5101 23.1636 34.8683 23.2269 34.2491 23.1035C33.6299 22.9802 33.0611 22.6758 32.6147 22.2288C32.1683 21.7817 31.8642 21.2121 31.741 20.5921C31.6179 19.972 31.6811 19.3293 31.9226 18.7451C32.1642 18.161 32.5733 17.6618 33.0982 17.3105C33.6231 16.9592 34.2403 16.7717 34.8716 16.7717C35.7182 16.7717 36.5302 17.1084 37.1288 17.7079C37.7275 18.3074 38.0638 19.1205 38.0639 19.9683Z" fill="currentColor"></path><path d="M73.3494 11.2923H72.8405C72.6122 11.2923 72.1907 11.2749 71.8219 10.6242C71.0495 9.25275 70.2067 7.01986 69.7151 4.75164C69.206 7.05518 68.3282 9.46389 67.2397 11.2923H66.748C66.4845 11.2923 66.0279 11.2749 65.677 10.6242C64.1143 7.84618 62.9198 4.06643 62.4814 0.60219H63.693C64.4304 0.60219 64.8867 1.25289 64.9747 1.81527C65.3047 3.92352 65.8884 5.984 66.713 7.95175C67.6786 5.68354 68.451 2.51856 68.732 1.00662H69.4343C70.1366 1.00662 70.8737 1.32314 71.0846 2.41319C71.4643 4.31853 72.0532 6.176 72.8405 7.95175C73.7959 5.5985 74.4564 3.13577 74.807 0.619854H75.9132C76.4048 0.619854 76.8255 0.971496 76.8255 1.60433C76.8255 2.18458 76.0879 4.71652 75.7368 5.8417C75.1514 7.74396 74.3502 9.57277 73.3489 11.2923" fill="currentColor"></path><path d="M83.9708 8.07501H82.6715C82.8296 9.07715 83.7425 9.70998 84.9016 9.70998C85.7267 9.70998 86.71 9.55202 87.3421 8.95411H87.4123V9.58715C87.4123 10.6067 86.7274 11.3805 84.5334 11.3805C84.0135 11.3774 83.4994 11.2709 83.021 11.067C82.5426 10.8631 82.1094 10.5661 81.7467 10.193C81.384 9.82 81.099 9.37846 80.9083 8.89411C80.7175 8.40977 80.6248 7.89227 80.6356 7.37172C80.6356 4.71674 82.251 3.04726 84.5158 3.04726C86.1663 3.04726 87.7115 4.24268 87.7115 6.14158C87.7115 7.60094 86.6054 8.07582 83.9716 8.07582M84.3404 4.6999C83.3922 4.6999 82.725 5.4917 82.6723 6.40532V6.66925H83.5501C85.4289 6.66925 85.8502 6.4581 85.8502 5.89551C85.8502 5.10371 85.2534 4.6999 84.3404 4.6999Z" fill="currentColor"></path><path d="M96.821 11.3805C94.7843 11.3805 93.0635 9.70996 93.0635 7.31892V0.0396042H93.7483C94.5208 0.0396042 95.0475 0.479158 95.0475 1.41105V4.25951C95.4515 3.67946 96.1185 3.04643 97.1896 3.04643C99.2265 3.04643 100.771 4.69906 100.771 7.05518C100.771 9.44643 99.2265 11.3797 96.821 11.3797M96.821 4.80383C95.8201 4.80383 95.0651 5.80596 95.0651 7.03712C95.0651 8.86578 95.8377 9.62185 97.014 9.62185C98.0147 9.62185 98.717 8.67229 98.717 7.38855C98.717 5.45432 98.0322 4.80403 96.821 4.80403" fill="currentColor"></path><path d="M109.268 11.3979C107.126 11.3979 106.038 10.5539 106.038 9.30574V8.35599H106.073C106.883 9.09824 107.942 9.50649 109.04 9.49882C110.62 9.49882 111.129 8.9539 111.129 8.10992C111.129 7.38917 110.848 7.05418 108.619 6.58011C106.828 6.19436 105.81 5.29678 105.81 3.85488C105.81 2.09688 107.284 0.426376 109.777 0.426376C112.253 0.426376 112.955 1.46384 112.955 2.36041V3.32701H112.903C112.254 2.62373 111.305 2.28955 110.146 2.28955C108.513 2.28955 107.898 2.83488 107.898 3.661C107.898 4.29403 108.39 4.681 110.374 5.08543C112.305 5.48986 113.253 6.492 113.253 7.91603C113.253 10.0086 111.83 11.3975 109.267 11.3975" fill="currentColor"></path><path d="M124.173 2.46598H122.224V11.2045H121.382C120.644 11.2045 120.1 10.7296 120.1 9.78022V2.46598H117.045V1.76372C117.051 1.6027 117.09 1.44459 117.158 1.29865C117.226 1.15271 117.323 1.02187 117.442 0.913792C117.562 0.805717 117.701 0.722576 117.853 0.669247C118.005 0.615917 118.166 0.593472 118.327 0.603217H125.438V1.27137C125.404 1.58882 125.258 1.88369 125.026 2.10289C124.794 2.32208 124.492 2.45121 124.173 2.467" fill="currentColor"></path><path d="M134.04 11.2924H133.145C131.354 11.2924 130.213 10.5891 130.213 8.95411V0.971925C131.063 0.720114 131.942 0.58408 132.828 0.567495H133.917C136.357 0.567495 138.903 2.20247 138.903 5.73675C138.903 8.95432 136.796 11.2926 134.04 11.2926M133.601 2.36063H133.144C132.873 2.37778 132.603 2.41298 132.337 2.46599V8.54968C132.337 9.16506 132.618 9.44625 133.391 9.44625H133.76C135.498 9.44625 136.744 7.95198 136.744 6.03541C136.744 3.66162 135.426 2.36063 133.602 2.36063" fill="currentColor"></path><path d="M147.892 6.6859V11.2045H146.996C146.382 11.2045 145.715 10.7472 145.715 9.81535V6.6859C144.348 4.82626 143.26 2.77683 142.484 0.602411H143.485C144.31 0.602411 144.767 1.0243 144.907 1.34082C145.462 2.6385 146.138 3.88068 146.926 5.05072C147.611 4.10117 148.735 2.20226 149.209 0.602411H150.139C150.701 0.602411 151 0.936391 151 1.42873C151 2.23739 148.84 5.57818 147.892 6.6859Z" fill="currentColor"></path><path d="M65.2876 17.4644C65.2841 17.4689 65.2795 17.4726 65.2744 17.4753C65.2693 17.4779 65.2637 17.4795 65.2579 17.4798C65.2522 17.4801 65.2464 17.4792 65.2411 17.4771C65.2357 17.475 65.2308 17.4718 65.2268 17.4676C65.2085 17.454 65.1915 17.4404 65.1755 17.427C65.1507 17.4113 65.1268 17.3942 65.1039 17.3759C65.0431 17.3326 64.9823 17.2946 64.9263 17.2597C64.7853 17.1852 64.6348 17.13 64.4791 17.0955C64.3824 17.0751 64.2842 17.0625 64.1855 17.0579H64.0252C63.9954 17.0581 63.9658 17.0604 63.9364 17.0648L63.8958 17.0681L63.8553 17.0715C63.741 17.0852 63.6288 17.1125 63.521 17.1527C63.4113 17.1928 63.3121 17.257 63.2307 17.3407C63.1467 17.4263 63.0867 17.5324 63.0565 17.6485L63.0464 17.6964C63.0421 17.7121 63.0398 17.7282 63.0395 17.7444C63.0336 17.7759 63.0302 17.8079 63.0293 17.84L63.0259 17.8913V17.9116L63.0293 17.9391L63.0326 17.9973L63.0395 18.0379L63.0429 18.0582L63.0498 18.0824L63.0634 18.1267C63.0672 18.1421 63.0729 18.1571 63.0804 18.1711L63.0906 18.1914L63.1009 18.2154L63.1248 18.256L63.1487 18.2966L63.1658 18.3169L63.1795 18.3372C63.1887 18.3506 63.1989 18.3632 63.2102 18.375C63.3098 18.4806 63.425 18.5705 63.5516 18.6415C63.689 18.7183 63.8303 18.7879 63.9749 18.85L64.0329 18.874L64.0909 18.9014L64.2036 18.9528L64.4256 19.0553C64.5834 19.1244 64.7362 19.2044 64.883 19.2947C65.0353 19.3881 65.1732 19.5032 65.2925 19.6364C65.4149 19.7779 65.4987 19.9487 65.5358 20.1321L65.5496 20.2006C65.5536 20.2231 65.5558 20.2459 65.5562 20.2688L65.5597 20.3372L65.5631 20.3715V20.4091L65.5597 20.4671L65.5562 20.4943V20.5287L65.5459 20.5971L65.5358 20.6655C65.5026 20.8387 65.4289 21.0015 65.3207 21.1406C65.2173 21.2738 65.0857 21.3825 64.9355 21.4587C64.7992 21.5273 64.6547 21.5778 64.5055 21.609L64.4544 21.6193L64.3996 21.6262C64.3661 21.6343 64.3318 21.6388 64.2972 21.6398L64.1949 21.65L64.0957 21.6536L64.0481 21.6569H63.9933L63.9045 21.6536C63.8749 21.6532 63.8453 21.6509 63.8159 21.6467L63.7681 21.6433L63.7202 21.6364C63.4195 21.6027 63.129 21.5072 62.8667 21.356C62.8054 21.3197 62.7473 21.2821 62.6926 21.2431C62.6494 21.2137 62.6085 21.1822 62.5697 21.1509C62.5448 21.1306 62.5221 21.1103 62.5014 21.0929C62.4961 21.0889 62.4918 21.0837 62.4889 21.0778C62.4859 21.0718 62.4844 21.0653 62.4844 21.0587C62.4844 21.052 62.4859 21.0455 62.4889 21.0395C62.4918 21.0336 62.4961 21.0284 62.5014 21.0244L62.6689 20.8673C62.6728 20.8625 62.6777 20.8586 62.6833 20.856C62.6889 20.8533 62.695 20.852 62.7012 20.852C62.7074 20.852 62.7135 20.8533 62.7191 20.856C62.7247 20.8586 62.7296 20.8625 62.7335 20.8673L62.7741 20.9012C62.8068 20.9293 62.841 20.9556 62.8765 20.98C62.9248 21.0145 62.975 21.0464 63.0267 21.0756C63.1647 21.1565 63.3127 21.2186 63.467 21.2604C63.5621 21.2879 63.6591 21.3082 63.7571 21.3213L63.7949 21.3249L63.8324 21.3282C63.8606 21.3327 63.8891 21.335 63.9177 21.3351L64.0065 21.3385H64.0234L64.0436 21.3351H64.088L64.1734 21.3318L64.262 21.3249C64.2871 21.3228 64.3167 21.3193 64.3508 21.3146L64.3952 21.3044L64.443 21.2975C64.5627 21.273 64.6785 21.2328 64.7877 21.1779C64.8982 21.1238 64.9952 21.0454 65.0715 20.9487C65.1499 20.8462 65.2037 20.7269 65.2286 20.6001L65.2353 20.5557L65.2422 20.5077C65.2447 20.4989 65.2459 20.4897 65.2456 20.4805V20.4531L65.2491 20.3949V20.3472L65.2456 20.2958C65.2454 20.2787 65.2442 20.2616 65.2422 20.2446L65.2353 20.2207L65.2321 20.1967C65.2044 20.0639 65.1433 19.9403 65.0545 19.8378C64.8401 19.6202 64.5833 19.4491 64.3001 19.3351L64.0712 19.2325L63.9619 19.1779L63.9108 19.154L63.8528 19.13C63.6973 19.0636 63.5457 18.9883 63.3987 18.9044C63.2456 18.816 63.1064 18.7054 62.9855 18.5762C62.9698 18.56 62.955 18.5429 62.9413 18.525L62.9211 18.4976L62.9008 18.4702C62.8688 18.42 62.845 18.3802 62.829 18.3506L62.8155 18.3163L62.8017 18.2856C62.7918 18.2647 62.7839 18.243 62.7779 18.2206L62.7577 18.1557L62.7508 18.1181L62.7439 18.0838L62.7303 18.0121V17.9541L62.7269 17.9267V17.8924V17.8239C62.729 17.7898 62.7336 17.7466 62.7404 17.6942C62.7426 17.6759 62.746 17.6556 62.7508 17.6333L62.7678 17.5724C62.8081 17.4039 62.8945 17.25 63.0172 17.128C63.1305 17.0167 63.2652 16.9295 63.4131 16.8717C63.5452 16.8221 63.6828 16.7887 63.8229 16.7725L63.8739 16.7692L63.925 16.7656C63.9556 16.7615 63.9864 16.7593 64.0173 16.7589H64.1093L64.2017 16.7623C64.5043 16.7712 64.8003 16.852 65.0654 16.9982C65.1267 17.0309 65.186 17.0674 65.2428 17.1075C65.2859 17.1345 65.328 17.1642 65.3691 17.1966C65.3829 17.2102 65.4044 17.2297 65.434 17.2546C65.4393 17.2586 65.4436 17.2638 65.4465 17.2697C65.4495 17.2757 65.451 17.2822 65.451 17.2889C65.451 17.2955 65.4495 17.302 65.4465 17.308C65.4436 17.3139 65.4393 17.3191 65.434 17.3231L65.2876 17.4644Z" fill="currentColor"></path><path d="M69.9003 21.225C69.6582 20.9826 69.5076 20.6636 69.4739 20.3225C69.4403 19.9813 69.5259 19.639 69.716 19.3539C69.9061 19.0688 70.189 18.8585 70.5166 18.7589C70.8442 18.6592 71.1961 18.6764 71.5124 18.8074C71.8288 18.9385 72.09 19.1753 72.2516 19.4775C72.4131 19.7798 72.4651 20.1288 72.3985 20.465C72.332 20.8013 72.1511 21.1041 71.8867 21.3219C71.6222 21.5396 71.2906 21.6587 70.9482 21.6591C70.7533 21.6618 70.5598 21.6248 70.3796 21.5501C70.1995 21.4755 70.0364 21.3649 69.9003 21.225ZM70.1255 19.3549C69.9368 19.545 69.8197 19.7947 69.794 20.0615C69.7684 20.3283 69.8359 20.5958 69.9849 20.8184C70.134 21.041 70.3555 21.205 70.6117 21.2825C70.868 21.36 71.1431 21.3462 71.3903 21.2435C71.6375 21.1407 71.8416 20.9554 71.9677 20.719C72.0939 20.4826 72.1343 20.2097 72.0822 19.9468C72.0301 19.6839 71.8886 19.4472 71.6819 19.2769C71.4752 19.1067 71.2159 19.0134 70.9482 19.013C70.795 19.0104 70.6429 19.0393 70.5013 19.0982C70.3598 19.157 70.2318 19.2444 70.1255 19.3549Z" fill="currentColor"></path><path d="M76.1159 19.0027C76.1094 19.0037 76.1027 19.0031 76.0965 19.0011C76.0902 18.9991 76.0845 18.9956 76.0799 18.9909C76.0752 18.9863 76.0717 18.9806 76.0696 18.9744C76.0675 18.9682 76.0669 18.9615 76.0678 18.955V18.7292C76.0669 18.7227 76.0675 18.7161 76.0696 18.7098C76.0717 18.7036 76.0752 18.6979 76.0799 18.6932C76.0845 18.6886 76.0902 18.6851 76.0965 18.683C76.1027 18.681 76.1094 18.6804 76.1159 18.6813H77.2662C77.2727 18.6804 77.2793 18.681 77.2855 18.6831C77.2917 18.6852 77.2973 18.6887 77.302 18.6933C77.3066 18.698 77.3101 18.7037 77.3121 18.7099C77.3142 18.7161 77.3148 18.7227 77.3138 18.7292V18.955C77.3148 18.9615 77.3142 18.9681 77.3121 18.9743C77.3101 18.9806 77.3066 18.9862 77.302 18.9909C77.2974 18.9955 77.2917 18.999 77.2855 19.001C77.2793 19.0031 77.2727 19.0037 77.2662 19.0027H76.1159ZM76.4674 21.6591C76.4376 21.6591 76.4228 21.6433 76.4228 21.6112V17.6457C76.4195 17.486 76.4572 17.3282 76.5323 17.1872C76.5984 17.0616 76.701 16.9591 76.8266 16.8931C76.9522 16.8272 77.0948 16.8011 77.2356 16.8181C77.3816 16.834 77.5212 16.8869 77.641 16.972C77.6474 16.9748 77.6529 16.9791 77.657 16.9846C77.6612 16.9901 77.6639 16.9966 77.6649 17.0034C77.6659 17.0102 77.6652 17.0172 77.6627 17.0236C77.6603 17.0301 77.6562 17.0358 77.651 17.0403L77.5145 17.2216C77.5116 17.2273 77.5074 17.2322 77.5023 17.2359C77.4971 17.2397 77.4911 17.2422 77.4848 17.2432C77.4785 17.2442 77.4721 17.2437 77.466 17.2417C77.4599 17.2398 77.4544 17.2364 77.4499 17.2319C77.3848 17.1801 77.3067 17.1472 77.2242 17.1369C77.1417 17.1267 77.0579 17.1394 76.9821 17.1736C76.9005 17.2202 76.8343 17.2898 76.7918 17.3737C76.7493 17.4576 76.7323 17.5522 76.7429 17.6457V21.6112C76.7439 21.6177 76.7433 21.6243 76.7412 21.6305C76.7392 21.6368 76.7357 21.6424 76.7311 21.6471C76.7265 21.6517 76.7208 21.6553 76.7146 21.6573C76.7084 21.6594 76.7018 21.66 76.6953 21.6591H76.4674Z" fill="currentColor"></path><path d="M82.4297 21.4437C82.4501 21.4708 82.4467 21.4925 82.4194 21.5089C82.2858 21.6043 82.1262 21.6567 81.962 21.6591C81.8576 21.6598 81.7545 21.6352 81.6616 21.5874C81.5387 21.5257 81.4374 21.4279 81.3715 21.307C81.3016 21.1731 81.2663 21.0238 81.2689 20.8728V19.0131H80.8559C80.8494 19.014 80.8428 19.0134 80.8366 19.0113C80.8304 19.0092 80.8247 19.0057 80.82 19.001C80.8154 18.9964 80.8119 18.9907 80.8098 18.9845C80.8078 18.9783 80.8072 18.9716 80.8081 18.9651V18.7367C80.8071 18.7302 80.8077 18.7236 80.8097 18.7173C80.8118 18.7111 80.8153 18.7054 80.82 18.7007C80.8246 18.6961 80.8303 18.6926 80.8365 18.6905C80.8428 18.6884 80.8494 18.6879 80.8559 18.6888H81.2689L81.2656 17.8444C81.2647 17.8379 81.2653 17.8313 81.2673 17.8251C81.2694 17.8188 81.2729 17.8132 81.2775 17.8085C81.2821 17.8039 81.2878 17.8004 81.294 17.7983C81.3002 17.7962 81.3068 17.7956 81.3133 17.7965H81.5422C81.5487 17.7956 81.5553 17.7962 81.5615 17.7983C81.5677 17.8004 81.5733 17.8039 81.578 17.8085C81.5826 17.8132 81.5861 17.8188 81.5881 17.8251C81.5902 17.8313 81.5908 17.8379 81.5898 17.8444V18.6888H82.0577C82.0642 18.6879 82.0708 18.6885 82.0771 18.6906C82.0833 18.6927 82.0889 18.6962 82.0935 18.7008C82.0982 18.7055 82.1016 18.7111 82.1037 18.7174C82.1057 18.7236 82.1063 18.7302 82.1054 18.7367V18.9657C82.1063 18.9722 82.1057 18.9788 82.1036 18.9851C82.1015 18.9913 82.098 18.9969 82.0934 19.0016C82.0888 19.0062 82.0832 19.0097 82.077 19.0118C82.0708 19.0139 82.0642 19.0145 82.0577 19.0137H81.5898V20.8734C81.58 20.9578 81.5951 21.0432 81.6334 21.119C81.6717 21.1948 81.7314 21.2577 81.8051 21.2997C81.8733 21.3318 81.9492 21.344 82.024 21.3349C82.0988 21.3259 82.1696 21.296 82.2282 21.2486C82.233 21.2445 82.2385 21.2416 82.2445 21.2399C82.2505 21.2382 82.2568 21.2378 82.263 21.2388C82.2691 21.2398 82.275 21.242 82.2802 21.2455C82.2854 21.2489 82.2898 21.2534 82.2931 21.2587L82.4297 21.4437Z" fill="currentColor"></path><path d="M89.2414 18.7164C89.2441 18.7069 89.25 18.6986 89.2582 18.693C89.2663 18.6875 89.2762 18.6849 89.286 18.6858H89.5293C89.5371 18.6859 89.5448 18.6878 89.5519 18.6913C89.5589 18.6948 89.565 18.6999 89.5698 18.7061C89.5742 18.7118 89.5768 18.7187 89.5774 18.7259C89.578 18.7331 89.5765 18.7403 89.5731 18.7467L88.5626 21.6297C88.5599 21.6391 88.554 21.6474 88.5459 21.653C88.5378 21.6586 88.528 21.6612 88.5182 21.6603H88.3441C88.3343 21.6612 88.3245 21.6586 88.3165 21.653C88.3084 21.6474 88.3025 21.6391 88.2999 21.6297L87.4772 19.1511L86.651 21.6297C86.6483 21.6392 86.6424 21.6474 86.6342 21.653C86.6261 21.6586 86.6163 21.6612 86.6064 21.6603H86.4359C86.4261 21.6612 86.4163 21.6586 86.4082 21.653C86.4001 21.6474 86.3942 21.6391 86.3915 21.6297L85.3778 18.7467C85.3758 18.7397 85.3754 18.7323 85.3767 18.7252C85.378 18.718 85.3809 18.7112 85.3851 18.7053C85.3894 18.6995 85.395 18.6946 85.4014 18.6912C85.4079 18.6879 85.415 18.686 85.4222 18.6858H85.6655C85.6753 18.6849 85.6851 18.6875 85.6932 18.6931C85.7013 18.6987 85.7072 18.707 85.7099 18.7164L86.5395 21.0992L87.3111 18.7164C87.3138 18.7069 87.3196 18.6987 87.3277 18.6931C87.3357 18.6875 87.3455 18.6849 87.3553 18.6858H87.5986C87.6084 18.6849 87.6182 18.6875 87.6263 18.6931C87.6344 18.6987 87.6403 18.707 87.643 18.7164L88.4179 21.0992L89.2414 18.7164Z" fill="currentColor"></path><path d="M94.9533 21.6591C94.9475 21.6597 94.9417 21.659 94.9361 21.6573C94.9306 21.6555 94.9254 21.6527 94.9209 21.6489C94.9165 21.6451 94.9129 21.6405 94.9103 21.6352C94.9076 21.63 94.9061 21.6243 94.9057 21.6185C94.885 21.4544 94.8691 21.3005 94.8581 21.1568C94.797 21.2427 94.7246 21.3198 94.6428 21.386C94.5035 21.5001 94.3401 21.5808 94.1649 21.6219C93.9797 21.663 93.7884 21.6676 93.6015 21.6355C93.4991 21.6182 93.4001 21.5847 93.3081 21.5363C93.2102 21.4838 93.1251 21.4103 93.0588 21.3211C92.9423 21.1446 92.8905 20.9333 92.912 20.7229C92.9195 20.6167 92.9485 20.5131 92.9973 20.4184C93.0449 20.325 93.1125 20.2433 93.1954 20.1792C93.3375 20.0697 93.5017 19.9926 93.6767 19.9535C93.8225 19.9193 93.971 19.8977 94.1205 19.8887C94.2412 19.8818 94.3641 19.8806 94.4893 19.885C94.5392 19.885 94.5906 19.8875 94.6428 19.892C94.677 19.892 94.7202 19.8944 94.7725 19.8989L94.8238 19.9023C94.8192 19.5535 94.7532 19.3142 94.6257 19.1844C94.5503 19.1202 94.4628 19.0716 94.3685 19.0417C94.2741 19.0117 94.1747 19.001 94.0761 19.01C93.9004 19.0079 93.7262 19.0416 93.564 19.1091C93.5085 19.1336 93.4549 19.1621 93.4036 19.1946C93.3852 19.2061 93.3671 19.2185 93.3489 19.2321C93.3353 19.2437 93.3229 19.254 93.3114 19.263C93.3076 19.2673 93.3029 19.2708 93.2976 19.2731C93.2924 19.2755 93.2867 19.2767 93.281 19.2767C93.2752 19.2767 93.2695 19.2755 93.2643 19.2731C93.259 19.2708 93.2543 19.2673 93.2505 19.263L93.0799 19.1091C93.074 19.1051 93.0693 19.0997 93.066 19.0935C93.0627 19.0873 93.061 19.0803 93.061 19.0732C93.061 19.0662 93.0627 19.0592 93.066 19.053C93.0693 19.0468 93.074 19.0414 93.0799 19.0374C93.0957 19.0238 93.1127 19.01 93.1309 18.9968C93.1536 18.9785 93.1778 18.9603 93.2029 18.942C93.268 18.8978 93.3364 18.8589 93.4077 18.8257C93.618 18.7312 93.8462 18.6834 94.0767 18.6858C94.2015 18.6697 94.3282 18.6792 94.4491 18.7138C94.5701 18.7484 94.6827 18.8073 94.7802 18.887C94.8776 18.9666 94.9579 19.0653 95.0159 19.1771C95.074 19.2888 95.1087 19.4112 95.118 19.5369C95.1351 19.6466 95.1442 19.7575 95.1451 19.8686V20.2036C95.143 20.2812 95.1419 20.3495 95.1419 20.4087C95.1419 20.5887 95.1521 20.8006 95.1725 21.0445C95.186 21.2224 95.2054 21.4092 95.2307 21.6051C95.2352 21.6418 95.2191 21.6599 95.1828 21.6599L94.9533 21.6591ZM94.6872 20.8728C94.7379 20.7788 94.7769 20.6789 94.8033 20.5753L94.8203 20.5104L94.8169 20.4078L94.8203 20.3088V20.2097L94.7486 20.2028C94.6529 20.1937 94.5642 20.188 94.4824 20.1855C94.364 20.1834 94.2491 20.1857 94.1377 20.1924C94.0067 20.1996 93.8764 20.2179 93.7485 20.2473C93.6175 20.275 93.494 20.331 93.3868 20.4113C93.337 20.4513 93.2965 20.5017 93.2681 20.559C93.2398 20.6163 93.2243 20.6791 93.2228 20.743C93.2111 20.8804 93.246 21.0177 93.3219 21.1326C93.4055 21.2374 93.5269 21.305 93.6599 21.3207C93.8032 21.3482 93.9506 21.347 94.0935 21.3172C94.2246 21.2878 94.3479 21.2307 94.4552 21.1497C94.5505 21.0741 94.6293 20.9799 94.6872 20.8728Z" fill="currentColor"></path><path d="M100.332 18.7164C100.338 18.7169 100.345 18.7189 100.351 18.7223C100.356 18.7257 100.361 18.7304 100.365 18.736C100.369 18.7417 100.371 18.7481 100.372 18.7548C100.372 18.7614 100.372 18.7682 100.369 18.7745L100.325 18.9978C100.324 19.0041 100.322 19.0102 100.319 19.0156C100.316 19.0211 100.312 19.0258 100.306 19.0294C100.301 19.0329 100.295 19.0353 100.289 19.0364C100.283 19.0374 100.276 19.0371 100.27 19.0354C100.229 19.0285 100.186 19.0251 100.144 19.0252C99.9188 19.0256 99.7027 19.1153 99.5434 19.2749C99.384 19.4344 99.2943 19.6507 99.2938 19.8763V21.613C99.2938 21.6451 99.279 21.6609 99.2494 21.6609H99.021C99.0145 21.6619 99.0078 21.6613 99.0016 21.6592C98.9953 21.6572 98.9897 21.6537 98.985 21.649C98.9804 21.6444 98.9769 21.6387 98.9748 21.6324C98.9727 21.6262 98.9721 21.6195 98.9731 21.613V18.73C98.9722 18.7235 98.9728 18.7169 98.9749 18.7107C98.977 18.7045 98.9805 18.6988 98.9851 18.6942C98.9897 18.6896 98.9954 18.6861 99.0016 18.684C99.0079 18.682 99.0145 18.6814 99.021 18.6823H99.2494C99.279 18.6823 99.2938 18.6982 99.2938 18.73V19.0721C99.4012 18.9536 99.5326 18.8593 99.6792 18.7957C99.8258 18.732 99.9843 18.7003 100.144 18.7028C100.207 18.7027 100.27 18.7073 100.332 18.7164Z" fill="currentColor"></path><path d="M103.867 21.2248C103.726 21.0886 103.615 20.9248 103.54 20.7437C103.464 20.5626 103.427 20.368 103.43 20.1719C103.426 19.9768 103.461 19.7827 103.533 19.6013C103.605 19.4199 103.713 19.255 103.85 19.1162C103.981 18.9804 104.139 18.8726 104.313 18.7991C104.487 18.7257 104.674 18.6882 104.863 18.6888C105.052 18.6895 105.239 18.7282 105.413 18.8029C105.587 18.8775 105.744 18.9864 105.874 19.1231C106.008 19.2577 106.113 19.4178 106.184 19.594C106.255 19.7701 106.29 19.9587 106.287 20.1486V20.2239C106.288 20.2296 106.287 20.2353 106.285 20.2406C106.284 20.246 106.281 20.251 106.277 20.2552C106.273 20.2593 106.268 20.2627 106.263 20.265C106.258 20.2672 106.252 20.2684 106.247 20.2684L103.796 20.4838C103.856 20.701 103.978 20.896 104.146 21.0452C104.315 21.1945 104.523 21.2914 104.746 21.3244C104.969 21.3573 105.196 21.3248 105.401 21.2308C105.605 21.1368 105.778 20.9853 105.898 20.7948C105.901 20.7888 105.905 20.7834 105.91 20.7791C105.914 20.7748 105.92 20.7716 105.927 20.77C105.933 20.7683 105.94 20.7681 105.946 20.7694C105.952 20.7708 105.958 20.7735 105.963 20.7776L106.161 20.8905C106.167 20.8934 106.173 20.8976 106.177 20.9028C106.181 20.9081 106.184 20.9141 106.186 20.9207C106.187 20.9272 106.188 20.934 106.186 20.9406C106.185 20.9472 106.182 20.9534 106.178 20.9589C106.044 21.1733 105.857 21.3499 105.636 21.4717C105.416 21.5961 105.168 21.6609 104.915 21.6597C104.72 21.6629 104.527 21.626 104.346 21.5513C104.166 21.4766 104.003 21.3657 103.867 21.2254M104.076 19.3383C103.971 19.4478 103.888 19.577 103.833 19.7184C103.778 19.8598 103.751 20.0107 103.755 20.1624L105.957 19.9709C105.932 19.7041 105.807 19.4569 105.605 19.2807C105.4 19.0998 105.134 19.0033 104.861 19.0106C104.714 19.007 104.568 19.0343 104.433 19.0908C104.298 19.1473 104.176 19.2318 104.076 19.3387" fill="currentColor"></path><path d="M114.899 21.6522C114.892 21.6531 114.886 21.6526 114.879 21.6505C114.873 21.6484 114.868 21.6449 114.863 21.6403C114.858 21.6356 114.855 21.6299 114.853 21.6237C114.851 21.6174 114.85 21.6108 114.851 21.6043V16.808C114.85 16.8015 114.851 16.7949 114.853 16.7887C114.855 16.7825 114.859 16.7768 114.863 16.7722C114.868 16.7676 114.873 16.7641 114.88 16.762C114.886 16.76 114.892 16.7594 114.899 16.7603H115.128C115.157 16.7603 115.172 16.7763 115.172 16.808V21.6045C115.172 21.6366 115.157 21.6524 115.128 21.6524L114.899 21.6522ZM118.282 19.3685H114.851V19.0437H118.282V19.3685ZM118.009 21.6591C118.003 21.6601 117.996 21.6595 117.99 21.6575C117.983 21.6554 117.978 21.6519 117.973 21.6473C117.968 21.6426 117.965 21.6369 117.963 21.6306C117.961 21.6244 117.96 21.6177 117.961 21.6112V16.8147C117.96 16.8081 117.961 16.8015 117.963 16.7952C117.965 16.789 117.968 16.7833 117.973 16.7787C117.978 16.774 117.983 16.7705 117.99 16.7685C117.996 16.7664 118.003 16.7658 118.009 16.7668H118.238C118.267 16.7668 118.282 16.783 118.282 16.8147V21.6112C118.282 21.6432 118.267 21.6591 118.238 21.6591H118.009Z" fill="currentColor"></path><path d="M122.627 21.225C122.385 20.9826 122.234 20.6636 122.201 20.3225C122.167 19.9813 122.252 19.639 122.443 19.3539C122.633 19.0688 122.916 18.8585 123.243 18.7589C123.571 18.6592 123.923 18.6764 124.239 18.8074C124.555 18.9385 124.817 19.1753 124.978 19.4775C125.14 19.7798 125.192 20.1288 125.125 20.465C125.059 20.8013 124.878 21.1041 124.613 21.3219C124.349 21.5396 124.017 21.6587 123.675 21.6591C123.48 21.6618 123.286 21.6248 123.106 21.5501C122.926 21.4755 122.763 21.3649 122.627 21.225ZM122.852 19.3549C122.663 19.545 122.546 19.7947 122.521 20.0615C122.495 20.3283 122.562 20.5958 122.711 20.8184C122.861 21.041 123.082 21.205 123.338 21.2825C123.595 21.36 123.87 21.3462 124.117 21.2435C124.364 21.1407 124.568 20.9554 124.694 20.719C124.82 20.4826 124.861 20.2097 124.809 19.9468C124.757 19.6839 124.615 19.4472 124.408 19.2769C124.202 19.1067 123.942 19.0134 123.675 19.013C123.522 19.0104 123.369 19.0393 123.228 19.0982C123.086 19.157 122.958 19.2444 122.852 19.3549Z" fill="currentColor"></path><path d="M131.197 18.6781C131.203 18.6771 131.21 18.6777 131.216 18.6797C131.222 18.6818 131.228 18.6853 131.232 18.6899C131.237 18.6945 131.241 18.7002 131.243 18.7064C131.245 18.7126 131.245 18.7193 131.244 18.7258V21.6112C131.245 21.6177 131.245 21.6243 131.243 21.6306C131.241 21.6368 131.237 21.6425 131.233 21.6472C131.228 21.6518 131.222 21.6553 131.216 21.6574C131.21 21.6595 131.203 21.66 131.197 21.6591H130.971C130.965 21.66 130.958 21.6594 130.952 21.6573C130.946 21.6552 130.94 21.6517 130.935 21.6471C130.931 21.6424 130.927 21.6368 130.925 21.6305C130.923 21.6243 130.923 21.6177 130.924 21.6112V21.249L130.91 21.266L130.896 21.2829C130.693 21.5026 130.413 21.6361 130.114 21.6558L130.056 21.6591H129.995L129.93 21.6522L129.869 21.6455C129.785 21.6341 129.703 21.6123 129.624 21.5805C129.462 21.5191 129.317 21.4207 129.2 21.2932C129.079 21.1676 128.989 21.0155 128.937 20.849C128.909 20.7684 128.892 20.6844 128.886 20.5993C128.883 20.5791 128.882 20.5587 128.882 20.5384C128.88 20.5191 128.878 20.4997 128.878 20.4803V19.5976C128.876 19.2946 128.875 19.0428 128.875 18.8421V18.7258C128.874 18.7193 128.875 18.7127 128.877 18.7064C128.879 18.7002 128.883 18.6946 128.887 18.6899C128.892 18.6853 128.898 18.6818 128.904 18.6797C128.91 18.6777 128.917 18.6771 128.923 18.6781H129.152C129.181 18.6781 129.196 18.6939 129.196 18.7258V19.5976C129.196 19.6479 129.195 19.706 129.193 19.772V20.4797C129.193 20.5161 129.194 20.5469 129.196 20.5719C129.2 20.6346 129.211 20.6965 129.23 20.7564C129.269 20.8785 129.335 20.9906 129.421 21.0847C129.508 21.1791 129.616 21.2517 129.736 21.2967C129.794 21.3199 129.855 21.3371 129.917 21.3481L129.961 21.355L130.005 21.3582H130.097C130.214 21.3519 130.328 21.3217 130.432 21.2695C130.525 21.2233 130.61 21.1607 130.681 21.0847C130.742 21.0197 130.793 20.9459 130.831 20.8659C130.862 20.8053 130.885 20.741 130.9 20.6746C130.904 20.6494 130.908 20.6245 130.91 20.5993C130.912 20.5892 130.913 20.579 130.913 20.5686L130.917 20.5483V20.4935L130.924 20.3534V18.726C130.923 18.7195 130.923 18.7129 130.925 18.7066C130.927 18.7004 130.931 18.6947 130.936 18.6901C130.94 18.6855 130.946 18.682 130.952 18.6799C130.958 18.6779 130.965 18.6773 130.971 18.6783L131.197 18.6781Z" fill="currentColor"></path><path d="M136.492 19.1834C136.484 19.1921 136.472 19.1974 136.46 19.198C136.448 19.1986 136.436 19.1946 136.427 19.1869C136.407 19.1689 136.385 19.1528 136.362 19.1387C136.337 19.1194 136.31 19.1024 136.281 19.0878C136.205 19.0469 136.123 19.017 136.038 18.9989C135.985 18.9891 135.931 18.9823 135.878 18.9785H135.789C135.772 18.9787 135.754 18.9799 135.737 18.9822H135.717L135.697 18.9857C135.635 18.9921 135.574 19.0071 135.516 19.0301C135.46 19.0493 135.41 19.0821 135.369 19.1255C135.327 19.1666 135.297 19.2188 135.284 19.2762L135.277 19.2999L135.274 19.3241C135.271 19.3466 135.27 19.3647 135.27 19.3755L135.267 19.4027V19.3992L135.27 19.4096V19.4573L135.277 19.4776C135.277 19.4835 135.279 19.4894 135.281 19.495L135.287 19.5188L135.294 19.5391L135.304 19.5594L135.315 19.5797L135.328 19.6L135.345 19.6203L135.362 19.6406C135.415 19.6961 135.476 19.7433 135.543 19.7807C135.603 19.815 135.682 19.8546 135.782 19.9003L135.817 19.9139L135.854 19.9309L135.919 19.962L136.049 20.0164C136.141 20.0591 136.231 20.1071 136.318 20.1602C136.413 20.2181 136.499 20.2908 136.571 20.3756C136.651 20.4642 136.705 20.5728 136.728 20.6899L136.738 20.7345C136.74 20.7492 136.741 20.764 136.742 20.7788L136.745 20.8194V20.9006C136.743 20.913 136.742 20.9256 136.742 20.9382L136.735 20.9826L136.728 21.0269C136.708 21.1351 136.663 21.2372 136.596 21.325C136.53 21.4129 136.444 21.4841 136.346 21.533C136.262 21.5763 136.172 21.6075 136.079 21.6254C135.997 21.6419 135.914 21.6522 135.83 21.6561H135.765L135.714 21.6528C135.7 21.6528 135.682 21.6516 135.659 21.6494H135.629L135.601 21.6461C135.538 21.6368 135.468 21.6232 135.393 21.6055C135.284 21.5731 135.178 21.5284 135.079 21.4721C135.034 21.4488 134.99 21.4216 134.949 21.3909C134.92 21.368 134.892 21.3467 134.867 21.3261C134.862 21.3221 134.857 21.3167 134.854 21.3105C134.85 21.3042 134.849 21.2973 134.849 21.2902C134.849 21.2832 134.85 21.2762 134.854 21.27C134.857 21.2637 134.862 21.2583 134.867 21.2543L135.031 21.0969C135.035 21.0921 135.04 21.0882 135.045 21.0854C135.051 21.0826 135.057 21.081 135.063 21.0807C135.069 21.0804 135.075 21.0814 135.081 21.0836C135.087 21.0859 135.092 21.0893 135.096 21.0937C135.113 21.1103 135.131 21.1251 135.151 21.1379C135.179 21.1591 135.209 21.1785 135.24 21.196C135.315 21.2386 135.395 21.2719 135.478 21.2951C135.53 21.3095 135.583 21.3209 135.636 21.3294L135.656 21.3328H135.676C135.692 21.3349 135.708 21.336 135.724 21.3361L135.775 21.3395H135.795L135.819 21.3361C135.885 21.3351 135.95 21.3294 136.014 21.319C136.078 21.3061 136.14 21.2843 136.198 21.2543C136.256 21.2275 136.307 21.187 136.345 21.1364C136.384 21.0857 136.41 21.0264 136.42 20.9635L136.424 20.9396L136.427 20.9193C136.43 20.9092 136.431 20.8988 136.43 20.8884V20.8541L136.434 20.844L136.43 20.8304V20.8076C136.43 20.7984 136.429 20.7892 136.427 20.7802L136.424 20.7565C136.41 20.6896 136.379 20.6272 136.335 20.5752C136.216 20.4558 136.074 20.3616 135.918 20.2982L135.785 20.2402L135.72 20.2095L135.693 20.1957L135.659 20.1823C135.566 20.1418 135.476 20.0961 135.389 20.0452C135.294 19.9914 135.208 19.9234 135.133 19.8436C135.123 19.8331 135.114 19.8216 135.106 19.8093L135.078 19.7754C135.062 19.7503 135.047 19.724 135.034 19.6967L135.014 19.656C135.008 19.643 135.003 19.6294 135 19.6154C134.99 19.5852 134.982 19.5544 134.976 19.5233L134.97 19.4752V19.4445L134.966 19.4274V19.4L134.97 19.3594C134.97 19.3332 134.972 19.307 134.976 19.2811L134.983 19.2405L134.993 19.1998C135.02 19.0924 135.076 18.9942 135.154 18.9156C135.226 18.8445 135.312 18.7887 135.406 18.7516C135.488 18.7221 135.573 18.7017 135.659 18.6907H135.693L135.724 18.6874C135.742 18.6851 135.76 18.6838 135.778 18.6835H135.891C135.961 18.6873 136.031 18.6965 136.099 18.7112C136.211 18.7363 136.319 18.7765 136.42 18.8305C136.459 18.8508 136.495 18.8728 136.53 18.8957C136.555 18.914 136.58 18.9333 136.605 18.9536C136.614 18.9609 136.624 18.969 136.632 18.9777C136.638 18.9814 136.642 18.9865 136.646 18.9925C136.649 18.9985 136.651 19.0052 136.651 19.012C136.651 19.0189 136.649 19.0256 136.646 19.0316C136.642 19.0376 136.638 19.0427 136.632 19.0464L136.492 19.1834Z" fill="currentColor"></path><path d="M140.717 21.2248C140.576 21.0886 140.464 20.9248 140.389 20.7437C140.314 20.5626 140.277 20.368 140.28 20.1719C140.275 19.9768 140.31 19.7827 140.382 19.6013C140.454 19.4199 140.562 19.255 140.699 19.1162C140.831 18.9804 140.989 18.8726 141.163 18.7991C141.337 18.7257 141.524 18.6882 141.713 18.6888C141.902 18.6895 142.089 18.7282 142.263 18.8029C142.436 18.8775 142.593 18.9864 142.724 19.1231C142.858 19.2577 142.963 19.4178 143.034 19.594C143.105 19.7701 143.14 19.9587 143.137 20.1486V20.2239C143.137 20.2296 143.137 20.2353 143.135 20.2406C143.133 20.246 143.13 20.251 143.126 20.2552C143.123 20.2593 143.118 20.2627 143.113 20.265C143.108 20.2672 143.102 20.2684 143.096 20.2684L140.645 20.4838C140.705 20.701 140.827 20.896 140.996 21.0452C141.165 21.1945 141.373 21.2914 141.596 21.3244C141.818 21.3573 142.046 21.3248 142.25 21.2308C142.455 21.1368 142.628 20.9853 142.748 20.7948C142.75 20.7888 142.754 20.7834 142.759 20.7791C142.764 20.7748 142.77 20.7716 142.776 20.77C142.783 20.7683 142.789 20.7681 142.796 20.7694C142.802 20.7708 142.808 20.7735 142.813 20.7776L143.011 20.8905C143.017 20.8934 143.022 20.8976 143.027 20.9028C143.031 20.9081 143.034 20.9141 143.035 20.9207C143.037 20.9272 143.037 20.934 143.036 20.9406C143.035 20.9472 143.032 20.9534 143.028 20.9589C142.894 21.1733 142.707 21.3499 142.485 21.4717C142.266 21.5962 142.017 21.661 141.765 21.6597C141.57 21.6629 141.376 21.626 141.196 21.5513C141.016 21.4766 140.853 21.3657 140.717 21.2254M140.925 19.3383C140.82 19.4478 140.738 19.577 140.683 19.7184C140.628 19.8598 140.601 20.0107 140.604 20.1624L142.806 19.9709C142.782 19.7041 142.656 19.4569 142.455 19.2807C142.249 19.0997 141.983 19.0033 141.71 19.0106C141.564 19.0069 141.418 19.0343 141.283 19.0908C141.147 19.1473 141.026 19.2318 140.925 19.3387" fill="currentColor"></path></g><defs><clipPath id="clip0_451_1815"><rect width="151" height="23.9208" fill="currentColor" transform="translate(0 0.0396042)"></rect></clipPath></defs></svg>`);
}
const _sfc_setup$6 = _sfc_main$6.setup;
_sfc_main$6.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/WebstdyLogo.vue");
  return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
};
const __nuxt_component_1 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["ssrRender", _sfc_ssrRender]]);
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
  ...{
    inheritAttrs: false
  },
  __name: "InfoCircleIcon",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        class: "h-5 w-5 text-blue-600 dark:text-blue-400",
        fill: "none",
        stroke: "currentColor",
        viewBox: "0 0 24 24"
      }, _ctx.$attrs, _attrs))}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>`);
    };
  }
});
const _sfc_setup$5 = _sfc_main$5.setup;
_sfc_main$5.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/InfoCircleIcon.vue");
  return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
};
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
  ...{
    inheritAttrs: false
  },
  __name: "CodeIcon",
  __ssrInlineRender: true,
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        class: "h-5 w-5 text-purple-600 dark:text-purple-400",
        fill: "none",
        stroke: "currentColor",
        viewBox: "0 0 24 24"
      }, _ctx.$attrs, _attrs))}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path></svg>`);
    };
  }
});
const _sfc_setup$4 = _sfc_main$4.setup;
_sfc_main$4.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/CodeIcon.vue");
  return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
};
const __default__ = {
  inheritAttrs: false
};
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
  ...__default__,
  __name: "ChevronRightIcon",
  __ssrInlineRender: true,
  props: {
    isOpen: { type: Boolean }
  },
  setup(__props) {
    return (_ctx, _push, _parent, _attrs) => {
      _push(`<svg${ssrRenderAttrs(mergeProps({
        width: "16",
        height: "16",
        viewBox: "0 0 16 16",
        fill: "none",
        xmlns: "http://www.w3.org/2000/svg",
        class: ["transition-transform duration-200", { "rotate-90": _ctx.isOpen }]
      }, _ctx.$attrs, _attrs))}><path d="M6 3L11 8L6 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>`);
    };
  }
});
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/ChevronRightIcon.vue");
  return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
  __name: "ErrorGeneral",
  __ssrInlineRender: true,
  props: {
    error: {
      type: Object,
      default: () => ({})
    }
  },
  setup(__props) {
    const stackTraceExpanded = ref(false);
    const isDevelopment = computed(() => {
      return false;
    });
    const getErrorLocation = () => {
      var _a;
      const props = (_a = getCurrentInstance()) == null ? void 0 : _a.props;
      const error = props == null ? void 0 : props.error;
      if (!(error == null ? void 0 : error.stack)) return "";
      const stackLines = error.stack.split("\n");
      for (const line of stackLines) {
        const match = line.match(/at .+? \((.+?):(\d+):(\d+)\)/);
        if (match) {
          const [, filePath, lineNum, colNum] = match;
          const cleanPath = filePath.replace(/^.*[/\\]/g, "").replace(/\?.*$/g, "");
          return `${cleanPath}:${lineNum}:${colNum}`;
        }
        const match2 = line.match(/\s+at (.+?):(\d+):(\d+)/);
        if (match2) {
          const [, filePath, lineNum, colNum] = match2;
          const cleanPath = filePath.replace(/^.*[/\\]/g, "").replace(/\?.*$/g, "");
          return `${cleanPath}:${lineNum}:${colNum}`;
        }
      }
      return "";
    };
    return (_ctx, _push, _parent, _attrs) => {
      var _a, _b, _c, _d, _e, _f, _g, _h, _i;
      const _component_SvgWarningTriangleIcon = _sfc_main$a;
      const _component_SvgRefreshIcon = _sfc_main$9;
      const _component_SvgArrowLeftV2Icon = _sfc_main$8;
      const _component_SvgGeneralHomeIcon = _sfc_main$7;
      const _component_SvgWebstdyLogo = __nuxt_component_1;
      const _component_SvgInfoCircleIcon = _sfc_main$5;
      const _component_SvgCodeIcon = _sfc_main$4;
      const _component_SvgChevronRightIcon = _sfc_main$3;
      _push(`<div${ssrRenderAttrs(mergeProps({
        dir: "ltr",
        class: "bg-background flex h-screen flex-col"
      }, _attrs))}><div class="border-surface-border bg-surface-background flex-shrink-0 border-b px-5 py-4 sm:px-5"><div class="flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-lg bg-red-100 sm:h-12 sm:w-12 dark:bg-red-900/30">`);
      _push(ssrRenderComponent(_component_SvgWarningTriangleIcon, { class: "h-5 w-5 text-red-600 sm:h-6 sm:w-6 dark:text-red-400" }, null, _parent));
      _push(`</div><div class="min-w-0 flex-1"><h1 class="text-lg font-semibold text-slate-900 sm:text-xl dark:text-slate-100"> Error ${ssrInterpolate(((_a = __props.error) == null ? void 0 : _a.statusCode) || "Unknown")}</h1><p class="truncate text-sm text-slate-500 sm:text-base dark:text-slate-400">${ssrInterpolate(((_b = __props.error) == null ? void 0 : _b.statusMessage) || ((_c = __props.error) == null ? void 0 : _c.message) || "An unexpected error occurred")}</p></div></div><div class="flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-3"><div class="flex gap-2 sm:gap-3"><button class="inline-flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-lg border border-green-200 bg-green-50 px-3 py-2 text-sm font-medium text-green-700 transition-colors hover:bg-green-100 sm:flex-none sm:px-4 dark:border-green-800 dark:bg-green-900/20 dark:text-green-400 dark:hover:bg-green-900/30">`);
      _push(ssrRenderComponent(_component_SvgRefreshIcon, { class: "h-4 w-4" }, null, _parent));
      _push(`<span class="hidden sm:inline">Reload</span><span class="sm:hidden">Reload</span></button><button class="inline-flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm font-medium text-slate-700 transition-colors hover:bg-slate-50 sm:flex-none sm:px-4 dark:border-slate-600 dark:bg-slate-700 dark:text-slate-300 dark:hover:bg-slate-600">`);
      _push(ssrRenderComponent(_component_SvgArrowLeftV2Icon, { class: "h-4 w-4" }, null, _parent));
      _push(`<span class="hidden sm:inline">Go Back</span><span class="sm:hidden">Back</span></button></div><button class="inline-flex w-full cursor-pointer items-center justify-center gap-2 rounded-lg border border-blue-200 bg-blue-50 px-3 py-2 text-sm font-medium text-blue-700 transition-colors hover:bg-blue-100 sm:w-auto sm:px-4 dark:border-blue-800 dark:bg-blue-900/20 dark:text-blue-400 dark:hover:bg-blue-900/30">`);
      _push(ssrRenderComponent(_component_SvgGeneralHomeIcon, { class: "h-4 w-4" }, null, _parent));
      _push(`<span class="hidden sm:inline">Go to Home</span><span class="sm:hidden">Home</span></button></div></div></div>`);
      if (!unref(isDevelopment)) {
        _push(`<div class="grid flex-1 place-content-center overflow-auto p-5">`);
        _push(ssrRenderComponent(_component_SvgWebstdyLogo, { class: "size-64 md:size-80 lg:size-96" }, null, _parent));
        _push(`</div>`);
      } else {
        _push(`<!---->`);
      }
      if (unref(isDevelopment)) {
        _push(`<div class="flex-1 overflow-auto p-5"><div class="grid min-h-full grid-cols-1 gap-6 lg:grid-cols-3" style="${ssrRenderStyle({ "min-height": "calc(580px - 120px)" })}"><div class="contents h-full"><div class="lg:col-span-1"><div class="border-surface-border bg-surface-background h-full rounded-lg border p-6"><div class="mb-6 flex items-center gap-3">`);
        _push(ssrRenderComponent(_component_SvgInfoCircleIcon, { class: "h-5 w-5 text-blue-600 dark:text-blue-400" }, null, _parent));
        _push(`<h2 class="text-lg font-semibold text-slate-900 dark:text-slate-100"> Error Details </h2></div><div class="space-y-4">`);
        if ((_d = __props.error) == null ? void 0 : _d.statusCode) {
          _push(`<div class="flex items-center justify-between border-b border-slate-100 py-3 dark:border-slate-700"><span class="text-sm font-medium text-slate-600 dark:text-slate-400">Status Code</span><span class="rounded bg-red-100 px-2 py-1 font-mono text-xs text-red-800 dark:bg-red-900/30 dark:text-red-300">${ssrInterpolate(__props.error.statusCode)}</span></div>`);
        } else {
          _push(`<!---->`);
        }
        if ((_e = __props.error) == null ? void 0 : _e.name) {
          _push(`<div class="flex items-center justify-between border-b border-slate-100 py-3 dark:border-slate-700"><span class="text-sm font-medium text-slate-600 dark:text-slate-400">Error Type</span><span class="rounded bg-orange-100 px-2 py-1 font-mono text-xs text-orange-800 dark:bg-orange-900/30 dark:text-orange-300">${ssrInterpolate(__props.error.name)}</span></div>`);
        } else {
          _push(`<!---->`);
        }
        if (getErrorLocation()) {
          _push(`<div class="border-b border-slate-100 py-3 dark:border-slate-700"><span class="mb-2 block text-sm font-medium text-slate-600 dark:text-slate-400">Location</span><code class="rounded bg-slate-50 px-2 py-1 text-xs text-red-600 dark:bg-slate-700 dark:text-red-400">${ssrInterpolate(getErrorLocation())}</code></div>`);
        } else {
          _push(`<!---->`);
        }
        if (((_f = __props.error) == null ? void 0 : _f.message) && __props.error.message !== ((_g = __props.error) == null ? void 0 : _g.statusMessage)) {
          _push(`<div class="py-3"><span class="mb-2 block text-sm font-medium text-slate-600 dark:text-slate-400">Message</span><p class="rounded bg-slate-50 p-3 text-sm text-slate-700 dark:bg-slate-700 dark:text-slate-300">${ssrInterpolate(__props.error.message)}</p></div>`);
        } else {
          _push(`<!---->`);
        }
        _push(`</div></div></div><div class="lg:col-span-2"><div class="border-surface-border bg-surface-background flex h-full flex-col rounded-lg border p-6"><div class="mb-6 flex items-center gap-3">`);
        _push(ssrRenderComponent(_component_SvgCodeIcon, { class: "h-5 w-5 text-purple-600 dark:text-purple-400" }, null, _parent));
        _push(`<h2 class="text-lg font-semibold text-slate-900 dark:text-slate-100"> Technical Information </h2></div><div class="flex-1 overflow-hidden"><div class="h-full space-y-6">`);
        if ((_h = __props.error) == null ? void 0 : _h.data) {
          _push(`<div class=""><h3 class="mb-3 text-sm font-medium text-slate-600 dark:text-slate-400"> Additional Data </h3><div class="max-h-48 overflow-auto rounded-lg bg-slate-50 p-4 dark:bg-slate-700"><pre class="text-xs text-slate-800 dark:text-slate-200"><code>${ssrInterpolate(JSON.stringify(__props.error.data, null, 2))}</code></pre></div></div>`);
        } else {
          _push(`<!---->`);
        }
        if ((_i = __props.error) == null ? void 0 : _i.stack) {
          _push(`<div class="flex flex-1 flex-col"><div class="mb-3 flex items-center gap-2"><h3 class="text-sm font-medium text-slate-600 dark:text-slate-400"> Stack Trace </h3><button class="inline-flex items-center gap-1 px-2 py-1 text-xs text-slate-500 transition-colors hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200">`);
          _push(ssrRenderComponent(_component_SvgChevronRightIcon, {
            "is-open": unref(stackTraceExpanded),
            class: ["h-3 w-3 transition-transform", { "rotate-90": unref(stackTraceExpanded) }]
          }, null, _parent));
          _push(` ${ssrInterpolate(unref(stackTraceExpanded) ? "Collapse" : "Expand")}</button></div>`);
          if (unref(stackTraceExpanded)) {
            _push(`<div class="flex-1 overflow-auto rounded-lg bg-slate-900 p-4 dark:bg-slate-950"><pre class="font-mono text-xs text-green-400"><code>${ssrInterpolate(__props.error.stack)}</code></pre></div>`);
          } else {
            _push(`<div class="cursor-pointer rounded-lg bg-slate-50 p-4 transition-colors hover:bg-slate-100 dark:bg-slate-700 dark:hover:bg-slate-600"><p class="flex items-center gap-2 text-sm text-slate-600 dark:text-slate-400">`);
            _push(ssrRenderComponent(_component_SvgChevronRightIcon, {
              "is-open": false,
              class: "h-3 w-3"
            }, null, _parent));
            _push(` Click to expand and view full stack trace </p></div>`);
          }
          _push(`</div>`);
        } else {
          _push(`<!---->`);
        }
        if (unref(isDevelopment)) {
          _push(`<div class="rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-800 dark:bg-amber-900/20"><div class="mb-2 flex items-center gap-2">`);
          _push(ssrRenderComponent(_component_SvgWarningTriangleIcon, { class: "h-4 w-4 text-amber-600 dark:text-amber-400" }, null, _parent));
          _push(`<span class="text-sm font-medium text-amber-800 dark:text-amber-200">Development Mode</span></div><p class="text-xs text-amber-700 dark:text-amber-300"> This detailed error information is only shown in development mode. </p></div>`);
        } else {
          _push(`<!---->`);
        }
        _push(`</div></div></div></div></div></div></div>`);
      } else {
        _push(`<!---->`);
      }
      _push(`</div>`);
    };
  }
});
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/error/ErrorGeneral.vue");
  return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
  __name: "error",
  __ssrInlineRender: true,
  props: {
    error: {
      type: Object,
      default: () => ({})
    }
  },
  setup(__props) {
    const { t } = useI18n();
    const props = __props;
    useSeoMeta({
      title: computed(() => {
        var _a;
        return `${t("errorSeo.title")} ${(_a = props.error) == null ? void 0 : _a.statusCode}`;
      }),
      description: computed(() => t("errorSeo.description"))
    });
    return (_ctx, _push, _parent, _attrs) => {
      var _a;
      const _component_ErrorError404 = _sfc_main$b;
      const _component_ErrorGeneral = _sfc_main$2;
      if (((_a = __props.error) == null ? void 0 : _a.statusCode) === 404) {
        _push(ssrRenderComponent(_component_ErrorError404, mergeProps({ error: __props.error }, _attrs), null, _parent));
      } else {
        _push(ssrRenderComponent(_component_ErrorGeneral, mergeProps({ error: __props.error }, _attrs), null, _parent));
      }
    };
  }
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("error.vue");
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = {
  __name: "nuxt-root",
  __ssrInlineRender: true,
  setup(__props) {
    const IslandRenderer = () => null;
    const nuxtApp = useNuxtApp();
    nuxtApp.deferHydration();
    nuxtApp.ssrContext.url;
    const SingleRenderer = false;
    provide(PageRouteSymbol, useRoute());
    nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup");
    const error = useError();
    const abortRender = error.value && !nuxtApp.ssrContext.error;
    onErrorCaptured((err, target, info) => {
      nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError));
      {
        const p = nuxtApp.runWithContext(() => showError(err));
        onServerPrefetch(() => p);
        return false;
      }
    });
    const islandContext = nuxtApp.ssrContext.islandContext;
    return (_ctx, _push, _parent, _attrs) => {
      ssrRenderSuspense(_push, {
        default: () => {
          if (unref(abortRender)) {
            _push(`<div></div>`);
          } else if (unref(error)) {
            _push(ssrRenderComponent(unref(_sfc_main$1), { error: unref(error) }, null, _parent));
          } else if (unref(islandContext)) {
            _push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent));
          } else if (unref(SingleRenderer)) {
            ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent);
          } else {
            _push(ssrRenderComponent(unref(_sfc_main$e), null, null, _parent));
          }
        },
        _: 1
      });
    };
  }
};
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-root.vue");
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
let entry;
{
  entry = async function createNuxtAppServer(ssrContext) {
    var _a;
    const vueApp = createApp(_sfc_main);
    const nuxt = createNuxtApp({ vueApp, ssrContext });
    try {
      await applyPlugins(nuxt, plugins);
      await nuxt.hooks.callHook("app:created", vueApp);
    } catch (error) {
      await nuxt.hooks.callHook("app:error", error);
      (_a = nuxt.payload).error || (_a.error = createError(error));
    }
    if (ssrContext == null ? void 0 : ssrContext._renderResponse) {
      throw new Error("skipping render");
    }
    return vueApp;
  };
}
const entry$1 = (ssrContext) => entry(ssrContext);

export { useRouter as A, showError as B, useSwitchLocalePath as C, __nuxt_component_1 as D, __nuxt_component_0$1 as _, _export_sfc as a, useRuntimeConfig as b, useSchemaOrg as c, useI18n as d, entry$1 as default, useSeoMeta as e, __nuxt_component_0 as f, _sfc_main$d as g, useNuxtApp as h, asyncDataDefaults as i, createError as j, useRoute as k, __nuxt_component_1$2 as l, useState as m, navigateTo as n, fetchDefaults as o, useRequestFetch as p, useSetI18nParams as q, useAppConfig as r, useHead as s, pictureProps as t, useLocalePath as u, useImage as v, useBaseImage as w, getFileExtension as x, baseImageProps as y, prerenderStaticImages as z };
//# sourceMappingURL=server.mjs.map
